Name: series-workflowt777p Phase: Succeeded StartedAt: 2026-06-30 07:54:42 +0000 UTC FinishedAt: 2026-06-30 10:07:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[0] Phase: Succeeded StartedAt: 2026-06-30 07:54:42 +0000 UTC FinishedAt: 2026-06-30 08:10:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[0].run-triage Phase: Succeeded StartedAt: 2026-06-30 07:54:42 +0000 UTC FinishedAt: 2026-06-30 08:10:59 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "115446b06fb725ba04e0f2ae5174029d2c60cad6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NTFS_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "115446b06fb725ba04e0f2ae5174029d2c60cad6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NTFS_FS" ], "series_id": "3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "ntfs_lookup" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA4OjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05URlNfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtudGZzX2xvb2t1cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBoYW5kbGluZyBpbiBgbnRmc19sb29rdXBgIGZvciB0aGUgTlRGUyBmaWxlc3lzdGVtLCBjaGFuZ2luZyB0aGUgcmV0dXJuZWQgZXJyb3IgY29kZSB3aGVuIGFuIGludmFsaWQgZXJyb3IgaXMgZW5jb3VudGVyZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgaG93IGNvcnJ1cHRlZCBOVEZTIGltYWdlcyBhcmUgaGFuZGxlZCBkdXJpbmcgZGlyZWN0b3J5IGxvb2t1cHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDg6MTA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBlNzYxYmE3OTNhMGRmNTEwZTRjNzk1YWM3YWQ2ZGM0OWNlNGMyZGRjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDg6MTA6MjAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvbnRmcy9uYW1laS5jIGIvZnMvbnRmcy9uYW1laS5jXG5pbmRleCA5YzFjMzZhY2ZhZDI0ZS4uZTk1OTM4NzEzNWI1ZTIgMTAwNjQ0XG4tLS0gYS9mcy9udGZzL25hbWVpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL250ZnMvbmFtZWkuY1xuQEAgLTIzMywxMCAmIzQzOzIzMywxOCBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqbnRmc19sb29rdXAoc3RydWN0IGlub2RlICpkaXJfaW5vLCBzdHJ1Y3QgZGVudHJ5ICpkZW50LFxuIFx0XHRkX2FkZChkZW50LCBOVUxMKTtcbiBcdFx0bnRmc19kZWJ1ZyhcJiMzNDtEb25lLlwmIzM0Oyk7XG4gXHRcdHJldHVybiBOVUxMO1xuJiM0MztcdH0gZWxzZSB7XG4mIzQzO1x0XHRsb25nIGVyciA9IE1SRUZfRVJSKG1yZWYpO1xuJiM0MztcbiYjNDM7XHRcdGlmIChlcnIgXHUwMDNjIDAgXHUwMDI2XHUwMDI2IGVyciBcdTAwM2U9IC1NQVhfRVJSTk8pIHtcbiYjNDM7XHRcdFx0bnRmc19lcnJvcih2b2wtXHUwMDNlc2IsIFwmIzM0O250ZnNfbG9va3VwX2lub19ieV9uYW1lKCkgZmFpbGVkIHdpdGggZXJyb3IgY29kZSAlbGkuXCYjMzQ7LFxuJiM0MztcdFx0XHRcdGVycik7XG4mIzQzO1x0XHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4mIzQzO1x0XHR9XG4mIzQzO1x0XHRudGZzX2Vycm9yKHZvbC1cdTAwM2VzYiwgXCYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSByZXR1cm5lZCBpbnZhbGlkIGVycm9yIGNvZGUgJWxpLCB0cmVhdGluZyBhcyBkaXNrIGNvcnJ1cHRpb24uXCYjMzQ7LFxuJiM0MztcdFx0XHRlcnIpO1xuJiM0MztcdFx0cmV0dXJuIEVSUl9QVFIoLUVJTyk7XG4gXHR9XG4tXHRudGZzX2Vycm9yKHZvbC1cdTAwM2VzYiwgXCYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVpLlwmIzM0Oyxcbi1cdFx0XHQtTVJFRl9FUlIobXJlZikpO1xuLVx0cmV0dXJuIEVSUl9QVFIoTVJFRl9FUlIobXJlZikpO1xuIGhhbmRsZV9uYW1lOlxuIFx0e1xuIFx0XHRzdHJ1Y3QgbWZ0X3JlY29yZCAqbTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwODoxMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtOVEZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bnRmc19sb29rdXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBlNzYxYmE3OTNhMGRmNTEwZTRjNzk1YWM3YWQ2ZGM0OWNlNGMyZGRjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdW4gMzAgMDg6MTA6MjAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9udGZzL25hbWVpLmMgYi9mcy9udGZzL25hbWVpLmMKaW5kZXggOWMxYzM2YWNmYWQyNGUuLmU5NTkzODcxMzViNWUyIDEwMDY0NAotLS0gYS9mcy9udGZzL25hbWVpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvbnRmcy9uYW1laS5jCkBAIC0yMzMsMTAgJiM0MzsyMzMsMTggQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKm50ZnNfbG9va3VwKHN0cnVjdCBpbm9kZSAqZGlyX2lubywgc3RydWN0IGRlbnRyeSAqZGVudCwKIAkJZF9hZGQoZGVudCwgTlVMTCk7CiAJCW50ZnNfZGVidWcoJiMzNDtEb25lLiYjMzQ7KTsKIAkJcmV0dXJuIE5VTEw7CiYjNDM7CX0gZWxzZSB7CiYjNDM7CQlsb25nIGVyciA9IE1SRUZfRVJSKG1yZWYpOwomIzQzOwomIzQzOwkJaWYgKGVyciAmbHQ7IDAgJmFtcDsmYW1wOyBlcnIgJmd0Oz0gLU1BWF9FUlJOTykgewomIzQzOwkJCW50ZnNfZXJyb3Iodm9sLSZndDtzYiwgJiMzNDtudGZzX2xvb2t1cF9pbm9fYnlfbmFtZSgpIGZhaWxlZCB3aXRoIGVycm9yIGNvZGUgJWxpLiYjMzQ7LAomIzQzOwkJCQllcnIpOwomIzQzOwkJCXJldHVybiBFUlJfUFRSKGVycik7CiYjNDM7CQl9CiYjNDM7CQludGZzX2Vycm9yKHZvbC0mZ3Q7c2IsICYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSByZXR1cm5lZCBpbnZhbGlkIGVycm9yIGNvZGUgJWxpLCB0cmVhdGluZyBhcyBkaXNrIGNvcnJ1cHRpb24uJiMzNDssCiYjNDM7CQkJZXJyKTsKJiM0MzsJCXJldHVybiBFUlJfUFRSKC1FSU8pOwogCX0KLQludGZzX2Vycm9yKHZvbC0mZ3Q7c2IsICYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVpLiYjMzQ7LAotCQkJLU1SRUZfRVJSKG1yZWYpKTsKLQlyZXR1cm4gRVJSX1BUUihNUkVGX0VSUihtcmVmKSk7CiBoYW5kbGVfbmFtZToKIAl7CiAJCXN0cnVjdCBtZnRfcmVjb3JkICptOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwODoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDAxCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTlRGUyBMb29rdXAgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBmcy9udGZzL25hbWVpLmNgLiBJdCBzZWVtcyBsaWtlIHdlJiMzOTtyZSByZWZpbmluZyB0aGUgZXJyb3IgaGFuZGxpbmcgd2l0aGluIHRoZSBgbnRmc19sb29rdXBgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGFib3V0IGhvdyB3ZSBkZWFsIHdpdGggZXJyb3JzIG9yaWdpbmF0aW5nIGZyb20gYG50ZnNfbG9va3VwX2lub19ieV9uYW1lYC4gSSBzZWUgdGhlIGtleSBjaGFuZ2UgaGVyZTogcHJldmlvdXNseSwgd2UgbWlnaHQgaGF2ZSBoYWQgYSBsZXNzIHJlZmluZWQgYXBwcm9hY2ggdG8gaW50ZXJwcmV0aW5nIHRoZXNlIGVycm9ycywgYnV0IG5vdyB3ZSYjMzk7cmUgZXhwbGljaXRseSBjaGVja2luZyB0aGUgYm91bmRzIG9mIHRoZSBlcnJvciBjb2RlLgoKVGhlIGxvZ2ljIGlzIHN0cmFpZ2h0Zm9yd2FyZDsgSWYgYGVycmAgaXMgYSB2YWxpZCBuZWdhdGl2ZSBlcnJvciBjb2RlLCB3aXRoaW4gdGhlIGV4cGVjdGVkIHJhbmdlLCB3ZSBwcmVzZXJ2ZSBhbmQgcmV0dXJuIGl0IGRpcmVjdGx5IHZpYSBgRVJSX1BUUihlcnIpYC4gSG93ZXZlciwgaWYgYGVycmAgaXMgb3V0c2lkZSB0aGlzIGV4cGVjdGVkIHJhbmdlLCBpbmRpY2F0aW5nIGFuIHVua25vd24gb3IgcG90ZW50aWFsbHkgY2F0YXN0cm9waGljIGlzc3VlLCBpdCYjMzk7cyBiZWluZyAmIzM0O3JlLW1hcHBlZCYjMzQ7IHRvIGAtRUlPYCwgd2hpY2ggZXNzZW50aWFsbHkgc2lnbmFscyBhIGdlbmVyaWMgSS9PIGVycm9yIHZpYSBgRVJSX1BUUigtRUlPKWAuIFRoaXMgY291bGQgYmUgdXNlZnVsIGlmIGBudGZzX2xvb2t1cF9pbm9fYnlfbmFtZWAgcmV0dXJucyBhbiB1bmV4cGVjdGVkIGVycm9yIGNvZGUsIHdoaWNoIG1pZ2h0IGJlIGZyb20gdGhlIHVzZXIgc3BhY2UuIFRoaXMgc2VlbXMgbGlrZSBhIGdvb2QsIGRlZmVuc2l2ZSBtb3ZlIHRvIGVuc3VyZSBzdGFiaWxpdHkuIFRoaXMgbWFrZXMgc2Vuc2UgdG8gcHJvdGVjdCBhZ2FpbnN0IHVua25vd24gaXNzdWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O250ZnNfbG9va3VwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvbnRmcy9uYW1laS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL250ZnMvbmFtZWkuYz02MD1zdGF0aWMgaW50IG50ZnNfY2hlY2tfYmFkX3dpbmRvd3NfbmFtZShzdHJ1Y3QgbnRmc192b2x1bWUgKnZvbCxcbi0tXG5mcy9udGZzL25hbWVpLmMtMTAxLS8qXG5mcy9udGZzL25hbWVpLmM6MTAyOiAqIG50ZnNfbG9va3VwIC0gZmluZCB0aGUgaW5vZGUgcmVwcmVzZW50ZWQgYnkgYSBkZW50cnkgaW4gYSBkaXJlY3RvcnkgaW5vZGVcbmZzL250ZnMvbmFtZWkuYy0xMDMtICogQGRpcl9pbm86XHRkaXJlY3RvcnkgaW5vZGUgaW4gd2hpY2ggdG8gbG9vayBmb3IgdGhlIGlub2RlXG4tLVxuZnMvbnRmcy9uYW1laS5jLTEwNi0gKlxuZnMvbnRmcy9uYW1laS5jOjEwNzogKiBJbiBzaG9ydCwgbnRmc19sb29rdXAoKSBsb29rcyBmb3IgdGhlIGlub2RlIHJlcHJlc2VudGVkIGJ5IHRoZSBkZW50cnkgQGRlbnRcbmZzL250ZnMvbmFtZWkuYy0xMDgtICogaW4gdGhlIGRpcmVjdG9yeSBpbm9kZSBAZGlyX2lubyBhbmQgaWYgZm91bmQgYXR0YWNoZXMgdGhlIGlub2RlIHRvIHRoZVxuLS1cbmZzL250ZnMvbmFtZWkuYy0xMTEtICogSW4gbW9yZSBkZXRhaWwsIHRoZSBkZW50cnkgQGRlbnQgc3BlY2lmaWVzIHdoaWNoIGlub2RlIHRvIGxvb2sgZm9yIGJ5XG5mcy9udGZzL25hbWVpLmM6MTEyOiAqIHN1cHBseWluZyB0aGUgbmFtZSBvZiB0aGUgaW5vZGUgaW4gQGRlbnQtXHUwMDNlZF9uYW1lLm5hbWUuIG50ZnNfbG9va3VwKClcbmZzL250ZnMvbmFtZWkuYy0xMTMtICogY29udmVydHMgdGhlIG5hbWUgdG8gVW5pY29kZSBhbmQgd2Fsa3MgdGhlIGNvbnRlbnRzIG9mIHRoZSBkaXJlY3RvcnkgaW5vZGVcbi0tXG5mcy9udGZzL25hbWVpLmMtMTI2LSAqIGRjYWNoZSBhbmQgdGhlIGRjYWNoZSByZXF1aXJpbmcgb25seSBvbmUgZGVudHJ5IHBlciBkaXJlY3RvcnksIHdlIGRlYWwgd2l0aFxuZnMvbnRmcy9uYW1laS5jOjEyNzogKiBkZW50cnkgYWxpYXNlcyB0aGF0IG9ubHkgZGlmZmVyIGluIGNhc2UgaW4gLVx1MDAzZW50ZnNfbG9va3VwKCkgd2hpbGUgbWFpbnRhaW5pbmdcbmZzL250ZnMvbmFtZWkuYy0xMjgtICogYSBjYXNlIHNlbnNpdGl2ZSBkY2FjaGUuIFRoaXMgbWVhbnMgdGhhdCB3ZSBnZXQgdGhlIGZ1bGwgYmVuZWZpdCBvZiBkY2FjaGVcbi0tXG5mcy9udGZzL25hbWVpLmMtMTMwLSAqIC1cdTAwM2VudGZzX3JlYWRkaXIoKSBidXQgdGhhdCBhIGxvb2t1cCBmb3IgYW55IG90aGVyIGNhc2UgKG9yIGZvciB0aGUgc2hvcnQgZmlsZVxuZnMvbnRmcy9uYW1laS5jOjEzMTogKiBuYW1lKSB3aWxsIG5vdCBmaW5kIGFueXRoaW5nIGluIGRjYWNoZSBhbmQgd2lsbCBlbnRlciAtXHUwMDNlbnRmc19sb29rdXAoKVxuZnMvbnRmcy9uYW1laS5jLTEzMi0gKiBpbnN0ZWFkLCB3aGVyZSB3ZSBzZWFyY2ggdGhlIGRpcmVjdG9yeSBmb3IgYSBmdWxseSBtYXRjaGluZyBmaWxlIG5hbWVcbi0tXG5mcy9udGZzL25hbWVpLmMtMTQ1LSAqICAgIGZpbGUgbmFtZSBpbiB0aGUgV0lOMzIgb3IgUE9TSVggbmFtZXNwYWNlcy4gSW4gdGhpcyBjYXNlXG5mcy9udGZzL25hbWVpLmM6MTQ2OiAqICAgIG50ZnNfbG9va3VwX2lub2RlX2J5X25hbWUoKSB3aWxsIHJldHVybiB3aXRoIG5hbWUgc2V0IHRvIE5VTEwgYW5kIHdlXG5mcy9udGZzL25hbWVpLmMtMTQ3LSAqICAgIGp1c3QgZF9zcGxpY2VfYWxpYXMoKSBAZGVudC5cbmZzL250ZnMvbmFtZWkuYy0xNDgtICogMikgQGRlbnQgbWF0Y2hlcyAobm90IGluY2x1ZGluZyBjYXNlKSBhIGRpcmVjdG9yeSBlbnRyeSB3aXRoIGEgZmlsZSBuYW1lIGluXG5mcy9udGZzL25hbWVpLmM6MTQ5OiAqICAgIHRoZSBXSU4zMiBuYW1lc3BhY2UuIEluIHRoaXMgY2FzZSBudGZzX2xvb2t1cF9pbm9kZV9ieV9uYW1lKCkgd2lsbCByZXR1cm5cbmZzL250ZnMvbmFtZWkuYy0xNTAtICogICAgd2l0aCBuYW1lIHNldCB0byBwb2ludCB0byBhIGttYWxsb2MoKWVkIG50ZnNfbmFtZSBzdHJ1Y3R1cmUgY29udGFpbmluZ1xuLS1cbmZzL250ZnMvbmFtZWkuYy0xNjAtICogICAgZGlyZWN0b3J5IGVudHJ5IHdpdGggYSBmaWxlIG5hbWUgaW4gdGhlIERPUyBuYW1lc3BhY2UuIEluIHRoaXMgY2FzZVxuZnMvbnRmcy9uYW1laS5jOjE2MTogKiAgICBudGZzX2xvb2t1cF9pbm9kZV9ieV9uYW1lKCkgd2lsbCByZXR1cm4gd2l0aCBuYW1lIHNldCB0byBwb2ludCB0byBhXG5mcy9udGZzL25hbWVpLmMtMTYyLSAqICAgIGttYWxsb2MoKWVkIG50ZnNfbmFtZSBzdHJ1Y3R1cmUgY29udGFpbmluZyB0aGUgbWZ0IHJlZmVyZW5jZSAoY3B1IGVuZGlhbilcbi0tXG5mcy9udGZzL25hbWVpLmMtMTY5LSAqL1xuZnMvbnRmcy9uYW1laS5jOjE3MDpzdGF0aWMgc3RydWN0IGRlbnRyeSAqbnRmc19sb29rdXAoc3RydWN0IGlub2RlICpkaXJfaW5vLCBzdHJ1Y3QgZGVudHJ5ICpkZW50LFxuZnMvbnRmcy9uYW1laS5jLTE3MS1cdFx0dW5zaWduZWQgaW50IGZsYWdzKVxuLS1cbmZzL250ZnMvbmFtZWkuYy0xOTEtXHRtdXRleF9sb2NrKFx1MDAyNk5URlNfSShkaXJfaW5vKS1cdTAwM2VtcmVjX2xvY2spO1xuZnMvbnRmcy9uYW1laS5jOjE5MjpcdG1yZWYgPSBudGZzX2xvb2t1cF9pbm9kZV9ieV9uYW1lKE5URlNfSShkaXJfaW5vKSwgdW5hbWUsIHVuYW1lX2xlbixcbmZzL250ZnMvbmFtZWkuYy0xOTMtXHRcdFx0XHUwMDI2bmFtZSk7XG4tLVxuZnMvbnRmcy9uYW1laS5jLTIzOS1cdFx0aWYgKGVyciBcdTAwM2MgMCBcdTAwMjZcdTAwMjYgZXJyIFx1MDAzZT0gLU1BWF9FUlJOTykge1xuZnMvbnRmcy9uYW1laS5jOjI0MDpcdFx0XHRudGZzX2Vycm9yKHZvbC1cdTAwM2VzYiwgXCYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVsaS5cJiMzNDssXG5mcy9udGZzL25hbWVpLmMtMjQxLVx0XHRcdFx0ZXJyKTtcbi0tXG5mcy9udGZzL25hbWVpLmMtMjQzLVx0XHR9XG5mcy9udGZzL25hbWVpLmM6MjQ0Olx0XHRudGZzX2Vycm9yKHZvbC1cdTAwM2VzYiwgXCYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSByZXR1cm5lZCBpbnZhbGlkIGVycm9yIGNvZGUgJWxpLCB0cmVhdGluZyBhcyBkaXNrIGNvcnJ1cHRpb24uXCYjMzQ7LFxuZnMvbnRmcy9uYW1laS5jLTI0NS1cdFx0XHRlcnIpO1xuLS1cbmZzL250ZnMvbmFtZWkuYz0xNTgwPWNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIG50ZnNfZGlyX2lub2RlX29wcyA9IHtcbmZzL250ZnMvbmFtZWkuYzoxNTgxOlx0Lmxvb2t1cFx0XHQ9IG50ZnNfbG9va3VwLFx0LyogVkZTOiBMb29rdXAgZGlyZWN0b3J5LiAqL1xuZnMvbnRmcy9uYW1laS5jLTE1ODItXHQuY3JlYXRlXHRcdD0gbnRmc19jcmVhdGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDg6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY4MwoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDE0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQb3RlbnRpYWwgTlRGUyBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYG50ZnNfbG9va3VwYCwgYW5kIHRoYXQmIzM5O3MgaW4gYGZzL250ZnMvbmFtZWkuY2AuIE15IG1pbmQgaW1tZWRpYXRlbHkganVtcHMgdG8gbG9va3VwIG9wZXJhdGlvbnMgd2l0aGluIE5URlMsIHNvIGl0JiMzOTtzIGxpa2VseSBmdW5jdGlvbmFsIGNvZGUuIExldCBtZSBxdWlja2x5IGNoZWNrOyBpcyBOVEZTIGV2ZW4gZW5hYmxlZCBpbiBzeXprYWxsZXI/IFllYWgsIGl0IHVzdWFsbHkgaXMsIHNvIHRoYXQmIzM5O3MgYSByZWFzb25hYmxlIGFzc3VtcHRpb24uIE5vdywgdGhlIGBmcy9udGZzL2AgZGlyZWN0b3J54oCmaGFuZyBvbiBhIHNlY29uZC4gVGhlcmUmIzM5O3MgYGZzL250ZnMzL2AgdG9vLCByaWdodD8gUmlnaHQuIFRoYXQmIzM5O3MgdGhlICpuZXcqIE5URlMgZHJpdmVyLiBgZnMvbnRmcy9gIHJlcHJlc2VudHMgdGhlICpvbGQqIG9uZS4gSG1tLCBva2F5LCBsZXQmIzM5O3MgY29uZmlybSB0aGUgb2xkIG9uZSBpcyBzdGlsbCBldmVuIGluIHRoZSBrZXJuZWwuIExldCYjMzk7cyBtYWtlIHN1cmUgYGZzL250ZnMvbmFtZWkuY2AgaXMgYWN0dWFsbHkgdGhlcmUuLi55dXAsIGl0IGV4aXN0cy4gV2FpdCwgd2FzbiYjMzk7dCB0aGUgb2xkIGBudGZzYCBkcml2ZXIgcmVtb3ZlZCBhcm91bmQgdjYuOSBvciBzb21ldGhpbmc/IFRpbWUgdG8gZG91YmxlLWNoZWNrIGlmIGBmcy9udGZzYCBpcyBhY3R1YWxseSBzdGlsbCBhcm91bmQuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwODoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtmcy9udGZzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7YW9wcy5jJiMzNDssCiAgICAmIzM0O2F0dHJpYi5jJiMzNDssCiAgICAmIzM0O2F0dHJpYi5oJiMzNDssCiAgICAmIzM0O2F0dHJsaXN0LmMmIzM0OywKICAgICYjMzQ7YXR0cmxpc3QuaCYjMzQ7LAogICAgJiMzNDtiZGV2LWlvLmMmIzM0OywKICAgICYjMzQ7Yml0bWFwLmMmIzM0OywKICAgICYjMzQ7Yml0bWFwLmgmIzM0OywKICAgICYjMzQ7Y29sbGF0ZS5jJiMzNDssCiAgICAmIzM0O2NvbGxhdGUuaCYjMzQ7LAogICAgJiMzNDtjb21wcmVzcy5jJiMzNDssCiAgICAmIzM0O2RlYnVnLmMmIzM0OywKICAgICYjMzQ7ZGVidWcuaCYjMzQ7LAogICAgJiMzNDtkaXIuYyYjMzQ7LAogICAgJiMzNDtkaXIuaCYjMzQ7LAogICAgJiMzNDtlYS5jJiMzNDssCiAgICAmIzM0O2VhLmgmIzM0OywKICAgICYjMzQ7ZmlsZS5jJiMzNDssCiAgICAmIzM0O2luZGV4LmMmIzM0OywKICAgICYjMzQ7aW5kZXguaCYjMzQ7LAogICAgJiMzNDtpbm9kZS5jJiMzNDssCiAgICAmIzM0O2lub2RlLmgmIzM0OywKICAgICYjMzQ7aW9tYXAuYyYjMzQ7LAogICAgJiMzNDtpb21hcC5oJiMzNDssCiAgICAmIzM0O2xheW91dC5oJiMzNDssCiAgICAmIzM0O2xjbmFsbG9jLmMmIzM0OywKICAgICYjMzQ7bGNuYWxsb2MuaCYjMzQ7LAogICAgJiMzNDtsb2dmaWxlLmMmIzM0OywKICAgICYjMzQ7bG9nZmlsZS5oJiMzNDssCiAgICAmIzM0O21hbGxvYy5oJiMzNDssCiAgICAmIzM0O21mdC5jJiMzNDssCiAgICAmIzM0O21mdC5oJiMzNDssCiAgICAmIzM0O21zdC5jJiMzNDssCiAgICAmIzM0O25hbWVpLmMmIzM0OywKICAgICYjMzQ7bnRmcy5oJiMzNDssCiAgICAmIzM0O29iamVjdF9pZC5jJiMzNDssCiAgICAmIzM0O29iamVjdF9pZC5oJiMzNDssCiAgICAmIzM0O3JlcGFyc2UuYyYjMzQ7LAogICAgJiMzNDtyZXBhcnNlLmgmIzM0OywKICAgICYjMzQ7cnVubGlzdC5jJiMzNDssCiAgICAmIzM0O3J1bmxpc3QuaCYjMzQ7LAogICAgJiMzNDtzdXBlci5jJiMzNDssCiAgICAmIzM0O3N5c2N0bC5jJiMzNDssCiAgICAmIzM0O3N5c2N0bC5oJiMzNDssCiAgICAmIzM0O3RpbWUuaCYjMzQ7LAogICAgJiMzNDt1bmlzdHIuYyYjMzQ7LAogICAgJiMzNDt1cGNhc2UuYyYjMzQ7LAogICAgJiMzNDt2b2x1bWUuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDg6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQxMAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBOVEZTIEZpbGVzeXN0ZW0gSW1wbGVtZW50YXRpb24qKgoKUmlnaHQsIGBmcy9udGZzYCBpcyBhIHRoaW5nLiBJIGtuZXcgaXQgZXhpc3RlZCwgYnV0IGxldCYjMzk7cyBub3QganVzdCBhc3N1bWUgZXZlcnl0aGluZyBpcyBhcyBpdCBzaG91bGQgYmUuIFRoZSBkZXZpbCYjMzk7cyBpbiB0aGUgZGV0YWlscywgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBzb21ldGhpbmcgYXMgY29tcGxleCBhcyBhIGZpbGVzeXN0ZW0gaW1wbGVtZW50YXRpb24uIFRpbWUgdG8gY2hlY2sgYGZzL250ZnMvS2NvbmZpZ2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHRoZSBkZXBlbmRlbmNpZXMsIGFuZCB0aGUgb3ZlcmFsbCBidWlsZCBpbmZyYXN0cnVjdHVyZSBhcm91bmQgdGhpcyB0aGluZyBiZWZvcmUgSSBkZWx2ZSBkZWVwZXIuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoZSBjb25maWd1cmF0aW9uIGxpdmVzIC0gbGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIHdoYXQuIFRoZSBLY29uZmlnIGZpbGUgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGxheSBvZiB0aGUgbGFuZCwgcHJvdmlkaW5nIHZpdGFsIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDg6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5URlNfRlMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9udGZzL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvbnRmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5mcy9udGZzL0tjb25maWc6Mjpjb25maWcgTlRGU19GU1xuZnMvbnRmcy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtOVEZTIGZpbGUgc3lzdGVtIHN1cHBvcnRcJiMzNDtcbi0tXG5mcy9udGZzL0tjb25maWc9MTM9Y29uZmlnIE5URlNfREVCVUdcbi0tXG5mcy9udGZzL0tjb25maWctMzQtXG5mcy9udGZzL0tjb25maWc6MzU6Y29uZmlnIE5URlNfRlNfUE9TSVhfQUNMXG5mcy9udGZzL0tjb25maWctMzYtXHRib29sIFwmIzM0O05URlMgUE9TSVggQWNjZXNzIENvbnRyb2wgTGlzdHNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwODoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzcyCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTlRGUyBMb29rdXAgRXJyb3IgSGFuZGxpbmcgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgdHdlYWtpbmcgdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiBgbnRmc19sb29rdXBgLiBJdCBsb29rcyBsaWtlIHRoZSBtYWluIGNoYW5nZSBjZW50ZXJzIGFyb3VuZCBob3cgd2UgZGVhbCB3aXRoIHRoZSBlcnJvciBjb2RlIHJldHVybmVkIGZyb20gdGhlIGBNUkVGX0VSUmAgbWFjcm8uIFJpZ2h0LCBzbyBhIGNoZWNrIGhhcyBiZWVuIGFkZGVkOiBgZXJyICZsdDsgMCAmYW1wOyZhbXA7IGVyciAmZ3Q7PSAtTUFYX0VSUk5PYC4gSWYgdGhhdCBjb25kaXRpb24gaXMgbWV0LCB0aGVuIGBFUlJfUFRSKGVycilgIGlzIHJldHVybmVkLiBPdGhlcndpc2UsIGl0IGRlZmF1bHRzIHRvIHJldHVybmluZyBgRVJSX1BUUigtRUlPKWAuCgpUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYXMgaXQgbW9kaWZpZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBgbnRmc19sb29rdXBgIHVuZGVyIGNlcnRhaW4gZXJyb3IgY29uZGl0aW9ucy4gU3BlY2lmaWNhbGx5LCB3aGVuIGBNUkVGX0VSUihtcmVmKWAgc3BpdHMgb3V0IHNvbWV0aGluZyBvdXRzaWRlIHRoZSB0eXBpY2FsIHJhbmdlLiBUaGF0JiMzOTtzIGEga2V5IHBvaW50LiBMZXQgbWUgY2hlY2sgd2hhdCB0aGF0IG1hY3JvIGRvZXMsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoYXQgZnVsbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0OyNkZWZpbmUgTVJFRl9FUlImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9udGZzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9udGZzL2xheW91dC5oPTMzND1lbnVtIHtcbi0tXG5mcy9udGZzL2xheW91dC5oLTM4MC0jZGVmaW5lIEVSUl9NUkVGKHgpXHQoKHU2NCkoKHM2NCkoeCkpKVxuZnMvbnRmcy9sYXlvdXQuaDozODE6I2RlZmluZSBNUkVGX0VSUih4KVx0KChpbnQpKChzNjQpKHgpKSlcbmZzL250ZnMvbGF5b3V0LmgtMzgyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwODoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjE2CgkJCQkJCQlvdXRwdXQ6IDkwCgkJCQkJCQl0aG91Z2h0czogMzI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldCoqCgpPa2F5LCBzbyB0aGlzIGBNUkVGX0VSUmAgdGhpbmcuLi4gaXQmIzM5O3MgZG9pbmcgYSB0eXBlIGNhc3QgZnJvbSBgdTY0YCB0byBgczY0YCBhbmQgdGhlbiB0byBgaW50YC4gVGhlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhhdCBpdCYjMzk7cyByZXBsYWNpbmcgaW52YWxpZCBlcnJvciBjb2RlcyB3aXRoIGAtRUlPYC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgYmVoYXZpb3Igc2hpZnQuIFRoZSBxdWVzdGlvbiBpcywgaXMgaXQgd29ydGggZnV6emluZz8gQ29uc2lkZXJpbmcgaXQgcmVsYXRlcyB0byBob3cgY29ycnVwdGVkIE5URlMgaW1hZ2VzIGFyZSBoYW5kbGVkLCBhYnNvbHV0ZWx5LCBpdCYjMzk7cyB3b3J0aCB0aGUgZWZmb3J0LiBNeSBwcmltYXJ5IGZvY3VzIHNob3VsZCBiZSBvbiB0aGUgYG50ZnNfbG9va3VwYCBmdW5jdGlvbi4gVGhlIGtleSBjb25maWd1cmF0aW9uIG5lZWRlZCBpcyBgTlRGU19GU2AuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRoYXQgYG50ZnNfbG9va3VwYCBpcyBhY3R1YWxseSByZWFjaGFibGUuIFJpZ2h0LCBpdCYjMzk7cyBwYXJ0IG9mIGBudGZzX2Rpcl9pbm9kZV9vcHNgLCBzcGVjaWZpY2FsbHkgdGhlIGAubG9va3VwYCBvcGVyYXRpb24uIFNvLCBpdCYjMzk7cyBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIHN0YW5kYXJkIFZGUyBsb29rdXAgb3BlcmF0aW9ucyBvbiBhbiBOVEZTIGZpbGVzeXN0ZW0g4oCTIGdvb2QuCgpJJiMzOTtsbCBtYWtlIGEgbm90ZTogKipgbnRmc19sb29rdXBgKiogaXMgdGhlIGZ1bmN0aW9uIHRvIGZvY3VzIG9uLiBJJiMzOTtsbCBhbHNvIGFkZCAqKmBOVEZTX0ZTYCoqIHRvIHRoZSBlbmFibGVkIGNvbmZpZ3VyYXRpb25zLgoKV2FpdCBhIHNlY29uZC4uLiByaWdodCwgYG50ZnNfbG9va3VwYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiBpbiBgZnMvbnRmcy9uYW1laS5jYC4gSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMuIE5vcGUsIHRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgYG50ZnNfbG9va3VwYC4KCkxldCYjMzk7cyBxdWlja2x5IHZlcmlmeSB0aGUgY29uZmlncy4gSnVzdCBgTlRGU19GU2AsIG5vdGhpbmcgZWxzZS4KCkFscmlnaHQsIHRpbWUgdG8gZm9ybXVsYXRlIGEgY29uY2lzZSByZXNwb25zZToKCiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqCiogICAqKkZvY3VzU3ltYm9sczogXFsmIzM0O250ZnNfbG9va3VwJiMzNDtcXSoqCiogICAqKkVuYWJsZUNvbmZpZ3M6IFxbJiMzNDtOVEZTXF9GUyYjMzQ7XF0qKgoqICAgKipSZWFzb25pbmc6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGhhbmRsaW5nIGluIGBudGZzX2xvb2t1cGAgZm9yIHRoZSBOVEZTIGZpbGVzeXN0ZW0sIGNoYW5naW5nIHRoZSByZXR1cm5lZCBlcnJvciBjb2RlIHdoZW4gYW4gaW52YWxpZCBlcnJvciBpcyBlbmNvdW50ZXJlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBob3cgY29ycnVwdGVkIE5URlMgaW1hZ2VzIGFyZSBoYW5kbGVkIGR1cmluZyBkaXJlY3RvcnkgbG9va3Vwcy4mIzM0OyoqCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtOVEZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bnRmc19sb29rdXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtOVEZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bnRmc19sb29rdXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDg6MTA6MjEuOTc0MjE1NzgzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU2NzM5NDgwNTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTlRGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm50ZnNfbG9va3VwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwODoxMDoyMS45NzQyMjMzNTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjc4NDE3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGU3NjFiYTc5M2EwZGY1MTBlNGM3OTVhYzdhZDZkYzQ5Y2U0YzJkZGNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDg6MTA6MjAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvbnRmcy9uYW1laS5jIGIvZnMvbnRmcy9uYW1laS5jXFxuaW5kZXggOWMxYzM2YWNmYWQyNGUuLmU5NTkzODcxMzViNWUyIDEwMDY0NFxcbi0tLSBhL2ZzL250ZnMvbmFtZWkuY1xcbisrKyBiL2ZzL250ZnMvbmFtZWkuY1xcbkBAIC0yMzMsMTAgKzIzMywxOCBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqbnRmc19sb29rdXAoc3RydWN0IGlub2RlICpkaXJfaW5vLCBzdHJ1Y3QgZGVudHJ5ICpkZW50LFxcbiBcXHRcXHRkX2FkZChkZW50LCBOVUxMKTtcXG4gXFx0XFx0bnRmc19kZWJ1ZyhcXFwiRG9uZS5cXFwiKTtcXG4gXFx0XFx0cmV0dXJuIE5VTEw7XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdGxvbmcgZXJyID0gTVJFRl9FUlIobXJlZik7XFxuK1xcbitcXHRcXHRpZiAoZXJyIFxcdTAwM2MgMCBcXHUwMDI2XFx1MDAyNiBlcnIgXFx1MDAzZT0gLU1BWF9FUlJOTykge1xcbitcXHRcXHRcXHRudGZzX2Vycm9yKHZvbC1cXHUwMDNlc2IsIFxcXCJudGZzX2xvb2t1cF9pbm9fYnlfbmFtZSgpIGZhaWxlZCB3aXRoIGVycm9yIGNvZGUgJWxpLlxcXCIsXFxuK1xcdFxcdFxcdFxcdGVycik7XFxuK1xcdFxcdFxcdHJldHVybiBFUlJfUFRSKGVycik7XFxuK1xcdFxcdH1cXG4rXFx0XFx0bnRmc19lcnJvcih2b2wtXFx1MDAzZXNiLCBcXFwibnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSByZXR1cm5lZCBpbnZhbGlkIGVycm9yIGNvZGUgJWxpLCB0cmVhdGluZyBhcyBkaXNrIGNvcnJ1cHRpb24uXFxcIixcXG4rXFx0XFx0XFx0ZXJyKTtcXG4rXFx0XFx0cmV0dXJuIEVSUl9QVFIoLUVJTyk7XFxuIFxcdH1cXG4tXFx0bnRmc19lcnJvcih2b2wtXFx1MDAzZXNiLCBcXFwibnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVpLlxcXCIsXFxuLVxcdFxcdFxcdC1NUkVGX0VSUihtcmVmKSk7XFxuLVxcdHJldHVybiBFUlJfUFRSKE1SRUZfRVJSKG1yZWYpKTtcXG4gaGFuZGxlX25hbWU6XFxuIFxcdHtcXG4gXFx0XFx0c3RydWN0IG1mdF9yZWNvcmQgKm07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA4OjEwOjIyLjQ4MjA5NzgzM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjUxNjYwMzE5NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTlRGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm50ZnNfbG9va3VwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGU3NjFiYTc5M2EwZGY1MTBlNGM3OTVhYzdhZDZkYzQ5Y2U0YzJkZGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAwODoxMDoyMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL250ZnMvbmFtZWkuYyBiL2ZzL250ZnMvbmFtZWkuY1xuaW5kZXggOWMxYzM2YWNmYWQyNGUuLmU5NTkzODcxMzViNWUyIDEwMDY0NFxuLS0tIGEvZnMvbnRmcy9uYW1laS5jXG4rKysgYi9mcy9udGZzL25hbWVpLmNcbkBAIC0yMzMsMTAgKzIzMywxOCBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqbnRmc19sb29rdXAoc3RydWN0IGlub2RlICpkaXJfaW5vLCBzdHJ1Y3QgZGVudHJ5ICpkZW50LFxuIFx0XHRkX2FkZChkZW50LCBOVUxMKTtcbiBcdFx0bnRmc19kZWJ1ZyhcIkRvbmUuXCIpO1xuIFx0XHRyZXR1cm4gTlVMTDtcbitcdH0gZWxzZSB7XG4rXHRcdGxvbmcgZXJyID0gTVJFRl9FUlIobXJlZik7XG4rXG4rXHRcdGlmIChlcnIgXHUwMDNjIDAgXHUwMDI2XHUwMDI2IGVyciBcdTAwM2U9IC1NQVhfRVJSTk8pIHtcbitcdFx0XHRudGZzX2Vycm9yKHZvbC1cdTAwM2VzYiwgXCJudGZzX2xvb2t1cF9pbm9fYnlfbmFtZSgpIGZhaWxlZCB3aXRoIGVycm9yIGNvZGUgJWxpLlwiLFxuK1x0XHRcdFx0ZXJyKTtcbitcdFx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuK1x0XHR9XG4rXHRcdG50ZnNfZXJyb3Iodm9sLVx1MDAzZXNiLCBcIm50ZnNfbG9va3VwX2lub19ieV9uYW1lKCkgcmV0dXJuZWQgaW52YWxpZCBlcnJvciBjb2RlICVsaSwgdHJlYXRpbmcgYXMgZGlzayBjb3JydXB0aW9uLlwiLFxuK1x0XHRcdGVycik7XG4rXHRcdHJldHVybiBFUlJfUFRSKC1FSU8pO1xuIFx0fVxuLVx0bnRmc19lcnJvcih2b2wtXHUwMDNlc2IsIFwibnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVpLlwiLFxuLVx0XHRcdC1NUkVGX0VSUihtcmVmKSk7XG4tXHRyZXR1cm4gRVJSX1BUUihNUkVGX0VSUihtcmVmKSk7XG4gaGFuZGxlX25hbWU6XG4gXHR7XG4gXHRcdHN0cnVjdCBtZnRfcmVjb3JkICptO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDg6MTA6MjIuNDgyMTAwOTMzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAxMzI0OTExMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5URlMgTG9va3VwIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGZzL250ZnMvbmFtZWkuY2AuIEl0IHNlZW1zIGxpa2Ugd2UncmUgcmVmaW5pbmcgdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgYG50ZnNfbG9va3VwYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCdzIGFib3V0IGhvdyB3ZSBkZWFsIHdpdGggZXJyb3JzIG9yaWdpbmF0aW5nIGZyb20gYG50ZnNfbG9va3VwX2lub19ieV9uYW1lYC4gSSBzZWUgdGhlIGtleSBjaGFuZ2UgaGVyZTogcHJldmlvdXNseSwgd2UgbWlnaHQgaGF2ZSBoYWQgYSBsZXNzIHJlZmluZWQgYXBwcm9hY2ggdG8gaW50ZXJwcmV0aW5nIHRoZXNlIGVycm9ycywgYnV0IG5vdyB3ZSdyZSBleHBsaWNpdGx5IGNoZWNraW5nIHRoZSBib3VuZHMgb2YgdGhlIGVycm9yIGNvZGUuXG5cblRoZSBsb2dpYyBpcyBzdHJhaWdodGZvcndhcmQ7IElmIGBlcnJgIGlzIGEgdmFsaWQgbmVnYXRpdmUgZXJyb3IgY29kZSwgd2l0aGluIHRoZSBleHBlY3RlZCByYW5nZSwgd2UgcHJlc2VydmUgYW5kIHJldHVybiBpdCBkaXJlY3RseSB2aWEgYEVSUl9QVFIoZXJyKWAuIEhvd2V2ZXIsIGlmIGBlcnJgIGlzIG91dHNpZGUgdGhpcyBleHBlY3RlZCByYW5nZSwgaW5kaWNhdGluZyBhbiB1bmtub3duIG9yIHBvdGVudGlhbGx5IGNhdGFzdHJvcGhpYyBpc3N1ZSwgaXQncyBiZWluZyBcInJlLW1hcHBlZFwiIHRvIGAtRUlPYCwgd2hpY2ggZXNzZW50aWFsbHkgc2lnbmFscyBhIGdlbmVyaWMgSS9PIGVycm9yIHZpYSBgRVJSX1BUUigtRUlPKWAuIFRoaXMgY291bGQgYmUgdXNlZnVsIGlmIGBudGZzX2xvb2t1cF9pbm9fYnlfbmFtZWAgcmV0dXJucyBhbiB1bmV4cGVjdGVkIGVycm9yIGNvZGUsIHdoaWNoIG1pZ2h0IGJlIGZyb20gdGhlIHVzZXIgc3BhY2UuIFRoaXMgc2VlbXMgbGlrZSBhIGdvb2QsIGRlZmVuc2l2ZSBtb3ZlIHRvIGVuc3VyZSBzdGFiaWxpdHkuIFRoaXMgbWFrZXMgc2Vuc2UgdG8gcHJvdGVjdCBhZ2FpbnN0IHVua25vd24gaXNzdWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDAxLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDg6MTA6MjYuNDk1MzUzMTc0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjc1Njk0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJudGZzX2xvb2t1cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9udGZzL25hbWVpLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvbnRmcy9uYW1laS5jPTYwPXN0YXRpYyBpbnQgbnRmc19jaGVja19iYWRfd2luZG93c19uYW1lKHN0cnVjdCBudGZzX3ZvbHVtZSAqdm9sLFxcbi0tXFxuZnMvbnRmcy9uYW1laS5jLTEwMS0vKlxcbmZzL250ZnMvbmFtZWkuYzoxMDI6ICogbnRmc19sb29rdXAgLSBmaW5kIHRoZSBpbm9kZSByZXByZXNlbnRlZCBieSBhIGRlbnRyeSBpbiBhIGRpcmVjdG9yeSBpbm9kZVxcbmZzL250ZnMvbmFtZWkuYy0xMDMtICogQGRpcl9pbm86XFx0ZGlyZWN0b3J5IGlub2RlIGluIHdoaWNoIHRvIGxvb2sgZm9yIHRoZSBpbm9kZVxcbi0tXFxuZnMvbnRmcy9uYW1laS5jLTEwNi0gKlxcbmZzL250ZnMvbmFtZWkuYzoxMDc6ICogSW4gc2hvcnQsIG50ZnNfbG9va3VwKCkgbG9va3MgZm9yIHRoZSBpbm9kZSByZXByZXNlbnRlZCBieSB0aGUgZGVudHJ5IEBkZW50XFxuZnMvbnRmcy9uYW1laS5jLTEwOC0gKiBpbiB0aGUgZGlyZWN0b3J5IGlub2RlIEBkaXJfaW5vIGFuZCBpZiBmb3VuZCBhdHRhY2hlcyB0aGUgaW5vZGUgdG8gdGhlXFxuLS1cXG5mcy9udGZzL25hbWVpLmMtMTExLSAqIEluIG1vcmUgZGV0YWlsLCB0aGUgZGVudHJ5IEBkZW50IHNwZWNpZmllcyB3aGljaCBpbm9kZSB0byBsb29rIGZvciBieVxcbmZzL250ZnMvbmFtZWkuYzoxMTI6ICogc3VwcGx5aW5nIHRoZSBuYW1lIG9mIHRoZSBpbm9kZSBpbiBAZGVudC1cXHUwMDNlZF9uYW1lLm5hbWUuIG50ZnNfbG9va3VwKClcXG5mcy9udGZzL25hbWVpLmMtMTEzLSAqIGNvbnZlcnRzIHRoZSBuYW1lIHRvIFVuaWNvZGUgYW5kIHdhbGtzIHRoZSBjb250ZW50cyBvZiB0aGUgZGlyZWN0b3J5IGlub2RlXFxuLS1cXG5mcy9udGZzL25hbWVpLmMtMTI2LSAqIGRjYWNoZSBhbmQgdGhlIGRjYWNoZSByZXF1aXJpbmcgb25seSBvbmUgZGVudHJ5IHBlciBkaXJlY3RvcnksIHdlIGRlYWwgd2l0aFxcbmZzL250ZnMvbmFtZWkuYzoxMjc6ICogZGVudHJ5IGFsaWFzZXMgdGhhdCBvbmx5IGRpZmZlciBpbiBjYXNlIGluIC1cXHUwMDNlbnRmc19sb29rdXAoKSB3aGlsZSBtYWludGFpbmluZ1xcbmZzL250ZnMvbmFtZWkuYy0xMjgtICogYSBjYXNlIHNlbnNpdGl2ZSBkY2FjaGUuIFRoaXMgbWVhbnMgdGhhdCB3ZSBnZXQgdGhlIGZ1bGwgYmVuZWZpdCBvZiBkY2FjaGVcXG4tLVxcbmZzL250ZnMvbmFtZWkuYy0xMzAtICogLVxcdTAwM2VudGZzX3JlYWRkaXIoKSBidXQgdGhhdCBhIGxvb2t1cCBmb3IgYW55IG90aGVyIGNhc2UgKG9yIGZvciB0aGUgc2hvcnQgZmlsZVxcbmZzL250ZnMvbmFtZWkuYzoxMzE6ICogbmFtZSkgd2lsbCBub3QgZmluZCBhbnl0aGluZyBpbiBkY2FjaGUgYW5kIHdpbGwgZW50ZXIgLVxcdTAwM2VudGZzX2xvb2t1cCgpXFxuZnMvbnRmcy9uYW1laS5jLTEzMi0gKiBpbnN0ZWFkLCB3aGVyZSB3ZSBzZWFyY2ggdGhlIGRpcmVjdG9yeSBmb3IgYSBmdWxseSBtYXRjaGluZyBmaWxlIG5hbWVcXG4tLVxcbmZzL250ZnMvbmFtZWkuYy0xNDUtICogICAgZmlsZSBuYW1lIGluIHRoZSBXSU4zMiBvciBQT1NJWCBuYW1lc3BhY2VzLiBJbiB0aGlzIGNhc2VcXG5mcy9udGZzL25hbWVpLmM6MTQ2OiAqICAgIG50ZnNfbG9va3VwX2lub2RlX2J5X25hbWUoKSB3aWxsIHJldHVybiB3aXRoIG5hbWUgc2V0IHRvIE5VTEwgYW5kIHdlXFxuZnMvbnRmcy9uYW1laS5jLTE0Ny0gKiAgICBqdXN0IGRfc3BsaWNlX2FsaWFzKCkgQGRlbnQuXFxuZnMvbnRmcy9uYW1laS5jLTE0OC0gKiAyKSBAZGVudCBtYXRjaGVzIChub3QgaW5jbHVkaW5nIGNhc2UpIGEgZGlyZWN0b3J5IGVudHJ5IHdpdGggYSBmaWxlIG5hbWUgaW5cXG5mcy9udGZzL25hbWVpLmM6MTQ5OiAqICAgIHRoZSBXSU4zMiBuYW1lc3BhY2UuIEluIHRoaXMgY2FzZSBudGZzX2xvb2t1cF9pbm9kZV9ieV9uYW1lKCkgd2lsbCByZXR1cm5cXG5mcy9udGZzL25hbWVpLmMtMTUwLSAqICAgIHdpdGggbmFtZSBzZXQgdG8gcG9pbnQgdG8gYSBrbWFsbG9jKCllZCBudGZzX25hbWUgc3RydWN0dXJlIGNvbnRhaW5pbmdcXG4tLVxcbmZzL250ZnMvbmFtZWkuYy0xNjAtICogICAgZGlyZWN0b3J5IGVudHJ5IHdpdGggYSBmaWxlIG5hbWUgaW4gdGhlIERPUyBuYW1lc3BhY2UuIEluIHRoaXMgY2FzZVxcbmZzL250ZnMvbmFtZWkuYzoxNjE6ICogICAgbnRmc19sb29rdXBfaW5vZGVfYnlfbmFtZSgpIHdpbGwgcmV0dXJuIHdpdGggbmFtZSBzZXQgdG8gcG9pbnQgdG8gYVxcbmZzL250ZnMvbmFtZWkuYy0xNjItICogICAga21hbGxvYygpZWQgbnRmc19uYW1lIHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBtZnQgcmVmZXJlbmNlIChjcHUgZW5kaWFuKVxcbi0tXFxuZnMvbnRmcy9uYW1laS5jLTE2OS0gKi9cXG5mcy9udGZzL25hbWVpLmM6MTcwOnN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpudGZzX2xvb2t1cChzdHJ1Y3QgaW5vZGUgKmRpcl9pbm8sIHN0cnVjdCBkZW50cnkgKmRlbnQsXFxuZnMvbnRmcy9uYW1laS5jLTE3MS1cXHRcXHR1bnNpZ25lZCBpbnQgZmxhZ3MpXFxuLS1cXG5mcy9udGZzL25hbWVpLmMtMTkxLVxcdG11dGV4X2xvY2soXFx1MDAyNk5URlNfSShkaXJfaW5vKS1cXHUwMDNlbXJlY19sb2NrKTtcXG5mcy9udGZzL25hbWVpLmM6MTkyOlxcdG1yZWYgPSBudGZzX2xvb2t1cF9pbm9kZV9ieV9uYW1lKE5URlNfSShkaXJfaW5vKSwgdW5hbWUsIHVuYW1lX2xlbixcXG5mcy9udGZzL25hbWVpLmMtMTkzLVxcdFxcdFxcdFxcdTAwMjZuYW1lKTtcXG4tLVxcbmZzL250ZnMvbmFtZWkuYy0yMzktXFx0XFx0aWYgKGVyciBcXHUwMDNjIDAgXFx1MDAyNlxcdTAwMjYgZXJyIFxcdTAwM2U9IC1NQVhfRVJSTk8pIHtcXG5mcy9udGZzL25hbWVpLmM6MjQwOlxcdFxcdFxcdG50ZnNfZXJyb3Iodm9sLVxcdTAwM2VzYiwgXFxcIm50ZnNfbG9va3VwX2lub19ieV9uYW1lKCkgZmFpbGVkIHdpdGggZXJyb3IgY29kZSAlbGkuXFxcIixcXG5mcy9udGZzL25hbWVpLmMtMjQxLVxcdFxcdFxcdFxcdGVycik7XFxuLS1cXG5mcy9udGZzL25hbWVpLmMtMjQzLVxcdFxcdH1cXG5mcy9udGZzL25hbWVpLmM6MjQ0OlxcdFxcdG50ZnNfZXJyb3Iodm9sLVxcdTAwM2VzYiwgXFxcIm50ZnNfbG9va3VwX2lub19ieV9uYW1lKCkgcmV0dXJuZWQgaW52YWxpZCBlcnJvciBjb2RlICVsaSwgdHJlYXRpbmcgYXMgZGlzayBjb3JydXB0aW9uLlxcXCIsXFxuZnMvbnRmcy9uYW1laS5jLTI0NS1cXHRcXHRcXHRlcnIpO1xcbi0tXFxuZnMvbnRmcy9uYW1laS5jPTE1ODA9Y29uc3Qgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgbnRmc19kaXJfaW5vZGVfb3BzID0ge1xcbmZzL250ZnMvbmFtZWkuYzoxNTgxOlxcdC5sb29rdXBcXHRcXHQ9IG50ZnNfbG9va3VwLFxcdC8qIFZGUzogTG9va3VwIGRpcmVjdG9yeS4gKi9cXG5mcy9udGZzL25hbWVpLmMtMTU4Mi1cXHQuY3JlYXRlXFx0XFx0PSBudGZzX2NyZWF0ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDg6MTA6MjYuNjAyMTIxNjk0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIzNzk2NDg1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQb3RlbnRpYWwgTlRGUyBWdWxuZXJhYmlsaXR5KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgbnRmc19sb29rdXBgLCBhbmQgdGhhdCdzIGluIGBmcy9udGZzL25hbWVpLmNgLiBNeSBtaW5kIGltbWVkaWF0ZWx5IGp1bXBzIHRvIGxvb2t1cCBvcGVyYXRpb25zIHdpdGhpbiBOVEZTLCBzbyBpdCdzIGxpa2VseSBmdW5jdGlvbmFsIGNvZGUuIExldCBtZSBxdWlja2x5IGNoZWNrOyBpcyBOVEZTIGV2ZW4gZW5hYmxlZCBpbiBzeXprYWxsZXI/IFllYWgsIGl0IHVzdWFsbHkgaXMsIHNvIHRoYXQncyBhIHJlYXNvbmFibGUgYXNzdW1wdGlvbi4gTm93LCB0aGUgYGZzL250ZnMvYCBkaXJlY3RvcnnigKZoYW5nIG9uIGEgc2Vjb25kLiBUaGVyZSdzIGBmcy9udGZzMy9gIHRvbywgcmlnaHQ/IFJpZ2h0LiBUaGF0J3MgdGhlICpuZXcqIE5URlMgZHJpdmVyLiBgZnMvbnRmcy9gIHJlcHJlc2VudHMgdGhlICpvbGQqIG9uZS4gSG1tLCBva2F5LCBsZXQncyBjb25maXJtIHRoZSBvbGQgb25lIGlzIHN0aWxsIGV2ZW4gaW4gdGhlIGtlcm5lbC4gTGV0J3MgbWFrZSBzdXJlIGBmcy9udGZzL25hbWVpLmNgIGlzIGFjdHVhbGx5IHRoZXJlLi4ueXVwLCBpdCBleGlzdHMuIFdhaXQsIHdhc24ndCB0aGUgb2xkIGBudGZzYCBkcml2ZXIgcmVtb3ZlZCBhcm91bmQgdjYuOSBvciBzb21ldGhpbmc/IFRpbWUgdG8gZG91YmxlLWNoZWNrIGlmIGBmcy9udGZzYCBpcyBhY3R1YWxseSBzdGlsbCBhcm91bmQuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY4MywiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwODoxMDozMC44NDAwOTA2NzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTEzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImZzL250ZnNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiYW9wcy5jXCIsXG4gICAgXCJhdHRyaWIuY1wiLFxuICAgIFwiYXR0cmliLmhcIixcbiAgICBcImF0dHJsaXN0LmNcIixcbiAgICBcImF0dHJsaXN0LmhcIixcbiAgICBcImJkZXYtaW8uY1wiLFxuICAgIFwiYml0bWFwLmNcIixcbiAgICBcImJpdG1hcC5oXCIsXG4gICAgXCJjb2xsYXRlLmNcIixcbiAgICBcImNvbGxhdGUuaFwiLFxuICAgIFwiY29tcHJlc3MuY1wiLFxuICAgIFwiZGVidWcuY1wiLFxuICAgIFwiZGVidWcuaFwiLFxuICAgIFwiZGlyLmNcIixcbiAgICBcImRpci5oXCIsXG4gICAgXCJlYS5jXCIsXG4gICAgXCJlYS5oXCIsXG4gICAgXCJmaWxlLmNcIixcbiAgICBcImluZGV4LmNcIixcbiAgICBcImluZGV4LmhcIixcbiAgICBcImlub2RlLmNcIixcbiAgICBcImlub2RlLmhcIixcbiAgICBcImlvbWFwLmNcIixcbiAgICBcImlvbWFwLmhcIixcbiAgICBcImxheW91dC5oXCIsXG4gICAgXCJsY25hbGxvYy5jXCIsXG4gICAgXCJsY25hbGxvYy5oXCIsXG4gICAgXCJsb2dmaWxlLmNcIixcbiAgICBcImxvZ2ZpbGUuaFwiLFxuICAgIFwibWFsbG9jLmhcIixcbiAgICBcIm1mdC5jXCIsXG4gICAgXCJtZnQuaFwiLFxuICAgIFwibXN0LmNcIixcbiAgICBcIm5hbWVpLmNcIixcbiAgICBcIm50ZnMuaFwiLFxuICAgIFwib2JqZWN0X2lkLmNcIixcbiAgICBcIm9iamVjdF9pZC5oXCIsXG4gICAgXCJyZXBhcnNlLmNcIixcbiAgICBcInJlcGFyc2UuaFwiLFxuICAgIFwicnVubGlzdC5jXCIsXG4gICAgXCJydW5saXN0LmhcIixcbiAgICBcInN1cGVyLmNcIixcbiAgICBcInN5c2N0bC5jXCIsXG4gICAgXCJzeXNjdGwuaFwiLFxuICAgIFwidGltZS5oXCIsXG4gICAgXCJ1bmlzdHIuY1wiLFxuICAgIFwidXBjYXNlLmNcIixcbiAgICBcInZvbHVtZS5oXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA4OjEwOjMwLjg0MDI2OTQ1OFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4Njk0Njg5OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIE5URlMgRmlsZXN5c3RlbSBJbXBsZW1lbnRhdGlvbioqXG5cblJpZ2h0LCBgZnMvbnRmc2AgaXMgYSB0aGluZy4gSSBrbmV3IGl0IGV4aXN0ZWQsIGJ1dCBsZXQncyBub3QganVzdCBhc3N1bWUgZXZlcnl0aGluZyBpcyBhcyBpdCBzaG91bGQgYmUuIFRoZSBkZXZpbCdzIGluIHRoZSBkZXRhaWxzLCBlc3BlY2lhbGx5IHdoZW4gZGVhbGluZyB3aXRoIHNvbWV0aGluZyBhcyBjb21wbGV4IGFzIGEgZmlsZXN5c3RlbSBpbXBsZW1lbnRhdGlvbi4gVGltZSB0byBjaGVjayBgZnMvbnRmcy9LY29uZmlnYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgdGhlIGRlcGVuZGVuY2llcywgYW5kIHRoZSBvdmVyYWxsIGJ1aWxkIGluZnJhc3RydWN0dXJlIGFyb3VuZCB0aGlzIHRoaW5nIGJlZm9yZSBJIGRlbHZlIGRlZXBlci4gVGhhdCdzIHdoZXJlIHRoZSBoZWFydCBvZiB0aGUgY29uZmlndXJhdGlvbiBsaXZlcyAtIGxldCdzIHNlZSB3aGF0J3Mgd2hhdC4gVGhlIEtjb25maWcgZmlsZSBzaG91bGQgZ2l2ZSBtZSBhIGdvb2QgbGF5IG9mIHRoZSBsYW5kLCBwcm92aWRpbmcgdml0YWwgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQxMCwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwODoxMDozMy43MDk3NDMzOTlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzg2OTgzMTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBOVEZTX0ZTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL250ZnMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9udGZzL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5mcy9udGZzL0tjb25maWc6Mjpjb25maWcgTlRGU19GU1xcbmZzL250ZnMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJOVEZTIGZpbGUgc3lzdGVtIHN1cHBvcnRcXFwiXFxuLS1cXG5mcy9udGZzL0tjb25maWc9MTM9Y29uZmlnIE5URlNfREVCVUdcXG4tLVxcbmZzL250ZnMvS2NvbmZpZy0zNC1cXG5mcy9udGZzL0tjb25maWc6MzU6Y29uZmlnIE5URlNfRlNfUE9TSVhfQUNMXFxuZnMvbnRmcy9LY29uZmlnLTM2LVxcdGJvb2wgXFxcIk5URlMgUE9TSVggQWNjZXNzIENvbnRyb2wgTGlzdHNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA4OjEwOjM0LjA5NjczNjA0MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0MTY5OTQwNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOVEZTIExvb2t1cCBFcnJvciBIYW5kbGluZyBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWxsIGFib3V0IHR3ZWFraW5nIHRoZSBlcnJvciBoYW5kbGluZyB3aXRoaW4gYG50ZnNfbG9va3VwYC4gSXQgbG9va3MgbGlrZSB0aGUgbWFpbiBjaGFuZ2UgY2VudGVycyBhcm91bmQgaG93IHdlIGRlYWwgd2l0aCB0aGUgZXJyb3IgY29kZSByZXR1cm5lZCBmcm9tIHRoZSBgTVJFRl9FUlJgIG1hY3JvLiBSaWdodCwgc28gYSBjaGVjayBoYXMgYmVlbiBhZGRlZDogYGVyciBcdTAwM2MgMCBcdTAwMjZcdTAwMjYgZXJyIFx1MDAzZT0gLU1BWF9FUlJOT2AuIElmIHRoYXQgY29uZGl0aW9uIGlzIG1ldCwgdGhlbiBgRVJSX1BUUihlcnIpYCBpcyByZXR1cm5lZC4gT3RoZXJ3aXNlLCBpdCBkZWZhdWx0cyB0byByZXR1cm5pbmcgYEVSUl9QVFIoLUVJTylgLlxuXG5UaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYXMgaXQgbW9kaWZpZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBgbnRmc19sb29rdXBgIHVuZGVyIGNlcnRhaW4gZXJyb3IgY29uZGl0aW9ucy4gU3BlY2lmaWNhbGx5LCB3aGVuIGBNUkVGX0VSUihtcmVmKWAgc3BpdHMgb3V0IHNvbWV0aGluZyBvdXRzaWRlIHRoZSB0eXBpY2FsIHJhbmdlLiBUaGF0J3MgYSBrZXkgcG9pbnQuIExldCBtZSBjaGVjayB3aGF0IHRoYXQgbWFjcm8gZG9lcywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhhdCBmdWxseS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc3MiwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwODoxMDo0MC41MTM3MzQ4ODZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2MzkxOTI0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCIjZGVmaW5lIE1SRUZfRVJSXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL250ZnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL250ZnMvbGF5b3V0Lmg9MzM0PWVudW0ge1xcbi0tXFxuZnMvbnRmcy9sYXlvdXQuaC0zODAtI2RlZmluZSBFUlJfTVJFRih4KVxcdCgodTY0KSgoczY0KSh4KSkpXFxuZnMvbnRmcy9sYXlvdXQuaDozODE6I2RlZmluZSBNUkVGX0VSUih4KVxcdCgoaW50KSgoczY0KSh4KSkpXFxuZnMvbnRmcy9sYXlvdXQuaC0zODItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA4OjEwOjQwLjY3NzY2MjU5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY3OTk1ODk1OTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIEZ1enppbmcgVGFyZ2V0KipcblxuT2theSwgc28gdGhpcyBgTVJFRl9FUlJgIHRoaW5nLi4uIGl0J3MgZG9pbmcgYSB0eXBlIGNhc3QgZnJvbSBgdTY0YCB0byBgczY0YCBhbmQgdGhlbiB0byBgaW50YC4gVGhlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhhdCBpdCdzIHJlcGxhY2luZyBpbnZhbGlkIGVycm9yIGNvZGVzIHdpdGggYC1FSU9gLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBiZWhhdmlvciBzaGlmdC4gVGhlIHF1ZXN0aW9uIGlzLCBpcyBpdCB3b3J0aCBmdXp6aW5nPyBDb25zaWRlcmluZyBpdCByZWxhdGVzIHRvIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQsIGFic29sdXRlbHksIGl0J3Mgd29ydGggdGhlIGVmZm9ydC4gTXkgcHJpbWFyeSBmb2N1cyBzaG91bGQgYmUgb24gdGhlIGBudGZzX2xvb2t1cGAgZnVuY3Rpb24uIFRoZSBrZXkgY29uZmlndXJhdGlvbiBuZWVkZWQgaXMgYE5URlNfRlNgLlxuXG5MZXQncyBxdWlja2x5IGNvbmZpcm0gdGhhdCBgbnRmc19sb29rdXBgIGlzIGFjdHVhbGx5IHJlYWNoYWJsZS4gUmlnaHQsIGl0J3MgcGFydCBvZiBgbnRmc19kaXJfaW5vZGVfb3BzYCwgc3BlY2lmaWNhbGx5IHRoZSBgLmxvb2t1cGAgb3BlcmF0aW9uLiBTbywgaXQncyBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIHN0YW5kYXJkIFZGUyBsb29rdXAgb3BlcmF0aW9ucyBvbiBhbiBOVEZTIGZpbGVzeXN0ZW0g4oCTIGdvb2QuXG5cbkknbGwgbWFrZSBhIG5vdGU6ICoqYG50ZnNfbG9va3VwYCoqIGlzIHRoZSBmdW5jdGlvbiB0byBmb2N1cyBvbi4gSSdsbCBhbHNvIGFkZCAqKmBOVEZTX0ZTYCoqIHRvIHRoZSBlbmFibGVkIGNvbmZpZ3VyYXRpb25zLlxuXG5XYWl0IGEgc2Vjb25kLi4uIHJpZ2h0LCBgbnRmc19sb29rdXBgIGlzIGEgc3RhdGljIGZ1bmN0aW9uIGluIGBmcy9udGZzL25hbWVpLmNgLiBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucy4gTm9wZSwgdGhlIHBhdGNoICpvbmx5KiBtb2RpZmllcyBgbnRmc19sb29rdXBgLlxuXG5MZXQncyBxdWlja2x5IHZlcmlmeSB0aGUgY29uZmlncy4gSnVzdCBgTlRGU19GU2AsIG5vdGhpbmcgZWxzZS5cblxuQWxyaWdodCwgdGltZSB0byBmb3JtdWxhdGUgYSBjb25jaXNlIHJlc3BvbnNlOlxuXG4qICAgKipXb3J0aEZ1enppbmc6IHRydWUqKlxuKiAgICoqRm9jdXNTeW1ib2xzOiBcXFtcIm50ZnNfbG9va3VwXCJcXF0qKlxuKiAgICoqRW5hYmxlQ29uZmlnczogXFxbXCJOVEZTXFxfRlNcIlxcXSoqXG4qICAgKipSZWFzb25pbmc6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGhhbmRsaW5nIGluIGBudGZzX2xvb2t1cGAgZm9yIHRoZSBOVEZTIGZpbGVzeXN0ZW0sIGNoYW5naW5nIHRoZSByZXR1cm5lZCBlcnJvciBjb2RlIHdoZW4gYW4gaW52YWxpZCBlcnJvciBpcyBlbmNvdW50ZXJlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBob3cgY29ycnVwdGVkIE5URlMgaW1hZ2VzIGFyZSBoYW5kbGVkIGR1cmluZyBkaXJlY3RvcnkgbG9va3Vwcy5cIioqXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyMTYsIk91dHB1dFRva2VucyI6OTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDg6MTA6NDcuNDc3MjU0ODA5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcwODY0NjQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJOVEZTX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibnRmc19sb29rdXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBoYW5kbGluZyBpbiBgbnRmc19sb29rdXBgIGZvciB0aGUgTlRGUyBmaWxlc3lzdGVtLCBjaGFuZ2luZyB0aGUgcmV0dXJuZWQgZXJyb3IgY29kZSB3aGVuIGFuIGludmFsaWQgZXJyb3IgaXMgZW5jb3VudGVyZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgaG93IGNvcnJ1cHRlZCBOVEZTIGltYWdlcyBhcmUgaGFuZGxlZCBkdXJpbmcgZGlyZWN0b3J5IGxvb2t1cHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTlRGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm50ZnNfbG9va3VwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowt777p[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-30 07:54:42 +0000 UTC FinishedAt: 2026-06-30 08:10:49 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "115446b06fb725ba04e0f2ae5174029d2c60cad6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NTFS_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "115446b06fb725ba04e0f2ae5174029d2c60cad6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NTFS_FS" ], "series_id": "3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "ntfs_lookup" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA4OjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05URlNfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtudGZzX2xvb2t1cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBoYW5kbGluZyBpbiBgbnRmc19sb29rdXBgIGZvciB0aGUgTlRGUyBmaWxlc3lzdGVtLCBjaGFuZ2luZyB0aGUgcmV0dXJuZWQgZXJyb3IgY29kZSB3aGVuIGFuIGludmFsaWQgZXJyb3IgaXMgZW5jb3VudGVyZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgaG93IGNvcnJ1cHRlZCBOVEZTIGltYWdlcyBhcmUgaGFuZGxlZCBkdXJpbmcgZGlyZWN0b3J5IGxvb2t1cHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDg6MTA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBlNzYxYmE3OTNhMGRmNTEwZTRjNzk1YWM3YWQ2ZGM0OWNlNGMyZGRjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDg6MTA6MjAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvbnRmcy9uYW1laS5jIGIvZnMvbnRmcy9uYW1laS5jXG5pbmRleCA5YzFjMzZhY2ZhZDI0ZS4uZTk1OTM4NzEzNWI1ZTIgMTAwNjQ0XG4tLS0gYS9mcy9udGZzL25hbWVpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL250ZnMvbmFtZWkuY1xuQEAgLTIzMywxMCAmIzQzOzIzMywxOCBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqbnRmc19sb29rdXAoc3RydWN0IGlub2RlICpkaXJfaW5vLCBzdHJ1Y3QgZGVudHJ5ICpkZW50LFxuIFx0XHRkX2FkZChkZW50LCBOVUxMKTtcbiBcdFx0bnRmc19kZWJ1ZyhcJiMzNDtEb25lLlwmIzM0Oyk7XG4gXHRcdHJldHVybiBOVUxMO1xuJiM0MztcdH0gZWxzZSB7XG4mIzQzO1x0XHRsb25nIGVyciA9IE1SRUZfRVJSKG1yZWYpO1xuJiM0MztcbiYjNDM7XHRcdGlmIChlcnIgXHUwMDNjIDAgXHUwMDI2XHUwMDI2IGVyciBcdTAwM2U9IC1NQVhfRVJSTk8pIHtcbiYjNDM7XHRcdFx0bnRmc19lcnJvcih2b2wtXHUwMDNlc2IsIFwmIzM0O250ZnNfbG9va3VwX2lub19ieV9uYW1lKCkgZmFpbGVkIHdpdGggZXJyb3IgY29kZSAlbGkuXCYjMzQ7LFxuJiM0MztcdFx0XHRcdGVycik7XG4mIzQzO1x0XHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4mIzQzO1x0XHR9XG4mIzQzO1x0XHRudGZzX2Vycm9yKHZvbC1cdTAwM2VzYiwgXCYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSByZXR1cm5lZCBpbnZhbGlkIGVycm9yIGNvZGUgJWxpLCB0cmVhdGluZyBhcyBkaXNrIGNvcnJ1cHRpb24uXCYjMzQ7LFxuJiM0MztcdFx0XHRlcnIpO1xuJiM0MztcdFx0cmV0dXJuIEVSUl9QVFIoLUVJTyk7XG4gXHR9XG4tXHRudGZzX2Vycm9yKHZvbC1cdTAwM2VzYiwgXCYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVpLlwmIzM0Oyxcbi1cdFx0XHQtTVJFRl9FUlIobXJlZikpO1xuLVx0cmV0dXJuIEVSUl9QVFIoTVJFRl9FUlIobXJlZikpO1xuIGhhbmRsZV9uYW1lOlxuIFx0e1xuIFx0XHRzdHJ1Y3QgbWZ0X3JlY29yZCAqbTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwODoxMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtOVEZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bnRmc19sb29rdXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBlNzYxYmE3OTNhMGRmNTEwZTRjNzk1YWM3YWQ2ZGM0OWNlNGMyZGRjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdW4gMzAgMDg6MTA6MjAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9udGZzL25hbWVpLmMgYi9mcy9udGZzL25hbWVpLmMKaW5kZXggOWMxYzM2YWNmYWQyNGUuLmU5NTkzODcxMzViNWUyIDEwMDY0NAotLS0gYS9mcy9udGZzL25hbWVpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvbnRmcy9uYW1laS5jCkBAIC0yMzMsMTAgJiM0MzsyMzMsMTggQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKm50ZnNfbG9va3VwKHN0cnVjdCBpbm9kZSAqZGlyX2lubywgc3RydWN0IGRlbnRyeSAqZGVudCwKIAkJZF9hZGQoZGVudCwgTlVMTCk7CiAJCW50ZnNfZGVidWcoJiMzNDtEb25lLiYjMzQ7KTsKIAkJcmV0dXJuIE5VTEw7CiYjNDM7CX0gZWxzZSB7CiYjNDM7CQlsb25nIGVyciA9IE1SRUZfRVJSKG1yZWYpOwomIzQzOwomIzQzOwkJaWYgKGVyciAmbHQ7IDAgJmFtcDsmYW1wOyBlcnIgJmd0Oz0gLU1BWF9FUlJOTykgewomIzQzOwkJCW50ZnNfZXJyb3Iodm9sLSZndDtzYiwgJiMzNDtudGZzX2xvb2t1cF9pbm9fYnlfbmFtZSgpIGZhaWxlZCB3aXRoIGVycm9yIGNvZGUgJWxpLiYjMzQ7LAomIzQzOwkJCQllcnIpOwomIzQzOwkJCXJldHVybiBFUlJfUFRSKGVycik7CiYjNDM7CQl9CiYjNDM7CQludGZzX2Vycm9yKHZvbC0mZ3Q7c2IsICYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSByZXR1cm5lZCBpbnZhbGlkIGVycm9yIGNvZGUgJWxpLCB0cmVhdGluZyBhcyBkaXNrIGNvcnJ1cHRpb24uJiMzNDssCiYjNDM7CQkJZXJyKTsKJiM0MzsJCXJldHVybiBFUlJfUFRSKC1FSU8pOwogCX0KLQludGZzX2Vycm9yKHZvbC0mZ3Q7c2IsICYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVpLiYjMzQ7LAotCQkJLU1SRUZfRVJSKG1yZWYpKTsKLQlyZXR1cm4gRVJSX1BUUihNUkVGX0VSUihtcmVmKSk7CiBoYW5kbGVfbmFtZToKIAl7CiAJCXN0cnVjdCBtZnRfcmVjb3JkICptOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwODoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDAxCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTlRGUyBMb29rdXAgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBmcy9udGZzL25hbWVpLmNgLiBJdCBzZWVtcyBsaWtlIHdlJiMzOTtyZSByZWZpbmluZyB0aGUgZXJyb3IgaGFuZGxpbmcgd2l0aGluIHRoZSBgbnRmc19sb29rdXBgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGFib3V0IGhvdyB3ZSBkZWFsIHdpdGggZXJyb3JzIG9yaWdpbmF0aW5nIGZyb20gYG50ZnNfbG9va3VwX2lub19ieV9uYW1lYC4gSSBzZWUgdGhlIGtleSBjaGFuZ2UgaGVyZTogcHJldmlvdXNseSwgd2UgbWlnaHQgaGF2ZSBoYWQgYSBsZXNzIHJlZmluZWQgYXBwcm9hY2ggdG8gaW50ZXJwcmV0aW5nIHRoZXNlIGVycm9ycywgYnV0IG5vdyB3ZSYjMzk7cmUgZXhwbGljaXRseSBjaGVja2luZyB0aGUgYm91bmRzIG9mIHRoZSBlcnJvciBjb2RlLgoKVGhlIGxvZ2ljIGlzIHN0cmFpZ2h0Zm9yd2FyZDsgSWYgYGVycmAgaXMgYSB2YWxpZCBuZWdhdGl2ZSBlcnJvciBjb2RlLCB3aXRoaW4gdGhlIGV4cGVjdGVkIHJhbmdlLCB3ZSBwcmVzZXJ2ZSBhbmQgcmV0dXJuIGl0IGRpcmVjdGx5IHZpYSBgRVJSX1BUUihlcnIpYC4gSG93ZXZlciwgaWYgYGVycmAgaXMgb3V0c2lkZSB0aGlzIGV4cGVjdGVkIHJhbmdlLCBpbmRpY2F0aW5nIGFuIHVua25vd24gb3IgcG90ZW50aWFsbHkgY2F0YXN0cm9waGljIGlzc3VlLCBpdCYjMzk7cyBiZWluZyAmIzM0O3JlLW1hcHBlZCYjMzQ7IHRvIGAtRUlPYCwgd2hpY2ggZXNzZW50aWFsbHkgc2lnbmFscyBhIGdlbmVyaWMgSS9PIGVycm9yIHZpYSBgRVJSX1BUUigtRUlPKWAuIFRoaXMgY291bGQgYmUgdXNlZnVsIGlmIGBudGZzX2xvb2t1cF9pbm9fYnlfbmFtZWAgcmV0dXJucyBhbiB1bmV4cGVjdGVkIGVycm9yIGNvZGUsIHdoaWNoIG1pZ2h0IGJlIGZyb20gdGhlIHVzZXIgc3BhY2UuIFRoaXMgc2VlbXMgbGlrZSBhIGdvb2QsIGRlZmVuc2l2ZSBtb3ZlIHRvIGVuc3VyZSBzdGFiaWxpdHkuIFRoaXMgbWFrZXMgc2Vuc2UgdG8gcHJvdGVjdCBhZ2FpbnN0IHVua25vd24gaXNzdWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O250ZnNfbG9va3VwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvbnRmcy9uYW1laS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL250ZnMvbmFtZWkuYz02MD1zdGF0aWMgaW50IG50ZnNfY2hlY2tfYmFkX3dpbmRvd3NfbmFtZShzdHJ1Y3QgbnRmc192b2x1bWUgKnZvbCxcbi0tXG5mcy9udGZzL25hbWVpLmMtMTAxLS8qXG5mcy9udGZzL25hbWVpLmM6MTAyOiAqIG50ZnNfbG9va3VwIC0gZmluZCB0aGUgaW5vZGUgcmVwcmVzZW50ZWQgYnkgYSBkZW50cnkgaW4gYSBkaXJlY3RvcnkgaW5vZGVcbmZzL250ZnMvbmFtZWkuYy0xMDMtICogQGRpcl9pbm86XHRkaXJlY3RvcnkgaW5vZGUgaW4gd2hpY2ggdG8gbG9vayBmb3IgdGhlIGlub2RlXG4tLVxuZnMvbnRmcy9uYW1laS5jLTEwNi0gKlxuZnMvbnRmcy9uYW1laS5jOjEwNzogKiBJbiBzaG9ydCwgbnRmc19sb29rdXAoKSBsb29rcyBmb3IgdGhlIGlub2RlIHJlcHJlc2VudGVkIGJ5IHRoZSBkZW50cnkgQGRlbnRcbmZzL250ZnMvbmFtZWkuYy0xMDgtICogaW4gdGhlIGRpcmVjdG9yeSBpbm9kZSBAZGlyX2lubyBhbmQgaWYgZm91bmQgYXR0YWNoZXMgdGhlIGlub2RlIHRvIHRoZVxuLS1cbmZzL250ZnMvbmFtZWkuYy0xMTEtICogSW4gbW9yZSBkZXRhaWwsIHRoZSBkZW50cnkgQGRlbnQgc3BlY2lmaWVzIHdoaWNoIGlub2RlIHRvIGxvb2sgZm9yIGJ5XG5mcy9udGZzL25hbWVpLmM6MTEyOiAqIHN1cHBseWluZyB0aGUgbmFtZSBvZiB0aGUgaW5vZGUgaW4gQGRlbnQtXHUwMDNlZF9uYW1lLm5hbWUuIG50ZnNfbG9va3VwKClcbmZzL250ZnMvbmFtZWkuYy0xMTMtICogY29udmVydHMgdGhlIG5hbWUgdG8gVW5pY29kZSBhbmQgd2Fsa3MgdGhlIGNvbnRlbnRzIG9mIHRoZSBkaXJlY3RvcnkgaW5vZGVcbi0tXG5mcy9udGZzL25hbWVpLmMtMTI2LSAqIGRjYWNoZSBhbmQgdGhlIGRjYWNoZSByZXF1aXJpbmcgb25seSBvbmUgZGVudHJ5IHBlciBkaXJlY3RvcnksIHdlIGRlYWwgd2l0aFxuZnMvbnRmcy9uYW1laS5jOjEyNzogKiBkZW50cnkgYWxpYXNlcyB0aGF0IG9ubHkgZGlmZmVyIGluIGNhc2UgaW4gLVx1MDAzZW50ZnNfbG9va3VwKCkgd2hpbGUgbWFpbnRhaW5pbmdcbmZzL250ZnMvbmFtZWkuYy0xMjgtICogYSBjYXNlIHNlbnNpdGl2ZSBkY2FjaGUuIFRoaXMgbWVhbnMgdGhhdCB3ZSBnZXQgdGhlIGZ1bGwgYmVuZWZpdCBvZiBkY2FjaGVcbi0tXG5mcy9udGZzL25hbWVpLmMtMTMwLSAqIC1cdTAwM2VudGZzX3JlYWRkaXIoKSBidXQgdGhhdCBhIGxvb2t1cCBmb3IgYW55IG90aGVyIGNhc2UgKG9yIGZvciB0aGUgc2hvcnQgZmlsZVxuZnMvbnRmcy9uYW1laS5jOjEzMTogKiBuYW1lKSB3aWxsIG5vdCBmaW5kIGFueXRoaW5nIGluIGRjYWNoZSBhbmQgd2lsbCBlbnRlciAtXHUwMDNlbnRmc19sb29rdXAoKVxuZnMvbnRmcy9uYW1laS5jLTEzMi0gKiBpbnN0ZWFkLCB3aGVyZSB3ZSBzZWFyY2ggdGhlIGRpcmVjdG9yeSBmb3IgYSBmdWxseSBtYXRjaGluZyBmaWxlIG5hbWVcbi0tXG5mcy9udGZzL25hbWVpLmMtMTQ1LSAqICAgIGZpbGUgbmFtZSBpbiB0aGUgV0lOMzIgb3IgUE9TSVggbmFtZXNwYWNlcy4gSW4gdGhpcyBjYXNlXG5mcy9udGZzL25hbWVpLmM6MTQ2OiAqICAgIG50ZnNfbG9va3VwX2lub2RlX2J5X25hbWUoKSB3aWxsIHJldHVybiB3aXRoIG5hbWUgc2V0IHRvIE5VTEwgYW5kIHdlXG5mcy9udGZzL25hbWVpLmMtMTQ3LSAqICAgIGp1c3QgZF9zcGxpY2VfYWxpYXMoKSBAZGVudC5cbmZzL250ZnMvbmFtZWkuYy0xNDgtICogMikgQGRlbnQgbWF0Y2hlcyAobm90IGluY2x1ZGluZyBjYXNlKSBhIGRpcmVjdG9yeSBlbnRyeSB3aXRoIGEgZmlsZSBuYW1lIGluXG5mcy9udGZzL25hbWVpLmM6MTQ5OiAqICAgIHRoZSBXSU4zMiBuYW1lc3BhY2UuIEluIHRoaXMgY2FzZSBudGZzX2xvb2t1cF9pbm9kZV9ieV9uYW1lKCkgd2lsbCByZXR1cm5cbmZzL250ZnMvbmFtZWkuYy0xNTAtICogICAgd2l0aCBuYW1lIHNldCB0byBwb2ludCB0byBhIGttYWxsb2MoKWVkIG50ZnNfbmFtZSBzdHJ1Y3R1cmUgY29udGFpbmluZ1xuLS1cbmZzL250ZnMvbmFtZWkuYy0xNjAtICogICAgZGlyZWN0b3J5IGVudHJ5IHdpdGggYSBmaWxlIG5hbWUgaW4gdGhlIERPUyBuYW1lc3BhY2UuIEluIHRoaXMgY2FzZVxuZnMvbnRmcy9uYW1laS5jOjE2MTogKiAgICBudGZzX2xvb2t1cF9pbm9kZV9ieV9uYW1lKCkgd2lsbCByZXR1cm4gd2l0aCBuYW1lIHNldCB0byBwb2ludCB0byBhXG5mcy9udGZzL25hbWVpLmMtMTYyLSAqICAgIGttYWxsb2MoKWVkIG50ZnNfbmFtZSBzdHJ1Y3R1cmUgY29udGFpbmluZyB0aGUgbWZ0IHJlZmVyZW5jZSAoY3B1IGVuZGlhbilcbi0tXG5mcy9udGZzL25hbWVpLmMtMTY5LSAqL1xuZnMvbnRmcy9uYW1laS5jOjE3MDpzdGF0aWMgc3RydWN0IGRlbnRyeSAqbnRmc19sb29rdXAoc3RydWN0IGlub2RlICpkaXJfaW5vLCBzdHJ1Y3QgZGVudHJ5ICpkZW50LFxuZnMvbnRmcy9uYW1laS5jLTE3MS1cdFx0dW5zaWduZWQgaW50IGZsYWdzKVxuLS1cbmZzL250ZnMvbmFtZWkuYy0xOTEtXHRtdXRleF9sb2NrKFx1MDAyNk5URlNfSShkaXJfaW5vKS1cdTAwM2VtcmVjX2xvY2spO1xuZnMvbnRmcy9uYW1laS5jOjE5MjpcdG1yZWYgPSBudGZzX2xvb2t1cF9pbm9kZV9ieV9uYW1lKE5URlNfSShkaXJfaW5vKSwgdW5hbWUsIHVuYW1lX2xlbixcbmZzL250ZnMvbmFtZWkuYy0xOTMtXHRcdFx0XHUwMDI2bmFtZSk7XG4tLVxuZnMvbnRmcy9uYW1laS5jLTIzOS1cdFx0aWYgKGVyciBcdTAwM2MgMCBcdTAwMjZcdTAwMjYgZXJyIFx1MDAzZT0gLU1BWF9FUlJOTykge1xuZnMvbnRmcy9uYW1laS5jOjI0MDpcdFx0XHRudGZzX2Vycm9yKHZvbC1cdTAwM2VzYiwgXCYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVsaS5cJiMzNDssXG5mcy9udGZzL25hbWVpLmMtMjQxLVx0XHRcdFx0ZXJyKTtcbi0tXG5mcy9udGZzL25hbWVpLmMtMjQzLVx0XHR9XG5mcy9udGZzL25hbWVpLmM6MjQ0Olx0XHRudGZzX2Vycm9yKHZvbC1cdTAwM2VzYiwgXCYjMzQ7bnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSByZXR1cm5lZCBpbnZhbGlkIGVycm9yIGNvZGUgJWxpLCB0cmVhdGluZyBhcyBkaXNrIGNvcnJ1cHRpb24uXCYjMzQ7LFxuZnMvbnRmcy9uYW1laS5jLTI0NS1cdFx0XHRlcnIpO1xuLS1cbmZzL250ZnMvbmFtZWkuYz0xNTgwPWNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIG50ZnNfZGlyX2lub2RlX29wcyA9IHtcbmZzL250ZnMvbmFtZWkuYzoxNTgxOlx0Lmxvb2t1cFx0XHQ9IG50ZnNfbG9va3VwLFx0LyogVkZTOiBMb29rdXAgZGlyZWN0b3J5LiAqL1xuZnMvbnRmcy9uYW1laS5jLTE1ODItXHQuY3JlYXRlXHRcdD0gbnRmc19jcmVhdGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDg6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY4MwoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDE0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQb3RlbnRpYWwgTlRGUyBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYG50ZnNfbG9va3VwYCwgYW5kIHRoYXQmIzM5O3MgaW4gYGZzL250ZnMvbmFtZWkuY2AuIE15IG1pbmQgaW1tZWRpYXRlbHkganVtcHMgdG8gbG9va3VwIG9wZXJhdGlvbnMgd2l0aGluIE5URlMsIHNvIGl0JiMzOTtzIGxpa2VseSBmdW5jdGlvbmFsIGNvZGUuIExldCBtZSBxdWlja2x5IGNoZWNrOyBpcyBOVEZTIGV2ZW4gZW5hYmxlZCBpbiBzeXprYWxsZXI/IFllYWgsIGl0IHVzdWFsbHkgaXMsIHNvIHRoYXQmIzM5O3MgYSByZWFzb25hYmxlIGFzc3VtcHRpb24uIE5vdywgdGhlIGBmcy9udGZzL2AgZGlyZWN0b3J54oCmaGFuZyBvbiBhIHNlY29uZC4gVGhlcmUmIzM5O3MgYGZzL250ZnMzL2AgdG9vLCByaWdodD8gUmlnaHQuIFRoYXQmIzM5O3MgdGhlICpuZXcqIE5URlMgZHJpdmVyLiBgZnMvbnRmcy9gIHJlcHJlc2VudHMgdGhlICpvbGQqIG9uZS4gSG1tLCBva2F5LCBsZXQmIzM5O3MgY29uZmlybSB0aGUgb2xkIG9uZSBpcyBzdGlsbCBldmVuIGluIHRoZSBrZXJuZWwuIExldCYjMzk7cyBtYWtlIHN1cmUgYGZzL250ZnMvbmFtZWkuY2AgaXMgYWN0dWFsbHkgdGhlcmUuLi55dXAsIGl0IGV4aXN0cy4gV2FpdCwgd2FzbiYjMzk7dCB0aGUgb2xkIGBudGZzYCBkcml2ZXIgcmVtb3ZlZCBhcm91bmQgdjYuOSBvciBzb21ldGhpbmc/IFRpbWUgdG8gZG91YmxlLWNoZWNrIGlmIGBmcy9udGZzYCBpcyBhY3R1YWxseSBzdGlsbCBhcm91bmQuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwODoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtmcy9udGZzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7YW9wcy5jJiMzNDssCiAgICAmIzM0O2F0dHJpYi5jJiMzNDssCiAgICAmIzM0O2F0dHJpYi5oJiMzNDssCiAgICAmIzM0O2F0dHJsaXN0LmMmIzM0OywKICAgICYjMzQ7YXR0cmxpc3QuaCYjMzQ7LAogICAgJiMzNDtiZGV2LWlvLmMmIzM0OywKICAgICYjMzQ7Yml0bWFwLmMmIzM0OywKICAgICYjMzQ7Yml0bWFwLmgmIzM0OywKICAgICYjMzQ7Y29sbGF0ZS5jJiMzNDssCiAgICAmIzM0O2NvbGxhdGUuaCYjMzQ7LAogICAgJiMzNDtjb21wcmVzcy5jJiMzNDssCiAgICAmIzM0O2RlYnVnLmMmIzM0OywKICAgICYjMzQ7ZGVidWcuaCYjMzQ7LAogICAgJiMzNDtkaXIuYyYjMzQ7LAogICAgJiMzNDtkaXIuaCYjMzQ7LAogICAgJiMzNDtlYS5jJiMzNDssCiAgICAmIzM0O2VhLmgmIzM0OywKICAgICYjMzQ7ZmlsZS5jJiMzNDssCiAgICAmIzM0O2luZGV4LmMmIzM0OywKICAgICYjMzQ7aW5kZXguaCYjMzQ7LAogICAgJiMzNDtpbm9kZS5jJiMzNDssCiAgICAmIzM0O2lub2RlLmgmIzM0OywKICAgICYjMzQ7aW9tYXAuYyYjMzQ7LAogICAgJiMzNDtpb21hcC5oJiMzNDssCiAgICAmIzM0O2xheW91dC5oJiMzNDssCiAgICAmIzM0O2xjbmFsbG9jLmMmIzM0OywKICAgICYjMzQ7bGNuYWxsb2MuaCYjMzQ7LAogICAgJiMzNDtsb2dmaWxlLmMmIzM0OywKICAgICYjMzQ7bG9nZmlsZS5oJiMzNDssCiAgICAmIzM0O21hbGxvYy5oJiMzNDssCiAgICAmIzM0O21mdC5jJiMzNDssCiAgICAmIzM0O21mdC5oJiMzNDssCiAgICAmIzM0O21zdC5jJiMzNDssCiAgICAmIzM0O25hbWVpLmMmIzM0OywKICAgICYjMzQ7bnRmcy5oJiMzNDssCiAgICAmIzM0O29iamVjdF9pZC5jJiMzNDssCiAgICAmIzM0O29iamVjdF9pZC5oJiMzNDssCiAgICAmIzM0O3JlcGFyc2UuYyYjMzQ7LAogICAgJiMzNDtyZXBhcnNlLmgmIzM0OywKICAgICYjMzQ7cnVubGlzdC5jJiMzNDssCiAgICAmIzM0O3J1bmxpc3QuaCYjMzQ7LAogICAgJiMzNDtzdXBlci5jJiMzNDssCiAgICAmIzM0O3N5c2N0bC5jJiMzNDssCiAgICAmIzM0O3N5c2N0bC5oJiMzNDssCiAgICAmIzM0O3RpbWUuaCYjMzQ7LAogICAgJiMzNDt1bmlzdHIuYyYjMzQ7LAogICAgJiMzNDt1cGNhc2UuYyYjMzQ7LAogICAgJiMzNDt2b2x1bWUuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDg6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQxMAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBOVEZTIEZpbGVzeXN0ZW0gSW1wbGVtZW50YXRpb24qKgoKUmlnaHQsIGBmcy9udGZzYCBpcyBhIHRoaW5nLiBJIGtuZXcgaXQgZXhpc3RlZCwgYnV0IGxldCYjMzk7cyBub3QganVzdCBhc3N1bWUgZXZlcnl0aGluZyBpcyBhcyBpdCBzaG91bGQgYmUuIFRoZSBkZXZpbCYjMzk7cyBpbiB0aGUgZGV0YWlscywgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBzb21ldGhpbmcgYXMgY29tcGxleCBhcyBhIGZpbGVzeXN0ZW0gaW1wbGVtZW50YXRpb24uIFRpbWUgdG8gY2hlY2sgYGZzL250ZnMvS2NvbmZpZ2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHRoZSBkZXBlbmRlbmNpZXMsIGFuZCB0aGUgb3ZlcmFsbCBidWlsZCBpbmZyYXN0cnVjdHVyZSBhcm91bmQgdGhpcyB0aGluZyBiZWZvcmUgSSBkZWx2ZSBkZWVwZXIuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoZSBjb25maWd1cmF0aW9uIGxpdmVzIC0gbGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIHdoYXQuIFRoZSBLY29uZmlnIGZpbGUgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGxheSBvZiB0aGUgbGFuZCwgcHJvdmlkaW5nIHZpdGFsIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDg6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5URlNfRlMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9udGZzL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvbnRmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5mcy9udGZzL0tjb25maWc6Mjpjb25maWcgTlRGU19GU1xuZnMvbnRmcy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtOVEZTIGZpbGUgc3lzdGVtIHN1cHBvcnRcJiMzNDtcbi0tXG5mcy9udGZzL0tjb25maWc9MTM9Y29uZmlnIE5URlNfREVCVUdcbi0tXG5mcy9udGZzL0tjb25maWctMzQtXG5mcy9udGZzL0tjb25maWc6MzU6Y29uZmlnIE5URlNfRlNfUE9TSVhfQUNMXG5mcy9udGZzL0tjb25maWctMzYtXHRib29sIFwmIzM0O05URlMgUE9TSVggQWNjZXNzIENvbnRyb2wgTGlzdHNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwODoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzcyCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTlRGUyBMb29rdXAgRXJyb3IgSGFuZGxpbmcgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgdHdlYWtpbmcgdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiBgbnRmc19sb29rdXBgLiBJdCBsb29rcyBsaWtlIHRoZSBtYWluIGNoYW5nZSBjZW50ZXJzIGFyb3VuZCBob3cgd2UgZGVhbCB3aXRoIHRoZSBlcnJvciBjb2RlIHJldHVybmVkIGZyb20gdGhlIGBNUkVGX0VSUmAgbWFjcm8uIFJpZ2h0LCBzbyBhIGNoZWNrIGhhcyBiZWVuIGFkZGVkOiBgZXJyICZsdDsgMCAmYW1wOyZhbXA7IGVyciAmZ3Q7PSAtTUFYX0VSUk5PYC4gSWYgdGhhdCBjb25kaXRpb24gaXMgbWV0LCB0aGVuIGBFUlJfUFRSKGVycilgIGlzIHJldHVybmVkLiBPdGhlcndpc2UsIGl0IGRlZmF1bHRzIHRvIHJldHVybmluZyBgRVJSX1BUUigtRUlPKWAuCgpUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYXMgaXQgbW9kaWZpZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBgbnRmc19sb29rdXBgIHVuZGVyIGNlcnRhaW4gZXJyb3IgY29uZGl0aW9ucy4gU3BlY2lmaWNhbGx5LCB3aGVuIGBNUkVGX0VSUihtcmVmKWAgc3BpdHMgb3V0IHNvbWV0aGluZyBvdXRzaWRlIHRoZSB0eXBpY2FsIHJhbmdlLiBUaGF0JiMzOTtzIGEga2V5IHBvaW50LiBMZXQgbWUgY2hlY2sgd2hhdCB0aGF0IG1hY3JvIGRvZXMsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoYXQgZnVsbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0OyNkZWZpbmUgTVJFRl9FUlImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9udGZzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9udGZzL2xheW91dC5oPTMzND1lbnVtIHtcbi0tXG5mcy9udGZzL2xheW91dC5oLTM4MC0jZGVmaW5lIEVSUl9NUkVGKHgpXHQoKHU2NCkoKHM2NCkoeCkpKVxuZnMvbnRmcy9sYXlvdXQuaDozODE6I2RlZmluZSBNUkVGX0VSUih4KVx0KChpbnQpKChzNjQpKHgpKSlcbmZzL250ZnMvbGF5b3V0LmgtMzgyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwODoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjE2CgkJCQkJCQlvdXRwdXQ6IDkwCgkJCQkJCQl0aG91Z2h0czogMzI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldCoqCgpPa2F5LCBzbyB0aGlzIGBNUkVGX0VSUmAgdGhpbmcuLi4gaXQmIzM5O3MgZG9pbmcgYSB0eXBlIGNhc3QgZnJvbSBgdTY0YCB0byBgczY0YCBhbmQgdGhlbiB0byBgaW50YC4gVGhlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhhdCBpdCYjMzk7cyByZXBsYWNpbmcgaW52YWxpZCBlcnJvciBjb2RlcyB3aXRoIGAtRUlPYC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgYmVoYXZpb3Igc2hpZnQuIFRoZSBxdWVzdGlvbiBpcywgaXMgaXQgd29ydGggZnV6emluZz8gQ29uc2lkZXJpbmcgaXQgcmVsYXRlcyB0byBob3cgY29ycnVwdGVkIE5URlMgaW1hZ2VzIGFyZSBoYW5kbGVkLCBhYnNvbHV0ZWx5LCBpdCYjMzk7cyB3b3J0aCB0aGUgZWZmb3J0LiBNeSBwcmltYXJ5IGZvY3VzIHNob3VsZCBiZSBvbiB0aGUgYG50ZnNfbG9va3VwYCBmdW5jdGlvbi4gVGhlIGtleSBjb25maWd1cmF0aW9uIG5lZWRlZCBpcyBgTlRGU19GU2AuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRoYXQgYG50ZnNfbG9va3VwYCBpcyBhY3R1YWxseSByZWFjaGFibGUuIFJpZ2h0LCBpdCYjMzk7cyBwYXJ0IG9mIGBudGZzX2Rpcl9pbm9kZV9vcHNgLCBzcGVjaWZpY2FsbHkgdGhlIGAubG9va3VwYCBvcGVyYXRpb24uIFNvLCBpdCYjMzk7cyBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIHN0YW5kYXJkIFZGUyBsb29rdXAgb3BlcmF0aW9ucyBvbiBhbiBOVEZTIGZpbGVzeXN0ZW0g4oCTIGdvb2QuCgpJJiMzOTtsbCBtYWtlIGEgbm90ZTogKipgbnRmc19sb29rdXBgKiogaXMgdGhlIGZ1bmN0aW9uIHRvIGZvY3VzIG9uLiBJJiMzOTtsbCBhbHNvIGFkZCAqKmBOVEZTX0ZTYCoqIHRvIHRoZSBlbmFibGVkIGNvbmZpZ3VyYXRpb25zLgoKV2FpdCBhIHNlY29uZC4uLiByaWdodCwgYG50ZnNfbG9va3VwYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiBpbiBgZnMvbnRmcy9uYW1laS5jYC4gSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMuIE5vcGUsIHRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgYG50ZnNfbG9va3VwYC4KCkxldCYjMzk7cyBxdWlja2x5IHZlcmlmeSB0aGUgY29uZmlncy4gSnVzdCBgTlRGU19GU2AsIG5vdGhpbmcgZWxzZS4KCkFscmlnaHQsIHRpbWUgdG8gZm9ybXVsYXRlIGEgY29uY2lzZSByZXNwb25zZToKCiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqCiogICAqKkZvY3VzU3ltYm9sczogXFsmIzM0O250ZnNfbG9va3VwJiMzNDtcXSoqCiogICAqKkVuYWJsZUNvbmZpZ3M6IFxbJiMzNDtOVEZTXF9GUyYjMzQ7XF0qKgoqICAgKipSZWFzb25pbmc6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGhhbmRsaW5nIGluIGBudGZzX2xvb2t1cGAgZm9yIHRoZSBOVEZTIGZpbGVzeXN0ZW0sIGNoYW5naW5nIHRoZSByZXR1cm5lZCBlcnJvciBjb2RlIHdoZW4gYW4gaW52YWxpZCBlcnJvciBpcyBlbmNvdW50ZXJlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBob3cgY29ycnVwdGVkIE5URlMgaW1hZ2VzIGFyZSBoYW5kbGVkIGR1cmluZyBkaXJlY3RvcnkgbG9va3Vwcy4mIzM0OyoqCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtOVEZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bnRmc19sb29rdXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtOVEZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bnRmc19sb29rdXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDg6MTA6MjEuOTc0MjE1NzgzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU2NzM5NDgwNTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTlRGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm50ZnNfbG9va3VwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwODoxMDoyMS45NzQyMjMzNTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjc4NDE3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGU3NjFiYTc5M2EwZGY1MTBlNGM3OTVhYzdhZDZkYzQ5Y2U0YzJkZGNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDg6MTA6MjAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvbnRmcy9uYW1laS5jIGIvZnMvbnRmcy9uYW1laS5jXFxuaW5kZXggOWMxYzM2YWNmYWQyNGUuLmU5NTkzODcxMzViNWUyIDEwMDY0NFxcbi0tLSBhL2ZzL250ZnMvbmFtZWkuY1xcbisrKyBiL2ZzL250ZnMvbmFtZWkuY1xcbkBAIC0yMzMsMTAgKzIzMywxOCBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqbnRmc19sb29rdXAoc3RydWN0IGlub2RlICpkaXJfaW5vLCBzdHJ1Y3QgZGVudHJ5ICpkZW50LFxcbiBcXHRcXHRkX2FkZChkZW50LCBOVUxMKTtcXG4gXFx0XFx0bnRmc19kZWJ1ZyhcXFwiRG9uZS5cXFwiKTtcXG4gXFx0XFx0cmV0dXJuIE5VTEw7XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdGxvbmcgZXJyID0gTVJFRl9FUlIobXJlZik7XFxuK1xcbitcXHRcXHRpZiAoZXJyIFxcdTAwM2MgMCBcXHUwMDI2XFx1MDAyNiBlcnIgXFx1MDAzZT0gLU1BWF9FUlJOTykge1xcbitcXHRcXHRcXHRudGZzX2Vycm9yKHZvbC1cXHUwMDNlc2IsIFxcXCJudGZzX2xvb2t1cF9pbm9fYnlfbmFtZSgpIGZhaWxlZCB3aXRoIGVycm9yIGNvZGUgJWxpLlxcXCIsXFxuK1xcdFxcdFxcdFxcdGVycik7XFxuK1xcdFxcdFxcdHJldHVybiBFUlJfUFRSKGVycik7XFxuK1xcdFxcdH1cXG4rXFx0XFx0bnRmc19lcnJvcih2b2wtXFx1MDAzZXNiLCBcXFwibnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSByZXR1cm5lZCBpbnZhbGlkIGVycm9yIGNvZGUgJWxpLCB0cmVhdGluZyBhcyBkaXNrIGNvcnJ1cHRpb24uXFxcIixcXG4rXFx0XFx0XFx0ZXJyKTtcXG4rXFx0XFx0cmV0dXJuIEVSUl9QVFIoLUVJTyk7XFxuIFxcdH1cXG4tXFx0bnRmc19lcnJvcih2b2wtXFx1MDAzZXNiLCBcXFwibnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVpLlxcXCIsXFxuLVxcdFxcdFxcdC1NUkVGX0VSUihtcmVmKSk7XFxuLVxcdHJldHVybiBFUlJfUFRSKE1SRUZfRVJSKG1yZWYpKTtcXG4gaGFuZGxlX25hbWU6XFxuIFxcdHtcXG4gXFx0XFx0c3RydWN0IG1mdF9yZWNvcmQgKm07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA4OjEwOjIyLjQ4MjA5NzgzM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjUxNjYwMzE5NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTlRGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm50ZnNfbG9va3VwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGU3NjFiYTc5M2EwZGY1MTBlNGM3OTVhYzdhZDZkYzQ5Y2U0YzJkZGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAwODoxMDoyMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL250ZnMvbmFtZWkuYyBiL2ZzL250ZnMvbmFtZWkuY1xuaW5kZXggOWMxYzM2YWNmYWQyNGUuLmU5NTkzODcxMzViNWUyIDEwMDY0NFxuLS0tIGEvZnMvbnRmcy9uYW1laS5jXG4rKysgYi9mcy9udGZzL25hbWVpLmNcbkBAIC0yMzMsMTAgKzIzMywxOCBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqbnRmc19sb29rdXAoc3RydWN0IGlub2RlICpkaXJfaW5vLCBzdHJ1Y3QgZGVudHJ5ICpkZW50LFxuIFx0XHRkX2FkZChkZW50LCBOVUxMKTtcbiBcdFx0bnRmc19kZWJ1ZyhcIkRvbmUuXCIpO1xuIFx0XHRyZXR1cm4gTlVMTDtcbitcdH0gZWxzZSB7XG4rXHRcdGxvbmcgZXJyID0gTVJFRl9FUlIobXJlZik7XG4rXG4rXHRcdGlmIChlcnIgXHUwMDNjIDAgXHUwMDI2XHUwMDI2IGVyciBcdTAwM2U9IC1NQVhfRVJSTk8pIHtcbitcdFx0XHRudGZzX2Vycm9yKHZvbC1cdTAwM2VzYiwgXCJudGZzX2xvb2t1cF9pbm9fYnlfbmFtZSgpIGZhaWxlZCB3aXRoIGVycm9yIGNvZGUgJWxpLlwiLFxuK1x0XHRcdFx0ZXJyKTtcbitcdFx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuK1x0XHR9XG4rXHRcdG50ZnNfZXJyb3Iodm9sLVx1MDAzZXNiLCBcIm50ZnNfbG9va3VwX2lub19ieV9uYW1lKCkgcmV0dXJuZWQgaW52YWxpZCBlcnJvciBjb2RlICVsaSwgdHJlYXRpbmcgYXMgZGlzayBjb3JydXB0aW9uLlwiLFxuK1x0XHRcdGVycik7XG4rXHRcdHJldHVybiBFUlJfUFRSKC1FSU8pO1xuIFx0fVxuLVx0bnRmc19lcnJvcih2b2wtXHUwMDNlc2IsIFwibnRmc19sb29rdXBfaW5vX2J5X25hbWUoKSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVpLlwiLFxuLVx0XHRcdC1NUkVGX0VSUihtcmVmKSk7XG4tXHRyZXR1cm4gRVJSX1BUUihNUkVGX0VSUihtcmVmKSk7XG4gaGFuZGxlX25hbWU6XG4gXHR7XG4gXHRcdHN0cnVjdCBtZnRfcmVjb3JkICptO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDg6MTA6MjIuNDgyMTAwOTMzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAxMzI0OTExMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5URlMgTG9va3VwIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGZzL250ZnMvbmFtZWkuY2AuIEl0IHNlZW1zIGxpa2Ugd2UncmUgcmVmaW5pbmcgdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgYG50ZnNfbG9va3VwYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCdzIGFib3V0IGhvdyB3ZSBkZWFsIHdpdGggZXJyb3JzIG9yaWdpbmF0aW5nIGZyb20gYG50ZnNfbG9va3VwX2lub19ieV9uYW1lYC4gSSBzZWUgdGhlIGtleSBjaGFuZ2UgaGVyZTogcHJldmlvdXNseSwgd2UgbWlnaHQgaGF2ZSBoYWQgYSBsZXNzIHJlZmluZWQgYXBwcm9hY2ggdG8gaW50ZXJwcmV0aW5nIHRoZXNlIGVycm9ycywgYnV0IG5vdyB3ZSdyZSBleHBsaWNpdGx5IGNoZWNraW5nIHRoZSBib3VuZHMgb2YgdGhlIGVycm9yIGNvZGUuXG5cblRoZSBsb2dpYyBpcyBzdHJhaWdodGZvcndhcmQ7IElmIGBlcnJgIGlzIGEgdmFsaWQgbmVnYXRpdmUgZXJyb3IgY29kZSwgd2l0aGluIHRoZSBleHBlY3RlZCByYW5nZSwgd2UgcHJlc2VydmUgYW5kIHJldHVybiBpdCBkaXJlY3RseSB2aWEgYEVSUl9QVFIoZXJyKWAuIEhvd2V2ZXIsIGlmIGBlcnJgIGlzIG91dHNpZGUgdGhpcyBleHBlY3RlZCByYW5nZSwgaW5kaWNhdGluZyBhbiB1bmtub3duIG9yIHBvdGVudGlhbGx5IGNhdGFzdHJvcGhpYyBpc3N1ZSwgaXQncyBiZWluZyBcInJlLW1hcHBlZFwiIHRvIGAtRUlPYCwgd2hpY2ggZXNzZW50aWFsbHkgc2lnbmFscyBhIGdlbmVyaWMgSS9PIGVycm9yIHZpYSBgRVJSX1BUUigtRUlPKWAuIFRoaXMgY291bGQgYmUgdXNlZnVsIGlmIGBudGZzX2xvb2t1cF9pbm9fYnlfbmFtZWAgcmV0dXJucyBhbiB1bmV4cGVjdGVkIGVycm9yIGNvZGUsIHdoaWNoIG1pZ2h0IGJlIGZyb20gdGhlIHVzZXIgc3BhY2UuIFRoaXMgc2VlbXMgbGlrZSBhIGdvb2QsIGRlZmVuc2l2ZSBtb3ZlIHRvIGVuc3VyZSBzdGFiaWxpdHkuIFRoaXMgbWFrZXMgc2Vuc2UgdG8gcHJvdGVjdCBhZ2FpbnN0IHVua25vd24gaXNzdWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDAxLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDg6MTA6MjYuNDk1MzUzMTc0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjc1Njk0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJudGZzX2xvb2t1cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9udGZzL25hbWVpLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvbnRmcy9uYW1laS5jPTYwPXN0YXRpYyBpbnQgbnRmc19jaGVja19iYWRfd2luZG93c19uYW1lKHN0cnVjdCBudGZzX3ZvbHVtZSAqdm9sLFxcbi0tXFxuZnMvbnRmcy9uYW1laS5jLTEwMS0vKlxcbmZzL250ZnMvbmFtZWkuYzoxMDI6ICogbnRmc19sb29rdXAgLSBmaW5kIHRoZSBpbm9kZSByZXByZXNlbnRlZCBieSBhIGRlbnRyeSBpbiBhIGRpcmVjdG9yeSBpbm9kZVxcbmZzL250ZnMvbmFtZWkuYy0xMDMtICogQGRpcl9pbm86XFx0ZGlyZWN0b3J5IGlub2RlIGluIHdoaWNoIHRvIGxvb2sgZm9yIHRoZSBpbm9kZVxcbi0tXFxuZnMvbnRmcy9uYW1laS5jLTEwNi0gKlxcbmZzL250ZnMvbmFtZWkuYzoxMDc6ICogSW4gc2hvcnQsIG50ZnNfbG9va3VwKCkgbG9va3MgZm9yIHRoZSBpbm9kZSByZXByZXNlbnRlZCBieSB0aGUgZGVudHJ5IEBkZW50XFxuZnMvbnRmcy9uYW1laS5jLTEwOC0gKiBpbiB0aGUgZGlyZWN0b3J5IGlub2RlIEBkaXJfaW5vIGFuZCBpZiBmb3VuZCBhdHRhY2hlcyB0aGUgaW5vZGUgdG8gdGhlXFxuLS1cXG5mcy9udGZzL25hbWVpLmMtMTExLSAqIEluIG1vcmUgZGV0YWlsLCB0aGUgZGVudHJ5IEBkZW50IHNwZWNpZmllcyB3aGljaCBpbm9kZSB0byBsb29rIGZvciBieVxcbmZzL250ZnMvbmFtZWkuYzoxMTI6ICogc3VwcGx5aW5nIHRoZSBuYW1lIG9mIHRoZSBpbm9kZSBpbiBAZGVudC1cXHUwMDNlZF9uYW1lLm5hbWUuIG50ZnNfbG9va3VwKClcXG5mcy9udGZzL25hbWVpLmMtMTEzLSAqIGNvbnZlcnRzIHRoZSBuYW1lIHRvIFVuaWNvZGUgYW5kIHdhbGtzIHRoZSBjb250ZW50cyBvZiB0aGUgZGlyZWN0b3J5IGlub2RlXFxuLS1cXG5mcy9udGZzL25hbWVpLmMtMTI2LSAqIGRjYWNoZSBhbmQgdGhlIGRjYWNoZSByZXF1aXJpbmcgb25seSBvbmUgZGVudHJ5IHBlciBkaXJlY3RvcnksIHdlIGRlYWwgd2l0aFxcbmZzL250ZnMvbmFtZWkuYzoxMjc6ICogZGVudHJ5IGFsaWFzZXMgdGhhdCBvbmx5IGRpZmZlciBpbiBjYXNlIGluIC1cXHUwMDNlbnRmc19sb29rdXAoKSB3aGlsZSBtYWludGFpbmluZ1xcbmZzL250ZnMvbmFtZWkuYy0xMjgtICogYSBjYXNlIHNlbnNpdGl2ZSBkY2FjaGUuIFRoaXMgbWVhbnMgdGhhdCB3ZSBnZXQgdGhlIGZ1bGwgYmVuZWZpdCBvZiBkY2FjaGVcXG4tLVxcbmZzL250ZnMvbmFtZWkuYy0xMzAtICogLVxcdTAwM2VudGZzX3JlYWRkaXIoKSBidXQgdGhhdCBhIGxvb2t1cCBmb3IgYW55IG90aGVyIGNhc2UgKG9yIGZvciB0aGUgc2hvcnQgZmlsZVxcbmZzL250ZnMvbmFtZWkuYzoxMzE6ICogbmFtZSkgd2lsbCBub3QgZmluZCBhbnl0aGluZyBpbiBkY2FjaGUgYW5kIHdpbGwgZW50ZXIgLVxcdTAwM2VudGZzX2xvb2t1cCgpXFxuZnMvbnRmcy9uYW1laS5jLTEzMi0gKiBpbnN0ZWFkLCB3aGVyZSB3ZSBzZWFyY2ggdGhlIGRpcmVjdG9yeSBmb3IgYSBmdWxseSBtYXRjaGluZyBmaWxlIG5hbWVcXG4tLVxcbmZzL250ZnMvbmFtZWkuYy0xNDUtICogICAgZmlsZSBuYW1lIGluIHRoZSBXSU4zMiBvciBQT1NJWCBuYW1lc3BhY2VzLiBJbiB0aGlzIGNhc2VcXG5mcy9udGZzL25hbWVpLmM6MTQ2OiAqICAgIG50ZnNfbG9va3VwX2lub2RlX2J5X25hbWUoKSB3aWxsIHJldHVybiB3aXRoIG5hbWUgc2V0IHRvIE5VTEwgYW5kIHdlXFxuZnMvbnRmcy9uYW1laS5jLTE0Ny0gKiAgICBqdXN0IGRfc3BsaWNlX2FsaWFzKCkgQGRlbnQuXFxuZnMvbnRmcy9uYW1laS5jLTE0OC0gKiAyKSBAZGVudCBtYXRjaGVzIChub3QgaW5jbHVkaW5nIGNhc2UpIGEgZGlyZWN0b3J5IGVudHJ5IHdpdGggYSBmaWxlIG5hbWUgaW5cXG5mcy9udGZzL25hbWVpLmM6MTQ5OiAqICAgIHRoZSBXSU4zMiBuYW1lc3BhY2UuIEluIHRoaXMgY2FzZSBudGZzX2xvb2t1cF9pbm9kZV9ieV9uYW1lKCkgd2lsbCByZXR1cm5cXG5mcy9udGZzL25hbWVpLmMtMTUwLSAqICAgIHdpdGggbmFtZSBzZXQgdG8gcG9pbnQgdG8gYSBrbWFsbG9jKCllZCBudGZzX25hbWUgc3RydWN0dXJlIGNvbnRhaW5pbmdcXG4tLVxcbmZzL250ZnMvbmFtZWkuYy0xNjAtICogICAgZGlyZWN0b3J5IGVudHJ5IHdpdGggYSBmaWxlIG5hbWUgaW4gdGhlIERPUyBuYW1lc3BhY2UuIEluIHRoaXMgY2FzZVxcbmZzL250ZnMvbmFtZWkuYzoxNjE6ICogICAgbnRmc19sb29rdXBfaW5vZGVfYnlfbmFtZSgpIHdpbGwgcmV0dXJuIHdpdGggbmFtZSBzZXQgdG8gcG9pbnQgdG8gYVxcbmZzL250ZnMvbmFtZWkuYy0xNjItICogICAga21hbGxvYygpZWQgbnRmc19uYW1lIHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBtZnQgcmVmZXJlbmNlIChjcHUgZW5kaWFuKVxcbi0tXFxuZnMvbnRmcy9uYW1laS5jLTE2OS0gKi9cXG5mcy9udGZzL25hbWVpLmM6MTcwOnN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpudGZzX2xvb2t1cChzdHJ1Y3QgaW5vZGUgKmRpcl9pbm8sIHN0cnVjdCBkZW50cnkgKmRlbnQsXFxuZnMvbnRmcy9uYW1laS5jLTE3MS1cXHRcXHR1bnNpZ25lZCBpbnQgZmxhZ3MpXFxuLS1cXG5mcy9udGZzL25hbWVpLmMtMTkxLVxcdG11dGV4X2xvY2soXFx1MDAyNk5URlNfSShkaXJfaW5vKS1cXHUwMDNlbXJlY19sb2NrKTtcXG5mcy9udGZzL25hbWVpLmM6MTkyOlxcdG1yZWYgPSBudGZzX2xvb2t1cF9pbm9kZV9ieV9uYW1lKE5URlNfSShkaXJfaW5vKSwgdW5hbWUsIHVuYW1lX2xlbixcXG5mcy9udGZzL25hbWVpLmMtMTkzLVxcdFxcdFxcdFxcdTAwMjZuYW1lKTtcXG4tLVxcbmZzL250ZnMvbmFtZWkuYy0yMzktXFx0XFx0aWYgKGVyciBcXHUwMDNjIDAgXFx1MDAyNlxcdTAwMjYgZXJyIFxcdTAwM2U9IC1NQVhfRVJSTk8pIHtcXG5mcy9udGZzL25hbWVpLmM6MjQwOlxcdFxcdFxcdG50ZnNfZXJyb3Iodm9sLVxcdTAwM2VzYiwgXFxcIm50ZnNfbG9va3VwX2lub19ieV9uYW1lKCkgZmFpbGVkIHdpdGggZXJyb3IgY29kZSAlbGkuXFxcIixcXG5mcy9udGZzL25hbWVpLmMtMjQxLVxcdFxcdFxcdFxcdGVycik7XFxuLS1cXG5mcy9udGZzL25hbWVpLmMtMjQzLVxcdFxcdH1cXG5mcy9udGZzL25hbWVpLmM6MjQ0OlxcdFxcdG50ZnNfZXJyb3Iodm9sLVxcdTAwM2VzYiwgXFxcIm50ZnNfbG9va3VwX2lub19ieV9uYW1lKCkgcmV0dXJuZWQgaW52YWxpZCBlcnJvciBjb2RlICVsaSwgdHJlYXRpbmcgYXMgZGlzayBjb3JydXB0aW9uLlxcXCIsXFxuZnMvbnRmcy9uYW1laS5jLTI0NS1cXHRcXHRcXHRlcnIpO1xcbi0tXFxuZnMvbnRmcy9uYW1laS5jPTE1ODA9Y29uc3Qgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgbnRmc19kaXJfaW5vZGVfb3BzID0ge1xcbmZzL250ZnMvbmFtZWkuYzoxNTgxOlxcdC5sb29rdXBcXHRcXHQ9IG50ZnNfbG9va3VwLFxcdC8qIFZGUzogTG9va3VwIGRpcmVjdG9yeS4gKi9cXG5mcy9udGZzL25hbWVpLmMtMTU4Mi1cXHQuY3JlYXRlXFx0XFx0PSBudGZzX2NyZWF0ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDg6MTA6MjYuNjAyMTIxNjk0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIzNzk2NDg1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQb3RlbnRpYWwgTlRGUyBWdWxuZXJhYmlsaXR5KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgbnRmc19sb29rdXBgLCBhbmQgdGhhdCdzIGluIGBmcy9udGZzL25hbWVpLmNgLiBNeSBtaW5kIGltbWVkaWF0ZWx5IGp1bXBzIHRvIGxvb2t1cCBvcGVyYXRpb25zIHdpdGhpbiBOVEZTLCBzbyBpdCdzIGxpa2VseSBmdW5jdGlvbmFsIGNvZGUuIExldCBtZSBxdWlja2x5IGNoZWNrOyBpcyBOVEZTIGV2ZW4gZW5hYmxlZCBpbiBzeXprYWxsZXI/IFllYWgsIGl0IHVzdWFsbHkgaXMsIHNvIHRoYXQncyBhIHJlYXNvbmFibGUgYXNzdW1wdGlvbi4gTm93LCB0aGUgYGZzL250ZnMvYCBkaXJlY3RvcnnigKZoYW5nIG9uIGEgc2Vjb25kLiBUaGVyZSdzIGBmcy9udGZzMy9gIHRvbywgcmlnaHQ/IFJpZ2h0LiBUaGF0J3MgdGhlICpuZXcqIE5URlMgZHJpdmVyLiBgZnMvbnRmcy9gIHJlcHJlc2VudHMgdGhlICpvbGQqIG9uZS4gSG1tLCBva2F5LCBsZXQncyBjb25maXJtIHRoZSBvbGQgb25lIGlzIHN0aWxsIGV2ZW4gaW4gdGhlIGtlcm5lbC4gTGV0J3MgbWFrZSBzdXJlIGBmcy9udGZzL25hbWVpLmNgIGlzIGFjdHVhbGx5IHRoZXJlLi4ueXVwLCBpdCBleGlzdHMuIFdhaXQsIHdhc24ndCB0aGUgb2xkIGBudGZzYCBkcml2ZXIgcmVtb3ZlZCBhcm91bmQgdjYuOSBvciBzb21ldGhpbmc/IFRpbWUgdG8gZG91YmxlLWNoZWNrIGlmIGBmcy9udGZzYCBpcyBhY3R1YWxseSBzdGlsbCBhcm91bmQuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY4MywiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwODoxMDozMC44NDAwOTA2NzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTEzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImZzL250ZnNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiYW9wcy5jXCIsXG4gICAgXCJhdHRyaWIuY1wiLFxuICAgIFwiYXR0cmliLmhcIixcbiAgICBcImF0dHJsaXN0LmNcIixcbiAgICBcImF0dHJsaXN0LmhcIixcbiAgICBcImJkZXYtaW8uY1wiLFxuICAgIFwiYml0bWFwLmNcIixcbiAgICBcImJpdG1hcC5oXCIsXG4gICAgXCJjb2xsYXRlLmNcIixcbiAgICBcImNvbGxhdGUuaFwiLFxuICAgIFwiY29tcHJlc3MuY1wiLFxuICAgIFwiZGVidWcuY1wiLFxuICAgIFwiZGVidWcuaFwiLFxuICAgIFwiZGlyLmNcIixcbiAgICBcImRpci5oXCIsXG4gICAgXCJlYS5jXCIsXG4gICAgXCJlYS5oXCIsXG4gICAgXCJmaWxlLmNcIixcbiAgICBcImluZGV4LmNcIixcbiAgICBcImluZGV4LmhcIixcbiAgICBcImlub2RlLmNcIixcbiAgICBcImlub2RlLmhcIixcbiAgICBcImlvbWFwLmNcIixcbiAgICBcImlvbWFwLmhcIixcbiAgICBcImxheW91dC5oXCIsXG4gICAgXCJsY25hbGxvYy5jXCIsXG4gICAgXCJsY25hbGxvYy5oXCIsXG4gICAgXCJsb2dmaWxlLmNcIixcbiAgICBcImxvZ2ZpbGUuaFwiLFxuICAgIFwibWFsbG9jLmhcIixcbiAgICBcIm1mdC5jXCIsXG4gICAgXCJtZnQuaFwiLFxuICAgIFwibXN0LmNcIixcbiAgICBcIm5hbWVpLmNcIixcbiAgICBcIm50ZnMuaFwiLFxuICAgIFwib2JqZWN0X2lkLmNcIixcbiAgICBcIm9iamVjdF9pZC5oXCIsXG4gICAgXCJyZXBhcnNlLmNcIixcbiAgICBcInJlcGFyc2UuaFwiLFxuICAgIFwicnVubGlzdC5jXCIsXG4gICAgXCJydW5saXN0LmhcIixcbiAgICBcInN1cGVyLmNcIixcbiAgICBcInN5c2N0bC5jXCIsXG4gICAgXCJzeXNjdGwuaFwiLFxuICAgIFwidGltZS5oXCIsXG4gICAgXCJ1bmlzdHIuY1wiLFxuICAgIFwidXBjYXNlLmNcIixcbiAgICBcInZvbHVtZS5oXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA4OjEwOjMwLjg0MDI2OTQ1OFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4Njk0Njg5OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIE5URlMgRmlsZXN5c3RlbSBJbXBsZW1lbnRhdGlvbioqXG5cblJpZ2h0LCBgZnMvbnRmc2AgaXMgYSB0aGluZy4gSSBrbmV3IGl0IGV4aXN0ZWQsIGJ1dCBsZXQncyBub3QganVzdCBhc3N1bWUgZXZlcnl0aGluZyBpcyBhcyBpdCBzaG91bGQgYmUuIFRoZSBkZXZpbCdzIGluIHRoZSBkZXRhaWxzLCBlc3BlY2lhbGx5IHdoZW4gZGVhbGluZyB3aXRoIHNvbWV0aGluZyBhcyBjb21wbGV4IGFzIGEgZmlsZXN5c3RlbSBpbXBsZW1lbnRhdGlvbi4gVGltZSB0byBjaGVjayBgZnMvbnRmcy9LY29uZmlnYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgdGhlIGRlcGVuZGVuY2llcywgYW5kIHRoZSBvdmVyYWxsIGJ1aWxkIGluZnJhc3RydWN0dXJlIGFyb3VuZCB0aGlzIHRoaW5nIGJlZm9yZSBJIGRlbHZlIGRlZXBlci4gVGhhdCdzIHdoZXJlIHRoZSBoZWFydCBvZiB0aGUgY29uZmlndXJhdGlvbiBsaXZlcyAtIGxldCdzIHNlZSB3aGF0J3Mgd2hhdC4gVGhlIEtjb25maWcgZmlsZSBzaG91bGQgZ2l2ZSBtZSBhIGdvb2QgbGF5IG9mIHRoZSBsYW5kLCBwcm92aWRpbmcgdml0YWwgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQxMCwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwODoxMDozMy43MDk3NDMzOTlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzg2OTgzMTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBOVEZTX0ZTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL250ZnMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9udGZzL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5mcy9udGZzL0tjb25maWc6Mjpjb25maWcgTlRGU19GU1xcbmZzL250ZnMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJOVEZTIGZpbGUgc3lzdGVtIHN1cHBvcnRcXFwiXFxuLS1cXG5mcy9udGZzL0tjb25maWc9MTM9Y29uZmlnIE5URlNfREVCVUdcXG4tLVxcbmZzL250ZnMvS2NvbmZpZy0zNC1cXG5mcy9udGZzL0tjb25maWc6MzU6Y29uZmlnIE5URlNfRlNfUE9TSVhfQUNMXFxuZnMvbnRmcy9LY29uZmlnLTM2LVxcdGJvb2wgXFxcIk5URlMgUE9TSVggQWNjZXNzIENvbnRyb2wgTGlzdHNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA4OjEwOjM0LjA5NjczNjA0MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0MTY5OTQwNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOVEZTIExvb2t1cCBFcnJvciBIYW5kbGluZyBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWxsIGFib3V0IHR3ZWFraW5nIHRoZSBlcnJvciBoYW5kbGluZyB3aXRoaW4gYG50ZnNfbG9va3VwYC4gSXQgbG9va3MgbGlrZSB0aGUgbWFpbiBjaGFuZ2UgY2VudGVycyBhcm91bmQgaG93IHdlIGRlYWwgd2l0aCB0aGUgZXJyb3IgY29kZSByZXR1cm5lZCBmcm9tIHRoZSBgTVJFRl9FUlJgIG1hY3JvLiBSaWdodCwgc28gYSBjaGVjayBoYXMgYmVlbiBhZGRlZDogYGVyciBcdTAwM2MgMCBcdTAwMjZcdTAwMjYgZXJyIFx1MDAzZT0gLU1BWF9FUlJOT2AuIElmIHRoYXQgY29uZGl0aW9uIGlzIG1ldCwgdGhlbiBgRVJSX1BUUihlcnIpYCBpcyByZXR1cm5lZC4gT3RoZXJ3aXNlLCBpdCBkZWZhdWx0cyB0byByZXR1cm5pbmcgYEVSUl9QVFIoLUVJTylgLlxuXG5UaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYXMgaXQgbW9kaWZpZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBgbnRmc19sb29rdXBgIHVuZGVyIGNlcnRhaW4gZXJyb3IgY29uZGl0aW9ucy4gU3BlY2lmaWNhbGx5LCB3aGVuIGBNUkVGX0VSUihtcmVmKWAgc3BpdHMgb3V0IHNvbWV0aGluZyBvdXRzaWRlIHRoZSB0eXBpY2FsIHJhbmdlLiBUaGF0J3MgYSBrZXkgcG9pbnQuIExldCBtZSBjaGVjayB3aGF0IHRoYXQgbWFjcm8gZG9lcywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhhdCBmdWxseS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc3MiwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwODoxMDo0MC41MTM3MzQ4ODZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2MzkxOTI0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCIjZGVmaW5lIE1SRUZfRVJSXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL250ZnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL250ZnMvbGF5b3V0Lmg9MzM0PWVudW0ge1xcbi0tXFxuZnMvbnRmcy9sYXlvdXQuaC0zODAtI2RlZmluZSBFUlJfTVJFRih4KVxcdCgodTY0KSgoczY0KSh4KSkpXFxuZnMvbnRmcy9sYXlvdXQuaDozODE6I2RlZmluZSBNUkVGX0VSUih4KVxcdCgoaW50KSgoczY0KSh4KSkpXFxuZnMvbnRmcy9sYXlvdXQuaC0zODItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA4OjEwOjQwLjY3NzY2MjU5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY3OTk1ODk1OTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIEZ1enppbmcgVGFyZ2V0KipcblxuT2theSwgc28gdGhpcyBgTVJFRl9FUlJgIHRoaW5nLi4uIGl0J3MgZG9pbmcgYSB0eXBlIGNhc3QgZnJvbSBgdTY0YCB0byBgczY0YCBhbmQgdGhlbiB0byBgaW50YC4gVGhlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhhdCBpdCdzIHJlcGxhY2luZyBpbnZhbGlkIGVycm9yIGNvZGVzIHdpdGggYC1FSU9gLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBiZWhhdmlvciBzaGlmdC4gVGhlIHF1ZXN0aW9uIGlzLCBpcyBpdCB3b3J0aCBmdXp6aW5nPyBDb25zaWRlcmluZyBpdCByZWxhdGVzIHRvIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQsIGFic29sdXRlbHksIGl0J3Mgd29ydGggdGhlIGVmZm9ydC4gTXkgcHJpbWFyeSBmb2N1cyBzaG91bGQgYmUgb24gdGhlIGBudGZzX2xvb2t1cGAgZnVuY3Rpb24uIFRoZSBrZXkgY29uZmlndXJhdGlvbiBuZWVkZWQgaXMgYE5URlNfRlNgLlxuXG5MZXQncyBxdWlja2x5IGNvbmZpcm0gdGhhdCBgbnRmc19sb29rdXBgIGlzIGFjdHVhbGx5IHJlYWNoYWJsZS4gUmlnaHQsIGl0J3MgcGFydCBvZiBgbnRmc19kaXJfaW5vZGVfb3BzYCwgc3BlY2lmaWNhbGx5IHRoZSBgLmxvb2t1cGAgb3BlcmF0aW9uLiBTbywgaXQncyBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIHN0YW5kYXJkIFZGUyBsb29rdXAgb3BlcmF0aW9ucyBvbiBhbiBOVEZTIGZpbGVzeXN0ZW0g4oCTIGdvb2QuXG5cbkknbGwgbWFrZSBhIG5vdGU6ICoqYG50ZnNfbG9va3VwYCoqIGlzIHRoZSBmdW5jdGlvbiB0byBmb2N1cyBvbi4gSSdsbCBhbHNvIGFkZCAqKmBOVEZTX0ZTYCoqIHRvIHRoZSBlbmFibGVkIGNvbmZpZ3VyYXRpb25zLlxuXG5XYWl0IGEgc2Vjb25kLi4uIHJpZ2h0LCBgbnRmc19sb29rdXBgIGlzIGEgc3RhdGljIGZ1bmN0aW9uIGluIGBmcy9udGZzL25hbWVpLmNgLiBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucy4gTm9wZSwgdGhlIHBhdGNoICpvbmx5KiBtb2RpZmllcyBgbnRmc19sb29rdXBgLlxuXG5MZXQncyBxdWlja2x5IHZlcmlmeSB0aGUgY29uZmlncy4gSnVzdCBgTlRGU19GU2AsIG5vdGhpbmcgZWxzZS5cblxuQWxyaWdodCwgdGltZSB0byBmb3JtdWxhdGUgYSBjb25jaXNlIHJlc3BvbnNlOlxuXG4qICAgKipXb3J0aEZ1enppbmc6IHRydWUqKlxuKiAgICoqRm9jdXNTeW1ib2xzOiBcXFtcIm50ZnNfbG9va3VwXCJcXF0qKlxuKiAgICoqRW5hYmxlQ29uZmlnczogXFxbXCJOVEZTXFxfRlNcIlxcXSoqXG4qICAgKipSZWFzb25pbmc6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGhhbmRsaW5nIGluIGBudGZzX2xvb2t1cGAgZm9yIHRoZSBOVEZTIGZpbGVzeXN0ZW0sIGNoYW5naW5nIHRoZSByZXR1cm5lZCBlcnJvciBjb2RlIHdoZW4gYW4gaW52YWxpZCBlcnJvciBpcyBlbmNvdW50ZXJlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBob3cgY29ycnVwdGVkIE5URlMgaW1hZ2VzIGFyZSBoYW5kbGVkIGR1cmluZyBkaXJlY3RvcnkgbG9va3Vwcy5cIioqXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyMTYsIk91dHB1dFRva2VucyI6OTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDg6MTA6NDcuNDc3MjU0ODA5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcwODY0NjQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJOVEZTX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibnRmc19sb29rdXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBoYW5kbGluZyBpbiBgbnRmc19sb29rdXBgIGZvciB0aGUgTlRGUyBmaWxlc3lzdGVtLCBjaGFuZ2luZyB0aGUgcmV0dXJuZWQgZXJyb3IgY29kZSB3aGVuIGFuIGludmFsaWQgZXJyb3IgaXMgZW5jb3VudGVyZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgaG93IGNvcnJ1cHRlZCBOVEZTIGltYWdlcyBhcmUgaGFuZGxlZCBkdXJpbmcgZGlyZWN0b3J5IGxvb2t1cHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTlRGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm50ZnNfbG9va3VwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gYG50ZnNfbG9va3VwYCBmb3IgdGhlIE5URlMgZmlsZXN5c3RlbSwgY2hhbmdpbmcgdGhlIHJldHVybmVkIGVycm9yIGNvZGUgd2hlbiBhbiBpbnZhbGlkIGVycm9yIGlzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIGhvdyBjb3JydXB0ZWQgTlRGUyBpbWFnZXMgYXJlIGhhbmRsZWQgZHVyaW5nIGRpcmVjdG9yeSBsb29rdXBzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowt777p[1] Phase: Succeeded StartedAt: 2026-06-30 08:10:59 +0000 UTC FinishedAt: 2026-06-30 08:10:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-30 08:10:59 +0000 UTC FinishedAt: 2026-06-30 08:10:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2] Phase: Succeeded StartedAt: 2026-06-30 08:10:59 +0000 UTC FinishedAt: 2026-06-30 10:07:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-30 08:10:59 +0000 UTC FinishedAt: 2026-06-30 10:07:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-30 08:10:59 +0000 UTC FinishedAt: 2026-06-30 08:11:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-30 08:10:59 +0000 UTC FinishedAt: 2026-06-30 08:11:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowt777p/series-workflowt777p-convert-artifact-1805744993/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-30 08:11:09 +0000 UTC FinishedAt: 2026-06-30 08:36:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-30 08:11:09 +0000 UTC FinishedAt: 2026-06-30 08:36:30 +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:*03511e34-7727-4b19-90fa-bf53643df484,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-workflowt777p/series-workflowt777p-convert-artifact-1805744993/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": "5fed66d8-6151-43c5-a343-d06742ea2a65", "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-workflowt777p/series-workflowt777p-build-action-2892056719/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-30 08:11:09 +0000 UTC FinishedAt: 2026-06-30 08:36:20 +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:*03511e34-7727-4b19-90fa-bf53643df484,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-workflowt777p/series-workflowt777p-convert-artifact-1805744993/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": "5fed66d8-6151-43c5-a343-d06742ea2a65", "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-workflowt777p/series-workflowt777p-build-action-2892056719/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-30 08:36:30 +0000 UTC FinishedAt: 2026-06-30 08:36:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-30 08:36:30 +0000 UTC FinishedAt: 2026-06-30 08:36:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-30 08:36:30 +0000 UTC FinishedAt: 2026-06-30 08:36:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-30 08:36:30 +0000 UTC FinishedAt: 2026-06-30 08:36:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowt777p/series-workflowt777p-convert-artifact-1463110836/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-30 08:36:40 +0000 UTC FinishedAt: 2026-06-30 08:38:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-30 08:36:40 +0000 UTC FinishedAt: 2026-06-30 08:38:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5fed66d8-6151-43c5-a343-d06742ea2a65,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-workflowt777p/series-workflowt777p-build-action-2892056719/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-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-30 08:38:57 +0000 UTC FinishedAt: 2026-06-30 08:38:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-30 08:38:57 +0000 UTC FinishedAt: 2026-06-30 08:38:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-30 08:38:57 +0000 UTC FinishedAt: 2026-06-30 09:13:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-30 08:38:57 +0000 UTC FinishedAt: 2026-06-30 09:13: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:*03511e34-7727-4b19-90fa-bf53643df484,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-workflowt777p/series-workflowt777p-convert-artifact-1463110836/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": "933d855e-79df-4597-b88a-f73c7230a65f", "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-workflowt777p/series-workflowt777p-build-action-3347033728/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-30 08:38:57 +0000 UTC FinishedAt: 2026-06-30 09:12:50 +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:*03511e34-7727-4b19-90fa-bf53643df484,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-workflowt777p/series-workflowt777p-convert-artifact-1463110836/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": "933d855e-79df-4597-b88a-f73c7230a65f", "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-workflowt777p/series-workflowt777p-build-action-3347033728/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-30 09:13:11 +0000 UTC FinishedAt: 2026-06-30 09:13:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-30 09:13:11 +0000 UTC FinishedAt: 2026-06-30 09:13:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-30 09:13:11 +0000 UTC FinishedAt: 2026-06-30 09:15:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-30 09:13:11 +0000 UTC FinishedAt: 2026-06-30 09:15:02 +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:*933d855e-79df-4597-b88a-f73c7230a65f,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-workflowt777p/series-workflowt777p-build-action-3347033728/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-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-30 09:15:12 +0000 UTC FinishedAt: 2026-06-30 10:07:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-30 09:15:12 +0000 UTC FinishedAt: 2026-06-30 10:07:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"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:*5fed66d8-6151-43c5-a343-d06742ea2a65,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*933d855e-79df-4597-b88a-f73c7230a65f,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-workflowt777p/series-workflowt777p-build-action-2892056719/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-workflowt777p/series-workflowt777p-build-action-3347033728/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-30 09:15:12 +0000 UTC FinishedAt: 2026-06-30 09:19:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-30 09:15:12 +0000 UTC FinishedAt: 2026-06-30 09:16:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"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-workflowt777p/series-workflowt777p-convert-artifact-656045533/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-30 09:15:12 +0000 UTC FinishedAt: 2026-06-30 09:15:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-30 09:15:12 +0000 UTC FinishedAt: 2026-06-30 09:15:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-30 09:15:12 +0000 UTC FinishedAt: 2026-06-30 09:15:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-30 09:19:14 +0000 UTC FinishedAt: 2026-06-30 10:07:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt777p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ntfs_lookup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"115446b06fb725ba04e0f2ae5174029d2c60cad6","config_name":"upstream-apparmor-kasan.config","enable_configs":["NTFS_FS"],"series_id":"3ddee25b-3bc1-4f30-b6ef-adc68d7cb9e9","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-30 09:19:15 +0000 UTC FinishedAt: 2026-06-30 10:07:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5fed66d8-6151-43c5-a343-d06742ea2a65,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*933d855e-79df-4597-b88a-f73c7230a65f,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-workflowt777p/series-workflowt777p-build-action-2892056719/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-workflowt777p/series-workflowt777p-build-action-3347033728/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-workflowt777p/series-workflowt777p-convert-artifact-656045533/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,}