Name: series-workflown76qj Phase: Succeeded StartedAt: 2026-07-21 09:17:05 +0000 UTC FinishedAt: 2026-07-21 14:30:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[0] Phase: Succeeded StartedAt: 2026-07-21 09:17:05 +0000 UTC FinishedAt: 2026-07-21 09:39:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[0].run-triage Phase: Succeeded StartedAt: 2026-07-21 09:17:05 +0000 UTC FinishedAt: 2026-07-21 09:39:06 +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": "8cd9520d35a6c38db6567e97dd93b1f11f185dc6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "JFS_FS" ], "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": "8cd9520d35a6c38db6567e97dd93b1f11f185dc6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "JFS_FS" ], "series_id": "f1fc4954-5360-4f11-adf1-feaca690637d" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "dtSearch", "dtSplitUp", "dtSplitPage", "dtExtendPage", "dtDelete", "dtDeleteUp", "dtRelink", "add_missing_indices", "dtReadFirst", "dtReadNext", "xtSearch", "xtSplitUp", "xtSplitPage", "xtExtend", "xtUpdate", "xtTruncate", "xtTruncate_pmap" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDA5OjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0pGU19GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2R0U2VhcmNoJiMzNDssCiAgICAmIzM0O2R0U3BsaXRVcCYjMzQ7LAogICAgJiMzNDtkdFNwbGl0UGFnZSYjMzQ7LAogICAgJiMzNDtkdEV4dGVuZFBhZ2UmIzM0OywKICAgICYjMzQ7ZHREZWxldGUmIzM0OywKICAgICYjMzQ7ZHREZWxldGVVcCYjMzQ7LAogICAgJiMzNDtkdFJlbGluayYjMzQ7LAogICAgJiMzNDthZGRfbWlzc2luZ19pbmRpY2VzJiMzNDssCiAgICAmIzM0O2R0UmVhZEZpcnN0JiMzNDssCiAgICAmIzM0O2R0UmVhZE5leHQmIzM0OywKICAgICYjMzQ7eHRTZWFyY2gmIzM0OywKICAgICYjMzQ7eHRTcGxpdFVwJiMzNDssCiAgICAmIzM0O3h0U3BsaXRQYWdlJiMzNDssCiAgICAmIzM0O3h0RXh0ZW5kJiMzNDssCiAgICAmIzM0O3h0VXBkYXRlJiMzNDssCiAgICAmIzM0O3h0VHJ1bmNhdGUmIzM0OywKICAgICYjMzQ7eHRUcnVuY2F0ZV9wbWFwJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBjaGVja3MgaW4gRFRfR0VUUEFHRSBhbmQgeHRfZ2V0cGFnZSB0byBlbnN1cmUgdGhhdCB0aGUgcm9vdCBibG9jayBmbGFnIChCVF9ST09UKSBpcyBjb3JyZWN0bHkgc2V0IG9ubHkgZm9yIHRoZSByb290IGJsb2NrIChibiA9PSAwKS4gVGhpcyBwcmV2ZW50cyBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBvciBjb3JydXB0aW9uIGlzc3VlcyB3aGVuIHBhcnNpbmcgbWFsZm9ybWVkIEpGUyBpbWFnZXMuIFNpbmNlIGl0IG1vZGlmaWVzIGNvcmUgSkZTIHRyZWUgdHJhdmVyc2FsIGxvZ2ljLCBpdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IGNoZWNrcyBjb3JyZWN0bHkgaGFuZGxlIHZhcmlvdXMgY29ycnVwdGVkIGltYWdlcyB3aXRob3V0IGNhdXNpbmcgcmVncmVzc2lvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDk6Mzc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0YWYwNDYwNzU4ZDRmNDVjYzlkMDZjYjBlM2I0NDJkMDFmN2NhYTI3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjEgMDk6Mzc6NTcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvamZzL2pmc19kdHJlZS5jIGIvZnMvamZzL2pmc19kdHJlZS5jXG5pbmRleCBhYzBmNzlmYWZhY2EwNC4uMmI2YmRlYTFmZjkyOGIgMTAwNjQ0XG4tLS0gYS9mcy9qZnMvamZzX2R0cmVlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2pmcy9qZnNfZHRyZWUuY1xuQEAgLTExMSwxOSAmIzQzOzExMSwyMCBAQCBzdHJ1Y3QgZHRzcGxpdCB7XG4gI2RlZmluZSBEVF9QQUdFKElQLCBNUCkgQlRfUEFHRShJUCwgTVAsIGR0cGFnZV90LCBpX2R0cm9vdClcbiBcbiAvKiBnZXQgcGFnZSBidWZmZXIgZm9yIHNwZWNpZmllZCBibG9jayBhZGRyZXNzICovXG4tI2RlZmluZSBEVF9HRVRQQUdFKElQLCBCTiwgTVAsIFNJWkUsIFAsIFJDKVx0XHRcdFx0XFxcbi1kbyB7XHRcdFx0XHRcdFx0XHRcdFx0XFxcbi1cdEJUX0dFVFBBR0UoSVAsIEJOLCBNUCwgZHRwYWdlX3QsIFNJWkUsIFAsIFJDLCBpX2R0cm9vdCk7XHRcXFxuLVx0aWYgKCEoUkMpKSB7XHRcdFx0XHRcdFx0XHRcXFxuLVx0XHRpZiAoKEJOKSBcdTAwMjZcdTAwMjYgIWNoZWNrX2R0cGFnZShQKSkge1x0XHRcdFx0XFxcbi1cdFx0XHRCVF9QVVRQQUdFKE1QKTtcdFx0XHRcdFx0XFxcbi1cdFx0XHRqZnNfZXJyb3IoKElQKS1cdTAwM2VpX3NiLFx0XHRcdFx0XFxcbi1cdFx0XHRcdCAgXCYjMzQ7RFRfR0VUUEFHRTogZHRyZWUgcGFnZSBjb3JydXB0XFxuXCYjMzQ7KTtcdFxcXG4tXHRcdFx0TVAgPSBOVUxMO1x0XHRcdFx0XHRcXFxuLVx0XHRcdFJDID0gLUVJTztcdFx0XHRcdFx0XFxcbi1cdFx0fVx0XHRcdFx0XHRcdFx0XFxcbi1cdH1cdFx0XHRcdFx0XHRcdFx0XFxcbi19IHdoaWxlICgwKVxuJiM0MzsjZGVmaW5lIERUX0dFVFBBR0UoSVAsIEJOLCBNUCwgU0laRSwgUCwgUkMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbiYjNDM7XHRkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4mIzQzO1x0XHRCVF9HRVRQQUdFKElQLCBCTiwgTVAsIGR0cGFnZV90LCBTSVpFLCBQLCBSQywgaV9kdHJvb3QpOyAgICAgICBcXFxuJiM0MztcdFx0aWYgKCEoUkMpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbiYjNDM7XHRcdFx0aWYgKCgoKEJOKSA9PSAwKSAhPSAhISgoUCktXHUwMDNlaGVhZGVyLmZsYWcgXHUwMDI2IEJUX1JPT1QpKSB8fCBcXFxuJiM0MztcdFx0XHQgICAgKChCTikgXHUwMDI2XHUwMDI2ICFjaGVja19kdHBhZ2UoUCkpKSB7ICAgICAgICAgICAgICAgICAgICAgIFxcXG4mIzQzO1x0XHRcdFx0QlRfUFVUUEFHRShNUCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuJiM0MztcdFx0XHRcdGpmc19lcnJvcigoSVApLVx1MDAzZWlfc2IsICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuJiM0MztcdFx0XHRcdFx0ICBcJiMzNDtEVF9HRVRQQUdFOiBkdHJlZSBwYWdlIGNvcnJ1cHRcXG5cJiMzNDspOyBcXFxuJiM0MztcdFx0XHRcdE1QID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbiYjNDM7XHRcdFx0XHRSQyA9IC1FSU87ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4mIzQzO1x0XHRcdH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuJiM0MztcdFx0fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbiYjNDM7XHR9IHdoaWxlICgwKVxuIFxuIC8qIGZvciBjb25zaXN0ZW5jeSAqL1xuICNkZWZpbmUgRFRfUFVUUEFHRShNUCkgQlRfUFVUUEFHRShNUClcbmRpZmYgLS1naXQgYS9mcy9qZnMvamZzX3h0cmVlLmMgYi9mcy9qZnMvamZzX3h0cmVlLmNcbmluZGV4IDI4YzNjZjk2MGM2ZmZlLi42ZDk2MGRkOTY0NzE5ZiAxMDA2NDRcbi0tLSBhL2ZzL2pmcy9qZnNfeHRyZWUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvamZzL2pmc194dHJlZS5jXG5AQCAtMTE4LDEwICYjNDM7MTE4LDExIEBAIHN0YXRpYyBpbmxpbmUgeHRwYWdlX3QgKnh0X2dldHBhZ2Uoc3RydWN0IGlub2RlICppcCwgczY0IGJuLCBzdHJ1Y3QgbWV0YXBhZ2UgKiptXG4gXHRpZiAocmMpXG4gXHRcdHJldHVybiBFUlJfUFRSKHJjKTtcbiBcdGlmICgobGUxNl90b19jcHUocC1cdTAwM2VoZWFkZXIubmV4dGluZGV4KSBcdTAwM2MgWFRFTlRSWVNUQVJUKSB8fFxuLVx0XHQobGUxNl90b19jcHUocC1cdTAwM2VoZWFkZXIubmV4dGluZGV4KSBcdTAwM2Vcbi1cdFx0XHRsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5tYXhlbnRyeSkpIHx8XG4tXHRcdChsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5tYXhlbnRyeSkgXHUwMDNlXG4tXHRcdFx0KChibiA9PSAwKSA/IFhUUk9PVE1BWFNMT1QgOiBQU0laRSBcdTAwM2VcdTAwM2UgTDJYVFNMT1RTSVpFKSkpIHtcbiYjNDM7XHQgICAgKGxlMTZfdG9fY3B1KHAtXHUwMDNlaGVhZGVyLm5leHRpbmRleCkgXHUwMDNlXG4mIzQzO1x0ICAgICBsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5tYXhlbnRyeSkpIHx8XG4mIzQzO1x0ICAgIChsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5tYXhlbnRyeSkgXHUwMDNlXG4mIzQzO1x0ICAgICAoKGJuID09IDApID8gWFRST09UTUFYU0xPVCA6IFBTSVpFIFx1MDAzZVx1MDAzZSBMMlhUU0xPVFNJWkUpKSB8fFxuJiM0MztcdCAgICAoKGJuID09IDApICE9ICEhKHAtXHUwMDNlaGVhZGVyLmZsYWcgXHUwMDI2IEJUX1JPT1QpKSkge1xuIFx0XHRqZnNfZXJyb3IoaXAtXHUwMDNlaV9zYiwgXCYjMzQ7eHRfZ2V0cGFnZTogeHRyZWUgcGFnZSBjb3JydXB0XFxuXCYjMzQ7KTtcbiBcdFx0QlRfUFVUUEFHRSgqbXApO1xuIFx0XHQqbXAgPSBOVUxMO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDA5OjM3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtKRlNfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkdFNlYXJjaCYjMzQ7LAogICAgJiMzNDtkdFNwbGl0VXAmIzM0OywKICAgICYjMzQ7ZHRTcGxpdFBhZ2UmIzM0OywKICAgICYjMzQ7ZHRFeHRlbmRQYWdlJiMzNDssCiAgICAmIzM0O2R0RGVsZXRlJiMzNDssCiAgICAmIzM0O2R0RGVsZXRlVXAmIzM0OywKICAgICYjMzQ7ZHRSZWxpbmsmIzM0OywKICAgICYjMzQ7YWRkX21pc3NpbmdfaW5kaWNlcyYjMzQ7LAogICAgJiMzNDtkdFJlYWRGaXJzdCYjMzQ7LAogICAgJiMzNDtkdFJlYWROZXh0JiMzNDssCiAgICAmIzM0O3h0U2VhcmNoJiMzNDssCiAgICAmIzM0O3h0U3BsaXRVcCYjMzQ7LAogICAgJiMzNDt4dFNwbGl0UGFnZSYjMzQ7LAogICAgJiMzNDt4dEV4dGVuZCYjMzQ7LAogICAgJiMzNDt4dFVwZGF0ZSYjMzQ7LAogICAgJiMzNDt4dFRydW5jYXRlJiMzNDssCiAgICAmIzM0O3h0VHJ1bmNhdGVfcG1hcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIERUX0dFVFBBR0UgYW5kIHh0X2dldHBhZ2UgdG8gZW5zdXJlIHRoYXQgdGhlIHJvb3QgYmxvY2sgZmxhZyAoQlRfUk9PVCkgaXMgY29ycmVjdGx5IHNldCBvbmx5IGZvciB0aGUgcm9vdCBibG9jayAoYm4gPT0gMCkuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgb3IgY29ycnVwdGlvbiBpc3N1ZXMgd2hlbiBwYXJzaW5nIG1hbGZvcm1lZCBKRlMgaW1hZ2VzLiBTaW5jZSBpdCBtb2RpZmllcyBjb3JlIEpGUyB0cmVlIHRyYXZlcnNhbCBsb2dpYywgaXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBjaGVja3MgY29ycmVjdGx5IGhhbmRsZSB2YXJpb3VzIGNvcnJ1cHRlZCBpbWFnZXMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0YWYwNDYwNzU4ZDRmNDVjYzlkMDZjYjBlM2I0NDJkMDFmN2NhYTI3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjEgMDk6Mzc6NTcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9qZnMvamZzX2R0cmVlLmMgYi9mcy9qZnMvamZzX2R0cmVlLmMKaW5kZXggYWMwZjc5ZmFmYWNhMDQuLjJiNmJkZWExZmY5MjhiIDEwMDY0NAotLS0gYS9mcy9qZnMvamZzX2R0cmVlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvamZzL2pmc19kdHJlZS5jCkBAIC0xMTEsMTkgJiM0MzsxMTEsMjAgQEAgc3RydWN0IGR0c3BsaXQgewogI2RlZmluZSBEVF9QQUdFKElQLCBNUCkgQlRfUEFHRShJUCwgTVAsIGR0cGFnZV90LCBpX2R0cm9vdCkKIAogLyogZ2V0IHBhZ2UgYnVmZmVyIGZvciBzcGVjaWZpZWQgYmxvY2sgYWRkcmVzcyAqLwotI2RlZmluZSBEVF9HRVRQQUdFKElQLCBCTiwgTVAsIFNJWkUsIFAsIFJDKQkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCUJUX0dFVFBBR0UoSVAsIEJOLCBNUCwgZHRwYWdlX3QsIFNJWkUsIFAsIFJDLCBpX2R0cm9vdCk7CVwKLQlpZiAoIShSQykpIHsJCQkJCQkJXAotCQlpZiAoKEJOKSAmYW1wOyZhbXA7ICFjaGVja19kdHBhZ2UoUCkpIHsJCQkJXAotCQkJQlRfUFVUUEFHRShNUCk7CQkJCQlcCi0JCQlqZnNfZXJyb3IoKElQKS0mZ3Q7aV9zYiwJCQkJXAotCQkJCSAgJiMzNDtEVF9HRVRQQUdFOiBkdHJlZSBwYWdlIGNvcnJ1cHRcbiYjMzQ7KTsJXAotCQkJTVAgPSBOVUxMOwkJCQkJXAotCQkJUkMgPSAtRUlPOwkJCQkJXAotCQl9CQkJCQkJCVwKLQl9CQkJCQkJCQlcCi19IHdoaWxlICgwKQomIzQzOyNkZWZpbmUgRFRfR0VUUEFHRShJUCwgQk4sIE1QLCBTSVpFLCBQLCBSQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiYjNDM7CWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwkJQlRfR0VUUEFHRShJUCwgQk4sIE1QLCBkdHBhZ2VfdCwgU0laRSwgUCwgUkMsIGlfZHRyb290KTsgICAgICAgXAomIzQzOwkJaWYgKCEoUkMpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwkJCWlmICgoKChCTikgPT0gMCkgIT0gISEoKFApLSZndDtoZWFkZXIuZmxhZyAmYW1wOyBCVF9ST09UKSkgfHwgXAomIzQzOwkJCSAgICAoKEJOKSAmYW1wOyZhbXA7ICFjaGVja19kdHBhZ2UoUCkpKSB7ICAgICAgICAgICAgICAgICAgICAgIFwKJiM0MzsJCQkJQlRfUFVUUEFHRShNUCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiYjNDM7CQkJCWpmc19lcnJvcigoSVApLSZndDtpX3NiLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwkJCQkJICAmIzM0O0RUX0dFVFBBR0U6IGR0cmVlIHBhZ2UgY29ycnVwdFxuJiMzNDspOyBcCiYjNDM7CQkJCU1QID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwkJCQlSQyA9IC1FSU87ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKJiM0MzsJCQl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwkJfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwl9IHdoaWxlICgwKQogCiAvKiBmb3IgY29uc2lzdGVuY3kgKi8KICNkZWZpbmUgRFRfUFVUUEFHRShNUCkgQlRfUFVUUEFHRShNUCkKZGlmZiAtLWdpdCBhL2ZzL2pmcy9qZnNfeHRyZWUuYyBiL2ZzL2pmcy9qZnNfeHRyZWUuYwppbmRleCAyOGMzY2Y5NjBjNmZmZS4uNmQ5NjBkZDk2NDcxOWYgMTAwNjQ0Ci0tLSBhL2ZzL2pmcy9qZnNfeHRyZWUuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9qZnMvamZzX3h0cmVlLmMKQEAgLTExOCwxMCAmIzQzOzExOCwxMSBAQCBzdGF0aWMgaW5saW5lIHh0cGFnZV90ICp4dF9nZXRwYWdlKHN0cnVjdCBpbm9kZSAqaXAsIHM2NCBibiwgc3RydWN0IG1ldGFwYWdlICoqbQogCWlmIChyYykKIAkJcmV0dXJuIEVSUl9QVFIocmMpOwogCWlmICgobGUxNl90b19jcHUocC0mZ3Q7aGVhZGVyLm5leHRpbmRleCkgJmx0OyBYVEVOVFJZU1RBUlQpIHx8Ci0JCShsZTE2X3RvX2NwdShwLSZndDtoZWFkZXIubmV4dGluZGV4KSAmZ3Q7Ci0JCQlsZTE2X3RvX2NwdShwLSZndDtoZWFkZXIubWF4ZW50cnkpKSB8fAotCQkobGUxNl90b19jcHUocC0mZ3Q7aGVhZGVyLm1heGVudHJ5KSAmZ3Q7Ci0JCQkoKGJuID09IDApID8gWFRST09UTUFYU0xPVCA6IFBTSVpFICZndDsmZ3Q7IEwyWFRTTE9UU0laRSkpKSB7CiYjNDM7CSAgICAobGUxNl90b19jcHUocC0mZ3Q7aGVhZGVyLm5leHRpbmRleCkgJmd0OwomIzQzOwkgICAgIGxlMTZfdG9fY3B1KHAtJmd0O2hlYWRlci5tYXhlbnRyeSkpIHx8CiYjNDM7CSAgICAobGUxNl90b19jcHUocC0mZ3Q7aGVhZGVyLm1heGVudHJ5KSAmZ3Q7CiYjNDM7CSAgICAgKChibiA9PSAwKSA/IFhUUk9PVE1BWFNMT1QgOiBQU0laRSAmZ3Q7Jmd0OyBMMlhUU0xPVFNJWkUpKSB8fAomIzQzOwkgICAgKChibiA9PSAwKSAhPSAhIShwLSZndDtoZWFkZXIuZmxhZyAmYW1wOyBCVF9ST09UKSkpIHsKIAkJamZzX2Vycm9yKGlwLSZndDtpX3NiLCAmIzM0O3h0X2dldHBhZ2U6IHh0cmVlIHBhZ2UgY29ycnVwdFxuJiMzNDspOwogCQlCVF9QVVRQQUdFKCptcCk7CiAJCSptcCA9IE5VTEw7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDA5OjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2ODMKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAyNjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgSkZTIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBmcy9qZnMvamZzX2R0cmVlLmNgIGFuZCBgZnMvamZzL2pmc194dHJlZS5jYC4gSXQgc2VlbXMgdGhleSYjMzk7dmUgYWRkZWQgdGhpcyBjb25kaXRpb25hbCBjaGVjaywgYCgoKEJOKSA9PSAwKSAhPSAhISgoUCktJmd0O2hlYWRlci5mbGFnICZhbXA7IEJUX1JPT1QpKWAgaW4gdGhlIGBEVF9HRVRQQUdFYCBtYWNybyB3aXRoaW4gYGpmc19kdHJlZS5jYCwgYW5kIGEgdmVyeSBzaW1pbGFyIGNoZWNrLCBgKChibiA9PSAwKSAhPSAhIShwLSZndDtoZWFkZXIuZmxhZyAmYW1wOyBCVF9ST09UKSlgLCBpbiB0aGUgYHh0X2dldHBhZ2VgIGZ1bmN0aW9uIHdpdGhpbiBgamZzX3h0cmVlLmNgLiAKCkZ1bmN0aW9uYWxseSwgdGhpcyBpcyBjbGVhcmx5IGEgZml4LiBJdCYjMzk7cyBhZGRyZXNzaW5nIGEgcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbiBvciBvdXQtb2YtYm91bmRzIHNpdHVhdGlvbiwgcHJvYmFibHkgdHJpZ2dlcmVkIGJ5IHNvbWV0aGluZyBsaWtlIGEgYHN5emJvdGAgYnVnLiBUaGUgY29yZSBpc3N1ZSBpcyBsaWtlbHkgYSBibG9jayBpbmNvcnJlY3RseSBjbGFpbWluZyByb290IHN0YXR1cywgb3IgdmljZS12ZXJzYS4KClNpbmNlIHdlJiMzOTtyZSBtb2RpZnlpbmcgSkZTLCBmdXp6aW5nIGlzIGRlZmluaXRlbHkgaW4gb3JkZXIuIFRoZSByZWxldmFudCBjb25maWcgb3B0aW9uIGlzIG9idmlvdXNseSBgSkZTX0ZTYC4gTm93IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSByaWdodCB3YXkgdG8gdGFyZ2V0IHRoZXNlIGNoYW5nZXMgaW4gb3VyIGZ1enppbmcgc3RyYXRlZ3kuCgpGb3IgYGpmc19kdHJlZS5jYCwgYERUX0dFVFBBR0VgIGlzIGEgbWFjcm8sIHNvIEkgbmVlZCB0byBmaW5kIGl0cyB1c2VzIHRvIHNlZSB3aGVyZSB0aGUgYWRkZWQgY2hlY2sgd2lsbCBiZSBleGVjdXRlZC4gSSYjMzk7bGwgdXNlIGBncmVwYCBmb3IgdGhhdC4KCkFuZCB0aGVuIGB4dF9nZXRwYWdlYCBpcyBhIGZ1bmN0aW9uIGluIGBqZnNfeHRyZWUuY2AuIEFnYWluLCBJJiMzOTtsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhhdCBmdW5jdGlvbiBpcyBjYWxsZWQgdXNpbmcgYGdyZXBgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDA5OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0RUX0dFVFBBR0UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9qZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2pmcy9qZnNfZHRyZWUuYz0xMDI9c3RydWN0IGR0c3BsaXQge1xuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYy0xMTMtLyogZ2V0IHBhZ2UgYnVmZmVyIGZvciBzcGVjaWZpZWQgYmxvY2sgYWRkcmVzcyAqL1xuZnMvamZzL2pmc19kdHJlZS5jOjExNDojZGVmaW5lIERUX0dFVFBBR0UoSVAsIEJOLCBNUCwgU0laRSwgUCwgUkMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbmZzL2pmcy9qZnNfZHRyZWUuYy0xMTUtXHRkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTEyMS1cdFx0XHRcdGpmc19lcnJvcigoSVApLVx1MDAzZWlfc2IsICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuZnMvamZzL2pmc19kdHJlZS5jOjEyMjpcdFx0XHRcdFx0ICBcJiMzNDtEVF9HRVRQQUdFOiBkdHJlZSBwYWdlIGNvcnJ1cHRcXG5cJiMzNDspOyBcXFxuZnMvamZzL2pmc19kdHJlZS5jLTEyMy1cdFx0XHRcdE1QID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmM9NTY2PWludCBkdFNlYXJjaChzdHJ1Y3QgaW5vZGUgKmlwLCBzdHJ1Y3QgY29tcG9uZW50X25hbWUgKiBrZXksIGlub190ICogZGF0YSxcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtNjIxLVx0XHQvKiBnZXQvcGluIHRoZSBwYWdlIHRvIHNlYXJjaCAqL1xuZnMvamZzL2pmc19kdHJlZS5jOjYyMjpcdFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBwc2l6ZSwgcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTYyMy1cdFx0aWYgKHJjKVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz05MjQ9c3RhdGljIGludCBkdFNwbGl0VXAodGlkX3QgdGlkLFxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYy0xMTMxLVx0XHQvKiBnZXQgdGhlIHBhcmVudCBwYWdlIFx1MDAzY3NwXHUwMDNlICovXG5mcy9qZnMvamZzX2R0cmVlLmM6MTEzMjpcdFx0RFRfR0VUUEFHRShpcCwgcGFyZW50LVx1MDAzZWJuLCBzbXAsIFBTSVpFLCBzcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTExMzMtXHRcdGlmIChyYykge1xuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz0xMzI0PXN0YXRpYyBpbnQgZHRTcGxpdFBhZ2UodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLCBzdHJ1Y3QgZHRzcGxpdCAqIHNwbGl0LFxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYy0xNDY4LVx0aWYgKG5leHRibiAhPSAwKSB7XG5mcy9qZnMvamZzX2R0cmVlLmM6MTQ2OTpcdFx0RFRfR0VUUEFHRShpcCwgbmV4dGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0xNDcwLVx0XHRpZiAocmMpIHtcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmM9MTYzNj1zdGF0aWMgaW50IGR0RXh0ZW5kUGFnZSh0aWRfdCB0aWQsXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTE2NjYtXHRwYXJlbnQgPSBCVF9QT1AoYnRzdGFjayk7XG5mcy9qZnMvamZzX2R0cmVlLmM6MTY2NzpcdERUX0dFVFBBR0UoaXAsIHBhcmVudC1cdTAwM2VibiwgcG1wLCBQU0laRSwgcHAsIHJjKTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0xNjY4LVx0aWYgKHJjKVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz0yMDc2PWludCBkdERlbGV0ZSh0aWRfdCB0aWQsXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTIxMjMtXHRcdFx0XHQvKiBSZWFkIG5leHQgbGVhZiBwYWdlICovXG5mcy9qZnMvamZzX2R0cmVlLmM6MjEyNDpcdFx0XHRcdERUX0dFVFBBR0UoaXAsIGxlNjRfdG9fY3B1KHAtXHUwMDNlaGVhZGVyLm5leHQpLFxuZnMvamZzL2pmc19kdHJlZS5jLTIxMjUtXHRcdFx0XHRcdCAgIG5tcCwgUFNJWkUsIG5wLCByYyk7XG4tLVxuZnMvamZzL2pmc19kdHJlZS5jPTIyMzE9c3RhdGljIGludCBkdERlbGV0ZVVwKHRpZF90IHRpZCwgc3RydWN0IGlub2RlICppcCxcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtMjMwMS1cdFx0LyogcGluIHRoZSBwYXJlbnQgcGFnZSBcdTAwM2NzcFx1MDAzZSAqL1xuZnMvamZzL2pmc19kdHJlZS5jOjIzMDI6XHRcdERUX0dFVFBBR0UoaXAsIHBhcmVudC1cdTAwM2VibiwgbXAsIFBTSVpFLCBwLCByYyk7XG5mcy9qZnMvamZzX2R0cmVlLmMtMjMwMy1cdFx0aWYgKHJjKVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz0yNDQzPXN0YXRpYyBpbnQgZHRSZWxpbmsodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLCBkdHBhZ2VfdCAqIHApXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTI0NTYtXHRpZiAobmV4dGJuICE9IDApIHtcbmZzL2pmcy9qZnNfZHRyZWUuYzoyNDU3Olx0XHREVF9HRVRQQUdFKGlwLCBuZXh0Ym4sIG1wLCBQU0laRSwgcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTI0NTgtXHRcdGlmIChyYylcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtMjQ4NS1cdGlmIChwcmV2Ym4gIT0gMCkge1xuZnMvamZzL2pmc19kdHJlZS5jOjI0ODY6XHRcdERUX0dFVFBBR0UoaXAsIHByZXZibiwgbXAsIFBTSVpFLCBwLCByYyk7XG5mcy9qZnMvamZzX2R0cmVlLmMtMjQ4Ny1cdFx0aWYgKHJjKVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz0yNjE0PXN0YXRpYyBpbnQgYWRkX21pc3NpbmdfaW5kaWNlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzNjQgYm4pXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTI2MjktXG5mcy9qZnMvamZzX2R0cmVlLmM6MjYzMDpcdERUX0dFVFBBR0UoaW5vZGUsIGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNjMxLVxuZnMvamZzL2pmc19kdHJlZS5jLTI2MzItXHRpZiAocmMpIHtcbmZzL2pmcy9qZnNfZHRyZWUuYzoyNjMzOlx0XHRwcmludGsoS0VSTl9FUlIgXCYjMzQ7RFRfR0VUUEFHRSBmYWlsZWQhXFxuXCYjMzQ7KTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNjM0LVx0XHRnb3RvIGVuZDtcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmM9MjcxMj1pbnQgamZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYy0yNzk0LVx0XHRcdGluZGV4ID0gZGlydGFiX3Nsb3Quc2xvdDtcbmZzL2pmcy9qZnNfZHRyZWUuYzoyNzk1Olx0XHRcdERUX0dFVFBBR0UoaXAsIGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNzk2LVx0XHRcdGlmIChyYykge1xuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYy0zMDM4LVxuZnMvamZzL2pmc19kdHJlZS5jOjMwMzk6XHRcdERUX0dFVFBBR0UoaXAsIGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMDQwLVx0XHRpZiAocmMpIHtcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmM9MzA1OD1zdGF0aWMgaW50IGR0UmVhZEZpcnN0KHN0cnVjdCBpbm9kZSAqaXAsIHN0cnVjdCBidHN0YWNrICogYnRzdGFjaylcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtMzA3Ni1cdGZvciAoYm4gPSAwOzspIHtcbmZzL2pmcy9qZnNfZHRyZWUuYzozMDc3Olx0XHREVF9HRVRQQUdFKGlwLCBibiwgbXAsIHBzaXplLCBwLCByYyk7XG5mcy9qZnMvamZzX2R0cmVlLmMtMzA3OC1cdFx0aWYgKHJjKVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz0zMTM3PXN0YXRpYyBpbnQgZHRSZWFkTmV4dChzdHJ1Y3QgaW5vZGUgKmlwLCBsb2ZmX3QgKiBvZmZzZXQsXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTMyMjAtXHRibiA9IHBhcmVudC1cdTAwM2VibjtcbmZzL2pmcy9qZnNfZHRyZWUuYzozMjIxOlx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTMyMjItXHRpZiAocmMpXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTMyNDEtXHRcdC8qIGdldCBuZXh0IHBhcmVudCBwYWdlICovXG5mcy9qZnMvamZzX2R0cmVlLmM6MzI0MjpcdFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTMyNDMtXHRcdGlmIChyYylcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtMzI2MS0gICAgICBjOlxuZnMvamZzL2pmc19kdHJlZS5jOjMyNjI6XHREVF9HRVRQQUdFKGlwLCBibiwgbXAsIFBTSVpFLCBwLCByYyk7XG5mcy9qZnMvamZzX2R0cmVlLmMtMzI2My1cdGlmIChyYylcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtMzI4Mi1cdFx0LyogZ2V0IG5leHQgbGVhZiBwYWdlICovXG5mcy9qZnMvamZzX2R0cmVlLmM6MzI4MzpcdFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTMyODQtXHRcdGlmIChyYylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwOTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDk4CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogOTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQ3VycmVudCBGb2N1czogS2V5IEZ1bmN0aW9ucyBmb3IgRGF0YSBNYW5hZ2VtZW50KioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGNvcmUgZnVuY3Rpb25zIHRoYXQgcmVhbGx5IGRyaXZlIHRoaXMgZGF0YSBtYW5hZ2VtZW50IHN5c3RlbS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmUgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIGVhY2ggb25lJiMzOTtzIHJvbGUgYW5kIHBvdGVudGlhbCBpbXBhY3QuIFJpZ2h0IG5vdywgSSYjMzk7bSB6ZXJvaW5nIGluIG9uOgoKKiAgIGBkdFNlYXJjaGA6IE9idmlvdXNseSwgdGhlIHNlYXJjaCBmdW5jdGlvbiBpcyBjcml0aWNhbCwgaXQmIzM5O3MgaG93IHVzZXJzIGFyZSBnb2luZyB0byBpbnRlcmFjdCB3aXRoIHRoZSBkYXRhLgoqICAgYGR0U3BsaXRVcGAgJmFtcDsgYGR0U3BsaXRQYWdlYDogU3BsaXR0aW5nIHBhZ2VzIGlzIGEgY29yZSBmdW5jdGlvbiwgbXVzdCBlbnN1cmUgdGhpcyBpcyBmdW5jdGlvbmluZyBhcyBpdCBzaG91bGQuCiogICBgZHRFeHRlbmRQYWdlYDogRXh0ZW5kaW5nIHBhZ2VzIGlzIGFub3RoZXIga2V5IGZ1bmN0aW9uIGZvciBtYW5hZ2luZyB0aGUgZmlsZXMgYXMgdGhleSBncm93LgoqICAgYGR0RGVsZXRlYCAmYW1wOyBgZHREZWxldGVVcGA6IFBhZ2UgZGVsZXRpb24gYW5kICYjMzk7dXAmIzM5OyBkZWxldGlvbiBhcmUgY3JpdGljYWwuCiogICBgZHRSZWxpbmtgOiBUaGlzIGNvdWxkIGJlIGNydWNpYWwgZm9yIGVuc3VyaW5nIGRhdGEgaW50ZWdyaXR5IGFuZCBoYW5kbGluZyBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiogICBgYWRkX21pc3NpbmdfaW5kaWNlc2A6IEVzc2VudGlhbCBmb3IgbWFpbnRhaW5pbmcgZWZmaWNpZW5jeSBhbmQgZGF0YSByZXRyaWV2YWwgc3BlZWQuCiogICBgamZzX3JlYWRkaXJgOiBUaGlzIG9uZSYjMzk7cyBhYm91dCBpbnRlcmFjdGluZyB3aXRoIHRoZSB1bmRlcmx5aW5nIGZpbGVzeXN0ZW0sIHNvIHRoYXQgbmVlZHMgdG8gYmUgcmV2aWV3ZWQgYXMgaXQmIzM5O3MgdGhlIGxheWVyIGFib3ZlIHRoZSBkYXRhLgoqICAgYGR0UmVhZEZpcnN0YCAmYW1wOyBgZHRSZWFkTmV4dGA6IENydWNpYWwgZm9yIGVmZmljaWVudCBkYXRhIHRyYXZlcnNhbC4KCk5vdywgSSBuZWVkIHRvIGNoZWNrIGB4dF9nZXRwYWdlYC4gVGhpcyBtYXkgYmUgdGhlIG5leHQgaW1wb3J0YW50IGFyZWEuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDk6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7eHRfZ2V0cGFnZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2pmcy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvamZzL2pmc194dHJlZS5jPTk0PXN0YXRpYyBpbnQgeHRTcGxpdFJvb3QodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLFxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy05Ny0vKlxuZnMvamZzL2pmc194dHJlZS5jOjk4OiAqXHR4dF9nZXRwYWdlKClcbmZzL2pmcy9qZnNfeHRyZWUuYy05OS0gKlxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0xMTAtXG5mcy9qZnMvamZzX3h0cmVlLmM6MTExOnN0YXRpYyBpbmxpbmUgeHRwYWdlX3QgKnh0X2dldHBhZ2Uoc3RydWN0IGlub2RlICppcCwgczY0IGJuLCBzdHJ1Y3QgbWV0YXBhZ2UgKiptcClcbmZzL2pmcy9qZnNfeHRyZWUuYy0xMTIte1xuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0xMjUtXHQgICAgKChibiA9PSAwKSAhPSAhIShwLVx1MDAzZWhlYWRlci5mbGFnIFx1MDAyNiBCVF9ST09UKSkpIHtcbmZzL2pmcy9qZnNfeHRyZWUuYzoxMjY6XHRcdGpmc19lcnJvcihpcC1cdTAwM2VpX3NiLCBcJiMzNDt4dF9nZXRwYWdlOiB4dHJlZSBwYWdlIGNvcnJ1cHRcXG5cJiMzNDspO1xuZnMvamZzL2pmc194dHJlZS5jLTEyNy1cdFx0QlRfUFVUUEFHRSgqbXApO1xuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYz0yMzI9c3RhdGljIGludCB4dFNlYXJjaChzdHJ1Y3QgaW5vZGUgKmlwLCBzNjQgeG9mZixcdHM2NCAqbmV4dHAsXG4tLVxuZnMvamZzL2pmc194dHJlZS5jLTI3MC1cdFx0LyogZ2V0L3BpbiB0aGUgcGFnZSB0byBzZWFyY2ggKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzoyNzE6XHRcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXHUwMDI2bXApO1xuZnMvamZzL2pmc194dHJlZS5jLTI3Mi1cdFx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmM9NjgwPXh0U3BsaXRVcCh0aWRfdCB0aWQsXG4tLVxuZnMvamZzL2pmc194dHJlZS5jLTgyNS1cdFx0LyogZ2V0L3BpbiB0aGUgcGFyZW50IHBhZ2UgXHUwMDNjc3BcdTAwM2UgKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzo4MjY6XHRcdHNwID0geHRfZ2V0cGFnZShpcCwgcGFyZW50LVx1MDAzZWJuLCBcdTAwMjZzbXApO1xuZnMvamZzL2pmc194dHJlZS5jLTgyNy1cdFx0aWYgKElTX0VSUihzcCkpIHtcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmM9OTUwPXh0U3BsaXRQYWdlKHRpZF90IHRpZCwgc3RydWN0IGlub2RlICppcCxcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMTA4MC1cdGlmIChuZXh0Ym4gIT0gMCkge1xuZnMvamZzL2pmc194dHJlZS5jOjEwODE6XHRcdHAgPSB4dF9nZXRwYWdlKGlwLCBuZXh0Ym4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0xMDgyLVx0XHRpZiAoSVNfRVJSKHApKSB7XG4tLVxuZnMvamZzL2pmc194dHJlZS5jPTEzNTI9aW50IHh0RXh0ZW5kKHRpZF90IHRpZCxcdFx0LyogdHJhbnNhY3Rpb24gaWQgKi9cbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMTQzNS1cdFx0LyogZ2V0IGJhY2sgb2xkIHBhZ2UgKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzoxNDM2Olx0XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0xNDM3LVx0XHRpZiAoSVNfRVJSKHApKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0xNDUxLVx0XHRcdC8qIGdldCBuZXcgY2hpbGQgcGFnZSAqL1xuZnMvamZzL2pmc194dHJlZS5jOjE0NTI6XHRcdFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcdTAwMjZtcCk7XG5mcy9qZnMvamZzX3h0cmVlLmMtMTQ1My1cdFx0XHRpZiAoSVNfRVJSKHApKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYz0xNTE0PWludCB4dFVwZGF0ZSh0aWRfdCB0aWQsIHN0cnVjdCBpbm9kZSAqaXAsIHhhZF90ICogbnhhZClcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMTcyOS1cdFx0LyogZ2V0IGJhY2sgb2xkIHBhZ2UgKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzoxNzMwOlx0XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0xNzMxLVx0XHRpZiAoSVNfRVJSKHApKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0xNzQ1LVx0XHRcdC8qIGdldCBuZXcgY2hpbGQgcGFnZSAqL1xuZnMvamZzL2pmc194dHJlZS5jOjE3NDY6XHRcdFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcdTAwMjZtcCk7XG5mcy9qZnMvamZzX3h0cmVlLmMtMTc0Ny1cdFx0XHRpZiAoSVNfRVJSKHApKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0xODA2LVx0XHQvKiBnZXQgbmV3IHJpZ2h0IHBhZ2UgKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzoxODA3Olx0XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0xODA4LVx0XHRpZiAoSVNfRVJSKHApKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYz0xODY5PXByaW50ZihcJiMzNDt4dFVwZGF0ZS51cGRhdGVMZWZ0LnNwbGl0IHA6MHglcFxcblwmIzM0OywgcCk7XG4tLVxuZnMvamZzL2pmc194dHJlZS5jLTE4ODItXHRcdC8qIGdldCBiYWNrIG9sZCBwYWdlICovXG5mcy9qZnMvamZzX3h0cmVlLmM6MTg4MzpcdFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcdTAwMjZtcCk7XG5mcy9qZnMvamZzX3h0cmVlLmMtMTg4NC1cdFx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMTg5OS1cdFx0XHQvKiBnZXQgbmV3IGNoaWxkIHBhZ2UgKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzoxOTAwOlx0XHRcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXHUwMDI2bXApO1xuZnMvamZzL2pmc194dHJlZS5jLTE5MDEtXHRcdFx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmM9MjIwND1zNjQgeHRUcnVuY2F0ZSh0aWRfdCB0aWQsIHN0cnVjdCBpbm9kZSAqaXAsIHM2NCBuZXdzaXplLCBpbnQgZmxhZylcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMjI4NS0gICAgICBnZXRQYWdlOlxuZnMvamZzL2pmc194dHJlZS5jOjIyODY6XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0yMjg3LVx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMjUyMy1cdGJuID0gcGFyZW50LVx1MDAzZWJuO1xuZnMvamZzL2pmc194dHJlZS5jOjI1MjQ6XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0yNTI1LVx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmM9Mjc1OT1zNjQgeHRUcnVuY2F0ZV9wbWFwKHRpZF90IHRpZCwgc3RydWN0IGlub2RlICppcCwgczY0IGNvbW1pdHRlZF9zaXplKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0yODA4LSAgICAgIGdldFBhZ2U6XG5mcy9qZnMvamZzX3h0cmVlLmM6MjgwOTpcdFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcdTAwMjZtcCk7XG5mcy9qZnMvamZzX3h0cmVlLmMtMjgxMC1cdFx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMjg1My1cdGJuID0gcGFyZW50LVx1MDAzZWJuO1xuZnMvamZzL2pmc194dHJlZS5jOjI4NTQ6XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0yODU1LVx0aWYgKElTX0VSUihwKSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwOTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NzkyCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgRm9jdXMgZm9yIGB4dF9nZXRwYWdlYCoqCgpPa2F5LCBzbyBJJiMzOTttIGhvbmluZyBpbiBvbiB0aGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBpbiBgeHRfZ2V0cGFnZWAuIEl0IGxvb2tzIGxpa2UgdGhlIGNvcmUgd29yayBpcyBnb2luZyB0byBiZSBoYW5kbGVkIGJ5IGB4dFNlYXJjaGAsIGB4dFNwbGl0VXBgLCBgeHRTcGxpdFBhZ2VgLCBgeHRFeHRlbmRgLCBgeHRVcGRhdGVgLCBgeHRUcnVuY2F0ZWAsIGFuZCBgeHRUcnVuY2F0ZV9wbWFwYC4gSSYjMzk7bGwgbmVlZCB0byByZWFsbHkgdW5kZXJzdGFuZCB0aGUgaW50ZXJwbGF5IGJldHdlZW4gdGhlc2UgZnVuY3Rpb25zIHRvIGdldCBhIGZ1bGwgcGljdHVyZSBvZiB0aGUgZGF0YSByZXRyaWV2YWwgYW5kIG1hbmlwdWxhdGlvbiBwcm9jZXNzLgoKTm93LCB0aGUgY29uZmlndXJhdGlvbiBpbiBwbGF5IGlzIGBKRlNfRlNgLCBhbmQgSSByZWFsbHkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIGlzIHRoZSBjb3JyZWN0IGNvbmZpZyB0byBiZSBleGFtaW5pbmcuIExldCBtZSBkb3VibGUtY2hlY2sgdGhhdCB0aGlzIGlzIHRoZSByZWxldmFudCBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDA5OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBKRlNfRlMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9qZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2pmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5mcy9qZnMvS2NvbmZpZzoyOmNvbmZpZyBKRlNfRlNcbmZzL2pmcy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtKRlMgZmlsZXN5c3RlbSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDk6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODEyNgoJCQkJCQkJb3V0cHV0OiAyMjcKCQkJCQkJCXRob3VnaHRzOiA3MDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgRnV6emluZyBvbiBKRlMgVHJlZSBUcmF2ZXJzYWwqKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgSkZTX0ZTYCBpcyBpbmRlZWQgdGhlIGNvcnJlY3QgY29uZmlndXJhdGlvbi4gTm93LCBsZXQmIzM5O3MgcmVmaW5lIHRoZSBsaXN0IG9mIGZvY3VzIHN5bWJvbHMgZm9yIGZ1enppbmcsIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIGNvcmUgZnVuY3Rpb25zIHdpdGhpbiBgamZzX2R0cmVlLmNgIGFuZCBgamZzX3h0cmVlLmNgLgoKSW5pdGlhbGx5LCBJIGhhZCBhIGNvbXByZWhlbnNpdmUgbGlzdDoKCkZvciBgamZzX2R0cmVlLmNgOiBgZHRTZWFyY2hgLCBgZHRTcGxpdFVwYCwgYGR0U3BsaXRQYWdlYCwgYGR0RXh0ZW5kUGFnZWAsIGBkdERlbGV0ZWAsIGBkdERlbGV0ZVVwYCwgYGR0UmVsaW5rYCwgYGFkZF9taXNzaW5nX2luZGljZXNgLCBgamZzX3JlYWRkaXJgLCBgZHRSZWFkRmlyc3RgLCBgZHRSZWFkTmV4dGAKRm9yIGBqZnNfeHRyZWUuY2A6IGB4dFNlYXJjaGAsIGB4dFNwbGl0VXBgLCBgeHRTcGxpdFBhZ2VgLCBgeHRFeHRlbmRgLCBgeHRVcGRhdGVgLCBgeHRUcnVuY2F0ZWAsIGB4dFRydW5jYXRlX3BtYXBgCgpUaGVzZSBhbGwgbG9vayBsaWtlIGV4Y2VsbGVudCBjYW5kaWRhdGVzIHNpbmNlIHRoZXkmIzM5O3JlIGludGVncmFsIHRvIEpGUyBpbnRlcmFjdGlvbiBhbmQgZGlyZWN0bHkgY2FsbGVkIHRoZSBtb2RpZmllZCBtYWNyb3MuIEkgd2FzIGNvbnNpZGVyaW5nIGxpbWl0aW5nIHRoZSBsaXN0LCBtYXliZSBwcmlvcml0aXppbmcgdGhlIHRvcC1sZXZlbCBmdW5jdGlvbnMsIG9yIHRob3NlIGRpcmVjdGx5IGNhbGxpbmcgdGhlIG1vZGlmaWVkIG1hY3JvcywgYnV0IGl0IHR1cm5zIG91dCBhbGwgb2YgdGhlbSBhcmUgY2FsbGluZyBgRFRfR0VUUEFHRWAgb3IgYHh0X2dldHBhZ2VgLgoKSG93ZXZlciwgYWZ0ZXIgYSBjbG9zZXIgbG9vaywgYW5kIGEgc2xpZ2h0IGNvbmNlcm4gYWJvdXQgcG90ZW50aWFsIGhvdCBwYXRocywgSSBhbSBnb2luZyB0byBleGNsdWRlIGBqZnNfcmVhZGRpcmAsIHRvIGtlZXAgdGhlIGZvY3VzIG1vcmUgc3BlY2lmaWMgdG8gdGhlIHRyZWUgdHJhdmVyc2FsIGxvZ2ljLCB3aGljaCBpcyB0aGUgY29yZSBjaGFuZ2Ugd2UgYXJlIHRhcmdldGluZy4gV2hpbGUgaXQmIzM5O3MgSkZTIHNwZWNpZmljLCBpdCYjMzk7cyBhbHNvIGEgdmVyeSBjb21tb24gZnVuY3Rpb24uCgpUaGVyZWZvcmUsIHRoZSBmaW5hbCBsaXN0IGZvciBmdXp6aW5nIGlzOgpgZHRTZWFyY2hgLCBgZHRTcGxpdFVwYCwgYGR0U3BsaXRQYWdlYCwgYGR0RXh0ZW5kUGFnZWAsIGBkdERlbGV0ZWAsIGBkdERlbGV0ZVVwYCwgYGR0UmVsaW5rYCwgYGFkZF9taXNzaW5nX2luZGljZXNgLCBgZHRSZWFkRmlyc3RgLCBgZHRSZWFkTmV4dGAsIGB4dFNlYXJjaGAsIGB4dFNwbGl0VXBgLCBgeHRTcGxpdFBhZ2VgLCBgeHRFeHRlbmRgLCBgeHRVcGRhdGVgLCBgeHRUcnVuY2F0ZWAsIGB4dFRydW5jYXRlX3BtYXBgLgoKVGhlc2UgYXJlIHRoZSBmdW5jdGlvbnMgdGhhdCB3aWxsIGJlIHRoZSBmb2N1cyBmb3IgdGhlIGZ1enppbmcgYW5hbHlzaXMsIGVuc3VyaW5nIHRoYXQgdGhlIG5ldyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBgRFRfR0VUUEFHRWAgYW5kIGB4dF9nZXRwYWdlYCBjb3JyZWN0bHkgaGFuZGxlIG1hbGZvcm1lZCBKRlMgaW1hZ2VzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy4KCkZpbmFsbHksIGp1c3QgYSBxdWljayBkb3VibGUtY2hlY2s6IGBKRlNfRlNgIGlzIHRoZSBvbmx5IGNvbmZpZyB3ZSBuZWVkLiBBbGwgc2V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwOTozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SkZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHRTZWFyY2gmIzM0OywKICAgICYjMzQ7ZHRTcGxpdFVwJiMzNDssCiAgICAmIzM0O2R0U3BsaXRQYWdlJiMzNDssCiAgICAmIzM0O2R0RXh0ZW5kUGFnZSYjMzQ7LAogICAgJiMzNDtkdERlbGV0ZSYjMzQ7LAogICAgJiMzNDtkdERlbGV0ZVVwJiMzNDssCiAgICAmIzM0O2R0UmVsaW5rJiMzNDssCiAgICAmIzM0O2FkZF9taXNzaW5nX2luZGljZXMmIzM0OywKICAgICYjMzQ7ZHRSZWFkRmlyc3QmIzM0OywKICAgICYjMzQ7ZHRSZWFkTmV4dCYjMzQ7LAogICAgJiMzNDt4dFNlYXJjaCYjMzQ7LAogICAgJiMzNDt4dFNwbGl0VXAmIzM0OywKICAgICYjMzQ7eHRTcGxpdFBhZ2UmIzM0OywKICAgICYjMzQ7eHRFeHRlbmQmIzM0OywKICAgICYjMzQ7eHRVcGRhdGUmIzM0OywKICAgICYjMzQ7eHRUcnVuY2F0ZSYjMzQ7LAogICAgJiMzNDt4dFRydW5jYXRlX3BtYXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBEVF9HRVRQQUdFIGFuZCB4dF9nZXRwYWdlIHRvIGVuc3VyZSB0aGF0IHRoZSByb290IGJsb2NrIGZsYWcgKEJUX1JPT1QpIGlzIGNvcnJlY3RseSBzZXQgb25seSBmb3IgdGhlIHJvb3QgYmxvY2sgKGJuID09IDApLiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIG9yIGNvcnJ1cHRpb24gaXNzdWVzIHdoZW4gcGFyc2luZyBtYWxmb3JtZWQgSkZTIGltYWdlcy4gU2luY2UgaXQgbW9kaWZpZXMgY29yZSBKRlMgdHJlZSB0cmF2ZXJzYWwgbG9naWMsIGl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2hlY2tzIGNvcnJlY3RseSBoYW5kbGUgdmFyaW91cyBjb3JydXB0ZWQgaW1hZ2VzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SkZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHRTZWFyY2gmIzM0OywKICAgICYjMzQ7ZHRTcGxpdFVwJiMzNDssCiAgICAmIzM0O2R0U3BsaXRQYWdlJiMzNDssCiAgICAmIzM0O2R0RXh0ZW5kUGFnZSYjMzQ7LAogICAgJiMzNDtkdERlbGV0ZSYjMzQ7LAogICAgJiMzNDtkdERlbGV0ZVVwJiMzNDssCiAgICAmIzM0O2R0UmVsaW5rJiMzNDssCiAgICAmIzM0O2FkZF9taXNzaW5nX2luZGljZXMmIzM0OywKICAgICYjMzQ7ZHRSZWFkRmlyc3QmIzM0OywKICAgICYjMzQ7ZHRSZWFkTmV4dCYjMzQ7LAogICAgJiMzNDt4dFNlYXJjaCYjMzQ7LAogICAgJiMzNDt4dFNwbGl0VXAmIzM0OywKICAgICYjMzQ7eHRTcGxpdFBhZ2UmIzM0OywKICAgICYjMzQ7eHRFeHRlbmQmIzM0OywKICAgICYjMzQ7eHRVcGRhdGUmIzM0OywKICAgICYjMzQ7eHRUcnVuY2F0ZSYjMzQ7LAogICAgJiMzNDt4dFRydW5jYXRlX3BtYXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBEVF9HRVRQQUdFIGFuZCB4dF9nZXRwYWdlIHRvIGVuc3VyZSB0aGF0IHRoZSByb290IGJsb2NrIGZsYWcgKEJUX1JPT1QpIGlzIGNvcnJlY3RseSBzZXQgb25seSBmb3IgdGhlIHJvb3QgYmxvY2sgKGJuID09IDApLiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIG9yIGNvcnJ1cHRpb24gaXNzdWVzIHdoZW4gcGFyc2luZyBtYWxmb3JtZWQgSkZTIGltYWdlcy4gU2luY2UgaXQgbW9kaWZpZXMgY29yZSBKRlMgdHJlZSB0cmF2ZXJzYWwgbG9naWMsIGl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2hlY2tzIGNvcnJlY3RseSBoYW5kbGUgdmFyaW91cyBjb3JydXB0ZWQgaW1hZ2VzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM3OjU4Ljk3MjA5NDQ3M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2Njg3MzA4ODQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkpGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImR0U2VhcmNoXCIsXG4gICAgXCJkdFNwbGl0VXBcIixcbiAgICBcImR0U3BsaXRQYWdlXCIsXG4gICAgXCJkdEV4dGVuZFBhZ2VcIixcbiAgICBcImR0RGVsZXRlXCIsXG4gICAgXCJkdERlbGV0ZVVwXCIsXG4gICAgXCJkdFJlbGlua1wiLFxuICAgIFwiYWRkX21pc3NpbmdfaW5kaWNlc1wiLFxuICAgIFwiZHRSZWFkRmlyc3RcIixcbiAgICBcImR0UmVhZE5leHRcIixcbiAgICBcInh0U2VhcmNoXCIsXG4gICAgXCJ4dFNwbGl0VXBcIixcbiAgICBcInh0U3BsaXRQYWdlXCIsXG4gICAgXCJ4dEV4dGVuZFwiLFxuICAgIFwieHRVcGRhdGVcIixcbiAgICBcInh0VHJ1bmNhdGVcIixcbiAgICBcInh0VHJ1bmNhdGVfcG1hcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBjaGVja3MgaW4gRFRfR0VUUEFHRSBhbmQgeHRfZ2V0cGFnZSB0byBlbnN1cmUgdGhhdCB0aGUgcm9vdCBibG9jayBmbGFnIChCVF9ST09UKSBpcyBjb3JyZWN0bHkgc2V0IG9ubHkgZm9yIHRoZSByb290IGJsb2NrIChibiA9PSAwKS4gVGhpcyBwcmV2ZW50cyBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBvciBjb3JydXB0aW9uIGlzc3VlcyB3aGVuIHBhcnNpbmcgbWFsZm9ybWVkIEpGUyBpbWFnZXMuIFNpbmNlIGl0IG1vZGlmaWVzIGNvcmUgSkZTIHRyZWUgdHJhdmVyc2FsIGxvZ2ljLCBpdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IGNoZWNrcyBjb3JyZWN0bHkgaGFuZGxlIHZhcmlvdXMgY29ycnVwdGVkIGltYWdlcyB3aXRob3V0IGNhdXNpbmcgcmVncmVzc2lvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM3OjU4Ljk3MjEwMTUwNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE4NTY5MjIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNGFmMDQ2MDc1OGQ0ZjQ1Y2M5ZDA2Y2IwZTNiNDQyZDAxZjdjYWEyN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAyMSAwOTozNzo1NyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9qZnMvamZzX2R0cmVlLmMgYi9mcy9qZnMvamZzX2R0cmVlLmNcXG5pbmRleCBhYzBmNzlmYWZhY2EwNC4uMmI2YmRlYTFmZjkyOGIgMTAwNjQ0XFxuLS0tIGEvZnMvamZzL2pmc19kdHJlZS5jXFxuKysrIGIvZnMvamZzL2pmc19kdHJlZS5jXFxuQEAgLTExMSwxOSArMTExLDIwIEBAIHN0cnVjdCBkdHNwbGl0IHtcXG4gI2RlZmluZSBEVF9QQUdFKElQLCBNUCkgQlRfUEFHRShJUCwgTVAsIGR0cGFnZV90LCBpX2R0cm9vdClcXG4gXFxuIC8qIGdldCBwYWdlIGJ1ZmZlciBmb3Igc3BlY2lmaWVkIGJsb2NrIGFkZHJlc3MgKi9cXG4tI2RlZmluZSBEVF9HRVRQQUdFKElQLCBCTiwgTVAsIFNJWkUsIFAsIFJDKVxcdFxcdFxcdFxcdFxcXFxcXG4tZG8ge1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tXFx0QlRfR0VUUEFHRShJUCwgQk4sIE1QLCBkdHBhZ2VfdCwgU0laRSwgUCwgUkMsIGlfZHRyb290KTtcXHRcXFxcXFxuLVxcdGlmICghKFJDKSkge1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tXFx0XFx0aWYgKChCTikgXFx1MDAyNlxcdTAwMjYgIWNoZWNrX2R0cGFnZShQKSkge1xcdFxcdFxcdFxcdFxcXFxcXG4tXFx0XFx0XFx0QlRfUFVUUEFHRShNUCk7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi1cXHRcXHRcXHRqZnNfZXJyb3IoKElQKS1cXHUwMDNlaV9zYixcXHRcXHRcXHRcXHRcXFxcXFxuLVxcdFxcdFxcdFxcdCAgXFxcIkRUX0dFVFBBR0U6IGR0cmVlIHBhZ2UgY29ycnVwdFxcXFxuXFxcIik7XFx0XFxcXFxcbi1cXHRcXHRcXHRNUCA9IE5VTEw7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi1cXHRcXHRcXHRSQyA9IC1FSU87XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi1cXHRcXHR9XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi1cXHR9XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi19IHdoaWxlICgwKVxcbisjZGVmaW5lIERUX0dFVFBBR0UoSVAsIEJOLCBNUCwgU0laRSwgUCwgUkMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbitcXHRkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG4rXFx0XFx0QlRfR0VUUEFHRShJUCwgQk4sIE1QLCBkdHBhZ2VfdCwgU0laRSwgUCwgUkMsIGlfZHRyb290KTsgICAgICAgXFxcXFxcbitcXHRcXHRpZiAoIShSQykpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuK1xcdFxcdFxcdGlmICgoKChCTikgPT0gMCkgIT0gISEoKFApLVxcdTAwM2VoZWFkZXIuZmxhZyBcXHUwMDI2IEJUX1JPT1QpKSB8fCBcXFxcXFxuK1xcdFxcdFxcdCAgICAoKEJOKSBcXHUwMDI2XFx1MDAyNiAhY2hlY2tfZHRwYWdlKFApKSkgeyAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuK1xcdFxcdFxcdFxcdEJUX1BVVFBBR0UoTVApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbitcXHRcXHRcXHRcXHRqZnNfZXJyb3IoKElQKS1cXHUwMDNlaV9zYiwgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG4rXFx0XFx0XFx0XFx0XFx0ICBcXFwiRFRfR0VUUEFHRTogZHRyZWUgcGFnZSBjb3JydXB0XFxcXG5cXFwiKTsgXFxcXFxcbitcXHRcXHRcXHRcXHRNUCA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG4rXFx0XFx0XFx0XFx0UkMgPSAtRUlPOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuK1xcdFxcdFxcdH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuK1xcdFxcdH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG4rXFx0fSB3aGlsZSAoMClcXG4gXFxuIC8qIGZvciBjb25zaXN0ZW5jeSAqL1xcbiAjZGVmaW5lIERUX1BVVFBBR0UoTVApIEJUX1BVVFBBR0UoTVApXFxuZGlmZiAtLWdpdCBhL2ZzL2pmcy9qZnNfeHRyZWUuYyBiL2ZzL2pmcy9qZnNfeHRyZWUuY1xcbmluZGV4IDI4YzNjZjk2MGM2ZmZlLi42ZDk2MGRkOTY0NzE5ZiAxMDA2NDRcXG4tLS0gYS9mcy9qZnMvamZzX3h0cmVlLmNcXG4rKysgYi9mcy9qZnMvamZzX3h0cmVlLmNcXG5AQCAtMTE4LDEwICsxMTgsMTEgQEAgc3RhdGljIGlubGluZSB4dHBhZ2VfdCAqeHRfZ2V0cGFnZShzdHJ1Y3QgaW5vZGUgKmlwLCBzNjQgYm4sIHN0cnVjdCBtZXRhcGFnZSAqKm1cXG4gXFx0aWYgKHJjKVxcbiBcXHRcXHRyZXR1cm4gRVJSX1BUUihyYyk7XFxuIFxcdGlmICgobGUxNl90b19jcHUocC1cXHUwMDNlaGVhZGVyLm5leHRpbmRleCkgXFx1MDAzYyBYVEVOVFJZU1RBUlQpIHx8XFxuLVxcdFxcdChsZTE2X3RvX2NwdShwLVxcdTAwM2VoZWFkZXIubmV4dGluZGV4KSBcXHUwMDNlXFxuLVxcdFxcdFxcdGxlMTZfdG9fY3B1KHAtXFx1MDAzZWhlYWRlci5tYXhlbnRyeSkpIHx8XFxuLVxcdFxcdChsZTE2X3RvX2NwdShwLVxcdTAwM2VoZWFkZXIubWF4ZW50cnkpIFxcdTAwM2VcXG4tXFx0XFx0XFx0KChibiA9PSAwKSA/IFhUUk9PVE1BWFNMT1QgOiBQU0laRSBcXHUwMDNlXFx1MDAzZSBMMlhUU0xPVFNJWkUpKSkge1xcbitcXHQgICAgKGxlMTZfdG9fY3B1KHAtXFx1MDAzZWhlYWRlci5uZXh0aW5kZXgpIFxcdTAwM2VcXG4rXFx0ICAgICBsZTE2X3RvX2NwdShwLVxcdTAwM2VoZWFkZXIubWF4ZW50cnkpKSB8fFxcbitcXHQgICAgKGxlMTZfdG9fY3B1KHAtXFx1MDAzZWhlYWRlci5tYXhlbnRyeSkgXFx1MDAzZVxcbitcXHQgICAgICgoYm4gPT0gMCkgPyBYVFJPT1RNQVhTTE9UIDogUFNJWkUgXFx1MDAzZVxcdTAwM2UgTDJYVFNMT1RTSVpFKSkgfHxcXG4rXFx0ICAgICgoYm4gPT0gMCkgIT0gISEocC1cXHUwMDNlaGVhZGVyLmZsYWcgXFx1MDAyNiBCVF9ST09UKSkpIHtcXG4gXFx0XFx0amZzX2Vycm9yKGlwLVxcdTAwM2VpX3NiLCBcXFwieHRfZ2V0cGFnZTogeHRyZWUgcGFnZSBjb3JydXB0XFxcXG5cXFwiKTtcXG4gXFx0XFx0QlRfUFVUUEFHRSgqbXApO1xcbiBcXHRcXHQqbXAgPSBOVUxMO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwOTozNzo1OS41OTE2MDcyNzVaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1NjA2Nzc4NTA1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJKRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkdFNlYXJjaFwiLFxuICAgIFwiZHRTcGxpdFVwXCIsXG4gICAgXCJkdFNwbGl0UGFnZVwiLFxuICAgIFwiZHRFeHRlbmRQYWdlXCIsXG4gICAgXCJkdERlbGV0ZVwiLFxuICAgIFwiZHREZWxldGVVcFwiLFxuICAgIFwiZHRSZWxpbmtcIixcbiAgICBcImFkZF9taXNzaW5nX2luZGljZXNcIixcbiAgICBcImR0UmVhZEZpcnN0XCIsXG4gICAgXCJkdFJlYWROZXh0XCIsXG4gICAgXCJ4dFNlYXJjaFwiLFxuICAgIFwieHRTcGxpdFVwXCIsXG4gICAgXCJ4dFNwbGl0UGFnZVwiLFxuICAgIFwieHRFeHRlbmRcIixcbiAgICBcInh0VXBkYXRlXCIsXG4gICAgXCJ4dFRydW5jYXRlXCIsXG4gICAgXCJ4dFRydW5jYXRlX3BtYXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIERUX0dFVFBBR0UgYW5kIHh0X2dldHBhZ2UgdG8gZW5zdXJlIHRoYXQgdGhlIHJvb3QgYmxvY2sgZmxhZyAoQlRfUk9PVCkgaXMgY29ycmVjdGx5IHNldCBvbmx5IGZvciB0aGUgcm9vdCBibG9jayAoYm4gPT0gMCkuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgb3IgY29ycnVwdGlvbiBpc3N1ZXMgd2hlbiBwYXJzaW5nIG1hbGZvcm1lZCBKRlMgaW1hZ2VzLiBTaW5jZSBpdCBtb2RpZmllcyBjb3JlIEpGUyB0cmVlIHRyYXZlcnNhbCBsb2dpYywgaXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBjaGVja3MgY29ycmVjdGx5IGhhbmRsZSB2YXJpb3VzIGNvcnJ1cHRlZCBpbWFnZXMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDRhZjA0NjA3NThkNGY0NWNjOWQwNmNiMGUzYjQ0MmQwMWY3Y2FhMjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyMSAwOTozNzo1NyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2pmcy9qZnNfZHRyZWUuYyBiL2ZzL2pmcy9qZnNfZHRyZWUuY1xuaW5kZXggYWMwZjc5ZmFmYWNhMDQuLjJiNmJkZWExZmY5MjhiIDEwMDY0NFxuLS0tIGEvZnMvamZzL2pmc19kdHJlZS5jXG4rKysgYi9mcy9qZnMvamZzX2R0cmVlLmNcbkBAIC0xMTEsMTkgKzExMSwyMCBAQCBzdHJ1Y3QgZHRzcGxpdCB7XG4gI2RlZmluZSBEVF9QQUdFKElQLCBNUCkgQlRfUEFHRShJUCwgTVAsIGR0cGFnZV90LCBpX2R0cm9vdClcbiBcbiAvKiBnZXQgcGFnZSBidWZmZXIgZm9yIHNwZWNpZmllZCBibG9jayBhZGRyZXNzICovXG4tI2RlZmluZSBEVF9HRVRQQUdFKElQLCBCTiwgTVAsIFNJWkUsIFAsIFJDKVx0XHRcdFx0XFxcbi1kbyB7XHRcdFx0XHRcdFx0XHRcdFx0XFxcbi1cdEJUX0dFVFBBR0UoSVAsIEJOLCBNUCwgZHRwYWdlX3QsIFNJWkUsIFAsIFJDLCBpX2R0cm9vdCk7XHRcXFxuLVx0aWYgKCEoUkMpKSB7XHRcdFx0XHRcdFx0XHRcXFxuLVx0XHRpZiAoKEJOKSBcdTAwMjZcdTAwMjYgIWNoZWNrX2R0cGFnZShQKSkge1x0XHRcdFx0XFxcbi1cdFx0XHRCVF9QVVRQQUdFKE1QKTtcdFx0XHRcdFx0XFxcbi1cdFx0XHRqZnNfZXJyb3IoKElQKS1cdTAwM2VpX3NiLFx0XHRcdFx0XFxcbi1cdFx0XHRcdCAgXCJEVF9HRVRQQUdFOiBkdHJlZSBwYWdlIGNvcnJ1cHRcXG5cIik7XHRcXFxuLVx0XHRcdE1QID0gTlVMTDtcdFx0XHRcdFx0XFxcbi1cdFx0XHRSQyA9IC1FSU87XHRcdFx0XHRcdFxcXG4tXHRcdH1cdFx0XHRcdFx0XHRcdFxcXG4tXHR9XHRcdFx0XHRcdFx0XHRcdFxcXG4tfSB3aGlsZSAoMClcbisjZGVmaW5lIERUX0dFVFBBR0UoSVAsIEJOLCBNUCwgU0laRSwgUCwgUkMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbitcdGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbitcdFx0QlRfR0VUUEFHRShJUCwgQk4sIE1QLCBkdHBhZ2VfdCwgU0laRSwgUCwgUkMsIGlfZHRyb290KTsgICAgICAgXFxcbitcdFx0aWYgKCEoUkMpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbitcdFx0XHRpZiAoKCgoQk4pID09IDApICE9ICEhKChQKS1cdTAwM2VoZWFkZXIuZmxhZyBcdTAwMjYgQlRfUk9PVCkpIHx8IFxcXG4rXHRcdFx0ICAgICgoQk4pIFx1MDAyNlx1MDAyNiAhY2hlY2tfZHRwYWdlKFApKSkgeyAgICAgICAgICAgICAgICAgICAgICBcXFxuK1x0XHRcdFx0QlRfUFVUUEFHRShNUCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuK1x0XHRcdFx0amZzX2Vycm9yKChJUCktXHUwMDNlaV9zYiwgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4rXHRcdFx0XHRcdCAgXCJEVF9HRVRQQUdFOiBkdHJlZSBwYWdlIGNvcnJ1cHRcXG5cIik7IFxcXG4rXHRcdFx0XHRNUCA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4rXHRcdFx0XHRSQyA9IC1FSU87ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4rXHRcdFx0fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4rXHRcdH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4rXHR9IHdoaWxlICgwKVxuIFxuIC8qIGZvciBjb25zaXN0ZW5jeSAqL1xuICNkZWZpbmUgRFRfUFVUUEFHRShNUCkgQlRfUFVUUEFHRShNUClcbmRpZmYgLS1naXQgYS9mcy9qZnMvamZzX3h0cmVlLmMgYi9mcy9qZnMvamZzX3h0cmVlLmNcbmluZGV4IDI4YzNjZjk2MGM2ZmZlLi42ZDk2MGRkOTY0NzE5ZiAxMDA2NDRcbi0tLSBhL2ZzL2pmcy9qZnNfeHRyZWUuY1xuKysrIGIvZnMvamZzL2pmc194dHJlZS5jXG5AQCAtMTE4LDEwICsxMTgsMTEgQEAgc3RhdGljIGlubGluZSB4dHBhZ2VfdCAqeHRfZ2V0cGFnZShzdHJ1Y3QgaW5vZGUgKmlwLCBzNjQgYm4sIHN0cnVjdCBtZXRhcGFnZSAqKm1cbiBcdGlmIChyYylcbiBcdFx0cmV0dXJuIEVSUl9QVFIocmMpO1xuIFx0aWYgKChsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5uZXh0aW5kZXgpIFx1MDAzYyBYVEVOVFJZU1RBUlQpIHx8XG4tXHRcdChsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5uZXh0aW5kZXgpIFx1MDAzZVxuLVx0XHRcdGxlMTZfdG9fY3B1KHAtXHUwMDNlaGVhZGVyLm1heGVudHJ5KSkgfHxcbi1cdFx0KGxlMTZfdG9fY3B1KHAtXHUwMDNlaGVhZGVyLm1heGVudHJ5KSBcdTAwM2Vcbi1cdFx0XHQoKGJuID09IDApID8gWFRST09UTUFYU0xPVCA6IFBTSVpFIFx1MDAzZVx1MDAzZSBMMlhUU0xPVFNJWkUpKSkge1xuK1x0ICAgIChsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5uZXh0aW5kZXgpIFx1MDAzZVxuK1x0ICAgICBsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5tYXhlbnRyeSkpIHx8XG4rXHQgICAgKGxlMTZfdG9fY3B1KHAtXHUwMDNlaGVhZGVyLm1heGVudHJ5KSBcdTAwM2VcbitcdCAgICAgKChibiA9PSAwKSA/IFhUUk9PVE1BWFNMT1QgOiBQU0laRSBcdTAwM2VcdTAwM2UgTDJYVFNMT1RTSVpFKSkgfHxcbitcdCAgICAoKGJuID09IDApICE9ICEhKHAtXHUwMDNlaGVhZGVyLmZsYWcgXHUwMDI2IEJUX1JPT1QpKSkge1xuIFx0XHRqZnNfZXJyb3IoaXAtXHUwMDNlaV9zYiwgXCJ4dF9nZXRwYWdlOiB4dHJlZSBwYWdlIGNvcnJ1cHRcXG5cIik7XG4gXHRcdEJUX1BVVFBBR0UoKm1wKTtcbiBcdFx0Km1wID0gTlVMTDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM3OjU5LjU5MTYwOTIxNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwNzI5ODA3NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgSkZTIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgZnMvamZzL2pmc19kdHJlZS5jYCBhbmQgYGZzL2pmcy9qZnNfeHRyZWUuY2AuIEl0IHNlZW1zIHRoZXkndmUgYWRkZWQgdGhpcyBjb25kaXRpb25hbCBjaGVjaywgYCgoKEJOKSA9PSAwKSAhPSAhISgoUCktXHUwMDNlaGVhZGVyLmZsYWcgXHUwMDI2IEJUX1JPT1QpKWAgaW4gdGhlIGBEVF9HRVRQQUdFYCBtYWNybyB3aXRoaW4gYGpmc19kdHJlZS5jYCwgYW5kIGEgdmVyeSBzaW1pbGFyIGNoZWNrLCBgKChibiA9PSAwKSAhPSAhIShwLVx1MDAzZWhlYWRlci5mbGFnIFx1MDAyNiBCVF9ST09UKSlgLCBpbiB0aGUgYHh0X2dldHBhZ2VgIGZ1bmN0aW9uIHdpdGhpbiBgamZzX3h0cmVlLmNgLiBcblxuRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGNsZWFybHkgYSBmaXguIEl0J3MgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBkYXRhIGNvcnJ1cHRpb24gb3Igb3V0LW9mLWJvdW5kcyBzaXR1YXRpb24sIHByb2JhYmx5IHRyaWdnZXJlZCBieSBzb21ldGhpbmcgbGlrZSBhIGBzeXpib3RgIGJ1Zy4gVGhlIGNvcmUgaXNzdWUgaXMgbGlrZWx5IGEgYmxvY2sgaW5jb3JyZWN0bHkgY2xhaW1pbmcgcm9vdCBzdGF0dXMsIG9yIHZpY2UtdmVyc2EuXG5cblNpbmNlIHdlJ3JlIG1vZGlmeWluZyBKRlMsIGZ1enppbmcgaXMgZGVmaW5pdGVseSBpbiBvcmRlci4gVGhlIHJlbGV2YW50IGNvbmZpZyBvcHRpb24gaXMgb2J2aW91c2x5IGBKRlNfRlNgLiBOb3cgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJpZ2h0IHdheSB0byB0YXJnZXQgdGhlc2UgY2hhbmdlcyBpbiBvdXIgZnV6emluZyBzdHJhdGVneS5cblxuRm9yIGBqZnNfZHRyZWUuY2AsIGBEVF9HRVRQQUdFYCBpcyBhIG1hY3JvLCBzbyBJIG5lZWQgdG8gZmluZCBpdHMgdXNlcyB0byBzZWUgd2hlcmUgdGhlIGFkZGVkIGNoZWNrIHdpbGwgYmUgZXhlY3V0ZWQuIEknbGwgdXNlIGBncmVwYCBmb3IgdGhhdC5cblxuQW5kIHRoZW4gYHh0X2dldHBhZ2VgIGlzIGEgZnVuY3Rpb24gaW4gYGpmc194dHJlZS5jYC4gQWdhaW4sIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoYXQgZnVuY3Rpb24gaXMgY2FsbGVkIHVzaW5nIGBncmVwYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY4MywiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM4OjA1LjY2NDU5MTg4M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQ1Mzc1MjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRFRfR0VUUEFHRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9qZnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2pmcy9qZnNfZHRyZWUuYz0xMDI9c3RydWN0IGR0c3BsaXQge1xcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTExMy0vKiBnZXQgcGFnZSBidWZmZXIgZm9yIHNwZWNpZmllZCBibG9jayBhZGRyZXNzICovXFxuZnMvamZzL2pmc19kdHJlZS5jOjExNDojZGVmaW5lIERUX0dFVFBBR0UoSVAsIEJOLCBNUCwgU0laRSwgUCwgUkMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbmZzL2pmcy9qZnNfZHRyZWUuYy0xMTUtXFx0ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmMtMTIxLVxcdFxcdFxcdFxcdGpmc19lcnJvcigoSVApLVxcdTAwM2VpX3NiLCAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbmZzL2pmcy9qZnNfZHRyZWUuYzoxMjI6XFx0XFx0XFx0XFx0XFx0ICBcXFwiRFRfR0VUUEFHRTogZHRyZWUgcGFnZSBjb3JydXB0XFxcXG5cXFwiKTsgXFxcXFxcbmZzL2pmcy9qZnNfZHRyZWUuYy0xMjMtXFx0XFx0XFx0XFx0TVAgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmM9NTY2PWludCBkdFNlYXJjaChzdHJ1Y3QgaW5vZGUgKmlwLCBzdHJ1Y3QgY29tcG9uZW50X25hbWUgKiBrZXksIGlub190ICogZGF0YSxcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy02MjEtXFx0XFx0LyogZ2V0L3BpbiB0aGUgcGFnZSB0byBzZWFyY2ggKi9cXG5mcy9qZnMvamZzX2R0cmVlLmM6NjIyOlxcdFxcdERUX0dFVFBBR0UoaXAsIGJuLCBtcCwgcHNpemUsIHAsIHJjKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtNjIzLVxcdFxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz05MjQ9c3RhdGljIGludCBkdFNwbGl0VXAodGlkX3QgdGlkLFxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTExMzEtXFx0XFx0LyogZ2V0IHRoZSBwYXJlbnQgcGFnZSBcXHUwMDNjc3BcXHUwMDNlICovXFxuZnMvamZzL2pmc19kdHJlZS5jOjExMzI6XFx0XFx0RFRfR0VUUEFHRShpcCwgcGFyZW50LVxcdTAwM2Vibiwgc21wLCBQU0laRSwgc3AsIHJjKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtMTEzMy1cXHRcXHRpZiAocmMpIHtcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz0xMzI0PXN0YXRpYyBpbnQgZHRTcGxpdFBhZ2UodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLCBzdHJ1Y3QgZHRzcGxpdCAqIHNwbGl0LFxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTE0NjgtXFx0aWYgKG5leHRibiAhPSAwKSB7XFxuZnMvamZzL2pmc19kdHJlZS5jOjE0Njk6XFx0XFx0RFRfR0VUUEFHRShpcCwgbmV4dGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtMTQ3MC1cXHRcXHRpZiAocmMpIHtcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz0xNjM2PXN0YXRpYyBpbnQgZHRFeHRlbmRQYWdlKHRpZF90IHRpZCxcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0xNjY2LVxcdHBhcmVudCA9IEJUX1BPUChidHN0YWNrKTtcXG5mcy9qZnMvamZzX2R0cmVlLmM6MTY2NzpcXHREVF9HRVRQQUdFKGlwLCBwYXJlbnQtXFx1MDAzZWJuLCBwbXAsIFBTSVpFLCBwcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0xNjY4LVxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz0yMDc2PWludCBkdERlbGV0ZSh0aWRfdCB0aWQsXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmMtMjEyMy1cXHRcXHRcXHRcXHQvKiBSZWFkIG5leHQgbGVhZiBwYWdlICovXFxuZnMvamZzL2pmc19kdHJlZS5jOjIxMjQ6XFx0XFx0XFx0XFx0RFRfR0VUUEFHRShpcCwgbGU2NF90b19jcHUocC1cXHUwMDNlaGVhZGVyLm5leHQpLFxcbmZzL2pmcy9qZnNfZHRyZWUuYy0yMTI1LVxcdFxcdFxcdFxcdFxcdCAgIG5tcCwgUFNJWkUsIG5wLCByYyk7XFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmM9MjIzMT1zdGF0aWMgaW50IGR0RGVsZXRlVXAodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLFxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTIzMDEtXFx0XFx0LyogcGluIHRoZSBwYXJlbnQgcGFnZSBcXHUwMDNjc3BcXHUwMDNlICovXFxuZnMvamZzL2pmc19kdHJlZS5jOjIzMDI6XFx0XFx0RFRfR0VUUEFHRShpcCwgcGFyZW50LVxcdTAwM2VibiwgbXAsIFBTSVpFLCBwLCByYyk7XFxuZnMvamZzL2pmc19kdHJlZS5jLTIzMDMtXFx0XFx0aWYgKHJjKVxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jPTI0NDM9c3RhdGljIGludCBkdFJlbGluayh0aWRfdCB0aWQsIHN0cnVjdCBpbm9kZSAqaXAsIGR0cGFnZV90ICogcClcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNDU2LVxcdGlmIChuZXh0Ym4gIT0gMCkge1xcbmZzL2pmcy9qZnNfZHRyZWUuYzoyNDU3OlxcdFxcdERUX0dFVFBBR0UoaXAsIG5leHRibiwgbXAsIFBTSVpFLCBwLCByYyk7XFxuZnMvamZzL2pmc19kdHJlZS5jLTI0NTgtXFx0XFx0aWYgKHJjKVxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTI0ODUtXFx0aWYgKHByZXZibiAhPSAwKSB7XFxuZnMvamZzL2pmc19kdHJlZS5jOjI0ODY6XFx0XFx0RFRfR0VUUEFHRShpcCwgcHJldmJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtMjQ4Ny1cXHRcXHRpZiAocmMpXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmM9MjYxND1zdGF0aWMgaW50IGFkZF9taXNzaW5nX2luZGljZXMoc3RydWN0IGlub2RlICppbm9kZSwgczY0IGJuKVxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTI2MjktXFxuZnMvamZzL2pmc19kdHJlZS5jOjI2MzA6XFx0RFRfR0VUUEFHRShpbm9kZSwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNjMxLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNjMyLVxcdGlmIChyYykge1xcbmZzL2pmcy9qZnNfZHRyZWUuYzoyNjMzOlxcdFxcdHByaW50ayhLRVJOX0VSUiBcXFwiRFRfR0VUUEFHRSBmYWlsZWQhXFxcXG5cXFwiKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtMjYzNC1cXHRcXHRnb3RvIGVuZDtcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz0yNzEyPWludCBqZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRpcl9jb250ZXh0ICpjdHgpXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmMtMjc5NC1cXHRcXHRcXHRpbmRleCA9IGRpcnRhYl9zbG90LnNsb3Q7XFxuZnMvamZzL2pmc19kdHJlZS5jOjI3OTU6XFx0XFx0XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNzk2LVxcdFxcdFxcdGlmIChyYykge1xcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTMwMzgtXFxuZnMvamZzL2pmc19kdHJlZS5jOjMwMzk6XFx0XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMDQwLVxcdFxcdGlmIChyYykge1xcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jPTMwNTg9c3RhdGljIGludCBkdFJlYWRGaXJzdChzdHJ1Y3QgaW5vZGUgKmlwLCBzdHJ1Y3QgYnRzdGFjayAqIGJ0c3RhY2spXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmMtMzA3Ni1cXHRmb3IgKGJuID0gMDs7KSB7XFxuZnMvamZzL2pmc19kdHJlZS5jOjMwNzc6XFx0XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBwc2l6ZSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMDc4LVxcdFxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz0zMTM3PXN0YXRpYyBpbnQgZHRSZWFkTmV4dChzdHJ1Y3QgaW5vZGUgKmlwLCBsb2ZmX3QgKiBvZmZzZXQsXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmMtMzIyMC1cXHRibiA9IHBhcmVudC1cXHUwMDNlYm47XFxuZnMvamZzL2pmc19kdHJlZS5jOjMyMjE6XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjIyLVxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjQxLVxcdFxcdC8qIGdldCBuZXh0IHBhcmVudCBwYWdlICovXFxuZnMvamZzL2pmc19kdHJlZS5jOjMyNDI6XFx0XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjQzLVxcdFxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjYxLSAgICAgIGM6XFxuZnMvamZzL2pmc19kdHJlZS5jOjMyNjI6XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjYzLVxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjgyLVxcdFxcdC8qIGdldCBuZXh0IGxlYWYgcGFnZSAqL1xcbmZzL2pmcy9qZnNfZHRyZWUuYzozMjgzOlxcdFxcdERUX0dFVFBBR0UoaXAsIGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtMzI4NC1cXHRcXHRpZiAocmMpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM4OjA1Ljc2OTEzMzk5NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NDI1NjU5OTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEN1cnJlbnQgRm9jdXM6IEtleSBGdW5jdGlvbnMgZm9yIERhdGEgTWFuYWdlbWVudCoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCB0aGUgY29yZSBmdW5jdGlvbnMgdGhhdCByZWFsbHkgZHJpdmUgdGhpcyBkYXRhIG1hbmFnZW1lbnQgc3lzdGVtLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZSBhIGNsZWFyIHVuZGVyc3RhbmRpbmcgb2YgZWFjaCBvbmUncyByb2xlIGFuZCBwb3RlbnRpYWwgaW1wYWN0LiBSaWdodCBub3csIEknbSB6ZXJvaW5nIGluIG9uOlxuXG4qICAgYGR0U2VhcmNoYDogT2J2aW91c2x5LCB0aGUgc2VhcmNoIGZ1bmN0aW9uIGlzIGNyaXRpY2FsLCBpdCdzIGhvdyB1c2VycyBhcmUgZ29pbmcgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZGF0YS5cbiogICBgZHRTcGxpdFVwYCBcdTAwMjYgYGR0U3BsaXRQYWdlYDogU3BsaXR0aW5nIHBhZ2VzIGlzIGEgY29yZSBmdW5jdGlvbiwgbXVzdCBlbnN1cmUgdGhpcyBpcyBmdW5jdGlvbmluZyBhcyBpdCBzaG91bGQuXG4qICAgYGR0RXh0ZW5kUGFnZWA6IEV4dGVuZGluZyBwYWdlcyBpcyBhbm90aGVyIGtleSBmdW5jdGlvbiBmb3IgbWFuYWdpbmcgdGhlIGZpbGVzIGFzIHRoZXkgZ3Jvdy5cbiogICBgZHREZWxldGVgIFx1MDAyNiBgZHREZWxldGVVcGA6IFBhZ2UgZGVsZXRpb24gYW5kICd1cCcgZGVsZXRpb24gYXJlIGNyaXRpY2FsLlxuKiAgIGBkdFJlbGlua2A6IFRoaXMgY291bGQgYmUgY3J1Y2lhbCBmb3IgZW5zdXJpbmcgZGF0YSBpbnRlZ3JpdHkgYW5kIGhhbmRsaW5nIHN0cnVjdHVyYWwgY2hhbmdlcy5cbiogICBgYWRkX21pc3NpbmdfaW5kaWNlc2A6IEVzc2VudGlhbCBmb3IgbWFpbnRhaW5pbmcgZWZmaWNpZW5jeSBhbmQgZGF0YSByZXRyaWV2YWwgc3BlZWQuXG4qICAgYGpmc19yZWFkZGlyYDogVGhpcyBvbmUncyBhYm91dCBpbnRlcmFjdGluZyB3aXRoIHRoZSB1bmRlcmx5aW5nIGZpbGVzeXN0ZW0sIHNvIHRoYXQgbmVlZHMgdG8gYmUgcmV2aWV3ZWQgYXMgaXQncyB0aGUgbGF5ZXIgYWJvdmUgdGhlIGRhdGEuXG4qICAgYGR0UmVhZEZpcnN0YCBcdTAwMjYgYGR0UmVhZE5leHRgOiBDcnVjaWFsIGZvciBlZmZpY2llbnQgZGF0YSB0cmF2ZXJzYWwuXG5cbk5vdywgSSBuZWVkIHRvIGNoZWNrIGB4dF9nZXRwYWdlYC4gVGhpcyBtYXkgYmUgdGhlIG5leHQgaW1wb3J0YW50IGFyZWEuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU0OTgsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwOTozODo0MC4xOTQ3OTYxMTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY4MjE4OTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInh0X2dldHBhZ2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvamZzL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9qZnMvamZzX3h0cmVlLmM9OTQ9c3RhdGljIGludCB4dFNwbGl0Um9vdCh0aWRfdCB0aWQsIHN0cnVjdCBpbm9kZSAqaXAsXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtOTctLypcXG5mcy9qZnMvamZzX3h0cmVlLmM6OTg6ICpcXHR4dF9nZXRwYWdlKClcXG5mcy9qZnMvamZzX3h0cmVlLmMtOTktICpcXG4tLVxcbmZzL2pmcy9qZnNfeHRyZWUuYy0xMTAtXFxuZnMvamZzL2pmc194dHJlZS5jOjExMTpzdGF0aWMgaW5saW5lIHh0cGFnZV90ICp4dF9nZXRwYWdlKHN0cnVjdCBpbm9kZSAqaXAsIHM2NCBibiwgc3RydWN0IG1ldGFwYWdlICoqbXApXFxuZnMvamZzL2pmc194dHJlZS5jLTExMi17XFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMTI1LVxcdCAgICAoKGJuID09IDApICE9ICEhKHAtXFx1MDAzZWhlYWRlci5mbGFnIFxcdTAwMjYgQlRfUk9PVCkpKSB7XFxuZnMvamZzL2pmc194dHJlZS5jOjEyNjpcXHRcXHRqZnNfZXJyb3IoaXAtXFx1MDAzZWlfc2IsIFxcXCJ4dF9nZXRwYWdlOiB4dHJlZSBwYWdlIGNvcnJ1cHRcXFxcblxcXCIpO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy0xMjctXFx0XFx0QlRfUFVUUEFHRSgqbXApO1xcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jPTIzMj1zdGF0aWMgaW50IHh0U2VhcmNoKHN0cnVjdCBpbm9kZSAqaXAsIHM2NCB4b2ZmLFxcdHM2NCAqbmV4dHAsXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMjcwLVxcdFxcdC8qIGdldC9waW4gdGhlIHBhZ2UgdG8gc2VhcmNoICovXFxuZnMvamZzL2pmc194dHJlZS5jOjI3MTpcXHRcXHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFxcdTAwMjZtcCk7XFxuZnMvamZzL2pmc194dHJlZS5jLTI3Mi1cXHRcXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jPTY4MD14dFNwbGl0VXAodGlkX3QgdGlkLFxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTgyNS1cXHRcXHQvKiBnZXQvcGluIHRoZSBwYXJlbnQgcGFnZSBcXHUwMDNjc3BcXHUwMDNlICovXFxuZnMvamZzL2pmc194dHJlZS5jOjgyNjpcXHRcXHRzcCA9IHh0X2dldHBhZ2UoaXAsIHBhcmVudC1cXHUwMDNlYm4sIFxcdTAwMjZzbXApO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy04MjctXFx0XFx0aWYgKElTX0VSUihzcCkpIHtcXG4tLVxcbmZzL2pmcy9qZnNfeHRyZWUuYz05NTA9eHRTcGxpdFBhZ2UodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLFxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTEwODAtXFx0aWYgKG5leHRibiAhPSAwKSB7XFxuZnMvamZzL2pmc194dHJlZS5jOjEwODE6XFx0XFx0cCA9IHh0X2dldHBhZ2UoaXAsIG5leHRibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMTA4Mi1cXHRcXHRpZiAoSVNfRVJSKHApKSB7XFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmM9MTM1Mj1pbnQgeHRFeHRlbmQodGlkX3QgdGlkLFxcdFxcdC8qIHRyYW5zYWN0aW9uIGlkICovXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMTQzNS1cXHRcXHQvKiBnZXQgYmFjayBvbGQgcGFnZSAqL1xcbmZzL2pmcy9qZnNfeHRyZWUuYzoxNDM2OlxcdFxcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMTQzNy1cXHRcXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTE0NTEtXFx0XFx0XFx0LyogZ2V0IG5ldyBjaGlsZCBwYWdlICovXFxuZnMvamZzL2pmc194dHJlZS5jOjE0NTI6XFx0XFx0XFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcXHUwMDI2bXApO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy0xNDUzLVxcdFxcdFxcdGlmIChJU19FUlIocCkpXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmM9MTUxND1pbnQgeHRVcGRhdGUodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLCB4YWRfdCAqIG54YWQpXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMTcyOS1cXHRcXHQvKiBnZXQgYmFjayBvbGQgcGFnZSAqL1xcbmZzL2pmcy9qZnNfeHRyZWUuYzoxNzMwOlxcdFxcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMTczMS1cXHRcXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTE3NDUtXFx0XFx0XFx0LyogZ2V0IG5ldyBjaGlsZCBwYWdlICovXFxuZnMvamZzL2pmc194dHJlZS5jOjE3NDY6XFx0XFx0XFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcXHUwMDI2bXApO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy0xNzQ3LVxcdFxcdFxcdGlmIChJU19FUlIocCkpXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMTgwNi1cXHRcXHQvKiBnZXQgbmV3IHJpZ2h0IHBhZ2UgKi9cXG5mcy9qZnMvamZzX3h0cmVlLmM6MTgwNzpcXHRcXHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFxcdTAwMjZtcCk7XFxuZnMvamZzL2pmc194dHJlZS5jLTE4MDgtXFx0XFx0aWYgKElTX0VSUihwKSlcXG4tLVxcbmZzL2pmcy9qZnNfeHRyZWUuYz0xODY5PXByaW50ZihcXFwieHRVcGRhdGUudXBkYXRlTGVmdC5zcGxpdCBwOjB4JXBcXFxcblxcXCIsIHApO1xcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTE4ODItXFx0XFx0LyogZ2V0IGJhY2sgb2xkIHBhZ2UgKi9cXG5mcy9qZnMvamZzX3h0cmVlLmM6MTg4MzpcXHRcXHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFxcdTAwMjZtcCk7XFxuZnMvamZzL2pmc194dHJlZS5jLTE4ODQtXFx0XFx0aWYgKElTX0VSUihwKSlcXG4tLVxcbmZzL2pmcy9qZnNfeHRyZWUuYy0xODk5LVxcdFxcdFxcdC8qIGdldCBuZXcgY2hpbGQgcGFnZSAqL1xcbmZzL2pmcy9qZnNfeHRyZWUuYzoxOTAwOlxcdFxcdFxcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMTkwMS1cXHRcXHRcXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jPTIyMDQ9czY0IHh0VHJ1bmNhdGUodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLCBzNjQgbmV3c2l6ZSwgaW50IGZsYWcpXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMjI4NS0gICAgICBnZXRQYWdlOlxcbmZzL2pmcy9qZnNfeHRyZWUuYzoyMjg2OlxcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMjI4Ny1cXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTI1MjMtXFx0Ym4gPSBwYXJlbnQtXFx1MDAzZWJuO1xcbmZzL2pmcy9qZnNfeHRyZWUuYzoyNTI0OlxcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMjUyNS1cXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jPTI3NTk9czY0IHh0VHJ1bmNhdGVfcG1hcCh0aWRfdCB0aWQsIHN0cnVjdCBpbm9kZSAqaXAsIHM2NCBjb21taXR0ZWRfc2l6ZSlcXG4tLVxcbmZzL2pmcy9qZnNfeHRyZWUuYy0yODA4LSAgICAgIGdldFBhZ2U6XFxuZnMvamZzL2pmc194dHJlZS5jOjI4MDk6XFx0XFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcXHUwMDI2bXApO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy0yODEwLVxcdFxcdGlmIChJU19FUlIocCkpXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMjg1My1cXHRibiA9IHBhcmVudC1cXHUwMDNlYm47XFxuZnMvamZzL2pmc194dHJlZS5jOjI4NTQ6XFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcXHUwMDI2bXApO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy0yODU1LVxcdGlmIChJU19FUlIocCkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM4OjQwLjY2MzAxOTIzM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MjIyMTgyOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgRm9jdXMgZm9yIGB4dF9nZXRwYWdlYCoqXG5cbk9rYXksIHNvIEknbSBob25pbmcgaW4gb24gdGhlIGtleSBmdW5jdGlvbnMgaW52b2x2ZWQgaW4gYHh0X2dldHBhZ2VgLiBJdCBsb29rcyBsaWtlIHRoZSBjb3JlIHdvcmsgaXMgZ29pbmcgdG8gYmUgaGFuZGxlZCBieSBgeHRTZWFyY2hgLCBgeHRTcGxpdFVwYCwgYHh0U3BsaXRQYWdlYCwgYHh0RXh0ZW5kYCwgYHh0VXBkYXRlYCwgYHh0VHJ1bmNhdGVgLCBhbmQgYHh0VHJ1bmNhdGVfcG1hcGAuIEknbGwgbmVlZCB0byByZWFsbHkgdW5kZXJzdGFuZCB0aGUgaW50ZXJwbGF5IGJldHdlZW4gdGhlc2UgZnVuY3Rpb25zIHRvIGdldCBhIGZ1bGwgcGljdHVyZSBvZiB0aGUgZGF0YSByZXRyaWV2YWwgYW5kIG1hbmlwdWxhdGlvbiBwcm9jZXNzLlxuXG5Ob3csIHRoZSBjb25maWd1cmF0aW9uIGluIHBsYXkgaXMgYEpGU19GU2AsIGFuZCBJIHJlYWxseSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgaXMgdGhlIGNvcnJlY3QgY29uZmlnIHRvIGJlIGV4YW1pbmluZy4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGF0IHRoaXMgaXMgdGhlIHJlbGV2YW50IGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc3OTIsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwOTozODo0NC4wODUyNDA4MjdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODM3MDgxNzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEpGU19GU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9qZnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2pmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZnMvamZzL0tjb25maWc6Mjpjb25maWcgSkZTX0ZTXFxuZnMvamZzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiSkZTIGZpbGVzeXN0ZW0gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjFUMDk6Mzg6NDQuMTY4OTUzMjNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTMyNTQ1NjY0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGb2N1c2luZyBGdXp6aW5nIG9uIEpGUyBUcmVlIFRyYXZlcnNhbCoqXG5cbk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgSSd2ZSBjb25maXJtZWQgdGhhdCBgSkZTX0ZTYCBpcyBpbmRlZWQgdGhlIGNvcnJlY3QgY29uZmlndXJhdGlvbi4gTm93LCBsZXQncyByZWZpbmUgdGhlIGxpc3Qgb2YgZm9jdXMgc3ltYm9scyBmb3IgZnV6emluZywgc3BlY2lmaWNhbGx5IHRhcmdldGluZyB0aGUgY29yZSBmdW5jdGlvbnMgd2l0aGluIGBqZnNfZHRyZWUuY2AgYW5kIGBqZnNfeHRyZWUuY2AuXG5cbkluaXRpYWxseSwgSSBoYWQgYSBjb21wcmVoZW5zaXZlIGxpc3Q6XG5cbkZvciBgamZzX2R0cmVlLmNgOiBgZHRTZWFyY2hgLCBgZHRTcGxpdFVwYCwgYGR0U3BsaXRQYWdlYCwgYGR0RXh0ZW5kUGFnZWAsIGBkdERlbGV0ZWAsIGBkdERlbGV0ZVVwYCwgYGR0UmVsaW5rYCwgYGFkZF9taXNzaW5nX2luZGljZXNgLCBgamZzX3JlYWRkaXJgLCBgZHRSZWFkRmlyc3RgLCBgZHRSZWFkTmV4dGBcbkZvciBgamZzX3h0cmVlLmNgOiBgeHRTZWFyY2hgLCBgeHRTcGxpdFVwYCwgYHh0U3BsaXRQYWdlYCwgYHh0RXh0ZW5kYCwgYHh0VXBkYXRlYCwgYHh0VHJ1bmNhdGVgLCBgeHRUcnVuY2F0ZV9wbWFwYFxuXG5UaGVzZSBhbGwgbG9vayBsaWtlIGV4Y2VsbGVudCBjYW5kaWRhdGVzIHNpbmNlIHRoZXkncmUgaW50ZWdyYWwgdG8gSkZTIGludGVyYWN0aW9uIGFuZCBkaXJlY3RseSBjYWxsZWQgdGhlIG1vZGlmaWVkIG1hY3Jvcy4gSSB3YXMgY29uc2lkZXJpbmcgbGltaXRpbmcgdGhlIGxpc3QsIG1heWJlIHByaW9yaXRpemluZyB0aGUgdG9wLWxldmVsIGZ1bmN0aW9ucywgb3IgdGhvc2UgZGlyZWN0bHkgY2FsbGluZyB0aGUgbW9kaWZpZWQgbWFjcm9zLCBidXQgaXQgdHVybnMgb3V0IGFsbCBvZiB0aGVtIGFyZSBjYWxsaW5nIGBEVF9HRVRQQUdFYCBvciBgeHRfZ2V0cGFnZWAuXG5cbkhvd2V2ZXIsIGFmdGVyIGEgY2xvc2VyIGxvb2ssIGFuZCBhIHNsaWdodCBjb25jZXJuIGFib3V0IHBvdGVudGlhbCBob3QgcGF0aHMsIEkgYW0gZ29pbmcgdG8gZXhjbHVkZSBgamZzX3JlYWRkaXJgLCB0byBrZWVwIHRoZSBmb2N1cyBtb3JlIHNwZWNpZmljIHRvIHRoZSB0cmVlIHRyYXZlcnNhbCBsb2dpYywgd2hpY2ggaXMgdGhlIGNvcmUgY2hhbmdlIHdlIGFyZSB0YXJnZXRpbmcuIFdoaWxlIGl0J3MgSkZTIHNwZWNpZmljLCBpdCdzIGFsc28gYSB2ZXJ5IGNvbW1vbiBmdW5jdGlvbi5cblxuVGhlcmVmb3JlLCB0aGUgZmluYWwgbGlzdCBmb3IgZnV6emluZyBpczpcbmBkdFNlYXJjaGAsIGBkdFNwbGl0VXBgLCBgZHRTcGxpdFBhZ2VgLCBgZHRFeHRlbmRQYWdlYCwgYGR0RGVsZXRlYCwgYGR0RGVsZXRlVXBgLCBgZHRSZWxpbmtgLCBgYWRkX21pc3NpbmdfaW5kaWNlc2AsIGBkdFJlYWRGaXJzdGAsIGBkdFJlYWROZXh0YCwgYHh0U2VhcmNoYCwgYHh0U3BsaXRVcGAsIGB4dFNwbGl0UGFnZWAsIGB4dEV4dGVuZGAsIGB4dFVwZGF0ZWAsIGB4dFRydW5jYXRlYCwgYHh0VHJ1bmNhdGVfcG1hcGAuXG5cblRoZXNlIGFyZSB0aGUgZnVuY3Rpb25zIHRoYXQgd2lsbCBiZSB0aGUgZm9jdXMgZm9yIHRoZSBmdXp6aW5nIGFuYWx5c2lzLCBlbnN1cmluZyB0aGF0IHRoZSBuZXcgdmFsaWRhdGlvbiBjaGVja3MgaW4gYERUX0dFVFBBR0VgIGFuZCBgeHRfZ2V0cGFnZWAgY29ycmVjdGx5IGhhbmRsZSBtYWxmb3JtZWQgSkZTIGltYWdlcyB3aXRob3V0IGNhdXNpbmcgcmVncmVzc2lvbnMuXG5cbkZpbmFsbHksIGp1c3QgYSBxdWljayBkb3VibGUtY2hlY2s6IGBKRlNfRlNgIGlzIHRoZSBvbmx5IGNvbmZpZyB3ZSBuZWVkLiBBbGwgc2V0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTI2LCJPdXRwdXRUb2tlbnMiOjIyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcwNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwOTozODo1NS40OTQ0MTI2NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NDk3NDE0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSkZTX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHRTZWFyY2hcIixcbiAgICBcImR0U3BsaXRVcFwiLFxuICAgIFwiZHRTcGxpdFBhZ2VcIixcbiAgICBcImR0RXh0ZW5kUGFnZVwiLFxuICAgIFwiZHREZWxldGVcIixcbiAgICBcImR0RGVsZXRlVXBcIixcbiAgICBcImR0UmVsaW5rXCIsXG4gICAgXCJhZGRfbWlzc2luZ19pbmRpY2VzXCIsXG4gICAgXCJkdFJlYWRGaXJzdFwiLFxuICAgIFwiZHRSZWFkTmV4dFwiLFxuICAgIFwieHRTZWFyY2hcIixcbiAgICBcInh0U3BsaXRVcFwiLFxuICAgIFwieHRTcGxpdFBhZ2VcIixcbiAgICBcInh0RXh0ZW5kXCIsXG4gICAgXCJ4dFVwZGF0ZVwiLFxuICAgIFwieHRUcnVuY2F0ZVwiLFxuICAgIFwieHRUcnVuY2F0ZV9wbWFwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBEVF9HRVRQQUdFIGFuZCB4dF9nZXRwYWdlIHRvIGVuc3VyZSB0aGF0IHRoZSByb290IGJsb2NrIGZsYWcgKEJUX1JPT1QpIGlzIGNvcnJlY3RseSBzZXQgb25seSBmb3IgdGhlIHJvb3QgYmxvY2sgKGJuID09IDApLiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIG9yIGNvcnJ1cHRpb24gaXNzdWVzIHdoZW4gcGFyc2luZyBtYWxmb3JtZWQgSkZTIGltYWdlcy4gU2luY2UgaXQgbW9kaWZpZXMgY29yZSBKRlMgdHJlZSB0cmF2ZXJzYWwgbG9naWMsIGl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2hlY2tzIGNvcnJlY3RseSBoYW5kbGUgdmFyaW91cyBjb3JydXB0ZWQgaW1hZ2VzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJKRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkdFNlYXJjaFwiLFxuICAgIFwiZHRTcGxpdFVwXCIsXG4gICAgXCJkdFNwbGl0UGFnZVwiLFxuICAgIFwiZHRFeHRlbmRQYWdlXCIsXG4gICAgXCJkdERlbGV0ZVwiLFxuICAgIFwiZHREZWxldGVVcFwiLFxuICAgIFwiZHRSZWxpbmtcIixcbiAgICBcImFkZF9taXNzaW5nX2luZGljZXNcIixcbiAgICBcImR0UmVhZEZpcnN0XCIsXG4gICAgXCJkdFJlYWROZXh0XCIsXG4gICAgXCJ4dFNlYXJjaFwiLFxuICAgIFwieHRTcGxpdFVwXCIsXG4gICAgXCJ4dFNwbGl0UGFnZVwiLFxuICAgIFwieHRFeHRlbmRcIixcbiAgICBcInh0VXBkYXRlXCIsXG4gICAgXCJ4dFRydW5jYXRlXCIsXG4gICAgXCJ4dFRydW5jYXRlX3BtYXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIERUX0dFVFBBR0UgYW5kIHh0X2dldHBhZ2UgdG8gZW5zdXJlIHRoYXQgdGhlIHJvb3QgYmxvY2sgZmxhZyAoQlRfUk9PVCkgaXMgY29ycmVjdGx5IHNldCBvbmx5IGZvciB0aGUgcm9vdCBibG9jayAoYm4gPT0gMCkuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgb3IgY29ycnVwdGlvbiBpc3N1ZXMgd2hlbiBwYXJzaW5nIG1hbGZvcm1lZCBKRlMgaW1hZ2VzLiBTaW5jZSBpdCBtb2RpZmllcyBjb3JlIEpGUyB0cmVlIHRyYXZlcnNhbCBsb2dpYywgaXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBjaGVja3MgY29ycmVjdGx5IGhhbmRsZSB2YXJpb3VzIGNvcnJ1cHRlZCBpbWFnZXMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflown76qj[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-21 09:17:05 +0000 UTC FinishedAt: 2026-07-21 09:38:56 +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": "8cd9520d35a6c38db6567e97dd93b1f11f185dc6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "JFS_FS" ], "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": "8cd9520d35a6c38db6567e97dd93b1f11f185dc6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "JFS_FS" ], "series_id": "f1fc4954-5360-4f11-adf1-feaca690637d" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "dtSearch", "dtSplitUp", "dtSplitPage", "dtExtendPage", "dtDelete", "dtDeleteUp", "dtRelink", "add_missing_indices", "dtReadFirst", "dtReadNext", "xtSearch", "xtSplitUp", "xtSplitPage", "xtExtend", "xtUpdate", "xtTruncate", "xtTruncate_pmap" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDA5OjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0pGU19GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2R0U2VhcmNoJiMzNDssCiAgICAmIzM0O2R0U3BsaXRVcCYjMzQ7LAogICAgJiMzNDtkdFNwbGl0UGFnZSYjMzQ7LAogICAgJiMzNDtkdEV4dGVuZFBhZ2UmIzM0OywKICAgICYjMzQ7ZHREZWxldGUmIzM0OywKICAgICYjMzQ7ZHREZWxldGVVcCYjMzQ7LAogICAgJiMzNDtkdFJlbGluayYjMzQ7LAogICAgJiMzNDthZGRfbWlzc2luZ19pbmRpY2VzJiMzNDssCiAgICAmIzM0O2R0UmVhZEZpcnN0JiMzNDssCiAgICAmIzM0O2R0UmVhZE5leHQmIzM0OywKICAgICYjMzQ7eHRTZWFyY2gmIzM0OywKICAgICYjMzQ7eHRTcGxpdFVwJiMzNDssCiAgICAmIzM0O3h0U3BsaXRQYWdlJiMzNDssCiAgICAmIzM0O3h0RXh0ZW5kJiMzNDssCiAgICAmIzM0O3h0VXBkYXRlJiMzNDssCiAgICAmIzM0O3h0VHJ1bmNhdGUmIzM0OywKICAgICYjMzQ7eHRUcnVuY2F0ZV9wbWFwJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBjaGVja3MgaW4gRFRfR0VUUEFHRSBhbmQgeHRfZ2V0cGFnZSB0byBlbnN1cmUgdGhhdCB0aGUgcm9vdCBibG9jayBmbGFnIChCVF9ST09UKSBpcyBjb3JyZWN0bHkgc2V0IG9ubHkgZm9yIHRoZSByb290IGJsb2NrIChibiA9PSAwKS4gVGhpcyBwcmV2ZW50cyBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBvciBjb3JydXB0aW9uIGlzc3VlcyB3aGVuIHBhcnNpbmcgbWFsZm9ybWVkIEpGUyBpbWFnZXMuIFNpbmNlIGl0IG1vZGlmaWVzIGNvcmUgSkZTIHRyZWUgdHJhdmVyc2FsIGxvZ2ljLCBpdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IGNoZWNrcyBjb3JyZWN0bHkgaGFuZGxlIHZhcmlvdXMgY29ycnVwdGVkIGltYWdlcyB3aXRob3V0IGNhdXNpbmcgcmVncmVzc2lvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDk6Mzc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0YWYwNDYwNzU4ZDRmNDVjYzlkMDZjYjBlM2I0NDJkMDFmN2NhYTI3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjEgMDk6Mzc6NTcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvamZzL2pmc19kdHJlZS5jIGIvZnMvamZzL2pmc19kdHJlZS5jXG5pbmRleCBhYzBmNzlmYWZhY2EwNC4uMmI2YmRlYTFmZjkyOGIgMTAwNjQ0XG4tLS0gYS9mcy9qZnMvamZzX2R0cmVlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2pmcy9qZnNfZHRyZWUuY1xuQEAgLTExMSwxOSAmIzQzOzExMSwyMCBAQCBzdHJ1Y3QgZHRzcGxpdCB7XG4gI2RlZmluZSBEVF9QQUdFKElQLCBNUCkgQlRfUEFHRShJUCwgTVAsIGR0cGFnZV90LCBpX2R0cm9vdClcbiBcbiAvKiBnZXQgcGFnZSBidWZmZXIgZm9yIHNwZWNpZmllZCBibG9jayBhZGRyZXNzICovXG4tI2RlZmluZSBEVF9HRVRQQUdFKElQLCBCTiwgTVAsIFNJWkUsIFAsIFJDKVx0XHRcdFx0XFxcbi1kbyB7XHRcdFx0XHRcdFx0XHRcdFx0XFxcbi1cdEJUX0dFVFBBR0UoSVAsIEJOLCBNUCwgZHRwYWdlX3QsIFNJWkUsIFAsIFJDLCBpX2R0cm9vdCk7XHRcXFxuLVx0aWYgKCEoUkMpKSB7XHRcdFx0XHRcdFx0XHRcXFxuLVx0XHRpZiAoKEJOKSBcdTAwMjZcdTAwMjYgIWNoZWNrX2R0cGFnZShQKSkge1x0XHRcdFx0XFxcbi1cdFx0XHRCVF9QVVRQQUdFKE1QKTtcdFx0XHRcdFx0XFxcbi1cdFx0XHRqZnNfZXJyb3IoKElQKS1cdTAwM2VpX3NiLFx0XHRcdFx0XFxcbi1cdFx0XHRcdCAgXCYjMzQ7RFRfR0VUUEFHRTogZHRyZWUgcGFnZSBjb3JydXB0XFxuXCYjMzQ7KTtcdFxcXG4tXHRcdFx0TVAgPSBOVUxMO1x0XHRcdFx0XHRcXFxuLVx0XHRcdFJDID0gLUVJTztcdFx0XHRcdFx0XFxcbi1cdFx0fVx0XHRcdFx0XHRcdFx0XFxcbi1cdH1cdFx0XHRcdFx0XHRcdFx0XFxcbi19IHdoaWxlICgwKVxuJiM0MzsjZGVmaW5lIERUX0dFVFBBR0UoSVAsIEJOLCBNUCwgU0laRSwgUCwgUkMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbiYjNDM7XHRkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4mIzQzO1x0XHRCVF9HRVRQQUdFKElQLCBCTiwgTVAsIGR0cGFnZV90LCBTSVpFLCBQLCBSQywgaV9kdHJvb3QpOyAgICAgICBcXFxuJiM0MztcdFx0aWYgKCEoUkMpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbiYjNDM7XHRcdFx0aWYgKCgoKEJOKSA9PSAwKSAhPSAhISgoUCktXHUwMDNlaGVhZGVyLmZsYWcgXHUwMDI2IEJUX1JPT1QpKSB8fCBcXFxuJiM0MztcdFx0XHQgICAgKChCTikgXHUwMDI2XHUwMDI2ICFjaGVja19kdHBhZ2UoUCkpKSB7ICAgICAgICAgICAgICAgICAgICAgIFxcXG4mIzQzO1x0XHRcdFx0QlRfUFVUUEFHRShNUCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuJiM0MztcdFx0XHRcdGpmc19lcnJvcigoSVApLVx1MDAzZWlfc2IsICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuJiM0MztcdFx0XHRcdFx0ICBcJiMzNDtEVF9HRVRQQUdFOiBkdHJlZSBwYWdlIGNvcnJ1cHRcXG5cJiMzNDspOyBcXFxuJiM0MztcdFx0XHRcdE1QID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbiYjNDM7XHRcdFx0XHRSQyA9IC1FSU87ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4mIzQzO1x0XHRcdH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuJiM0MztcdFx0fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbiYjNDM7XHR9IHdoaWxlICgwKVxuIFxuIC8qIGZvciBjb25zaXN0ZW5jeSAqL1xuICNkZWZpbmUgRFRfUFVUUEFHRShNUCkgQlRfUFVUUEFHRShNUClcbmRpZmYgLS1naXQgYS9mcy9qZnMvamZzX3h0cmVlLmMgYi9mcy9qZnMvamZzX3h0cmVlLmNcbmluZGV4IDI4YzNjZjk2MGM2ZmZlLi42ZDk2MGRkOTY0NzE5ZiAxMDA2NDRcbi0tLSBhL2ZzL2pmcy9qZnNfeHRyZWUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvamZzL2pmc194dHJlZS5jXG5AQCAtMTE4LDEwICYjNDM7MTE4LDExIEBAIHN0YXRpYyBpbmxpbmUgeHRwYWdlX3QgKnh0X2dldHBhZ2Uoc3RydWN0IGlub2RlICppcCwgczY0IGJuLCBzdHJ1Y3QgbWV0YXBhZ2UgKiptXG4gXHRpZiAocmMpXG4gXHRcdHJldHVybiBFUlJfUFRSKHJjKTtcbiBcdGlmICgobGUxNl90b19jcHUocC1cdTAwM2VoZWFkZXIubmV4dGluZGV4KSBcdTAwM2MgWFRFTlRSWVNUQVJUKSB8fFxuLVx0XHQobGUxNl90b19jcHUocC1cdTAwM2VoZWFkZXIubmV4dGluZGV4KSBcdTAwM2Vcbi1cdFx0XHRsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5tYXhlbnRyeSkpIHx8XG4tXHRcdChsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5tYXhlbnRyeSkgXHUwMDNlXG4tXHRcdFx0KChibiA9PSAwKSA/IFhUUk9PVE1BWFNMT1QgOiBQU0laRSBcdTAwM2VcdTAwM2UgTDJYVFNMT1RTSVpFKSkpIHtcbiYjNDM7XHQgICAgKGxlMTZfdG9fY3B1KHAtXHUwMDNlaGVhZGVyLm5leHRpbmRleCkgXHUwMDNlXG4mIzQzO1x0ICAgICBsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5tYXhlbnRyeSkpIHx8XG4mIzQzO1x0ICAgIChsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5tYXhlbnRyeSkgXHUwMDNlXG4mIzQzO1x0ICAgICAoKGJuID09IDApID8gWFRST09UTUFYU0xPVCA6IFBTSVpFIFx1MDAzZVx1MDAzZSBMMlhUU0xPVFNJWkUpKSB8fFxuJiM0MztcdCAgICAoKGJuID09IDApICE9ICEhKHAtXHUwMDNlaGVhZGVyLmZsYWcgXHUwMDI2IEJUX1JPT1QpKSkge1xuIFx0XHRqZnNfZXJyb3IoaXAtXHUwMDNlaV9zYiwgXCYjMzQ7eHRfZ2V0cGFnZTogeHRyZWUgcGFnZSBjb3JydXB0XFxuXCYjMzQ7KTtcbiBcdFx0QlRfUFVUUEFHRSgqbXApO1xuIFx0XHQqbXAgPSBOVUxMO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDA5OjM3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtKRlNfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkdFNlYXJjaCYjMzQ7LAogICAgJiMzNDtkdFNwbGl0VXAmIzM0OywKICAgICYjMzQ7ZHRTcGxpdFBhZ2UmIzM0OywKICAgICYjMzQ7ZHRFeHRlbmRQYWdlJiMzNDssCiAgICAmIzM0O2R0RGVsZXRlJiMzNDssCiAgICAmIzM0O2R0RGVsZXRlVXAmIzM0OywKICAgICYjMzQ7ZHRSZWxpbmsmIzM0OywKICAgICYjMzQ7YWRkX21pc3NpbmdfaW5kaWNlcyYjMzQ7LAogICAgJiMzNDtkdFJlYWRGaXJzdCYjMzQ7LAogICAgJiMzNDtkdFJlYWROZXh0JiMzNDssCiAgICAmIzM0O3h0U2VhcmNoJiMzNDssCiAgICAmIzM0O3h0U3BsaXRVcCYjMzQ7LAogICAgJiMzNDt4dFNwbGl0UGFnZSYjMzQ7LAogICAgJiMzNDt4dEV4dGVuZCYjMzQ7LAogICAgJiMzNDt4dFVwZGF0ZSYjMzQ7LAogICAgJiMzNDt4dFRydW5jYXRlJiMzNDssCiAgICAmIzM0O3h0VHJ1bmNhdGVfcG1hcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIERUX0dFVFBBR0UgYW5kIHh0X2dldHBhZ2UgdG8gZW5zdXJlIHRoYXQgdGhlIHJvb3QgYmxvY2sgZmxhZyAoQlRfUk9PVCkgaXMgY29ycmVjdGx5IHNldCBvbmx5IGZvciB0aGUgcm9vdCBibG9jayAoYm4gPT0gMCkuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgb3IgY29ycnVwdGlvbiBpc3N1ZXMgd2hlbiBwYXJzaW5nIG1hbGZvcm1lZCBKRlMgaW1hZ2VzLiBTaW5jZSBpdCBtb2RpZmllcyBjb3JlIEpGUyB0cmVlIHRyYXZlcnNhbCBsb2dpYywgaXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBjaGVja3MgY29ycmVjdGx5IGhhbmRsZSB2YXJpb3VzIGNvcnJ1cHRlZCBpbWFnZXMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0YWYwNDYwNzU4ZDRmNDVjYzlkMDZjYjBlM2I0NDJkMDFmN2NhYTI3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjEgMDk6Mzc6NTcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9qZnMvamZzX2R0cmVlLmMgYi9mcy9qZnMvamZzX2R0cmVlLmMKaW5kZXggYWMwZjc5ZmFmYWNhMDQuLjJiNmJkZWExZmY5MjhiIDEwMDY0NAotLS0gYS9mcy9qZnMvamZzX2R0cmVlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvamZzL2pmc19kdHJlZS5jCkBAIC0xMTEsMTkgJiM0MzsxMTEsMjAgQEAgc3RydWN0IGR0c3BsaXQgewogI2RlZmluZSBEVF9QQUdFKElQLCBNUCkgQlRfUEFHRShJUCwgTVAsIGR0cGFnZV90LCBpX2R0cm9vdCkKIAogLyogZ2V0IHBhZ2UgYnVmZmVyIGZvciBzcGVjaWZpZWQgYmxvY2sgYWRkcmVzcyAqLwotI2RlZmluZSBEVF9HRVRQQUdFKElQLCBCTiwgTVAsIFNJWkUsIFAsIFJDKQkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCUJUX0dFVFBBR0UoSVAsIEJOLCBNUCwgZHRwYWdlX3QsIFNJWkUsIFAsIFJDLCBpX2R0cm9vdCk7CVwKLQlpZiAoIShSQykpIHsJCQkJCQkJXAotCQlpZiAoKEJOKSAmYW1wOyZhbXA7ICFjaGVja19kdHBhZ2UoUCkpIHsJCQkJXAotCQkJQlRfUFVUUEFHRShNUCk7CQkJCQlcCi0JCQlqZnNfZXJyb3IoKElQKS0mZ3Q7aV9zYiwJCQkJXAotCQkJCSAgJiMzNDtEVF9HRVRQQUdFOiBkdHJlZSBwYWdlIGNvcnJ1cHRcbiYjMzQ7KTsJXAotCQkJTVAgPSBOVUxMOwkJCQkJXAotCQkJUkMgPSAtRUlPOwkJCQkJXAotCQl9CQkJCQkJCVwKLQl9CQkJCQkJCQlcCi19IHdoaWxlICgwKQomIzQzOyNkZWZpbmUgRFRfR0VUUEFHRShJUCwgQk4sIE1QLCBTSVpFLCBQLCBSQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiYjNDM7CWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwkJQlRfR0VUUEFHRShJUCwgQk4sIE1QLCBkdHBhZ2VfdCwgU0laRSwgUCwgUkMsIGlfZHRyb290KTsgICAgICAgXAomIzQzOwkJaWYgKCEoUkMpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwkJCWlmICgoKChCTikgPT0gMCkgIT0gISEoKFApLSZndDtoZWFkZXIuZmxhZyAmYW1wOyBCVF9ST09UKSkgfHwgXAomIzQzOwkJCSAgICAoKEJOKSAmYW1wOyZhbXA7ICFjaGVja19kdHBhZ2UoUCkpKSB7ICAgICAgICAgICAgICAgICAgICAgIFwKJiM0MzsJCQkJQlRfUFVUUEFHRShNUCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiYjNDM7CQkJCWpmc19lcnJvcigoSVApLSZndDtpX3NiLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwkJCQkJICAmIzM0O0RUX0dFVFBBR0U6IGR0cmVlIHBhZ2UgY29ycnVwdFxuJiMzNDspOyBcCiYjNDM7CQkJCU1QID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwkJCQlSQyA9IC1FSU87ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKJiM0MzsJCQl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwkJfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAomIzQzOwl9IHdoaWxlICgwKQogCiAvKiBmb3IgY29uc2lzdGVuY3kgKi8KICNkZWZpbmUgRFRfUFVUUEFHRShNUCkgQlRfUFVUUEFHRShNUCkKZGlmZiAtLWdpdCBhL2ZzL2pmcy9qZnNfeHRyZWUuYyBiL2ZzL2pmcy9qZnNfeHRyZWUuYwppbmRleCAyOGMzY2Y5NjBjNmZmZS4uNmQ5NjBkZDk2NDcxOWYgMTAwNjQ0Ci0tLSBhL2ZzL2pmcy9qZnNfeHRyZWUuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9qZnMvamZzX3h0cmVlLmMKQEAgLTExOCwxMCAmIzQzOzExOCwxMSBAQCBzdGF0aWMgaW5saW5lIHh0cGFnZV90ICp4dF9nZXRwYWdlKHN0cnVjdCBpbm9kZSAqaXAsIHM2NCBibiwgc3RydWN0IG1ldGFwYWdlICoqbQogCWlmIChyYykKIAkJcmV0dXJuIEVSUl9QVFIocmMpOwogCWlmICgobGUxNl90b19jcHUocC0mZ3Q7aGVhZGVyLm5leHRpbmRleCkgJmx0OyBYVEVOVFJZU1RBUlQpIHx8Ci0JCShsZTE2X3RvX2NwdShwLSZndDtoZWFkZXIubmV4dGluZGV4KSAmZ3Q7Ci0JCQlsZTE2X3RvX2NwdShwLSZndDtoZWFkZXIubWF4ZW50cnkpKSB8fAotCQkobGUxNl90b19jcHUocC0mZ3Q7aGVhZGVyLm1heGVudHJ5KSAmZ3Q7Ci0JCQkoKGJuID09IDApID8gWFRST09UTUFYU0xPVCA6IFBTSVpFICZndDsmZ3Q7IEwyWFRTTE9UU0laRSkpKSB7CiYjNDM7CSAgICAobGUxNl90b19jcHUocC0mZ3Q7aGVhZGVyLm5leHRpbmRleCkgJmd0OwomIzQzOwkgICAgIGxlMTZfdG9fY3B1KHAtJmd0O2hlYWRlci5tYXhlbnRyeSkpIHx8CiYjNDM7CSAgICAobGUxNl90b19jcHUocC0mZ3Q7aGVhZGVyLm1heGVudHJ5KSAmZ3Q7CiYjNDM7CSAgICAgKChibiA9PSAwKSA/IFhUUk9PVE1BWFNMT1QgOiBQU0laRSAmZ3Q7Jmd0OyBMMlhUU0xPVFNJWkUpKSB8fAomIzQzOwkgICAgKChibiA9PSAwKSAhPSAhIShwLSZndDtoZWFkZXIuZmxhZyAmYW1wOyBCVF9ST09UKSkpIHsKIAkJamZzX2Vycm9yKGlwLSZndDtpX3NiLCAmIzM0O3h0X2dldHBhZ2U6IHh0cmVlIHBhZ2UgY29ycnVwdFxuJiMzNDspOwogCQlCVF9QVVRQQUdFKCptcCk7CiAJCSptcCA9IE5VTEw7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDA5OjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2ODMKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAyNjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgSkZTIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBmcy9qZnMvamZzX2R0cmVlLmNgIGFuZCBgZnMvamZzL2pmc194dHJlZS5jYC4gSXQgc2VlbXMgdGhleSYjMzk7dmUgYWRkZWQgdGhpcyBjb25kaXRpb25hbCBjaGVjaywgYCgoKEJOKSA9PSAwKSAhPSAhISgoUCktJmd0O2hlYWRlci5mbGFnICZhbXA7IEJUX1JPT1QpKWAgaW4gdGhlIGBEVF9HRVRQQUdFYCBtYWNybyB3aXRoaW4gYGpmc19kdHJlZS5jYCwgYW5kIGEgdmVyeSBzaW1pbGFyIGNoZWNrLCBgKChibiA9PSAwKSAhPSAhIShwLSZndDtoZWFkZXIuZmxhZyAmYW1wOyBCVF9ST09UKSlgLCBpbiB0aGUgYHh0X2dldHBhZ2VgIGZ1bmN0aW9uIHdpdGhpbiBgamZzX3h0cmVlLmNgLiAKCkZ1bmN0aW9uYWxseSwgdGhpcyBpcyBjbGVhcmx5IGEgZml4LiBJdCYjMzk7cyBhZGRyZXNzaW5nIGEgcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbiBvciBvdXQtb2YtYm91bmRzIHNpdHVhdGlvbiwgcHJvYmFibHkgdHJpZ2dlcmVkIGJ5IHNvbWV0aGluZyBsaWtlIGEgYHN5emJvdGAgYnVnLiBUaGUgY29yZSBpc3N1ZSBpcyBsaWtlbHkgYSBibG9jayBpbmNvcnJlY3RseSBjbGFpbWluZyByb290IHN0YXR1cywgb3IgdmljZS12ZXJzYS4KClNpbmNlIHdlJiMzOTtyZSBtb2RpZnlpbmcgSkZTLCBmdXp6aW5nIGlzIGRlZmluaXRlbHkgaW4gb3JkZXIuIFRoZSByZWxldmFudCBjb25maWcgb3B0aW9uIGlzIG9idmlvdXNseSBgSkZTX0ZTYC4gTm93IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSByaWdodCB3YXkgdG8gdGFyZ2V0IHRoZXNlIGNoYW5nZXMgaW4gb3VyIGZ1enppbmcgc3RyYXRlZ3kuCgpGb3IgYGpmc19kdHJlZS5jYCwgYERUX0dFVFBBR0VgIGlzIGEgbWFjcm8sIHNvIEkgbmVlZCB0byBmaW5kIGl0cyB1c2VzIHRvIHNlZSB3aGVyZSB0aGUgYWRkZWQgY2hlY2sgd2lsbCBiZSBleGVjdXRlZC4gSSYjMzk7bGwgdXNlIGBncmVwYCBmb3IgdGhhdC4KCkFuZCB0aGVuIGB4dF9nZXRwYWdlYCBpcyBhIGZ1bmN0aW9uIGluIGBqZnNfeHRyZWUuY2AuIEFnYWluLCBJJiMzOTtsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhhdCBmdW5jdGlvbiBpcyBjYWxsZWQgdXNpbmcgYGdyZXBgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDA5OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0RUX0dFVFBBR0UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9qZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2pmcy9qZnNfZHRyZWUuYz0xMDI9c3RydWN0IGR0c3BsaXQge1xuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYy0xMTMtLyogZ2V0IHBhZ2UgYnVmZmVyIGZvciBzcGVjaWZpZWQgYmxvY2sgYWRkcmVzcyAqL1xuZnMvamZzL2pmc19kdHJlZS5jOjExNDojZGVmaW5lIERUX0dFVFBBR0UoSVAsIEJOLCBNUCwgU0laRSwgUCwgUkMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbmZzL2pmcy9qZnNfZHRyZWUuYy0xMTUtXHRkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTEyMS1cdFx0XHRcdGpmc19lcnJvcigoSVApLVx1MDAzZWlfc2IsICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuZnMvamZzL2pmc19kdHJlZS5jOjEyMjpcdFx0XHRcdFx0ICBcJiMzNDtEVF9HRVRQQUdFOiBkdHJlZSBwYWdlIGNvcnJ1cHRcXG5cJiMzNDspOyBcXFxuZnMvamZzL2pmc19kdHJlZS5jLTEyMy1cdFx0XHRcdE1QID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmM9NTY2PWludCBkdFNlYXJjaChzdHJ1Y3QgaW5vZGUgKmlwLCBzdHJ1Y3QgY29tcG9uZW50X25hbWUgKiBrZXksIGlub190ICogZGF0YSxcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtNjIxLVx0XHQvKiBnZXQvcGluIHRoZSBwYWdlIHRvIHNlYXJjaCAqL1xuZnMvamZzL2pmc19kdHJlZS5jOjYyMjpcdFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBwc2l6ZSwgcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTYyMy1cdFx0aWYgKHJjKVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz05MjQ9c3RhdGljIGludCBkdFNwbGl0VXAodGlkX3QgdGlkLFxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYy0xMTMxLVx0XHQvKiBnZXQgdGhlIHBhcmVudCBwYWdlIFx1MDAzY3NwXHUwMDNlICovXG5mcy9qZnMvamZzX2R0cmVlLmM6MTEzMjpcdFx0RFRfR0VUUEFHRShpcCwgcGFyZW50LVx1MDAzZWJuLCBzbXAsIFBTSVpFLCBzcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTExMzMtXHRcdGlmIChyYykge1xuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz0xMzI0PXN0YXRpYyBpbnQgZHRTcGxpdFBhZ2UodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLCBzdHJ1Y3QgZHRzcGxpdCAqIHNwbGl0LFxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYy0xNDY4LVx0aWYgKG5leHRibiAhPSAwKSB7XG5mcy9qZnMvamZzX2R0cmVlLmM6MTQ2OTpcdFx0RFRfR0VUUEFHRShpcCwgbmV4dGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0xNDcwLVx0XHRpZiAocmMpIHtcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmM9MTYzNj1zdGF0aWMgaW50IGR0RXh0ZW5kUGFnZSh0aWRfdCB0aWQsXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTE2NjYtXHRwYXJlbnQgPSBCVF9QT1AoYnRzdGFjayk7XG5mcy9qZnMvamZzX2R0cmVlLmM6MTY2NzpcdERUX0dFVFBBR0UoaXAsIHBhcmVudC1cdTAwM2VibiwgcG1wLCBQU0laRSwgcHAsIHJjKTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0xNjY4LVx0aWYgKHJjKVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz0yMDc2PWludCBkdERlbGV0ZSh0aWRfdCB0aWQsXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTIxMjMtXHRcdFx0XHQvKiBSZWFkIG5leHQgbGVhZiBwYWdlICovXG5mcy9qZnMvamZzX2R0cmVlLmM6MjEyNDpcdFx0XHRcdERUX0dFVFBBR0UoaXAsIGxlNjRfdG9fY3B1KHAtXHUwMDNlaGVhZGVyLm5leHQpLFxuZnMvamZzL2pmc19kdHJlZS5jLTIxMjUtXHRcdFx0XHRcdCAgIG5tcCwgUFNJWkUsIG5wLCByYyk7XG4tLVxuZnMvamZzL2pmc19kdHJlZS5jPTIyMzE9c3RhdGljIGludCBkdERlbGV0ZVVwKHRpZF90IHRpZCwgc3RydWN0IGlub2RlICppcCxcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtMjMwMS1cdFx0LyogcGluIHRoZSBwYXJlbnQgcGFnZSBcdTAwM2NzcFx1MDAzZSAqL1xuZnMvamZzL2pmc19kdHJlZS5jOjIzMDI6XHRcdERUX0dFVFBBR0UoaXAsIHBhcmVudC1cdTAwM2VibiwgbXAsIFBTSVpFLCBwLCByYyk7XG5mcy9qZnMvamZzX2R0cmVlLmMtMjMwMy1cdFx0aWYgKHJjKVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz0yNDQzPXN0YXRpYyBpbnQgZHRSZWxpbmsodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLCBkdHBhZ2VfdCAqIHApXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTI0NTYtXHRpZiAobmV4dGJuICE9IDApIHtcbmZzL2pmcy9qZnNfZHRyZWUuYzoyNDU3Olx0XHREVF9HRVRQQUdFKGlwLCBuZXh0Ym4sIG1wLCBQU0laRSwgcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTI0NTgtXHRcdGlmIChyYylcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtMjQ4NS1cdGlmIChwcmV2Ym4gIT0gMCkge1xuZnMvamZzL2pmc19kdHJlZS5jOjI0ODY6XHRcdERUX0dFVFBBR0UoaXAsIHByZXZibiwgbXAsIFBTSVpFLCBwLCByYyk7XG5mcy9qZnMvamZzX2R0cmVlLmMtMjQ4Ny1cdFx0aWYgKHJjKVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz0yNjE0PXN0YXRpYyBpbnQgYWRkX21pc3NpbmdfaW5kaWNlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzNjQgYm4pXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTI2MjktXG5mcy9qZnMvamZzX2R0cmVlLmM6MjYzMDpcdERUX0dFVFBBR0UoaW5vZGUsIGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNjMxLVxuZnMvamZzL2pmc19kdHJlZS5jLTI2MzItXHRpZiAocmMpIHtcbmZzL2pmcy9qZnNfZHRyZWUuYzoyNjMzOlx0XHRwcmludGsoS0VSTl9FUlIgXCYjMzQ7RFRfR0VUUEFHRSBmYWlsZWQhXFxuXCYjMzQ7KTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNjM0LVx0XHRnb3RvIGVuZDtcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmM9MjcxMj1pbnQgamZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYy0yNzk0LVx0XHRcdGluZGV4ID0gZGlydGFiX3Nsb3Quc2xvdDtcbmZzL2pmcy9qZnNfZHRyZWUuYzoyNzk1Olx0XHRcdERUX0dFVFBBR0UoaXAsIGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNzk2LVx0XHRcdGlmIChyYykge1xuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYy0zMDM4LVxuZnMvamZzL2pmc19kdHJlZS5jOjMwMzk6XHRcdERUX0dFVFBBR0UoaXAsIGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMDQwLVx0XHRpZiAocmMpIHtcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmM9MzA1OD1zdGF0aWMgaW50IGR0UmVhZEZpcnN0KHN0cnVjdCBpbm9kZSAqaXAsIHN0cnVjdCBidHN0YWNrICogYnRzdGFjaylcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtMzA3Ni1cdGZvciAoYm4gPSAwOzspIHtcbmZzL2pmcy9qZnNfZHRyZWUuYzozMDc3Olx0XHREVF9HRVRQQUdFKGlwLCBibiwgbXAsIHBzaXplLCBwLCByYyk7XG5mcy9qZnMvamZzX2R0cmVlLmMtMzA3OC1cdFx0aWYgKHJjKVxuLS1cbmZzL2pmcy9qZnNfZHRyZWUuYz0zMTM3PXN0YXRpYyBpbnQgZHRSZWFkTmV4dChzdHJ1Y3QgaW5vZGUgKmlwLCBsb2ZmX3QgKiBvZmZzZXQsXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTMyMjAtXHRibiA9IHBhcmVudC1cdTAwM2VibjtcbmZzL2pmcy9qZnNfZHRyZWUuYzozMjIxOlx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTMyMjItXHRpZiAocmMpXG4tLVxuZnMvamZzL2pmc19kdHJlZS5jLTMyNDEtXHRcdC8qIGdldCBuZXh0IHBhcmVudCBwYWdlICovXG5mcy9qZnMvamZzX2R0cmVlLmM6MzI0MjpcdFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTMyNDMtXHRcdGlmIChyYylcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtMzI2MS0gICAgICBjOlxuZnMvamZzL2pmc19kdHJlZS5jOjMyNjI6XHREVF9HRVRQQUdFKGlwLCBibiwgbXAsIFBTSVpFLCBwLCByYyk7XG5mcy9qZnMvamZzX2R0cmVlLmMtMzI2My1cdGlmIChyYylcbi0tXG5mcy9qZnMvamZzX2R0cmVlLmMtMzI4Mi1cdFx0LyogZ2V0IG5leHQgbGVhZiBwYWdlICovXG5mcy9qZnMvamZzX2R0cmVlLmM6MzI4MzpcdFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xuZnMvamZzL2pmc19kdHJlZS5jLTMyODQtXHRcdGlmIChyYylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwOTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDk4CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogOTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQ3VycmVudCBGb2N1czogS2V5IEZ1bmN0aW9ucyBmb3IgRGF0YSBNYW5hZ2VtZW50KioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGNvcmUgZnVuY3Rpb25zIHRoYXQgcmVhbGx5IGRyaXZlIHRoaXMgZGF0YSBtYW5hZ2VtZW50IHN5c3RlbS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmUgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIGVhY2ggb25lJiMzOTtzIHJvbGUgYW5kIHBvdGVudGlhbCBpbXBhY3QuIFJpZ2h0IG5vdywgSSYjMzk7bSB6ZXJvaW5nIGluIG9uOgoKKiAgIGBkdFNlYXJjaGA6IE9idmlvdXNseSwgdGhlIHNlYXJjaCBmdW5jdGlvbiBpcyBjcml0aWNhbCwgaXQmIzM5O3MgaG93IHVzZXJzIGFyZSBnb2luZyB0byBpbnRlcmFjdCB3aXRoIHRoZSBkYXRhLgoqICAgYGR0U3BsaXRVcGAgJmFtcDsgYGR0U3BsaXRQYWdlYDogU3BsaXR0aW5nIHBhZ2VzIGlzIGEgY29yZSBmdW5jdGlvbiwgbXVzdCBlbnN1cmUgdGhpcyBpcyBmdW5jdGlvbmluZyBhcyBpdCBzaG91bGQuCiogICBgZHRFeHRlbmRQYWdlYDogRXh0ZW5kaW5nIHBhZ2VzIGlzIGFub3RoZXIga2V5IGZ1bmN0aW9uIGZvciBtYW5hZ2luZyB0aGUgZmlsZXMgYXMgdGhleSBncm93LgoqICAgYGR0RGVsZXRlYCAmYW1wOyBgZHREZWxldGVVcGA6IFBhZ2UgZGVsZXRpb24gYW5kICYjMzk7dXAmIzM5OyBkZWxldGlvbiBhcmUgY3JpdGljYWwuCiogICBgZHRSZWxpbmtgOiBUaGlzIGNvdWxkIGJlIGNydWNpYWwgZm9yIGVuc3VyaW5nIGRhdGEgaW50ZWdyaXR5IGFuZCBoYW5kbGluZyBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiogICBgYWRkX21pc3NpbmdfaW5kaWNlc2A6IEVzc2VudGlhbCBmb3IgbWFpbnRhaW5pbmcgZWZmaWNpZW5jeSBhbmQgZGF0YSByZXRyaWV2YWwgc3BlZWQuCiogICBgamZzX3JlYWRkaXJgOiBUaGlzIG9uZSYjMzk7cyBhYm91dCBpbnRlcmFjdGluZyB3aXRoIHRoZSB1bmRlcmx5aW5nIGZpbGVzeXN0ZW0sIHNvIHRoYXQgbmVlZHMgdG8gYmUgcmV2aWV3ZWQgYXMgaXQmIzM5O3MgdGhlIGxheWVyIGFib3ZlIHRoZSBkYXRhLgoqICAgYGR0UmVhZEZpcnN0YCAmYW1wOyBgZHRSZWFkTmV4dGA6IENydWNpYWwgZm9yIGVmZmljaWVudCBkYXRhIHRyYXZlcnNhbC4KCk5vdywgSSBuZWVkIHRvIGNoZWNrIGB4dF9nZXRwYWdlYC4gVGhpcyBtYXkgYmUgdGhlIG5leHQgaW1wb3J0YW50IGFyZWEuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDk6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7eHRfZ2V0cGFnZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2pmcy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvamZzL2pmc194dHJlZS5jPTk0PXN0YXRpYyBpbnQgeHRTcGxpdFJvb3QodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLFxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy05Ny0vKlxuZnMvamZzL2pmc194dHJlZS5jOjk4OiAqXHR4dF9nZXRwYWdlKClcbmZzL2pmcy9qZnNfeHRyZWUuYy05OS0gKlxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0xMTAtXG5mcy9qZnMvamZzX3h0cmVlLmM6MTExOnN0YXRpYyBpbmxpbmUgeHRwYWdlX3QgKnh0X2dldHBhZ2Uoc3RydWN0IGlub2RlICppcCwgczY0IGJuLCBzdHJ1Y3QgbWV0YXBhZ2UgKiptcClcbmZzL2pmcy9qZnNfeHRyZWUuYy0xMTIte1xuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0xMjUtXHQgICAgKChibiA9PSAwKSAhPSAhIShwLVx1MDAzZWhlYWRlci5mbGFnIFx1MDAyNiBCVF9ST09UKSkpIHtcbmZzL2pmcy9qZnNfeHRyZWUuYzoxMjY6XHRcdGpmc19lcnJvcihpcC1cdTAwM2VpX3NiLCBcJiMzNDt4dF9nZXRwYWdlOiB4dHJlZSBwYWdlIGNvcnJ1cHRcXG5cJiMzNDspO1xuZnMvamZzL2pmc194dHJlZS5jLTEyNy1cdFx0QlRfUFVUUEFHRSgqbXApO1xuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYz0yMzI9c3RhdGljIGludCB4dFNlYXJjaChzdHJ1Y3QgaW5vZGUgKmlwLCBzNjQgeG9mZixcdHM2NCAqbmV4dHAsXG4tLVxuZnMvamZzL2pmc194dHJlZS5jLTI3MC1cdFx0LyogZ2V0L3BpbiB0aGUgcGFnZSB0byBzZWFyY2ggKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzoyNzE6XHRcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXHUwMDI2bXApO1xuZnMvamZzL2pmc194dHJlZS5jLTI3Mi1cdFx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmM9NjgwPXh0U3BsaXRVcCh0aWRfdCB0aWQsXG4tLVxuZnMvamZzL2pmc194dHJlZS5jLTgyNS1cdFx0LyogZ2V0L3BpbiB0aGUgcGFyZW50IHBhZ2UgXHUwMDNjc3BcdTAwM2UgKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzo4MjY6XHRcdHNwID0geHRfZ2V0cGFnZShpcCwgcGFyZW50LVx1MDAzZWJuLCBcdTAwMjZzbXApO1xuZnMvamZzL2pmc194dHJlZS5jLTgyNy1cdFx0aWYgKElTX0VSUihzcCkpIHtcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmM9OTUwPXh0U3BsaXRQYWdlKHRpZF90IHRpZCwgc3RydWN0IGlub2RlICppcCxcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMTA4MC1cdGlmIChuZXh0Ym4gIT0gMCkge1xuZnMvamZzL2pmc194dHJlZS5jOjEwODE6XHRcdHAgPSB4dF9nZXRwYWdlKGlwLCBuZXh0Ym4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0xMDgyLVx0XHRpZiAoSVNfRVJSKHApKSB7XG4tLVxuZnMvamZzL2pmc194dHJlZS5jPTEzNTI9aW50IHh0RXh0ZW5kKHRpZF90IHRpZCxcdFx0LyogdHJhbnNhY3Rpb24gaWQgKi9cbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMTQzNS1cdFx0LyogZ2V0IGJhY2sgb2xkIHBhZ2UgKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzoxNDM2Olx0XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0xNDM3LVx0XHRpZiAoSVNfRVJSKHApKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0xNDUxLVx0XHRcdC8qIGdldCBuZXcgY2hpbGQgcGFnZSAqL1xuZnMvamZzL2pmc194dHJlZS5jOjE0NTI6XHRcdFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcdTAwMjZtcCk7XG5mcy9qZnMvamZzX3h0cmVlLmMtMTQ1My1cdFx0XHRpZiAoSVNfRVJSKHApKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYz0xNTE0PWludCB4dFVwZGF0ZSh0aWRfdCB0aWQsIHN0cnVjdCBpbm9kZSAqaXAsIHhhZF90ICogbnhhZClcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMTcyOS1cdFx0LyogZ2V0IGJhY2sgb2xkIHBhZ2UgKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzoxNzMwOlx0XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0xNzMxLVx0XHRpZiAoSVNfRVJSKHApKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0xNzQ1LVx0XHRcdC8qIGdldCBuZXcgY2hpbGQgcGFnZSAqL1xuZnMvamZzL2pmc194dHJlZS5jOjE3NDY6XHRcdFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcdTAwMjZtcCk7XG5mcy9qZnMvamZzX3h0cmVlLmMtMTc0Ny1cdFx0XHRpZiAoSVNfRVJSKHApKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0xODA2LVx0XHQvKiBnZXQgbmV3IHJpZ2h0IHBhZ2UgKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzoxODA3Olx0XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0xODA4LVx0XHRpZiAoSVNfRVJSKHApKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYz0xODY5PXByaW50ZihcJiMzNDt4dFVwZGF0ZS51cGRhdGVMZWZ0LnNwbGl0IHA6MHglcFxcblwmIzM0OywgcCk7XG4tLVxuZnMvamZzL2pmc194dHJlZS5jLTE4ODItXHRcdC8qIGdldCBiYWNrIG9sZCBwYWdlICovXG5mcy9qZnMvamZzX3h0cmVlLmM6MTg4MzpcdFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcdTAwMjZtcCk7XG5mcy9qZnMvamZzX3h0cmVlLmMtMTg4NC1cdFx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMTg5OS1cdFx0XHQvKiBnZXQgbmV3IGNoaWxkIHBhZ2UgKi9cbmZzL2pmcy9qZnNfeHRyZWUuYzoxOTAwOlx0XHRcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXHUwMDI2bXApO1xuZnMvamZzL2pmc194dHJlZS5jLTE5MDEtXHRcdFx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmM9MjIwND1zNjQgeHRUcnVuY2F0ZSh0aWRfdCB0aWQsIHN0cnVjdCBpbm9kZSAqaXAsIHM2NCBuZXdzaXplLCBpbnQgZmxhZylcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMjI4NS0gICAgICBnZXRQYWdlOlxuZnMvamZzL2pmc194dHJlZS5jOjIyODY6XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0yMjg3LVx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMjUyMy1cdGJuID0gcGFyZW50LVx1MDAzZWJuO1xuZnMvamZzL2pmc194dHJlZS5jOjI1MjQ6XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0yNTI1LVx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmM9Mjc1OT1zNjQgeHRUcnVuY2F0ZV9wbWFwKHRpZF90IHRpZCwgc3RydWN0IGlub2RlICppcCwgczY0IGNvbW1pdHRlZF9zaXplKVxuLS1cbmZzL2pmcy9qZnNfeHRyZWUuYy0yODA4LSAgICAgIGdldFBhZ2U6XG5mcy9qZnMvamZzX3h0cmVlLmM6MjgwOTpcdFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcdTAwMjZtcCk7XG5mcy9qZnMvamZzX3h0cmVlLmMtMjgxMC1cdFx0aWYgKElTX0VSUihwKSlcbi0tXG5mcy9qZnMvamZzX3h0cmVlLmMtMjg1My1cdGJuID0gcGFyZW50LVx1MDAzZWJuO1xuZnMvamZzL2pmc194dHJlZS5jOjI4NTQ6XHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFx1MDAyNm1wKTtcbmZzL2pmcy9qZnNfeHRyZWUuYy0yODU1LVx0aWYgKElTX0VSUihwKSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwOTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NzkyCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgRm9jdXMgZm9yIGB4dF9nZXRwYWdlYCoqCgpPa2F5LCBzbyBJJiMzOTttIGhvbmluZyBpbiBvbiB0aGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBpbiBgeHRfZ2V0cGFnZWAuIEl0IGxvb2tzIGxpa2UgdGhlIGNvcmUgd29yayBpcyBnb2luZyB0byBiZSBoYW5kbGVkIGJ5IGB4dFNlYXJjaGAsIGB4dFNwbGl0VXBgLCBgeHRTcGxpdFBhZ2VgLCBgeHRFeHRlbmRgLCBgeHRVcGRhdGVgLCBgeHRUcnVuY2F0ZWAsIGFuZCBgeHRUcnVuY2F0ZV9wbWFwYC4gSSYjMzk7bGwgbmVlZCB0byByZWFsbHkgdW5kZXJzdGFuZCB0aGUgaW50ZXJwbGF5IGJldHdlZW4gdGhlc2UgZnVuY3Rpb25zIHRvIGdldCBhIGZ1bGwgcGljdHVyZSBvZiB0aGUgZGF0YSByZXRyaWV2YWwgYW5kIG1hbmlwdWxhdGlvbiBwcm9jZXNzLgoKTm93LCB0aGUgY29uZmlndXJhdGlvbiBpbiBwbGF5IGlzIGBKRlNfRlNgLCBhbmQgSSByZWFsbHkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIGlzIHRoZSBjb3JyZWN0IGNvbmZpZyB0byBiZSBleGFtaW5pbmcuIExldCBtZSBkb3VibGUtY2hlY2sgdGhhdCB0aGlzIGlzIHRoZSByZWxldmFudCBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDA5OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBKRlNfRlMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9qZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2pmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5mcy9qZnMvS2NvbmZpZzoyOmNvbmZpZyBKRlNfRlNcbmZzL2pmcy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtKRlMgZmlsZXN5c3RlbSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDk6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODEyNgoJCQkJCQkJb3V0cHV0OiAyMjcKCQkJCQkJCXRob3VnaHRzOiA3MDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgRnV6emluZyBvbiBKRlMgVHJlZSBUcmF2ZXJzYWwqKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgSkZTX0ZTYCBpcyBpbmRlZWQgdGhlIGNvcnJlY3QgY29uZmlndXJhdGlvbi4gTm93LCBsZXQmIzM5O3MgcmVmaW5lIHRoZSBsaXN0IG9mIGZvY3VzIHN5bWJvbHMgZm9yIGZ1enppbmcsIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIGNvcmUgZnVuY3Rpb25zIHdpdGhpbiBgamZzX2R0cmVlLmNgIGFuZCBgamZzX3h0cmVlLmNgLgoKSW5pdGlhbGx5LCBJIGhhZCBhIGNvbXByZWhlbnNpdmUgbGlzdDoKCkZvciBgamZzX2R0cmVlLmNgOiBgZHRTZWFyY2hgLCBgZHRTcGxpdFVwYCwgYGR0U3BsaXRQYWdlYCwgYGR0RXh0ZW5kUGFnZWAsIGBkdERlbGV0ZWAsIGBkdERlbGV0ZVVwYCwgYGR0UmVsaW5rYCwgYGFkZF9taXNzaW5nX2luZGljZXNgLCBgamZzX3JlYWRkaXJgLCBgZHRSZWFkRmlyc3RgLCBgZHRSZWFkTmV4dGAKRm9yIGBqZnNfeHRyZWUuY2A6IGB4dFNlYXJjaGAsIGB4dFNwbGl0VXBgLCBgeHRTcGxpdFBhZ2VgLCBgeHRFeHRlbmRgLCBgeHRVcGRhdGVgLCBgeHRUcnVuY2F0ZWAsIGB4dFRydW5jYXRlX3BtYXBgCgpUaGVzZSBhbGwgbG9vayBsaWtlIGV4Y2VsbGVudCBjYW5kaWRhdGVzIHNpbmNlIHRoZXkmIzM5O3JlIGludGVncmFsIHRvIEpGUyBpbnRlcmFjdGlvbiBhbmQgZGlyZWN0bHkgY2FsbGVkIHRoZSBtb2RpZmllZCBtYWNyb3MuIEkgd2FzIGNvbnNpZGVyaW5nIGxpbWl0aW5nIHRoZSBsaXN0LCBtYXliZSBwcmlvcml0aXppbmcgdGhlIHRvcC1sZXZlbCBmdW5jdGlvbnMsIG9yIHRob3NlIGRpcmVjdGx5IGNhbGxpbmcgdGhlIG1vZGlmaWVkIG1hY3JvcywgYnV0IGl0IHR1cm5zIG91dCBhbGwgb2YgdGhlbSBhcmUgY2FsbGluZyBgRFRfR0VUUEFHRWAgb3IgYHh0X2dldHBhZ2VgLgoKSG93ZXZlciwgYWZ0ZXIgYSBjbG9zZXIgbG9vaywgYW5kIGEgc2xpZ2h0IGNvbmNlcm4gYWJvdXQgcG90ZW50aWFsIGhvdCBwYXRocywgSSBhbSBnb2luZyB0byBleGNsdWRlIGBqZnNfcmVhZGRpcmAsIHRvIGtlZXAgdGhlIGZvY3VzIG1vcmUgc3BlY2lmaWMgdG8gdGhlIHRyZWUgdHJhdmVyc2FsIGxvZ2ljLCB3aGljaCBpcyB0aGUgY29yZSBjaGFuZ2Ugd2UgYXJlIHRhcmdldGluZy4gV2hpbGUgaXQmIzM5O3MgSkZTIHNwZWNpZmljLCBpdCYjMzk7cyBhbHNvIGEgdmVyeSBjb21tb24gZnVuY3Rpb24uCgpUaGVyZWZvcmUsIHRoZSBmaW5hbCBsaXN0IGZvciBmdXp6aW5nIGlzOgpgZHRTZWFyY2hgLCBgZHRTcGxpdFVwYCwgYGR0U3BsaXRQYWdlYCwgYGR0RXh0ZW5kUGFnZWAsIGBkdERlbGV0ZWAsIGBkdERlbGV0ZVVwYCwgYGR0UmVsaW5rYCwgYGFkZF9taXNzaW5nX2luZGljZXNgLCBgZHRSZWFkRmlyc3RgLCBgZHRSZWFkTmV4dGAsIGB4dFNlYXJjaGAsIGB4dFNwbGl0VXBgLCBgeHRTcGxpdFBhZ2VgLCBgeHRFeHRlbmRgLCBgeHRVcGRhdGVgLCBgeHRUcnVuY2F0ZWAsIGB4dFRydW5jYXRlX3BtYXBgLgoKVGhlc2UgYXJlIHRoZSBmdW5jdGlvbnMgdGhhdCB3aWxsIGJlIHRoZSBmb2N1cyBmb3IgdGhlIGZ1enppbmcgYW5hbHlzaXMsIGVuc3VyaW5nIHRoYXQgdGhlIG5ldyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBgRFRfR0VUUEFHRWAgYW5kIGB4dF9nZXRwYWdlYCBjb3JyZWN0bHkgaGFuZGxlIG1hbGZvcm1lZCBKRlMgaW1hZ2VzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy4KCkZpbmFsbHksIGp1c3QgYSBxdWljayBkb3VibGUtY2hlY2s6IGBKRlNfRlNgIGlzIHRoZSBvbmx5IGNvbmZpZyB3ZSBuZWVkLiBBbGwgc2V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwOTozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SkZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHRTZWFyY2gmIzM0OywKICAgICYjMzQ7ZHRTcGxpdFVwJiMzNDssCiAgICAmIzM0O2R0U3BsaXRQYWdlJiMzNDssCiAgICAmIzM0O2R0RXh0ZW5kUGFnZSYjMzQ7LAogICAgJiMzNDtkdERlbGV0ZSYjMzQ7LAogICAgJiMzNDtkdERlbGV0ZVVwJiMzNDssCiAgICAmIzM0O2R0UmVsaW5rJiMzNDssCiAgICAmIzM0O2FkZF9taXNzaW5nX2luZGljZXMmIzM0OywKICAgICYjMzQ7ZHRSZWFkRmlyc3QmIzM0OywKICAgICYjMzQ7ZHRSZWFkTmV4dCYjMzQ7LAogICAgJiMzNDt4dFNlYXJjaCYjMzQ7LAogICAgJiMzNDt4dFNwbGl0VXAmIzM0OywKICAgICYjMzQ7eHRTcGxpdFBhZ2UmIzM0OywKICAgICYjMzQ7eHRFeHRlbmQmIzM0OywKICAgICYjMzQ7eHRVcGRhdGUmIzM0OywKICAgICYjMzQ7eHRUcnVuY2F0ZSYjMzQ7LAogICAgJiMzNDt4dFRydW5jYXRlX3BtYXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBEVF9HRVRQQUdFIGFuZCB4dF9nZXRwYWdlIHRvIGVuc3VyZSB0aGF0IHRoZSByb290IGJsb2NrIGZsYWcgKEJUX1JPT1QpIGlzIGNvcnJlY3RseSBzZXQgb25seSBmb3IgdGhlIHJvb3QgYmxvY2sgKGJuID09IDApLiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIG9yIGNvcnJ1cHRpb24gaXNzdWVzIHdoZW4gcGFyc2luZyBtYWxmb3JtZWQgSkZTIGltYWdlcy4gU2luY2UgaXQgbW9kaWZpZXMgY29yZSBKRlMgdHJlZSB0cmF2ZXJzYWwgbG9naWMsIGl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2hlY2tzIGNvcnJlY3RseSBoYW5kbGUgdmFyaW91cyBjb3JydXB0ZWQgaW1hZ2VzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SkZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHRTZWFyY2gmIzM0OywKICAgICYjMzQ7ZHRTcGxpdFVwJiMzNDssCiAgICAmIzM0O2R0U3BsaXRQYWdlJiMzNDssCiAgICAmIzM0O2R0RXh0ZW5kUGFnZSYjMzQ7LAogICAgJiMzNDtkdERlbGV0ZSYjMzQ7LAogICAgJiMzNDtkdERlbGV0ZVVwJiMzNDssCiAgICAmIzM0O2R0UmVsaW5rJiMzNDssCiAgICAmIzM0O2FkZF9taXNzaW5nX2luZGljZXMmIzM0OywKICAgICYjMzQ7ZHRSZWFkRmlyc3QmIzM0OywKICAgICYjMzQ7ZHRSZWFkTmV4dCYjMzQ7LAogICAgJiMzNDt4dFNlYXJjaCYjMzQ7LAogICAgJiMzNDt4dFNwbGl0VXAmIzM0OywKICAgICYjMzQ7eHRTcGxpdFBhZ2UmIzM0OywKICAgICYjMzQ7eHRFeHRlbmQmIzM0OywKICAgICYjMzQ7eHRVcGRhdGUmIzM0OywKICAgICYjMzQ7eHRUcnVuY2F0ZSYjMzQ7LAogICAgJiMzNDt4dFRydW5jYXRlX3BtYXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBEVF9HRVRQQUdFIGFuZCB4dF9nZXRwYWdlIHRvIGVuc3VyZSB0aGF0IHRoZSByb290IGJsb2NrIGZsYWcgKEJUX1JPT1QpIGlzIGNvcnJlY3RseSBzZXQgb25seSBmb3IgdGhlIHJvb3QgYmxvY2sgKGJuID09IDApLiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIG9yIGNvcnJ1cHRpb24gaXNzdWVzIHdoZW4gcGFyc2luZyBtYWxmb3JtZWQgSkZTIGltYWdlcy4gU2luY2UgaXQgbW9kaWZpZXMgY29yZSBKRlMgdHJlZSB0cmF2ZXJzYWwgbG9naWMsIGl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2hlY2tzIGNvcnJlY3RseSBoYW5kbGUgdmFyaW91cyBjb3JydXB0ZWQgaW1hZ2VzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM3OjU4Ljk3MjA5NDQ3M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2Njg3MzA4ODQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkpGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImR0U2VhcmNoXCIsXG4gICAgXCJkdFNwbGl0VXBcIixcbiAgICBcImR0U3BsaXRQYWdlXCIsXG4gICAgXCJkdEV4dGVuZFBhZ2VcIixcbiAgICBcImR0RGVsZXRlXCIsXG4gICAgXCJkdERlbGV0ZVVwXCIsXG4gICAgXCJkdFJlbGlua1wiLFxuICAgIFwiYWRkX21pc3NpbmdfaW5kaWNlc1wiLFxuICAgIFwiZHRSZWFkRmlyc3RcIixcbiAgICBcImR0UmVhZE5leHRcIixcbiAgICBcInh0U2VhcmNoXCIsXG4gICAgXCJ4dFNwbGl0VXBcIixcbiAgICBcInh0U3BsaXRQYWdlXCIsXG4gICAgXCJ4dEV4dGVuZFwiLFxuICAgIFwieHRVcGRhdGVcIixcbiAgICBcInh0VHJ1bmNhdGVcIixcbiAgICBcInh0VHJ1bmNhdGVfcG1hcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBjaGVja3MgaW4gRFRfR0VUUEFHRSBhbmQgeHRfZ2V0cGFnZSB0byBlbnN1cmUgdGhhdCB0aGUgcm9vdCBibG9jayBmbGFnIChCVF9ST09UKSBpcyBjb3JyZWN0bHkgc2V0IG9ubHkgZm9yIHRoZSByb290IGJsb2NrIChibiA9PSAwKS4gVGhpcyBwcmV2ZW50cyBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBvciBjb3JydXB0aW9uIGlzc3VlcyB3aGVuIHBhcnNpbmcgbWFsZm9ybWVkIEpGUyBpbWFnZXMuIFNpbmNlIGl0IG1vZGlmaWVzIGNvcmUgSkZTIHRyZWUgdHJhdmVyc2FsIGxvZ2ljLCBpdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IGNoZWNrcyBjb3JyZWN0bHkgaGFuZGxlIHZhcmlvdXMgY29ycnVwdGVkIGltYWdlcyB3aXRob3V0IGNhdXNpbmcgcmVncmVzc2lvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM3OjU4Ljk3MjEwMTUwNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE4NTY5MjIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNGFmMDQ2MDc1OGQ0ZjQ1Y2M5ZDA2Y2IwZTNiNDQyZDAxZjdjYWEyN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAyMSAwOTozNzo1NyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9qZnMvamZzX2R0cmVlLmMgYi9mcy9qZnMvamZzX2R0cmVlLmNcXG5pbmRleCBhYzBmNzlmYWZhY2EwNC4uMmI2YmRlYTFmZjkyOGIgMTAwNjQ0XFxuLS0tIGEvZnMvamZzL2pmc19kdHJlZS5jXFxuKysrIGIvZnMvamZzL2pmc19kdHJlZS5jXFxuQEAgLTExMSwxOSArMTExLDIwIEBAIHN0cnVjdCBkdHNwbGl0IHtcXG4gI2RlZmluZSBEVF9QQUdFKElQLCBNUCkgQlRfUEFHRShJUCwgTVAsIGR0cGFnZV90LCBpX2R0cm9vdClcXG4gXFxuIC8qIGdldCBwYWdlIGJ1ZmZlciBmb3Igc3BlY2lmaWVkIGJsb2NrIGFkZHJlc3MgKi9cXG4tI2RlZmluZSBEVF9HRVRQQUdFKElQLCBCTiwgTVAsIFNJWkUsIFAsIFJDKVxcdFxcdFxcdFxcdFxcXFxcXG4tZG8ge1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tXFx0QlRfR0VUUEFHRShJUCwgQk4sIE1QLCBkdHBhZ2VfdCwgU0laRSwgUCwgUkMsIGlfZHRyb290KTtcXHRcXFxcXFxuLVxcdGlmICghKFJDKSkge1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tXFx0XFx0aWYgKChCTikgXFx1MDAyNlxcdTAwMjYgIWNoZWNrX2R0cGFnZShQKSkge1xcdFxcdFxcdFxcdFxcXFxcXG4tXFx0XFx0XFx0QlRfUFVUUEFHRShNUCk7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi1cXHRcXHRcXHRqZnNfZXJyb3IoKElQKS1cXHUwMDNlaV9zYixcXHRcXHRcXHRcXHRcXFxcXFxuLVxcdFxcdFxcdFxcdCAgXFxcIkRUX0dFVFBBR0U6IGR0cmVlIHBhZ2UgY29ycnVwdFxcXFxuXFxcIik7XFx0XFxcXFxcbi1cXHRcXHRcXHRNUCA9IE5VTEw7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi1cXHRcXHRcXHRSQyA9IC1FSU87XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi1cXHRcXHR9XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi1cXHR9XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi19IHdoaWxlICgwKVxcbisjZGVmaW5lIERUX0dFVFBBR0UoSVAsIEJOLCBNUCwgU0laRSwgUCwgUkMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbitcXHRkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG4rXFx0XFx0QlRfR0VUUEFHRShJUCwgQk4sIE1QLCBkdHBhZ2VfdCwgU0laRSwgUCwgUkMsIGlfZHRyb290KTsgICAgICAgXFxcXFxcbitcXHRcXHRpZiAoIShSQykpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuK1xcdFxcdFxcdGlmICgoKChCTikgPT0gMCkgIT0gISEoKFApLVxcdTAwM2VoZWFkZXIuZmxhZyBcXHUwMDI2IEJUX1JPT1QpKSB8fCBcXFxcXFxuK1xcdFxcdFxcdCAgICAoKEJOKSBcXHUwMDI2XFx1MDAyNiAhY2hlY2tfZHRwYWdlKFApKSkgeyAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuK1xcdFxcdFxcdFxcdEJUX1BVVFBBR0UoTVApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbitcXHRcXHRcXHRcXHRqZnNfZXJyb3IoKElQKS1cXHUwMDNlaV9zYiwgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG4rXFx0XFx0XFx0XFx0XFx0ICBcXFwiRFRfR0VUUEFHRTogZHRyZWUgcGFnZSBjb3JydXB0XFxcXG5cXFwiKTsgXFxcXFxcbitcXHRcXHRcXHRcXHRNUCA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG4rXFx0XFx0XFx0XFx0UkMgPSAtRUlPOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuK1xcdFxcdFxcdH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuK1xcdFxcdH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG4rXFx0fSB3aGlsZSAoMClcXG4gXFxuIC8qIGZvciBjb25zaXN0ZW5jeSAqL1xcbiAjZGVmaW5lIERUX1BVVFBBR0UoTVApIEJUX1BVVFBBR0UoTVApXFxuZGlmZiAtLWdpdCBhL2ZzL2pmcy9qZnNfeHRyZWUuYyBiL2ZzL2pmcy9qZnNfeHRyZWUuY1xcbmluZGV4IDI4YzNjZjk2MGM2ZmZlLi42ZDk2MGRkOTY0NzE5ZiAxMDA2NDRcXG4tLS0gYS9mcy9qZnMvamZzX3h0cmVlLmNcXG4rKysgYi9mcy9qZnMvamZzX3h0cmVlLmNcXG5AQCAtMTE4LDEwICsxMTgsMTEgQEAgc3RhdGljIGlubGluZSB4dHBhZ2VfdCAqeHRfZ2V0cGFnZShzdHJ1Y3QgaW5vZGUgKmlwLCBzNjQgYm4sIHN0cnVjdCBtZXRhcGFnZSAqKm1cXG4gXFx0aWYgKHJjKVxcbiBcXHRcXHRyZXR1cm4gRVJSX1BUUihyYyk7XFxuIFxcdGlmICgobGUxNl90b19jcHUocC1cXHUwMDNlaGVhZGVyLm5leHRpbmRleCkgXFx1MDAzYyBYVEVOVFJZU1RBUlQpIHx8XFxuLVxcdFxcdChsZTE2X3RvX2NwdShwLVxcdTAwM2VoZWFkZXIubmV4dGluZGV4KSBcXHUwMDNlXFxuLVxcdFxcdFxcdGxlMTZfdG9fY3B1KHAtXFx1MDAzZWhlYWRlci5tYXhlbnRyeSkpIHx8XFxuLVxcdFxcdChsZTE2X3RvX2NwdShwLVxcdTAwM2VoZWFkZXIubWF4ZW50cnkpIFxcdTAwM2VcXG4tXFx0XFx0XFx0KChibiA9PSAwKSA/IFhUUk9PVE1BWFNMT1QgOiBQU0laRSBcXHUwMDNlXFx1MDAzZSBMMlhUU0xPVFNJWkUpKSkge1xcbitcXHQgICAgKGxlMTZfdG9fY3B1KHAtXFx1MDAzZWhlYWRlci5uZXh0aW5kZXgpIFxcdTAwM2VcXG4rXFx0ICAgICBsZTE2X3RvX2NwdShwLVxcdTAwM2VoZWFkZXIubWF4ZW50cnkpKSB8fFxcbitcXHQgICAgKGxlMTZfdG9fY3B1KHAtXFx1MDAzZWhlYWRlci5tYXhlbnRyeSkgXFx1MDAzZVxcbitcXHQgICAgICgoYm4gPT0gMCkgPyBYVFJPT1RNQVhTTE9UIDogUFNJWkUgXFx1MDAzZVxcdTAwM2UgTDJYVFNMT1RTSVpFKSkgfHxcXG4rXFx0ICAgICgoYm4gPT0gMCkgIT0gISEocC1cXHUwMDNlaGVhZGVyLmZsYWcgXFx1MDAyNiBCVF9ST09UKSkpIHtcXG4gXFx0XFx0amZzX2Vycm9yKGlwLVxcdTAwM2VpX3NiLCBcXFwieHRfZ2V0cGFnZTogeHRyZWUgcGFnZSBjb3JydXB0XFxcXG5cXFwiKTtcXG4gXFx0XFx0QlRfUFVUUEFHRSgqbXApO1xcbiBcXHRcXHQqbXAgPSBOVUxMO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwOTozNzo1OS41OTE2MDcyNzVaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1NjA2Nzc4NTA1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJKRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkdFNlYXJjaFwiLFxuICAgIFwiZHRTcGxpdFVwXCIsXG4gICAgXCJkdFNwbGl0UGFnZVwiLFxuICAgIFwiZHRFeHRlbmRQYWdlXCIsXG4gICAgXCJkdERlbGV0ZVwiLFxuICAgIFwiZHREZWxldGVVcFwiLFxuICAgIFwiZHRSZWxpbmtcIixcbiAgICBcImFkZF9taXNzaW5nX2luZGljZXNcIixcbiAgICBcImR0UmVhZEZpcnN0XCIsXG4gICAgXCJkdFJlYWROZXh0XCIsXG4gICAgXCJ4dFNlYXJjaFwiLFxuICAgIFwieHRTcGxpdFVwXCIsXG4gICAgXCJ4dFNwbGl0UGFnZVwiLFxuICAgIFwieHRFeHRlbmRcIixcbiAgICBcInh0VXBkYXRlXCIsXG4gICAgXCJ4dFRydW5jYXRlXCIsXG4gICAgXCJ4dFRydW5jYXRlX3BtYXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIERUX0dFVFBBR0UgYW5kIHh0X2dldHBhZ2UgdG8gZW5zdXJlIHRoYXQgdGhlIHJvb3QgYmxvY2sgZmxhZyAoQlRfUk9PVCkgaXMgY29ycmVjdGx5IHNldCBvbmx5IGZvciB0aGUgcm9vdCBibG9jayAoYm4gPT0gMCkuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgb3IgY29ycnVwdGlvbiBpc3N1ZXMgd2hlbiBwYXJzaW5nIG1hbGZvcm1lZCBKRlMgaW1hZ2VzLiBTaW5jZSBpdCBtb2RpZmllcyBjb3JlIEpGUyB0cmVlIHRyYXZlcnNhbCBsb2dpYywgaXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBjaGVja3MgY29ycmVjdGx5IGhhbmRsZSB2YXJpb3VzIGNvcnJ1cHRlZCBpbWFnZXMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDRhZjA0NjA3NThkNGY0NWNjOWQwNmNiMGUzYjQ0MmQwMWY3Y2FhMjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyMSAwOTozNzo1NyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2pmcy9qZnNfZHRyZWUuYyBiL2ZzL2pmcy9qZnNfZHRyZWUuY1xuaW5kZXggYWMwZjc5ZmFmYWNhMDQuLjJiNmJkZWExZmY5MjhiIDEwMDY0NFxuLS0tIGEvZnMvamZzL2pmc19kdHJlZS5jXG4rKysgYi9mcy9qZnMvamZzX2R0cmVlLmNcbkBAIC0xMTEsMTkgKzExMSwyMCBAQCBzdHJ1Y3QgZHRzcGxpdCB7XG4gI2RlZmluZSBEVF9QQUdFKElQLCBNUCkgQlRfUEFHRShJUCwgTVAsIGR0cGFnZV90LCBpX2R0cm9vdClcbiBcbiAvKiBnZXQgcGFnZSBidWZmZXIgZm9yIHNwZWNpZmllZCBibG9jayBhZGRyZXNzICovXG4tI2RlZmluZSBEVF9HRVRQQUdFKElQLCBCTiwgTVAsIFNJWkUsIFAsIFJDKVx0XHRcdFx0XFxcbi1kbyB7XHRcdFx0XHRcdFx0XHRcdFx0XFxcbi1cdEJUX0dFVFBBR0UoSVAsIEJOLCBNUCwgZHRwYWdlX3QsIFNJWkUsIFAsIFJDLCBpX2R0cm9vdCk7XHRcXFxuLVx0aWYgKCEoUkMpKSB7XHRcdFx0XHRcdFx0XHRcXFxuLVx0XHRpZiAoKEJOKSBcdTAwMjZcdTAwMjYgIWNoZWNrX2R0cGFnZShQKSkge1x0XHRcdFx0XFxcbi1cdFx0XHRCVF9QVVRQQUdFKE1QKTtcdFx0XHRcdFx0XFxcbi1cdFx0XHRqZnNfZXJyb3IoKElQKS1cdTAwM2VpX3NiLFx0XHRcdFx0XFxcbi1cdFx0XHRcdCAgXCJEVF9HRVRQQUdFOiBkdHJlZSBwYWdlIGNvcnJ1cHRcXG5cIik7XHRcXFxuLVx0XHRcdE1QID0gTlVMTDtcdFx0XHRcdFx0XFxcbi1cdFx0XHRSQyA9IC1FSU87XHRcdFx0XHRcdFxcXG4tXHRcdH1cdFx0XHRcdFx0XHRcdFxcXG4tXHR9XHRcdFx0XHRcdFx0XHRcdFxcXG4tfSB3aGlsZSAoMClcbisjZGVmaW5lIERUX0dFVFBBR0UoSVAsIEJOLCBNUCwgU0laRSwgUCwgUkMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbitcdGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbitcdFx0QlRfR0VUUEFHRShJUCwgQk4sIE1QLCBkdHBhZ2VfdCwgU0laRSwgUCwgUkMsIGlfZHRyb290KTsgICAgICAgXFxcbitcdFx0aWYgKCEoUkMpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbitcdFx0XHRpZiAoKCgoQk4pID09IDApICE9ICEhKChQKS1cdTAwM2VoZWFkZXIuZmxhZyBcdTAwMjYgQlRfUk9PVCkpIHx8IFxcXG4rXHRcdFx0ICAgICgoQk4pIFx1MDAyNlx1MDAyNiAhY2hlY2tfZHRwYWdlKFApKSkgeyAgICAgICAgICAgICAgICAgICAgICBcXFxuK1x0XHRcdFx0QlRfUFVUUEFHRShNUCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuK1x0XHRcdFx0amZzX2Vycm9yKChJUCktXHUwMDNlaV9zYiwgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4rXHRcdFx0XHRcdCAgXCJEVF9HRVRQQUdFOiBkdHJlZSBwYWdlIGNvcnJ1cHRcXG5cIik7IFxcXG4rXHRcdFx0XHRNUCA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4rXHRcdFx0XHRSQyA9IC1FSU87ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4rXHRcdFx0fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4rXHRcdH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4rXHR9IHdoaWxlICgwKVxuIFxuIC8qIGZvciBjb25zaXN0ZW5jeSAqL1xuICNkZWZpbmUgRFRfUFVUUEFHRShNUCkgQlRfUFVUUEFHRShNUClcbmRpZmYgLS1naXQgYS9mcy9qZnMvamZzX3h0cmVlLmMgYi9mcy9qZnMvamZzX3h0cmVlLmNcbmluZGV4IDI4YzNjZjk2MGM2ZmZlLi42ZDk2MGRkOTY0NzE5ZiAxMDA2NDRcbi0tLSBhL2ZzL2pmcy9qZnNfeHRyZWUuY1xuKysrIGIvZnMvamZzL2pmc194dHJlZS5jXG5AQCAtMTE4LDEwICsxMTgsMTEgQEAgc3RhdGljIGlubGluZSB4dHBhZ2VfdCAqeHRfZ2V0cGFnZShzdHJ1Y3QgaW5vZGUgKmlwLCBzNjQgYm4sIHN0cnVjdCBtZXRhcGFnZSAqKm1cbiBcdGlmIChyYylcbiBcdFx0cmV0dXJuIEVSUl9QVFIocmMpO1xuIFx0aWYgKChsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5uZXh0aW5kZXgpIFx1MDAzYyBYVEVOVFJZU1RBUlQpIHx8XG4tXHRcdChsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5uZXh0aW5kZXgpIFx1MDAzZVxuLVx0XHRcdGxlMTZfdG9fY3B1KHAtXHUwMDNlaGVhZGVyLm1heGVudHJ5KSkgfHxcbi1cdFx0KGxlMTZfdG9fY3B1KHAtXHUwMDNlaGVhZGVyLm1heGVudHJ5KSBcdTAwM2Vcbi1cdFx0XHQoKGJuID09IDApID8gWFRST09UTUFYU0xPVCA6IFBTSVpFIFx1MDAzZVx1MDAzZSBMMlhUU0xPVFNJWkUpKSkge1xuK1x0ICAgIChsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5uZXh0aW5kZXgpIFx1MDAzZVxuK1x0ICAgICBsZTE2X3RvX2NwdShwLVx1MDAzZWhlYWRlci5tYXhlbnRyeSkpIHx8XG4rXHQgICAgKGxlMTZfdG9fY3B1KHAtXHUwMDNlaGVhZGVyLm1heGVudHJ5KSBcdTAwM2VcbitcdCAgICAgKChibiA9PSAwKSA/IFhUUk9PVE1BWFNMT1QgOiBQU0laRSBcdTAwM2VcdTAwM2UgTDJYVFNMT1RTSVpFKSkgfHxcbitcdCAgICAoKGJuID09IDApICE9ICEhKHAtXHUwMDNlaGVhZGVyLmZsYWcgXHUwMDI2IEJUX1JPT1QpKSkge1xuIFx0XHRqZnNfZXJyb3IoaXAtXHUwMDNlaV9zYiwgXCJ4dF9nZXRwYWdlOiB4dHJlZSBwYWdlIGNvcnJ1cHRcXG5cIik7XG4gXHRcdEJUX1BVVFBBR0UoKm1wKTtcbiBcdFx0Km1wID0gTlVMTDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM3OjU5LjU5MTYwOTIxNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwNzI5ODA3NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgSkZTIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgZnMvamZzL2pmc19kdHJlZS5jYCBhbmQgYGZzL2pmcy9qZnNfeHRyZWUuY2AuIEl0IHNlZW1zIHRoZXkndmUgYWRkZWQgdGhpcyBjb25kaXRpb25hbCBjaGVjaywgYCgoKEJOKSA9PSAwKSAhPSAhISgoUCktXHUwMDNlaGVhZGVyLmZsYWcgXHUwMDI2IEJUX1JPT1QpKWAgaW4gdGhlIGBEVF9HRVRQQUdFYCBtYWNybyB3aXRoaW4gYGpmc19kdHJlZS5jYCwgYW5kIGEgdmVyeSBzaW1pbGFyIGNoZWNrLCBgKChibiA9PSAwKSAhPSAhIShwLVx1MDAzZWhlYWRlci5mbGFnIFx1MDAyNiBCVF9ST09UKSlgLCBpbiB0aGUgYHh0X2dldHBhZ2VgIGZ1bmN0aW9uIHdpdGhpbiBgamZzX3h0cmVlLmNgLiBcblxuRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGNsZWFybHkgYSBmaXguIEl0J3MgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBkYXRhIGNvcnJ1cHRpb24gb3Igb3V0LW9mLWJvdW5kcyBzaXR1YXRpb24sIHByb2JhYmx5IHRyaWdnZXJlZCBieSBzb21ldGhpbmcgbGlrZSBhIGBzeXpib3RgIGJ1Zy4gVGhlIGNvcmUgaXNzdWUgaXMgbGlrZWx5IGEgYmxvY2sgaW5jb3JyZWN0bHkgY2xhaW1pbmcgcm9vdCBzdGF0dXMsIG9yIHZpY2UtdmVyc2EuXG5cblNpbmNlIHdlJ3JlIG1vZGlmeWluZyBKRlMsIGZ1enppbmcgaXMgZGVmaW5pdGVseSBpbiBvcmRlci4gVGhlIHJlbGV2YW50IGNvbmZpZyBvcHRpb24gaXMgb2J2aW91c2x5IGBKRlNfRlNgLiBOb3cgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJpZ2h0IHdheSB0byB0YXJnZXQgdGhlc2UgY2hhbmdlcyBpbiBvdXIgZnV6emluZyBzdHJhdGVneS5cblxuRm9yIGBqZnNfZHRyZWUuY2AsIGBEVF9HRVRQQUdFYCBpcyBhIG1hY3JvLCBzbyBJIG5lZWQgdG8gZmluZCBpdHMgdXNlcyB0byBzZWUgd2hlcmUgdGhlIGFkZGVkIGNoZWNrIHdpbGwgYmUgZXhlY3V0ZWQuIEknbGwgdXNlIGBncmVwYCBmb3IgdGhhdC5cblxuQW5kIHRoZW4gYHh0X2dldHBhZ2VgIGlzIGEgZnVuY3Rpb24gaW4gYGpmc194dHJlZS5jYC4gQWdhaW4sIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoYXQgZnVuY3Rpb24gaXMgY2FsbGVkIHVzaW5nIGBncmVwYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY4MywiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM4OjA1LjY2NDU5MTg4M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQ1Mzc1MjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRFRfR0VUUEFHRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9qZnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2pmcy9qZnNfZHRyZWUuYz0xMDI9c3RydWN0IGR0c3BsaXQge1xcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTExMy0vKiBnZXQgcGFnZSBidWZmZXIgZm9yIHNwZWNpZmllZCBibG9jayBhZGRyZXNzICovXFxuZnMvamZzL2pmc19kdHJlZS5jOjExNDojZGVmaW5lIERUX0dFVFBBR0UoSVAsIEJOLCBNUCwgU0laRSwgUCwgUkMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbmZzL2pmcy9qZnNfZHRyZWUuYy0xMTUtXFx0ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmMtMTIxLVxcdFxcdFxcdFxcdGpmc19lcnJvcigoSVApLVxcdTAwM2VpX3NiLCAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbmZzL2pmcy9qZnNfZHRyZWUuYzoxMjI6XFx0XFx0XFx0XFx0XFx0ICBcXFwiRFRfR0VUUEFHRTogZHRyZWUgcGFnZSBjb3JydXB0XFxcXG5cXFwiKTsgXFxcXFxcbmZzL2pmcy9qZnNfZHRyZWUuYy0xMjMtXFx0XFx0XFx0XFx0TVAgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmM9NTY2PWludCBkdFNlYXJjaChzdHJ1Y3QgaW5vZGUgKmlwLCBzdHJ1Y3QgY29tcG9uZW50X25hbWUgKiBrZXksIGlub190ICogZGF0YSxcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy02MjEtXFx0XFx0LyogZ2V0L3BpbiB0aGUgcGFnZSB0byBzZWFyY2ggKi9cXG5mcy9qZnMvamZzX2R0cmVlLmM6NjIyOlxcdFxcdERUX0dFVFBBR0UoaXAsIGJuLCBtcCwgcHNpemUsIHAsIHJjKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtNjIzLVxcdFxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz05MjQ9c3RhdGljIGludCBkdFNwbGl0VXAodGlkX3QgdGlkLFxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTExMzEtXFx0XFx0LyogZ2V0IHRoZSBwYXJlbnQgcGFnZSBcXHUwMDNjc3BcXHUwMDNlICovXFxuZnMvamZzL2pmc19kdHJlZS5jOjExMzI6XFx0XFx0RFRfR0VUUEFHRShpcCwgcGFyZW50LVxcdTAwM2Vibiwgc21wLCBQU0laRSwgc3AsIHJjKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtMTEzMy1cXHRcXHRpZiAocmMpIHtcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz0xMzI0PXN0YXRpYyBpbnQgZHRTcGxpdFBhZ2UodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLCBzdHJ1Y3QgZHRzcGxpdCAqIHNwbGl0LFxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTE0NjgtXFx0aWYgKG5leHRibiAhPSAwKSB7XFxuZnMvamZzL2pmc19kdHJlZS5jOjE0Njk6XFx0XFx0RFRfR0VUUEFHRShpcCwgbmV4dGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtMTQ3MC1cXHRcXHRpZiAocmMpIHtcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz0xNjM2PXN0YXRpYyBpbnQgZHRFeHRlbmRQYWdlKHRpZF90IHRpZCxcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0xNjY2LVxcdHBhcmVudCA9IEJUX1BPUChidHN0YWNrKTtcXG5mcy9qZnMvamZzX2R0cmVlLmM6MTY2NzpcXHREVF9HRVRQQUdFKGlwLCBwYXJlbnQtXFx1MDAzZWJuLCBwbXAsIFBTSVpFLCBwcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0xNjY4LVxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz0yMDc2PWludCBkdERlbGV0ZSh0aWRfdCB0aWQsXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmMtMjEyMy1cXHRcXHRcXHRcXHQvKiBSZWFkIG5leHQgbGVhZiBwYWdlICovXFxuZnMvamZzL2pmc19kdHJlZS5jOjIxMjQ6XFx0XFx0XFx0XFx0RFRfR0VUUEFHRShpcCwgbGU2NF90b19jcHUocC1cXHUwMDNlaGVhZGVyLm5leHQpLFxcbmZzL2pmcy9qZnNfZHRyZWUuYy0yMTI1LVxcdFxcdFxcdFxcdFxcdCAgIG5tcCwgUFNJWkUsIG5wLCByYyk7XFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmM9MjIzMT1zdGF0aWMgaW50IGR0RGVsZXRlVXAodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLFxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTIzMDEtXFx0XFx0LyogcGluIHRoZSBwYXJlbnQgcGFnZSBcXHUwMDNjc3BcXHUwMDNlICovXFxuZnMvamZzL2pmc19kdHJlZS5jOjIzMDI6XFx0XFx0RFRfR0VUUEFHRShpcCwgcGFyZW50LVxcdTAwM2VibiwgbXAsIFBTSVpFLCBwLCByYyk7XFxuZnMvamZzL2pmc19kdHJlZS5jLTIzMDMtXFx0XFx0aWYgKHJjKVxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jPTI0NDM9c3RhdGljIGludCBkdFJlbGluayh0aWRfdCB0aWQsIHN0cnVjdCBpbm9kZSAqaXAsIGR0cGFnZV90ICogcClcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNDU2LVxcdGlmIChuZXh0Ym4gIT0gMCkge1xcbmZzL2pmcy9qZnNfZHRyZWUuYzoyNDU3OlxcdFxcdERUX0dFVFBBR0UoaXAsIG5leHRibiwgbXAsIFBTSVpFLCBwLCByYyk7XFxuZnMvamZzL2pmc19kdHJlZS5jLTI0NTgtXFx0XFx0aWYgKHJjKVxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTI0ODUtXFx0aWYgKHByZXZibiAhPSAwKSB7XFxuZnMvamZzL2pmc19kdHJlZS5jOjI0ODY6XFx0XFx0RFRfR0VUUEFHRShpcCwgcHJldmJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtMjQ4Ny1cXHRcXHRpZiAocmMpXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmM9MjYxND1zdGF0aWMgaW50IGFkZF9taXNzaW5nX2luZGljZXMoc3RydWN0IGlub2RlICppbm9kZSwgczY0IGJuKVxcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTI2MjktXFxuZnMvamZzL2pmc19kdHJlZS5jOjI2MzA6XFx0RFRfR0VUUEFHRShpbm9kZSwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNjMxLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNjMyLVxcdGlmIChyYykge1xcbmZzL2pmcy9qZnNfZHRyZWUuYzoyNjMzOlxcdFxcdHByaW50ayhLRVJOX0VSUiBcXFwiRFRfR0VUUEFHRSBmYWlsZWQhXFxcXG5cXFwiKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtMjYzNC1cXHRcXHRnb3RvIGVuZDtcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz0yNzEyPWludCBqZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRpcl9jb250ZXh0ICpjdHgpXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmMtMjc5NC1cXHRcXHRcXHRpbmRleCA9IGRpcnRhYl9zbG90LnNsb3Q7XFxuZnMvamZzL2pmc19kdHJlZS5jOjI3OTU6XFx0XFx0XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0yNzk2LVxcdFxcdFxcdGlmIChyYykge1xcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jLTMwMzgtXFxuZnMvamZzL2pmc19kdHJlZS5jOjMwMzk6XFx0XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMDQwLVxcdFxcdGlmIChyYykge1xcbi0tXFxuZnMvamZzL2pmc19kdHJlZS5jPTMwNTg9c3RhdGljIGludCBkdFJlYWRGaXJzdChzdHJ1Y3QgaW5vZGUgKmlwLCBzdHJ1Y3QgYnRzdGFjayAqIGJ0c3RhY2spXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmMtMzA3Ni1cXHRmb3IgKGJuID0gMDs7KSB7XFxuZnMvamZzL2pmc19kdHJlZS5jOjMwNzc6XFx0XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBwc2l6ZSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMDc4LVxcdFxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYz0zMTM3PXN0YXRpYyBpbnQgZHRSZWFkTmV4dChzdHJ1Y3QgaW5vZGUgKmlwLCBsb2ZmX3QgKiBvZmZzZXQsXFxuLS1cXG5mcy9qZnMvamZzX2R0cmVlLmMtMzIyMC1cXHRibiA9IHBhcmVudC1cXHUwMDNlYm47XFxuZnMvamZzL2pmc19kdHJlZS5jOjMyMjE6XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjIyLVxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjQxLVxcdFxcdC8qIGdldCBuZXh0IHBhcmVudCBwYWdlICovXFxuZnMvamZzL2pmc19kdHJlZS5jOjMyNDI6XFx0XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjQzLVxcdFxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjYxLSAgICAgIGM6XFxuZnMvamZzL2pmc19kdHJlZS5jOjMyNjI6XFx0RFRfR0VUUEFHRShpcCwgYm4sIG1wLCBQU0laRSwgcCwgcmMpO1xcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjYzLVxcdGlmIChyYylcXG4tLVxcbmZzL2pmcy9qZnNfZHRyZWUuYy0zMjgyLVxcdFxcdC8qIGdldCBuZXh0IGxlYWYgcGFnZSAqL1xcbmZzL2pmcy9qZnNfZHRyZWUuYzozMjgzOlxcdFxcdERUX0dFVFBBR0UoaXAsIGJuLCBtcCwgUFNJWkUsIHAsIHJjKTtcXG5mcy9qZnMvamZzX2R0cmVlLmMtMzI4NC1cXHRcXHRpZiAocmMpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM4OjA1Ljc2OTEzMzk5NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NDI1NjU5OTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEN1cnJlbnQgRm9jdXM6IEtleSBGdW5jdGlvbnMgZm9yIERhdGEgTWFuYWdlbWVudCoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCB0aGUgY29yZSBmdW5jdGlvbnMgdGhhdCByZWFsbHkgZHJpdmUgdGhpcyBkYXRhIG1hbmFnZW1lbnQgc3lzdGVtLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZSBhIGNsZWFyIHVuZGVyc3RhbmRpbmcgb2YgZWFjaCBvbmUncyByb2xlIGFuZCBwb3RlbnRpYWwgaW1wYWN0LiBSaWdodCBub3csIEknbSB6ZXJvaW5nIGluIG9uOlxuXG4qICAgYGR0U2VhcmNoYDogT2J2aW91c2x5LCB0aGUgc2VhcmNoIGZ1bmN0aW9uIGlzIGNyaXRpY2FsLCBpdCdzIGhvdyB1c2VycyBhcmUgZ29pbmcgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZGF0YS5cbiogICBgZHRTcGxpdFVwYCBcdTAwMjYgYGR0U3BsaXRQYWdlYDogU3BsaXR0aW5nIHBhZ2VzIGlzIGEgY29yZSBmdW5jdGlvbiwgbXVzdCBlbnN1cmUgdGhpcyBpcyBmdW5jdGlvbmluZyBhcyBpdCBzaG91bGQuXG4qICAgYGR0RXh0ZW5kUGFnZWA6IEV4dGVuZGluZyBwYWdlcyBpcyBhbm90aGVyIGtleSBmdW5jdGlvbiBmb3IgbWFuYWdpbmcgdGhlIGZpbGVzIGFzIHRoZXkgZ3Jvdy5cbiogICBgZHREZWxldGVgIFx1MDAyNiBgZHREZWxldGVVcGA6IFBhZ2UgZGVsZXRpb24gYW5kICd1cCcgZGVsZXRpb24gYXJlIGNyaXRpY2FsLlxuKiAgIGBkdFJlbGlua2A6IFRoaXMgY291bGQgYmUgY3J1Y2lhbCBmb3IgZW5zdXJpbmcgZGF0YSBpbnRlZ3JpdHkgYW5kIGhhbmRsaW5nIHN0cnVjdHVyYWwgY2hhbmdlcy5cbiogICBgYWRkX21pc3NpbmdfaW5kaWNlc2A6IEVzc2VudGlhbCBmb3IgbWFpbnRhaW5pbmcgZWZmaWNpZW5jeSBhbmQgZGF0YSByZXRyaWV2YWwgc3BlZWQuXG4qICAgYGpmc19yZWFkZGlyYDogVGhpcyBvbmUncyBhYm91dCBpbnRlcmFjdGluZyB3aXRoIHRoZSB1bmRlcmx5aW5nIGZpbGVzeXN0ZW0sIHNvIHRoYXQgbmVlZHMgdG8gYmUgcmV2aWV3ZWQgYXMgaXQncyB0aGUgbGF5ZXIgYWJvdmUgdGhlIGRhdGEuXG4qICAgYGR0UmVhZEZpcnN0YCBcdTAwMjYgYGR0UmVhZE5leHRgOiBDcnVjaWFsIGZvciBlZmZpY2llbnQgZGF0YSB0cmF2ZXJzYWwuXG5cbk5vdywgSSBuZWVkIHRvIGNoZWNrIGB4dF9nZXRwYWdlYC4gVGhpcyBtYXkgYmUgdGhlIG5leHQgaW1wb3J0YW50IGFyZWEuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU0OTgsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwOTozODo0MC4xOTQ3OTYxMTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY4MjE4OTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInh0X2dldHBhZ2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvamZzL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9qZnMvamZzX3h0cmVlLmM9OTQ9c3RhdGljIGludCB4dFNwbGl0Um9vdCh0aWRfdCB0aWQsIHN0cnVjdCBpbm9kZSAqaXAsXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtOTctLypcXG5mcy9qZnMvamZzX3h0cmVlLmM6OTg6ICpcXHR4dF9nZXRwYWdlKClcXG5mcy9qZnMvamZzX3h0cmVlLmMtOTktICpcXG4tLVxcbmZzL2pmcy9qZnNfeHRyZWUuYy0xMTAtXFxuZnMvamZzL2pmc194dHJlZS5jOjExMTpzdGF0aWMgaW5saW5lIHh0cGFnZV90ICp4dF9nZXRwYWdlKHN0cnVjdCBpbm9kZSAqaXAsIHM2NCBibiwgc3RydWN0IG1ldGFwYWdlICoqbXApXFxuZnMvamZzL2pmc194dHJlZS5jLTExMi17XFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMTI1LVxcdCAgICAoKGJuID09IDApICE9ICEhKHAtXFx1MDAzZWhlYWRlci5mbGFnIFxcdTAwMjYgQlRfUk9PVCkpKSB7XFxuZnMvamZzL2pmc194dHJlZS5jOjEyNjpcXHRcXHRqZnNfZXJyb3IoaXAtXFx1MDAzZWlfc2IsIFxcXCJ4dF9nZXRwYWdlOiB4dHJlZSBwYWdlIGNvcnJ1cHRcXFxcblxcXCIpO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy0xMjctXFx0XFx0QlRfUFVUUEFHRSgqbXApO1xcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jPTIzMj1zdGF0aWMgaW50IHh0U2VhcmNoKHN0cnVjdCBpbm9kZSAqaXAsIHM2NCB4b2ZmLFxcdHM2NCAqbmV4dHAsXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMjcwLVxcdFxcdC8qIGdldC9waW4gdGhlIHBhZ2UgdG8gc2VhcmNoICovXFxuZnMvamZzL2pmc194dHJlZS5jOjI3MTpcXHRcXHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFxcdTAwMjZtcCk7XFxuZnMvamZzL2pmc194dHJlZS5jLTI3Mi1cXHRcXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jPTY4MD14dFNwbGl0VXAodGlkX3QgdGlkLFxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTgyNS1cXHRcXHQvKiBnZXQvcGluIHRoZSBwYXJlbnQgcGFnZSBcXHUwMDNjc3BcXHUwMDNlICovXFxuZnMvamZzL2pmc194dHJlZS5jOjgyNjpcXHRcXHRzcCA9IHh0X2dldHBhZ2UoaXAsIHBhcmVudC1cXHUwMDNlYm4sIFxcdTAwMjZzbXApO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy04MjctXFx0XFx0aWYgKElTX0VSUihzcCkpIHtcXG4tLVxcbmZzL2pmcy9qZnNfeHRyZWUuYz05NTA9eHRTcGxpdFBhZ2UodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLFxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTEwODAtXFx0aWYgKG5leHRibiAhPSAwKSB7XFxuZnMvamZzL2pmc194dHJlZS5jOjEwODE6XFx0XFx0cCA9IHh0X2dldHBhZ2UoaXAsIG5leHRibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMTA4Mi1cXHRcXHRpZiAoSVNfRVJSKHApKSB7XFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmM9MTM1Mj1pbnQgeHRFeHRlbmQodGlkX3QgdGlkLFxcdFxcdC8qIHRyYW5zYWN0aW9uIGlkICovXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMTQzNS1cXHRcXHQvKiBnZXQgYmFjayBvbGQgcGFnZSAqL1xcbmZzL2pmcy9qZnNfeHRyZWUuYzoxNDM2OlxcdFxcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMTQzNy1cXHRcXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTE0NTEtXFx0XFx0XFx0LyogZ2V0IG5ldyBjaGlsZCBwYWdlICovXFxuZnMvamZzL2pmc194dHJlZS5jOjE0NTI6XFx0XFx0XFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcXHUwMDI2bXApO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy0xNDUzLVxcdFxcdFxcdGlmIChJU19FUlIocCkpXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmM9MTUxND1pbnQgeHRVcGRhdGUodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLCB4YWRfdCAqIG54YWQpXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMTcyOS1cXHRcXHQvKiBnZXQgYmFjayBvbGQgcGFnZSAqL1xcbmZzL2pmcy9qZnNfeHRyZWUuYzoxNzMwOlxcdFxcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMTczMS1cXHRcXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTE3NDUtXFx0XFx0XFx0LyogZ2V0IG5ldyBjaGlsZCBwYWdlICovXFxuZnMvamZzL2pmc194dHJlZS5jOjE3NDY6XFx0XFx0XFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcXHUwMDI2bXApO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy0xNzQ3LVxcdFxcdFxcdGlmIChJU19FUlIocCkpXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMTgwNi1cXHRcXHQvKiBnZXQgbmV3IHJpZ2h0IHBhZ2UgKi9cXG5mcy9qZnMvamZzX3h0cmVlLmM6MTgwNzpcXHRcXHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFxcdTAwMjZtcCk7XFxuZnMvamZzL2pmc194dHJlZS5jLTE4MDgtXFx0XFx0aWYgKElTX0VSUihwKSlcXG4tLVxcbmZzL2pmcy9qZnNfeHRyZWUuYz0xODY5PXByaW50ZihcXFwieHRVcGRhdGUudXBkYXRlTGVmdC5zcGxpdCBwOjB4JXBcXFxcblxcXCIsIHApO1xcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTE4ODItXFx0XFx0LyogZ2V0IGJhY2sgb2xkIHBhZ2UgKi9cXG5mcy9qZnMvamZzX3h0cmVlLmM6MTg4MzpcXHRcXHRwID0geHRfZ2V0cGFnZShpcCwgYm4sIFxcdTAwMjZtcCk7XFxuZnMvamZzL2pmc194dHJlZS5jLTE4ODQtXFx0XFx0aWYgKElTX0VSUihwKSlcXG4tLVxcbmZzL2pmcy9qZnNfeHRyZWUuYy0xODk5LVxcdFxcdFxcdC8qIGdldCBuZXcgY2hpbGQgcGFnZSAqL1xcbmZzL2pmcy9qZnNfeHRyZWUuYzoxOTAwOlxcdFxcdFxcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMTkwMS1cXHRcXHRcXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jPTIyMDQ9czY0IHh0VHJ1bmNhdGUodGlkX3QgdGlkLCBzdHJ1Y3QgaW5vZGUgKmlwLCBzNjQgbmV3c2l6ZSwgaW50IGZsYWcpXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMjI4NS0gICAgICBnZXRQYWdlOlxcbmZzL2pmcy9qZnNfeHRyZWUuYzoyMjg2OlxcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMjI4Ny1cXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jLTI1MjMtXFx0Ym4gPSBwYXJlbnQtXFx1MDAzZWJuO1xcbmZzL2pmcy9qZnNfeHRyZWUuYzoyNTI0OlxcdHAgPSB4dF9nZXRwYWdlKGlwLCBibiwgXFx1MDAyNm1wKTtcXG5mcy9qZnMvamZzX3h0cmVlLmMtMjUyNS1cXHRpZiAoSVNfRVJSKHApKVxcbi0tXFxuZnMvamZzL2pmc194dHJlZS5jPTI3NTk9czY0IHh0VHJ1bmNhdGVfcG1hcCh0aWRfdCB0aWQsIHN0cnVjdCBpbm9kZSAqaXAsIHM2NCBjb21taXR0ZWRfc2l6ZSlcXG4tLVxcbmZzL2pmcy9qZnNfeHRyZWUuYy0yODA4LSAgICAgIGdldFBhZ2U6XFxuZnMvamZzL2pmc194dHJlZS5jOjI4MDk6XFx0XFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcXHUwMDI2bXApO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy0yODEwLVxcdFxcdGlmIChJU19FUlIocCkpXFxuLS1cXG5mcy9qZnMvamZzX3h0cmVlLmMtMjg1My1cXHRibiA9IHBhcmVudC1cXHUwMDNlYm47XFxuZnMvamZzL2pmc194dHJlZS5jOjI4NTQ6XFx0cCA9IHh0X2dldHBhZ2UoaXAsIGJuLCBcXHUwMDI2bXApO1xcbmZzL2pmcy9qZnNfeHRyZWUuYy0yODU1LVxcdGlmIChJU19FUlIocCkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDA5OjM4OjQwLjY2MzAxOTIzM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MjIyMTgyOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgRm9jdXMgZm9yIGB4dF9nZXRwYWdlYCoqXG5cbk9rYXksIHNvIEknbSBob25pbmcgaW4gb24gdGhlIGtleSBmdW5jdGlvbnMgaW52b2x2ZWQgaW4gYHh0X2dldHBhZ2VgLiBJdCBsb29rcyBsaWtlIHRoZSBjb3JlIHdvcmsgaXMgZ29pbmcgdG8gYmUgaGFuZGxlZCBieSBgeHRTZWFyY2hgLCBgeHRTcGxpdFVwYCwgYHh0U3BsaXRQYWdlYCwgYHh0RXh0ZW5kYCwgYHh0VXBkYXRlYCwgYHh0VHJ1bmNhdGVgLCBhbmQgYHh0VHJ1bmNhdGVfcG1hcGAuIEknbGwgbmVlZCB0byByZWFsbHkgdW5kZXJzdGFuZCB0aGUgaW50ZXJwbGF5IGJldHdlZW4gdGhlc2UgZnVuY3Rpb25zIHRvIGdldCBhIGZ1bGwgcGljdHVyZSBvZiB0aGUgZGF0YSByZXRyaWV2YWwgYW5kIG1hbmlwdWxhdGlvbiBwcm9jZXNzLlxuXG5Ob3csIHRoZSBjb25maWd1cmF0aW9uIGluIHBsYXkgaXMgYEpGU19GU2AsIGFuZCBJIHJlYWxseSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgaXMgdGhlIGNvcnJlY3QgY29uZmlnIHRvIGJlIGV4YW1pbmluZy4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGF0IHRoaXMgaXMgdGhlIHJlbGV2YW50IGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc3OTIsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwOTozODo0NC4wODUyNDA4MjdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODM3MDgxNzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEpGU19GU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9qZnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2pmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZnMvamZzL0tjb25maWc6Mjpjb25maWcgSkZTX0ZTXFxuZnMvamZzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiSkZTIGZpbGVzeXN0ZW0gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjFUMDk6Mzg6NDQuMTY4OTUzMjNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTMyNTQ1NjY0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGb2N1c2luZyBGdXp6aW5nIG9uIEpGUyBUcmVlIFRyYXZlcnNhbCoqXG5cbk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgSSd2ZSBjb25maXJtZWQgdGhhdCBgSkZTX0ZTYCBpcyBpbmRlZWQgdGhlIGNvcnJlY3QgY29uZmlndXJhdGlvbi4gTm93LCBsZXQncyByZWZpbmUgdGhlIGxpc3Qgb2YgZm9jdXMgc3ltYm9scyBmb3IgZnV6emluZywgc3BlY2lmaWNhbGx5IHRhcmdldGluZyB0aGUgY29yZSBmdW5jdGlvbnMgd2l0aGluIGBqZnNfZHRyZWUuY2AgYW5kIGBqZnNfeHRyZWUuY2AuXG5cbkluaXRpYWxseSwgSSBoYWQgYSBjb21wcmVoZW5zaXZlIGxpc3Q6XG5cbkZvciBgamZzX2R0cmVlLmNgOiBgZHRTZWFyY2hgLCBgZHRTcGxpdFVwYCwgYGR0U3BsaXRQYWdlYCwgYGR0RXh0ZW5kUGFnZWAsIGBkdERlbGV0ZWAsIGBkdERlbGV0ZVVwYCwgYGR0UmVsaW5rYCwgYGFkZF9taXNzaW5nX2luZGljZXNgLCBgamZzX3JlYWRkaXJgLCBgZHRSZWFkRmlyc3RgLCBgZHRSZWFkTmV4dGBcbkZvciBgamZzX3h0cmVlLmNgOiBgeHRTZWFyY2hgLCBgeHRTcGxpdFVwYCwgYHh0U3BsaXRQYWdlYCwgYHh0RXh0ZW5kYCwgYHh0VXBkYXRlYCwgYHh0VHJ1bmNhdGVgLCBgeHRUcnVuY2F0ZV9wbWFwYFxuXG5UaGVzZSBhbGwgbG9vayBsaWtlIGV4Y2VsbGVudCBjYW5kaWRhdGVzIHNpbmNlIHRoZXkncmUgaW50ZWdyYWwgdG8gSkZTIGludGVyYWN0aW9uIGFuZCBkaXJlY3RseSBjYWxsZWQgdGhlIG1vZGlmaWVkIG1hY3Jvcy4gSSB3YXMgY29uc2lkZXJpbmcgbGltaXRpbmcgdGhlIGxpc3QsIG1heWJlIHByaW9yaXRpemluZyB0aGUgdG9wLWxldmVsIGZ1bmN0aW9ucywgb3IgdGhvc2UgZGlyZWN0bHkgY2FsbGluZyB0aGUgbW9kaWZpZWQgbWFjcm9zLCBidXQgaXQgdHVybnMgb3V0IGFsbCBvZiB0aGVtIGFyZSBjYWxsaW5nIGBEVF9HRVRQQUdFYCBvciBgeHRfZ2V0cGFnZWAuXG5cbkhvd2V2ZXIsIGFmdGVyIGEgY2xvc2VyIGxvb2ssIGFuZCBhIHNsaWdodCBjb25jZXJuIGFib3V0IHBvdGVudGlhbCBob3QgcGF0aHMsIEkgYW0gZ29pbmcgdG8gZXhjbHVkZSBgamZzX3JlYWRkaXJgLCB0byBrZWVwIHRoZSBmb2N1cyBtb3JlIHNwZWNpZmljIHRvIHRoZSB0cmVlIHRyYXZlcnNhbCBsb2dpYywgd2hpY2ggaXMgdGhlIGNvcmUgY2hhbmdlIHdlIGFyZSB0YXJnZXRpbmcuIFdoaWxlIGl0J3MgSkZTIHNwZWNpZmljLCBpdCdzIGFsc28gYSB2ZXJ5IGNvbW1vbiBmdW5jdGlvbi5cblxuVGhlcmVmb3JlLCB0aGUgZmluYWwgbGlzdCBmb3IgZnV6emluZyBpczpcbmBkdFNlYXJjaGAsIGBkdFNwbGl0VXBgLCBgZHRTcGxpdFBhZ2VgLCBgZHRFeHRlbmRQYWdlYCwgYGR0RGVsZXRlYCwgYGR0RGVsZXRlVXBgLCBgZHRSZWxpbmtgLCBgYWRkX21pc3NpbmdfaW5kaWNlc2AsIGBkdFJlYWRGaXJzdGAsIGBkdFJlYWROZXh0YCwgYHh0U2VhcmNoYCwgYHh0U3BsaXRVcGAsIGB4dFNwbGl0UGFnZWAsIGB4dEV4dGVuZGAsIGB4dFVwZGF0ZWAsIGB4dFRydW5jYXRlYCwgYHh0VHJ1bmNhdGVfcG1hcGAuXG5cblRoZXNlIGFyZSB0aGUgZnVuY3Rpb25zIHRoYXQgd2lsbCBiZSB0aGUgZm9jdXMgZm9yIHRoZSBmdXp6aW5nIGFuYWx5c2lzLCBlbnN1cmluZyB0aGF0IHRoZSBuZXcgdmFsaWRhdGlvbiBjaGVja3MgaW4gYERUX0dFVFBBR0VgIGFuZCBgeHRfZ2V0cGFnZWAgY29ycmVjdGx5IGhhbmRsZSBtYWxmb3JtZWQgSkZTIGltYWdlcyB3aXRob3V0IGNhdXNpbmcgcmVncmVzc2lvbnMuXG5cbkZpbmFsbHksIGp1c3QgYSBxdWljayBkb3VibGUtY2hlY2s6IGBKRlNfRlNgIGlzIHRoZSBvbmx5IGNvbmZpZyB3ZSBuZWVkLiBBbGwgc2V0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTI2LCJPdXRwdXRUb2tlbnMiOjIyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcwNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwOTozODo1NS40OTQ0MTI2NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NDk3NDE0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSkZTX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHRTZWFyY2hcIixcbiAgICBcImR0U3BsaXRVcFwiLFxuICAgIFwiZHRTcGxpdFBhZ2VcIixcbiAgICBcImR0RXh0ZW5kUGFnZVwiLFxuICAgIFwiZHREZWxldGVcIixcbiAgICBcImR0RGVsZXRlVXBcIixcbiAgICBcImR0UmVsaW5rXCIsXG4gICAgXCJhZGRfbWlzc2luZ19pbmRpY2VzXCIsXG4gICAgXCJkdFJlYWRGaXJzdFwiLFxuICAgIFwiZHRSZWFkTmV4dFwiLFxuICAgIFwieHRTZWFyY2hcIixcbiAgICBcInh0U3BsaXRVcFwiLFxuICAgIFwieHRTcGxpdFBhZ2VcIixcbiAgICBcInh0RXh0ZW5kXCIsXG4gICAgXCJ4dFVwZGF0ZVwiLFxuICAgIFwieHRUcnVuY2F0ZVwiLFxuICAgIFwieHRUcnVuY2F0ZV9wbWFwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGNoZWNrcyBpbiBEVF9HRVRQQUdFIGFuZCB4dF9nZXRwYWdlIHRvIGVuc3VyZSB0aGF0IHRoZSByb290IGJsb2NrIGZsYWcgKEJUX1JPT1QpIGlzIGNvcnJlY3RseSBzZXQgb25seSBmb3IgdGhlIHJvb3QgYmxvY2sgKGJuID09IDApLiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIG9yIGNvcnJ1cHRpb24gaXNzdWVzIHdoZW4gcGFyc2luZyBtYWxmb3JtZWQgSkZTIGltYWdlcy4gU2luY2UgaXQgbW9kaWZpZXMgY29yZSBKRlMgdHJlZSB0cmF2ZXJzYWwgbG9naWMsIGl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2hlY2tzIGNvcnJlY3RseSBoYW5kbGUgdmFyaW91cyBjb3JydXB0ZWQgaW1hZ2VzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJKRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkdFNlYXJjaFwiLFxuICAgIFwiZHRTcGxpdFVwXCIsXG4gICAgXCJkdFNwbGl0UGFnZVwiLFxuICAgIFwiZHRFeHRlbmRQYWdlXCIsXG4gICAgXCJkdERlbGV0ZVwiLFxuICAgIFwiZHREZWxldGVVcFwiLFxuICAgIFwiZHRSZWxpbmtcIixcbiAgICBcImFkZF9taXNzaW5nX2luZGljZXNcIixcbiAgICBcImR0UmVhZEZpcnN0XCIsXG4gICAgXCJkdFJlYWROZXh0XCIsXG4gICAgXCJ4dFNlYXJjaFwiLFxuICAgIFwieHRTcGxpdFVwXCIsXG4gICAgXCJ4dFNwbGl0UGFnZVwiLFxuICAgIFwieHRFeHRlbmRcIixcbiAgICBcInh0VXBkYXRlXCIsXG4gICAgXCJ4dFRydW5jYXRlXCIsXG4gICAgXCJ4dFRydW5jYXRlX3BtYXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gY2hlY2tzIGluIERUX0dFVFBBR0UgYW5kIHh0X2dldHBhZ2UgdG8gZW5zdXJlIHRoYXQgdGhlIHJvb3QgYmxvY2sgZmxhZyAoQlRfUk9PVCkgaXMgY29ycmVjdGx5IHNldCBvbmx5IGZvciB0aGUgcm9vdCBibG9jayAoYm4gPT0gMCkuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgb3IgY29ycnVwdGlvbiBpc3N1ZXMgd2hlbiBwYXJzaW5nIG1hbGZvcm1lZCBKRlMgaW1hZ2VzLiBTaW5jZSBpdCBtb2RpZmllcyBjb3JlIEpGUyB0cmVlIHRyYXZlcnNhbCBsb2dpYywgaXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBjaGVja3MgY29ycmVjdGx5IGhhbmRsZSB2YXJpb3VzIGNvcnJ1cHRlZCBpbWFnZXMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflown76qj[1] Phase: Succeeded StartedAt: 2026-07-21 09:39:06 +0000 UTC FinishedAt: 2026-07-21 09:39:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-21 09:39:06 +0000 UTC FinishedAt: 2026-07-21 09:39:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2] Phase: Succeeded StartedAt: 2026-07-21 09:39:06 +0000 UTC FinishedAt: 2026-07-21 14:30:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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-21 09:39:06 +0000 UTC FinishedAt: 2026-07-21 14:30:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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-21 09:39:06 +0000 UTC FinishedAt: 2026-07-21 09:39:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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-21 09:39:06 +0000 UTC FinishedAt: 2026-07-21 09:39:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-workflown76qj/series-workflown76qj-convert-artifact-1887173399/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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-21 09:39:26 +0000 UTC FinishedAt: 2026-07-21 10:37:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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-21 09:39:26 +0000 UTC FinishedAt: 2026-07-21 10:37:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*b99cb7e9-1427-4b08-9c64-3c695b7d7095,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-workflown76qj/series-workflown76qj-convert-artifact-1887173399/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": "a62b3918-47f7-4734-a10e-fcd1465517c1", "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-workflown76qj/series-workflown76qj-build-action-212906432/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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: Failed StartedAt: 2026-07-21 09:39:26 +0000 UTC FinishedAt: 2026-07-21 09:47:51 +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:*b99cb7e9-1427-4b08-9c64-3c695b7d7095,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-workflown76qj/series-workflown76qj-convert-artifact-1887173399/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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(1) Phase: Succeeded StartedAt: 2026-07-21 09:57:43 +0000 UTC FinishedAt: 2026-07-21 10:37:43 +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:*b99cb7e9-1427-4b08-9c64-3c695b7d7095,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-workflown76qj/series-workflown76qj-convert-artifact-1887173399/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": "a62b3918-47f7-4734-a10e-fcd1465517c1", "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-workflown76qj/series-workflown76qj-build-action-212906432/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 10:37:53 +0000 UTC FinishedAt: 2026-07-21 10:37:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 10:37:53 +0000 UTC FinishedAt: 2026-07-21 10:37:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 10:37:53 +0000 UTC FinishedAt: 2026-07-21 10:38:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 10:37:53 +0000 UTC FinishedAt: 2026-07-21 10:38:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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-workflown76qj/series-workflown76qj-convert-artifact-924016710/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 10:38:15 +0000 UTC FinishedAt: 2026-07-21 10:40:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 10:38:15 +0000 UTC FinishedAt: 2026-07-21 10:40:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*a62b3918-47f7-4734-a10e-fcd1465517c1,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-workflown76qj/series-workflown76qj-build-action-212906432/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-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 10:40:10 +0000 UTC FinishedAt: 2026-07-21 10:40:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 10:40:10 +0000 UTC FinishedAt: 2026-07-21 10:40:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 10:40:10 +0000 UTC FinishedAt: 2026-07-21 11:22:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 10:40:10 +0000 UTC FinishedAt: 2026-07-21 11:22:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*b99cb7e9-1427-4b08-9c64-3c695b7d7095,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-workflown76qj/series-workflown76qj-convert-artifact-924016710/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": "966d191a-5258-49d1-9acf-d1afdc2fe6b3", "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-workflown76qj/series-workflown76qj-build-action-1786766218/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 10:40:10 +0000 UTC FinishedAt: 2026-07-21 11:22:11 +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:*b99cb7e9-1427-4b08-9c64-3c695b7d7095,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-workflown76qj/series-workflown76qj-convert-artifact-924016710/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": "966d191a-5258-49d1-9acf-d1afdc2fe6b3", "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-workflown76qj/series-workflown76qj-build-action-1786766218/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:22:21 +0000 UTC FinishedAt: 2026-07-21 11:22:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:22:21 +0000 UTC FinishedAt: 2026-07-21 11:22:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:22:21 +0000 UTC FinishedAt: 2026-07-21 11:24:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:22:21 +0000 UTC FinishedAt: 2026-07-21 11:24:23 +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:*966d191a-5258-49d1-9acf-d1afdc2fe6b3,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-workflown76qj/series-workflown76qj-build-action-1786766218/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-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:24:31 +0000 UTC FinishedAt: 2026-07-21 14:30:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:24:31 +0000 UTC FinishedAt: 2026-07-21 14:30:44 +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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"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:*a62b3918-47f7-4734-a10e-fcd1465517c1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*966d191a-5258-49d1-9acf-d1afdc2fe6b3,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-workflown76qj/series-workflown76qj-build-action-212906432/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-workflown76qj/series-workflown76qj-build-action-1786766218/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:24:31 +0000 UTC FinishedAt: 2026-07-21 11:24:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:24:31 +0000 UTC FinishedAt: 2026-07-21 11:24:36 +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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"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-workflown76qj/series-workflown76qj-convert-artifact-2457724171/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:24:31 +0000 UTC FinishedAt: 2026-07-21 11:24:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:24:31 +0000 UTC FinishedAt: 2026-07-21 11:24:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:24:31 +0000 UTC FinishedAt: 2026-07-21 11:24:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:24:41 +0000 UTC FinishedAt: 2026-07-21 14:30:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflown76qj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["dtSearch","dtSplitUp","dtSplitPage","dtExtendPage","dtDelete","dtDeleteUp","dtRelink","add_missing_indices","dtReadFirst","dtReadNext","xtSearch","xtSplitUp","xtSplitPage","xtExtend","xtUpdate","xtTruncate","xtTruncate_pmap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["JFS_FS"],"series_id":"f1fc4954-5360-4f11-adf1-feaca690637d","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 11:24:41 +0000 UTC FinishedAt: 2026-07-21 14:30:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*a62b3918-47f7-4734-a10e-fcd1465517c1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*966d191a-5258-49d1-9acf-d1afdc2fe6b3,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-workflown76qj/series-workflown76qj-build-action-212906432/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-workflown76qj/series-workflown76qj-build-action-1786766218/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-workflown76qj/series-workflown76qj-convert-artifact-2457724171/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,}