Name: series-workflowbbrk2 Phase: Succeeded StartedAt: 2026-07-29 22:39:54 +0000 UTC FinishedAt: 2026-07-30 01:34:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[0] Phase: Succeeded StartedAt: 2026-07-29 22:39:54 +0000 UTC FinishedAt: 2026-07-29 23:11:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[0].run-triage Phase: Succeeded StartedAt: 2026-07-29 22:39:54 +0000 UTC FinishedAt: 2026-07-29 23:11:48 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "ae98967f6e94c2239d81795f9f6c987add5518c8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "SWAP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "ae98967f6e94c2239d81795f9f6c987add5518c8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "SWAP" ], "series_id": "0c6d8451-68cc-4a8f-ad95-5bd462fc856e" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "sys_swapoff" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDIzOjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NXQVAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzeXNfc3dhcG9mZiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvcHRpbWl6ZXMgdGhlIGBmaW5kX25leHRfdG9fdW51c2VgIGZ1bmN0aW9uIGluIHRoZSBzd2FwIHN1YnN5c3RlbSBieSBza2lwcGluZyBlbXB0eSBzd2FwIGNsdXN0ZXJzIGVudGlyZWx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgdmlhIHRoZSBgc3dhcG9mZmAgc3lzY2FsbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAyMzoxMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGE3Yzc0ODZkM2I4YjdlNDRjYmI0NGU3OTNjMmMwODQzYTE5MDZjMTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyOSAyMzoxMTowMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N3YXAuaCBiL2luY2x1ZGUvbGludXgvc3dhcC5oXG5pbmRleCAyY2IxZDI5MzA3YzU0Li5lMTJjNzM4OTFiNDhlIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9zd2FwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvc3dhcC5oXG5AQCAtMjQ2LDcgJiM0MzsyNDYsNyBAQCBzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCB7XG4gXHRzdHJ1Y3QgcGxpc3Rfbm9kZSBsaXN0O1x0XHQvKiBlbnRyeSBpbiBzd2FwX2FjdGl2ZV9oZWFkICovXG4gXHRzaWduZWQgY2hhclx0dHlwZTtcdFx0Lyogc3RyYW5nZSBuYW1lIGZvciBhbiBpbmRleCAqL1xuIFx0dW5zaWduZWQgaW50XHRtYXg7XHRcdC8qIHNpemUgb2YgdGhpcyBzd2FwIGRldmljZSAqL1xuLVx0c3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjbHVzdGVyX2luZm87IC8qIGNsdXN0ZXIgaW5mby4gT25seSBmb3IgU1NEICovXG4mIzQzO1x0c3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjbHVzdGVyX2luZm87IC8qIG9uZSBwZXIgY2x1c3Rlciwgb24gZXZlcnkgZGV2aWNlICovXG4gXHRzdHJ1Y3QgbGlzdF9oZWFkIGZyZWVfY2x1c3RlcnM7IC8qIGZyZWUgY2x1c3RlcnMgbGlzdCAqL1xuIFx0c3RydWN0IGxpc3RfaGVhZCBmdWxsX2NsdXN0ZXJzOyAvKiBmdWxsIGNsdXN0ZXJzIGxpc3QgKi9cbiBcdHN0cnVjdCBsaXN0X2hlYWQgbm9uZnVsbF9jbHVzdGVyc1tTV0FQX05SX09SREVSU107XG5kaWZmIC0tZ2l0IGEvbW0vc3dhcGZpbGUuYyBiL21tL3N3YXBmaWxlLmNcbmluZGV4IDVkMTU5MTNkY2Y4NjMuLjIzMGFiYjI3NmNlYjQgMTAwNjQ0XG4tLS0gYS9tbS9zd2FwZmlsZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9tbS9zd2FwZmlsZS5jXG5AQCAtMzcwLDggJiM0MzszNzAsNiBAQCBzdGF0aWMgdm9pZCBkaXNjYXJkX3N3YXBfY2x1c3RlcihzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2ksXG4gXHR9XG4gfVxuIFxuLSNkZWZpbmUgTEFURU5DWV9MSU1JVFx0XHQyNTZcbi1cbiBzdGF0aWMgaW5saW5lIGJvb2wgY2x1c3Rlcl9pc19lbXB0eShzdHJ1Y3Qgc3dhcF9jbHVzdGVyX2luZm8gKmluZm8pXG4ge1xuIFx0cmV0dXJuIGluZm8tXHUwMDNlY291bnQgPT0gMDtcbkBAIC0yNzYzLDcgJiM0MzsyNzYxLDkgQEAgc3RhdGljIGludCB1bnVzZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgaW50IHR5cGUpXG4gc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxuIFx0XHRcdFx0XHR1bnNpZ25lZCBpbnQgcHJldilcbiB7XG4tXHR1bnNpZ25lZCBpbnQgaTtcbiYjNDM7XHRzdHJ1Y3Qgc3dhcF9jbHVzdGVyX2luZm8gKmNpO1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgaSwgZW5kO1xuJiM0MztcdHVuc2lnbmVkIGludCBjaV9vZmY7XG4gXHR1bnNpZ25lZCBsb25nIHN3cF90YjtcbiBcbiBcdC8qXG5AQCAtMjc3MiwxOSAmIzQzOzI3NzIsMzIgQEAgc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxuIFx0ICogaGl0cyBhcmUgb2theSwgYW5kIHN5c19zd2Fwb2ZmKCkgaGFzIGFscmVhZHkgcHJldmVudGVkIG5ld1xuIFx0ICogYWxsb2NhdGlvbnMgZnJvbSB0aGlzIGFyZWEgKHdoaWxlIGhvbGRpbmcgc3dhcF9sb2NrKS5cbiBcdCAqL1xuLVx0Zm9yIChpID0gcHJldiAmIzQzOyAxOyBpIFx1MDAzYyBzaS1cdTAwM2VtYXg7IGkmIzQzOyYjNDM7KSB7XG4tXHRcdHN3cF90YiA9IHN3YXBfdGFibGVfZ2V0KF9fc3dhcF9vZmZzZXRfdG9fY2x1c3RlcihzaSwgaSksXG4tXHRcdFx0XHRcdGkgJSBTV0FQRklMRV9DTFVTVEVSKTtcbi1cdFx0aWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpIFx1MDAyNlx1MDAyNiAhc3dwX3RiX2lzX2JhZChzd3BfdGIpKVxuLVx0XHRcdGJyZWFrO1xuLVx0XHRpZiAoKGkgJSBMQVRFTkNZX0xJTUlUKSA9PSAwKVxuJiM0MztcdGkgPSBwcmV2ICYjNDM7IDE7XG4mIzQzO1x0d2hpbGUgKGkgXHUwMDNjIHNpLVx1MDAzZW1heCkge1xuJiM0MztcdFx0Y2kgPSBfX3N3YXBfb2Zmc2V0X3RvX2NsdXN0ZXIoc2ksIGkpO1xuJiM0MztcdFx0Y2lfb2ZmID0gaSAlIFNXQVBGSUxFX0NMVVNURVI7XG4mIzQzO1x0XHRlbmQgPSBtaW4oc2ktXHUwMDNlbWF4LCBpIC0gY2lfb2ZmICYjNDM7IFNXQVBGSUxFX0NMVVNURVIpO1xuJiM0MztcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBBbiBlbXB0eSBjbHVzdGVyIGhhcyBubyBzbG90IGluIHVzZSwgc28gc2tpcCBpdCB3aG9sZS5cbiYjNDM7XHRcdCAqIEEgc2xvdCBpcyB1bmNvdW50ZWQgb25seSBhZnRlciBpdHMgZm9saW8gbGVmdCB0aGUgc3dhcFxuJiM0MztcdFx0ICogY2FjaGUsIHNvIHRoZXJlIGlzIG5vdGhpbmcgaGVyZSBmb3IgdHJ5X3RvX3VudXNlKCkgdG8gYWN0IG9uLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRpZiAoY2x1c3Rlcl9pc19lbXB0eShjaSkpIHtcbiYjNDM7XHRcdFx0aSA9IGVuZDtcbiBcdFx0XHRjb25kX3Jlc2NoZWQoKTtcbi1cdH1cbiYjNDM7XHRcdFx0Y29udGludWU7XG4mIzQzO1x0XHR9XG4gXG4tXHRpZiAoaSA9PSBzaS1cdTAwM2VtYXgpXG4tXHRcdGkgPSAwO1xuJiM0MztcdFx0Zm9yICg7IGkgXHUwMDNjIGVuZDsgY2lfb2ZmJiM0MzsmIzQzOywgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdFx0c3dwX3RiID0gc3dhcF90YWJsZV9nZXQoY2ksIGNpX29mZik7XG4mIzQzO1x0XHRcdGlmICghc3dwX3RiX2lzX251bGwoc3dwX3RiKSBcdTAwMjZcdTAwMjYgIXN3cF90Yl9pc19iYWQoc3dwX3RiKSlcbiYjNDM7XHRcdFx0XHRyZXR1cm4gaTtcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdGNvbmRfcmVzY2hlZCgpO1xuJiM0MztcdH1cbiBcbi1cdHJldHVybiBpO1xuJiM0MztcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAyMzoxMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1dBUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N5c19zd2Fwb2ZmJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9wdGltaXplcyB0aGUgYGZpbmRfbmV4dF90b191bnVzZWAgZnVuY3Rpb24gaW4gdGhlIHN3YXAgc3Vic3lzdGVtIGJ5IHNraXBwaW5nIGVtcHR5IHN3YXAgY2x1c3RlcnMgZW50aXJlbHkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGtlcm5lbCBsb2dpYyB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgdGhlIGBzd2Fwb2ZmYCBzeXNjYWxsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTdjNzQ4NmQzYjhiN2U0NGNiYjQ0ZTc5M2MyYzA4NDNhMTkwNmMxNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDI5IDIzOjExOjAwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zd2FwLmggYi9pbmNsdWRlL2xpbnV4L3N3YXAuaAppbmRleCAyY2IxZDI5MzA3YzU0Li5lMTJjNzM4OTFiNDhlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3N3YXAuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3N3YXAuaApAQCAtMjQ2LDcgJiM0MzsyNDYsNyBAQCBzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCB7CiAJc3RydWN0IHBsaXN0X25vZGUgbGlzdDsJCS8qIGVudHJ5IGluIHN3YXBfYWN0aXZlX2hlYWQgKi8KIAlzaWduZWQgY2hhcgl0eXBlOwkJLyogc3RyYW5nZSBuYW1lIGZvciBhbiBpbmRleCAqLwogCXVuc2lnbmVkIGludAltYXg7CQkvKiBzaXplIG9mIHRoaXMgc3dhcCBkZXZpY2UgKi8KLQlzdHJ1Y3Qgc3dhcF9jbHVzdGVyX2luZm8gKmNsdXN0ZXJfaW5mbzsgLyogY2x1c3RlciBpbmZvLiBPbmx5IGZvciBTU0QgKi8KJiM0MzsJc3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjbHVzdGVyX2luZm87IC8qIG9uZSBwZXIgY2x1c3Rlciwgb24gZXZlcnkgZGV2aWNlICovCiAJc3RydWN0IGxpc3RfaGVhZCBmcmVlX2NsdXN0ZXJzOyAvKiBmcmVlIGNsdXN0ZXJzIGxpc3QgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGZ1bGxfY2x1c3RlcnM7IC8qIGZ1bGwgY2x1c3RlcnMgbGlzdCAqLwogCXN0cnVjdCBsaXN0X2hlYWQgbm9uZnVsbF9jbHVzdGVyc1tTV0FQX05SX09SREVSU107CmRpZmYgLS1naXQgYS9tbS9zd2FwZmlsZS5jIGIvbW0vc3dhcGZpbGUuYwppbmRleCA1ZDE1OTEzZGNmODYzLi4yMzBhYmIyNzZjZWI0IDEwMDY0NAotLS0gYS9tbS9zd2FwZmlsZS5jCiYjNDM7JiM0MzsmIzQzOyBiL21tL3N3YXBmaWxlLmMKQEAgLTM3MCw4ICYjNDM7MzcwLDYgQEAgc3RhdGljIHZvaWQgZGlzY2FyZF9zd2FwX2NsdXN0ZXIoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLAogCX0KIH0KIAotI2RlZmluZSBMQVRFTkNZX0xJTUlUCQkyNTYKLQogc3RhdGljIGlubGluZSBib29sIGNsdXN0ZXJfaXNfZW1wdHkoc3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICppbmZvKQogewogCXJldHVybiBpbmZvLSZndDtjb3VudCA9PSAwOwpAQCAtMjc2Myw3ICYjNDM7Mjc2MSw5IEBAIHN0YXRpYyBpbnQgdW51c2VfbW0oc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGludCB0eXBlKQogc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLAogCQkJCQl1bnNpZ25lZCBpbnQgcHJldikKIHsKLQl1bnNpZ25lZCBpbnQgaTsKJiM0MzsJc3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjaTsKJiM0MzsJdW5zaWduZWQgbG9uZyBpLCBlbmQ7CiYjNDM7CXVuc2lnbmVkIGludCBjaV9vZmY7CiAJdW5zaWduZWQgbG9uZyBzd3BfdGI7CiAKIAkvKgpAQCAtMjc3MiwxOSAmIzQzOzI3NzIsMzIgQEAgc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLAogCSAqIGhpdHMgYXJlIG9rYXksIGFuZCBzeXNfc3dhcG9mZigpIGhhcyBhbHJlYWR5IHByZXZlbnRlZCBuZXcKIAkgKiBhbGxvY2F0aW9ucyBmcm9tIHRoaXMgYXJlYSAod2hpbGUgaG9sZGluZyBzd2FwX2xvY2spLgogCSAqLwotCWZvciAoaSA9IHByZXYgJiM0MzsgMTsgaSAmbHQ7IHNpLSZndDttYXg7IGkmIzQzOyYjNDM7KSB7Ci0JCXN3cF90YiA9IHN3YXBfdGFibGVfZ2V0KF9fc3dhcF9vZmZzZXRfdG9fY2x1c3RlcihzaSwgaSksCi0JCQkJCWkgJSBTV0FQRklMRV9DTFVTVEVSKTsKLQkJaWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpICZhbXA7JmFtcDsgIXN3cF90Yl9pc19iYWQoc3dwX3RiKSkKLQkJCWJyZWFrOwotCQlpZiAoKGkgJSBMQVRFTkNZX0xJTUlUKSA9PSAwKQomIzQzOwlpID0gcHJldiAmIzQzOyAxOwomIzQzOwl3aGlsZSAoaSAmbHQ7IHNpLSZndDttYXgpIHsKJiM0MzsJCWNpID0gX19zd2FwX29mZnNldF90b19jbHVzdGVyKHNpLCBpKTsKJiM0MzsJCWNpX29mZiA9IGkgJSBTV0FQRklMRV9DTFVTVEVSOwomIzQzOwkJZW5kID0gbWluKHNpLSZndDttYXgsIGkgLSBjaV9vZmYgJiM0MzsgU1dBUEZJTEVfQ0xVU1RFUik7CiYjNDM7CiYjNDM7CQkvKgomIzQzOwkJICogQW4gZW1wdHkgY2x1c3RlciBoYXMgbm8gc2xvdCBpbiB1c2UsIHNvIHNraXAgaXQgd2hvbGUuCiYjNDM7CQkgKiBBIHNsb3QgaXMgdW5jb3VudGVkIG9ubHkgYWZ0ZXIgaXRzIGZvbGlvIGxlZnQgdGhlIHN3YXAKJiM0MzsJCSAqIGNhY2hlLCBzbyB0aGVyZSBpcyBub3RoaW5nIGhlcmUgZm9yIHRyeV90b191bnVzZSgpIHRvIGFjdCBvbi4KJiM0MzsJCSAqLwomIzQzOwkJaWYgKGNsdXN0ZXJfaXNfZW1wdHkoY2kpKSB7CiYjNDM7CQkJaSA9IGVuZDsKIAkJCWNvbmRfcmVzY2hlZCgpOwotCX0KJiM0MzsJCQljb250aW51ZTsKJiM0MzsJCX0KIAotCWlmIChpID09IHNpLSZndDttYXgpCi0JCWkgPSAwOwomIzQzOwkJZm9yICg7IGkgJmx0OyBlbmQ7IGNpX29mZiYjNDM7JiM0MzssIGkmIzQzOyYjNDM7KSB7CiYjNDM7CQkJc3dwX3RiID0gc3dhcF90YWJsZV9nZXQoY2ksIGNpX29mZik7CiYjNDM7CQkJaWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpICZhbXA7JmFtcDsgIXN3cF90Yl9pc19iYWQoc3dwX3RiKSkKJiM0MzsJCQkJcmV0dXJuIGk7CiYjNDM7CQl9CiYjNDM7CQljb25kX3Jlc2NoZWQoKTsKJiM0MzsJfQogCi0JcmV0dXJuIGk7CiYjNDM7CXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSkKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMjM6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg5MwoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDI2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBTd2FwZmlsZSBPcHRpbWl6YXRpb24gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG1tL3N3YXBmaWxlLmNgIGFuZCBgaW5jbHVkZS9saW51eC9zd2FwLmhgLiBJdCYjMzk7cyBmb2N1c2VkIG9uIG9wdGltaXppbmcgdGhlIGBmaW5kX25leHRfdG9fdW51c2VgIGZ1bmN0aW9uLCBzcGVjaWZpY2FsbHkgc2tpcHBpbmcgb3ZlciBlbXB0eSBjbHVzdGVycyB1c2luZyBgY2x1c3Rlcl9pc19lbXB0eShjaSlgLiBUaGF0IHNvdW5kcyBzdHJhaWdodGZvcndhcmQgYW5kIHBvdGVudGlhbGx5IGJlbmVmaWNpYWwuIFRoZSBwYXRjaCBhbHNvIHJlbW92ZXMgdGhhdCBgI2RlZmluZSBMQVRFTkNZX0xJTUlUIDI1NmAgZm9yIGBjb25kX3Jlc2NoZWQoKWAsIGludGVyZXN0aW5nLgoKVGhlIGtleSBxdWVzdGlvbiBpcyBhbHdheXMsICYjMzQ7SXMgdGhpcyBmdXp6YWJsZT8mIzM0OyBXZWxsLCBgZmluZF9uZXh0X3RvX3VudXNlYCBpcyBjYWxsZWQgYnkgYHRyeV90b191bnVzZWAsIHdoaWNoIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBzeXNfc3dhcG9mZmAuIEJpbmdvISBgc3lzX3N3YXBvZmZgIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIHRocm91Z2ggdGhlIHN5c2NhbGwgaW50ZXJmYWNlLCBzbyB3ZSBjYW4gYWJzb2x1dGVseSB0YXJnZXQgaXQuIFRoZXNlIHNlZW0gdG8gYmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgc2hvdWxkIG9wdGltaXplIHRoZSBzd2Fwb2ZmIHByb2Nlc3MsIHdoaWNoIGlzIHByb21pc2luZyBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4KCkxldCYjMzk7cyBkaXZlIGRlZXBlciBpbnRvIGB0cnlfdG9fdW51c2VgIGFuZCBgZmluZF9uZXh0X3RvX3VudXNlYC4gSG9sZCBvbiwgYGZpbmRfbmV4dF90b191bnVzZWAgaXMgc3RhdGljLCBtZWFuaW5nIGl0cyBkaXJlY3QgZnV6emluZyBpcyBub3QgcG9zc2libGU7IHRoZSBiZXN0IGFwcHJvYWNoIHdvdWxkIGJlIGZ1enppbmcgdGhlIGZ1bmN0aW9uIGl0IGJlbG9uZ3MgdG8sIG9yIHRob3NlIHRoYXQgY2FsbCBpdC4gSW4gdGhpcyBjYXNlLCBgdHJ5X3RvX3VudXNlYCBvciB0aGUgdG9wIGxldmVsIGBzeXNfc3dhcG9mZmAgYXJlIHRoZSBhdHRhY2sgdmVjdG9ycywgdGhlIGxhdHRlciBiZWluZyBhIHN5c2NhbGwgd2hpY2ggaXMgZXZlbiBlYXNpZXIgdG8gdGFyZ2V0LiBFeGNlbGxlbnQhIE5vdywgbGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQgYHN5c19zd2Fwb2ZmYCBpcyBhY3R1YWxseSBhIHN5c2NhbGwuLi4gWWVwLCB0aGVyZSBpdCBpcy4gTGV0JiMzOTtzIHN0YXJ0IGJ5IHNlYXJjaGluZyBmb3IgYHN5c19zd2Fwb2ZmYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAyMzoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzeXNfc3dhcG9mZiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2xvY2tpbmcucnN0PTM1OT1kaXJlY3RseSB0byB0aGUgYmxvY2sgZGV2aWNlIGBgc2lzLVx1MDAzZWJkZXZgYC5cbkRvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbG9ja2luZy5yc3QtMzYwLVxuRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9sb2NraW5nLnJzdDozNjE6LVx1MDAzZXN3YXBfZGVhY3RpdmF0ZSgpIHdpbGwgYmUgY2FsbGVkIGluIHRoZSBzeXNfc3dhcG9mZigpXG5Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2xvY2tpbmcucnN0LTM2Mi1wYXRoIGFmdGVyIC1cdTAwM2Vzd2FwX2FjdGl2YXRlKCkgcmV0dXJuZWQgc3VjY2Vzcy5cbi0tXG5hcmNoL2FscGhhL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibC0yMzYtMzAzXHRjb21tb25cdG9sZF9hZGp0aW1leFx0XHRcdHN5c19vbGRfYWRqdGltZXhcbmFyY2gvYWxwaGEva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsOjIzNzozMDRcdGNvbW1vblx0c3dhcG9mZlx0XHRcdFx0c3lzX3N3YXBvZmZcbmFyY2gvYWxwaGEva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTIzOC0zMDVcdGNvbW1vblx0Z2V0ZGVudHNcdFx0XHRzeXNfZ2V0ZGVudHNcbi0tXG5hcmNoL2FybS90b29scy9zeXNjYWxsLnRibC0xMzEtMTE0XHRjb21tb25cdHdhaXQ0XHRcdFx0c3lzX3dhaXQ0XG5hcmNoL2FybS90b29scy9zeXNjYWxsLnRibDoxMzI6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9hcm0vdG9vbHMvc3lzY2FsbC50YmwtMTMzLTExNlx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0c3lzX3N5c2luZm9cbi0tXG5hcmNoL2FybTY0L3Rvb2xzL3N5c2NhbGxfMzIudGJsLTEyOC0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRzeXNfd2FpdDRcdFx0Y29tcGF0X3N5c193YWl0NFxuYXJjaC9hcm02NC90b29scy9zeXNjYWxsXzMyLnRibDoxMjk6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9hcm02NC90b29scy9zeXNjYWxsXzMyLnRibC0xMzAtMTE2XHRjb21tb25cdHN5c2luZm9cdFx0XHRzeXNfc3lzaW5mb1x0XHRjb21wYXRfc3lzX3N5c2luZm9cbi0tXG5hcmNoL202OGsva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNC0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRcdHN5c193YWl0NFxuYXJjaC9tNjhrL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoxMjU6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG5hcmNoL202OGsva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdFx0c3lzX3N5c2luZm9cbi0tXG5hcmNoL21pY3JvYmxhemUva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNC0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRcdHN5c193YWl0NFxuYXJjaC9taWNyb2JsYXplL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoxMjU6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG5hcmNoL21pY3JvYmxhemUva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdFx0c3lzX3N5c2luZm9cbi0tXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbjMyLnRibC0xNzItMTYyXHRuMzJcdHN3YXBvblx0XHRcdFx0c3lzX3N3YXBvblxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX24zMi50Ymw6MTczOjE2M1x0bjMyXHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX24zMi50YmwtMTc0LTE2NFx0bjMyXHRyZWJvb3RcdFx0XHRcdHN5c19yZWJvb3Rcbi0tXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzItMTYyXHRuNjRcdHN3YXBvblx0XHRcdFx0c3lzX3N3YXBvblxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX242NC50Ymw6MTczOjE2M1x0bjY0XHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX242NC50YmwtMTc0LTE2NFx0bjY0XHRyZWJvb3RcdFx0XHRcdHN5c19yZWJvb3Rcbi0tXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbzMyLnRibC0xMjgtMTE0XHRvMzJcdHdhaXQ0XHRcdFx0XHRzeXNfd2FpdDRcdFx0XHRjb21wYXRfc3lzX3dhaXQ0XG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbzMyLnRibDoxMjk6MTE1XHRvMzJcdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbzMyLnRibC0xMzAtMTE2XHRvMzJcdHN5c2luZm9cdFx0XHRcdHN5c19zeXNpbmZvXHRcdFx0Y29tcGF0X3N5c19zeXNpbmZvXG4tLVxuYXJjaC9wYXJpc2Mva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyOS0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRzeXNfd2FpdDRcdFx0XHRjb21wYXRfc3lzX3dhaXQ0XG5hcmNoL3BhcmlzYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTMwOjExNVx0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0c3lzX3N3YXBvZmZcbmFyY2gvcGFyaXNjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibC0xMzEtMTE2XHRjb21tb25cdHN5c2luZm9cdFx0XHRzeXNfc3lzaW5mb1x0XHRcdGNvbXBhdF9zeXNfc3lzaW5mb1xuLS1cbmFyY2gvcG93ZXJwYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTUzLTExNFx0Y29tbW9uXHR3YWl0NFx0XHRcdFx0c3lzX3dhaXQ0XHRcdFx0Y29tcGF0X3N5c193YWl0NFxuYXJjaC9wb3dlcnBjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoxNTQ6MTE1XHRub3NwdVx0c3dhcG9mZlx0XHRcdFx0c3lzX3N3YXBvZmZcbmFyY2gvcG93ZXJwYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTU1LTExNlx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0XHRzeXNfc3lzaW5mb1x0XHRcdGNvbXBhdF9zeXNfc3lzaW5mb1xuLS1cbmFyY2gvczM5MC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtODktMTE0XHRjb21tb25cdHdhaXQ0XHRcdFx0XHRzeXNfd2FpdDRcbmFyY2gvczM5MC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6OTA6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG5hcmNoL3MzOTAva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTkxLTExNlx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0XHRzeXNfc3lzaW5mb1xuLS1cbmFyY2gvc2gva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNC0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRcdHN5c193YWl0NFxuYXJjaC9zaC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTI1OjExNVx0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9zaC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI2LTExNlx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0XHRzeXNfc3lzaW5mb1xuLS1cbmFyY2gvc3BhcmMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTI1Ni0yMTJcdGNvbW1vblx0d2FpdHBpZFx0XHRcdHN5c193YWl0cGlkXG5hcmNoL3NwYXJjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoyNTc6MjEzXHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9zcGFyYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjU4LTIxNFx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0c3lzX3N5c2luZm9cdFx0XHRjb21wYXRfc3lzX3N5c2luZm9cbi0tXG5hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibC0xMjktMTE0XHRpMzg2XHR3YWl0NFx0XHRcdHN5c193YWl0NFx0XHRcdGNvbXBhdF9zeXNfd2FpdDRcbmFyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsOjEzMDoxMTVcdGkzODZcdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF8zMi50YmwtMTMxLTExNlx0aTM4Nlx0c3lzaW5mb1x0XHRcdHN5c19zeXNpbmZvXHRcdFx0Y29tcGF0X3N5c19zeXNpbmZvXG4tLVxuYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF82NC50YmwtMTc5LTE2N1x0Y29tbW9uXHRzd2Fwb25cdFx0XHRzeXNfc3dhcG9uXG5hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzY0LnRibDoxODA6MTY4XHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF82NC50YmwtMTgxLTE2OVx0Y29tbW9uXHRyZWJvb3RcdFx0XHRzeXNfcmVib290XG4tLVxuYXJjaC94dGVuc2Eva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTE5My0xNzZcdGNvbW1vblx0dW1vdW50XHRcdFx0XHRzeXNfb2xkdW1vdW50XG5hcmNoL3h0ZW5zYS9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTk0OjE3N1x0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC94dGVuc2Eva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTE5NS0xNzhcdGNvbW1vblx0c3luY1x0XHRcdFx0c3lzX3N5bmNcbi0tXG5pbmNsdWRlL2xpbnV4L3N5c2NhbGxzLmg9ODMzPWFzbWxpbmthZ2UgbG9uZyBzeXNfc3dhcG9uKGNvbnN0IGNoYXIgX191c2VyICpzcGVjaWFsZmlsZSwgaW50IHN3YXBfZmxhZ3MpO1xuaW5jbHVkZS9saW51eC9zeXNjYWxscy5oOjgzNDphc21saW5rYWdlIGxvbmcgc3lzX3N3YXBvZmYoY29uc3QgY2hhciBfX3VzZXIgKnNwZWNpYWxmaWxlKTtcbmluY2x1ZGUvbGludXgvc3lzY2FsbHMuaC04MzUtYXNtbGlua2FnZSBsb25nIHN5c19tcHJvdGVjdCh1bnNpZ25lZCBsb25nIHN0YXJ0LCBzaXplX3QgbGVuLFxuLS1cbmluY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy91bmlzdGQuaD01Nzg9X19TWVNDQUxMKF9fTlJfc3dhcG9uLCBzeXNfc3dhcG9uKVxuaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oLTU3OS0jZGVmaW5lIF9fTlJfc3dhcG9mZiAyMjVcbmluY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy91bmlzdGQuaDo1ODA6X19TWVNDQUxMKF9fTlJfc3dhcG9mZiwgc3lzX3N3YXBvZmYpXG5pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmgtNTgxLSNkZWZpbmUgX19OUl9tcHJvdGVjdCAyMjZcbi0tXG5tbS9zd2FwZmlsZS5jPTI3NjE9c3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxuLS1cbm1tL3N3YXBmaWxlLmMtMjc3MS1cdCAqIGZvciB3aGV0aGVyIGFuIGVudHJ5IGlzIGluIHVzZSwgbm90IG1vZGlmeWluZyBpdDsgZmFsc2Vcbm1tL3N3YXBmaWxlLmM6Mjc3MjpcdCAqIGhpdHMgYXJlIG9rYXksIGFuZCBzeXNfc3dhcG9mZigpIGhhcyBhbHJlYWR5IHByZXZlbnRlZCBuZXdcbm1tL3N3YXBmaWxlLmMtMjc3My1cdCAqIGFsbG9jYXRpb25zIGZyb20gdGhpcyBhcmVhICh3aGlsZSBob2xkaW5nIHN3YXBfbG9jaykuXG4tLVxuc2NyaXB0cy9zeXNjYWxsLnRibC0yNzAtMjI0XHRjb21tb25cdHN3YXBvblx0XHRcdFx0c3lzX3N3YXBvblxuc2NyaXB0cy9zeXNjYWxsLnRibDoyNzE6MjI1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG5zY3JpcHRzL3N5c2NhbGwudGJsLTI3Mi0yMjZcdGNvbW1vblx0bXByb3RlY3RcdFx0XHRzeXNfbXByb3RlY3Rcbi0tXG50b29scy9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmg9NTc4PV9fU1lTQ0FMTChfX05SX3N3YXBvbiwgc3lzX3N3YXBvbilcbnRvb2xzL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy91bmlzdGQuaC01NzktI2RlZmluZSBfX05SX3N3YXBvZmYgMjI1XG50b29scy9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmg6NTgwOl9fU1lTQ0FMTChfX05SX3N3YXBvZmYsIHN5c19zd2Fwb2ZmKVxudG9vbHMvaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oLTU4MS0jZGVmaW5lIF9fTlJfbXByb3RlY3QgMjI2XG4tLVxudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtc2NyaXB0LXB5dGhvbi50eHQ9NDk9c3lzX2Nsb3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAzN1xudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtc2NyaXB0LXB5dGhvbi50eHQ6NTA6c3lzX3N3YXBvZmYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTc2OVxudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtc2NyaXB0LXB5dGhvbi50eHQtNTEtc3lzX3JlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkyM1xuLS1cbnRvb2xzL3BlcmYvYXJjaC9hbHBoYS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0yMzYtMzAzXHRjb21tb25cdG9sZF9hZGp0aW1leFx0XHRcdHN5c19vbGRfYWRqdGltZXhcbnRvb2xzL3BlcmYvYXJjaC9hbHBoYS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoyMzc6MzA0XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG50b29scy9wZXJmL2FyY2gvYWxwaGEvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjM4LTMwNVx0Y29tbW9uXHRnZXRkZW50c1x0XHRcdHN5c19nZXRkZW50c1xuLS1cbnRvb2xzL3BlcmYvYXJjaC9hcm0vZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTMxLTExNFx0Y29tbW9uXHR3YWl0NFx0XHRcdHN5c193YWl0NFxudG9vbHMvcGVyZi9hcmNoL2FybS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoxMzI6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxudG9vbHMvcGVyZi9hcmNoL2FybS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xMzMtMTE2XHRjb21tb25cdHN5c2luZm9cdFx0XHRzeXNfc3lzaW5mb1xuLS1cbnRvb2xzL3BlcmYvYXJjaC9hcm02NC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibC0xMjgtMTE0XHRjb21tb25cdHdhaXQ0XHRcdFx0c3lzX3dhaXQ0XHRcdGNvbXBhdF9zeXNfd2FpdDRcbnRvb2xzL3BlcmYvYXJjaC9hcm02NC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibDoxMjk6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxudG9vbHMvcGVyZi9hcmNoL2FybTY0L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsLTEzMC0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdHN5c19zeXNpbmZvXHRcdGNvbXBhdF9zeXNfc3lzaW5mb1xuLS1cbnRvb2xzL3BlcmYvYXJjaC9taXBzL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzItMTYyXHRuNjRcdHN3YXBvblx0XHRcdFx0c3lzX3N3YXBvblxudG9vbHMvcGVyZi9hcmNoL21pcHMvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF9uNjQudGJsOjE3MzoxNjNcdG42NFx0c3dhcG9mZlx0XHRcdFx0c3lzX3N3YXBvZmZcbnRvb2xzL3BlcmYvYXJjaC9taXBzL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzQtMTY0XHRuNjRcdHJlYm9vdFx0XHRcdFx0c3lzX3JlYm9vdFxuLS1cbnRvb2xzL3BlcmYvYXJjaC9wYXJpc2MvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI5LTExNFx0Y29tbW9uXHR3YWl0NFx0XHRcdHN5c193YWl0NFx0XHRcdGNvbXBhdF9zeXNfd2FpdDRcbnRvb2xzL3BlcmYvYXJjaC9wYXJpc2MvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTMwOjExNVx0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0c3lzX3N3YXBvZmZcbnRvb2xzL3BlcmYvYXJjaC9wYXJpc2MvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTMxLTExNlx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0c3lzX3N5c2luZm9cdFx0XHRjb21wYXRfc3lzX3N5c2luZm9cbi0tXG50b29scy9wZXJmL2FyY2gvcG93ZXJwYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xNTMtMTE0XHRjb21tb25cdHdhaXQ0XHRcdFx0XHRzeXNfd2FpdDRcdFx0XHRjb21wYXRfc3lzX3dhaXQ0XG50b29scy9wZXJmL2FyY2gvcG93ZXJwYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoxNTQ6MTE1XHRub3NwdVx0c3dhcG9mZlx0XHRcdFx0c3lzX3N3YXBvZmZcbnRvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTE1NS0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdFx0c3lzX3N5c2luZm9cdFx0XHRjb21wYXRfc3lzX3N5c2luZm9cbi0tXG50b29scy9wZXJmL2FyY2gvczM5MC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC04OS0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRcdHN5c193YWl0NFxudG9vbHMvcGVyZi9hcmNoL3MzOTAvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6OTA6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG50b29scy9wZXJmL2FyY2gvczM5MC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC05MS0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdFx0c3lzX3N5c2luZm9cbi0tXG50b29scy9wZXJmL2FyY2gvc2gvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI0LTExNFx0Y29tbW9uXHR3YWl0NFx0XHRcdFx0c3lzX3dhaXQ0XG50b29scy9wZXJmL2FyY2gvc2gvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTI1OjExNVx0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxudG9vbHMvcGVyZi9hcmNoL3NoL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdFx0c3lzX3N5c2luZm9cbi0tXG50b29scy9wZXJmL2FyY2gvc3BhcmMvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjU2LTIxMlx0Y29tbW9uXHR3YWl0cGlkXHRcdFx0c3lzX3dhaXRwaWRcbnRvb2xzL3BlcmYvYXJjaC9zcGFyYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoyNTc6MjEzXHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxudG9vbHMvcGVyZi9hcmNoL3NwYXJjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTI1OC0yMTRcdGNvbW1vblx0c3lzaW5mb1x0XHRcdHN5c19zeXNpbmZvXHRcdFx0Y29tcGF0X3N5c19zeXNpbmZvXG4tLVxudG9vbHMvcGVyZi9hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibC0xMjktMTE0XHRpMzg2XHR3YWl0NFx0XHRcdHN5c193YWl0NFx0XHRcdGNvbXBhdF9zeXNfd2FpdDRcbnRvb2xzL3BlcmYvYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF8zMi50Ymw6MTMwOjExNVx0aTM4Nlx0c3dhcG9mZlx0XHRcdHN5c19zd2Fwb2ZmXG50b29scy9wZXJmL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsLTEzMS0xMTZcdGkzODZcdHN5c2luZm9cdFx0XHRzeXNfc3lzaW5mb1x0XHRcdGNvbXBhdF9zeXNfc3lzaW5mb1xuLS1cbnRvb2xzL3BlcmYvYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF82NC50YmwtMTc5LTE2N1x0Y29tbW9uXHRzd2Fwb25cdFx0XHRzeXNfc3dhcG9uXG50b29scy9wZXJmL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfNjQudGJsOjE4MDoxNjhcdGNvbW1vblx0c3dhcG9mZlx0XHRcdHN5c19zd2Fwb2ZmXG50b29scy9wZXJmL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfNjQudGJsLTE4MS0xNjlcdGNvbW1vblx0cmVib290XHRcdFx0c3lzX3JlYm9vdFxuLS1cbnRvb2xzL3BlcmYvYXJjaC94dGVuc2EvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTkzLTE3Nlx0Y29tbW9uXHR1bW91bnRcdFx0XHRcdHN5c19vbGR1bW91bnRcbnRvb2xzL3BlcmYvYXJjaC94dGVuc2EvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTk0OjE3N1x0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxudG9vbHMvcGVyZi9hcmNoL3h0ZW5zYS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xOTUtMTc4XHRjb21tb25cdHN5bmNcdFx0XHRcdHN5c19zeW5jXG4tLVxudG9vbHMvc2NyaXB0cy9zeXNjYWxsLnRibC0yNzAtMjI0XHRjb21tb25cdHN3YXBvblx0XHRcdFx0c3lzX3N3YXBvblxudG9vbHMvc2NyaXB0cy9zeXNjYWxsLnRibDoyNzE6MjI1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG50b29scy9zY3JpcHRzL3N5c2NhbGwudGJsLTI3Mi0yMjZcdGNvbW1vblx0bXByb3RlY3RcdFx0XHRzeXNfbXByb3RlY3RcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAyMzoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NTQxCgkJCQkJCQlvdXRwdXQ6IDE3CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTd2FwIERlYWN0aXZhdGlvbiBTeXN0ZW0gQ2FsbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYHN5c19zd2Fwb2ZmYC4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJIHdhbnQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueSBlc3NlbnRpYWwgY29uZmlndXJhdGlvbnMuIFRoaXMgaXMgd2hlcmUgSSYjMzk7ZCBub3JtYWxseSBzdGFydCBkaWdnaW5nIGludG8gdGhlIGtlcm5lbCBkb2N1bWVudGF0aW9uIG9yIHJlbGV2YW50IHNvdXJjZSBjb2RlLCBsb29raW5nIGZvciBhbnkgZWRnZSBjYXNlcy4gSXQmIzM5O3MgY3J1Y2lhbCBub3QgdG8gbWlzcyBhbnkgaW5pdGlhbCBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBuZWVkZWQgYmVmb3JlIGFjdHVhbGx5IGRlYWN0aXZhdGluZyBzd2FwLgoKSSBzZWUgdGhhdCBgQ09ORklHX1NXQVBgIHNlZW1zIHRvIGJlIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHJlbGF0ZWQgdG8gc3dhcCBzcGFjZS4gVGhpcyBpcyBleHBlY3RlZC4gTm93IEkgd2lsbCBuZWVkIHRvIGRlbHZlIGRlZXBlciBpbnRvIGl0cyBpbXBsaWNhdGlvbnMuIElzIHRoZXJlIGFueXRoaW5nIGVsc2UgdGhhdCBuZWVkcyB0byBiZSBjb25zaWRlcmVkIGJlZm9yZSBJIGNvbnRpbnVlPwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDIzOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTV0FQJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvbWlwcy9LY29uZmlnPTEyNjM9Y29uZmlnIE1JUFNfU1BSQU1cbi0tXG5hcmNoL21pcHMvS2NvbmZpZy0xMjY1LVxuYXJjaC9taXBzL0tjb25maWc6MTI2Njpjb25maWcgU1dBUF9JT19TUEFDRVxuYXJjaC9taXBzL0tjb25maWctMTI2Ny1cdGJvb2xcbi0tXG5hcmNoL3NoL0tjb25maWc9MTI5PWNvbmZpZyBJT19UUkFQUEVEXG4tLVxuYXJjaC9zaC9LY29uZmlnLTEzMS1cbmFyY2gvc2gvS2NvbmZpZzoxMzI6Y29uZmlnIFNXQVBfSU9fU1BBQ0VcbmFyY2gvc2gvS2NvbmZpZy0xMzMtXHRib29sXG4tLVxubW0vS2NvbmZpZz05PWNvbmZpZyBBUkNIX05PX1NXQVBcbi0tXG5tbS9LY29uZmlnLTExLVxubW0vS2NvbmZpZzoxMjptZW51Y29uZmlnIFNXQVBcbm1tL0tjb25maWctMTMtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIHBhZ2luZyBvZiBhbm9ueW1vdXMgbWVtb3J5IChzd2FwKVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDIzOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc5NDEKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipJbnZlc3RpZ2F0aW5nIENPTkZJR19TV0FQIGFuZCBGdW5jdGlvbiBVc2FnZSoqCgpBbHJpZ2h0LCBzbyBgQ09ORklHX1NXQVBgIGlzIHRoZSBrZXkgY29uZmlndXJhdGlvbiBvcHRpb24gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBoZXJlLCB0aGF0JiMzOTtzIGNsZWFyLiBOb3csIGEgY3J1Y2lhbCBzdGVwIHRvIGZ1bGx5IHVuZGVyc3RhbmRpbmcgaXRzIGltcGxpY2F0aW9ucyBpcyB0byBzZWUgaWYgYGZpbmRfbmV4dF90b191bnVzZWAgaXMgdXNlZCBvdXRzaWRlIG9mIHRoaXMgaW1tZWRpYXRlIGNvbnRleHQuIFdlIG5lZWQgdG8gYXNzZXNzIGlmIGl0cyBwcmVzZW5jZSBvciBhYnNlbmNlIHJlbGF0ZXMgc29sZWx5IHRvIHRoZSBzd2FwIGltcGxlbWVudGF0aW9uLCBvciBpZiBpdCBjb250cmlidXRlcyB0byBvdGhlciBhcmVhcyBvZiBzeXN0ZW0gb3BlcmF0aW9uLCB3aGljaCBtYXkgcHJvdmlkZSBtb3JlIGNvbnRleHQuIEtub3dpbmcgd2hlcmUgYGZpbmRfbmV4dF90b191bnVzZWAgaXMgdXNlZCB3aWxsIGdpdmUgYSBnb29kIGluZGljYXRvciBvZiB3aGF0IGNhbiBiZSBleHBlY3RlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAyMzoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmaW5kX25leHRfdG9fdW51c2UmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vc3dhcGZpbGUuYz0yNzMzPXN0YXRpYyBpbnQgdW51c2VfbW0oc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGludCB0eXBlKVxuLS1cbm1tL3N3YXBmaWxlLmMtMjc2MC0gKi9cbm1tL3N3YXBmaWxlLmM6Mjc2MTpzdGF0aWMgdW5zaWduZWQgaW50IGZpbmRfbmV4dF90b191bnVzZShzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2ksXG5tbS9zd2FwZmlsZS5jLTI3NjItXHRcdFx0XHRcdHVuc2lnbmVkIGludCBwcmV2KVxuLS1cbm1tL3N3YXBmaWxlLmM9MjgwMz1zdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcbi0tXG5tbS9zd2FwZmlsZS5jLTI4NTYtXHQgICAgICAgIXNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpIFx1MDAyNlx1MDAyNlxubW0vc3dhcGZpbGUuYzoyODU3Olx0ICAgICAgIChpID0gZmluZF9uZXh0X3RvX3VudXNlKHNpLCBpKSkgIT0gMCkge1xubW0vc3dhcGZpbGUuYy0yODU4LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDIzOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgzNTIKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiAzOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0OgoKKipNeSBQZXJzcGVjdGl2ZSBvbiBgZmluZF9uZXh0X3RvX3VudXNlYCBhbmQgaXRzIFBsYWNlIGluIHRoZSBTeXN0ZW0qKgoKQWxyaWdodCwgc28gbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkgdW5kZXJzdGFuZCwgdGhlIHN5c3RlbSYjMzk7cyBgc3lzX3N3YXBvZmZgIGZ1bmN0aW9uIGlzIHVsdGltYXRlbHkgcmVzcG9uc2libGUgZm9yIGluaXRpYXRpbmcgdGhlIHN3YXAtb2ZmIHByb2Nlc3MuIE5vdywgYHN5c19zd2Fwb2ZmYCBpdHNlbGYgY2FsbHMgdGhlIGZ1bmN0aW9uIGB0cnlfdG9fdW51c2VgLiBBbmQgKnRoYXQmIzM5O3MqIHRoZSBrZXkg4oCTIGB0cnlfdG9fdW51c2VgIGlzIHdoZXJlIHRoZSBoZWF2eSBsaWZ0aW5nIG9mIGF0dGVtcHRpbmcgdG8gZGVhY3RpdmF0ZSBzd2FwIHNwYWNlIGFjdHVhbGx5IGhhcHBlbnMuIFNwZWNpZmljYWxseSwgYHRyeV90b191bnVzZWAgZGVwZW5kcyBvbiBgZmluZF9uZXh0X3RvX3VudXNlYC4gRnJvbSB0aGUgZnVuY3Rpb24gbmFtZXMsIEkgd291bGQgZ3Vlc3MgdGhpcyBpcyBzb21lIGtpbmQgb2Ygc2VhcmNoIGZ1bmN0aW9uIHRoYXQgaGVscHMgd2l0aCBpZGVudGlmeWluZyBzd2FwIHNwYWNlIHN1aXRhYmxlIGZvciB1bi11c2UuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhhdCBzdWNoIGEgZnVuY3Rpb24gbWlnaHQgc2VhcmNoIGZvciBhICYjMzQ7bmV4dCYjMzQ7IHN3YXAgYXJlYSB0aGF0IGlzIHNhZmUgdG8gc3dhcCBvZmYuIEl0IG1pZ2h0IGJlIGxvb2tpbmcgZm9yIHN3YXAgYXJlYXMgd2l0aCBubyBhY3RpdmUgcGFnZXMsIG9yIG1pbmltYWwgYWN0aXZpdHksIHRoYXQgY2FuIGJlIHNhZmVseSBkZWFjdGl2YXRlZCB3aXRob3V0IGNhdXNpbmcgaXNzdWVzLiBTbywgYGZpbmRfbmV4dF90b191bnVzZWAgaXMgZXNzZW50aWFsbHkgdGhlIHdvcmtob3JzZSB0aGF0IGhlbHBzIG1ha2UgYHRyeV90b191bnVzZWAgc3VjY2Vzc2Z1bC4gSXQmIzM5O3MgYW4gaW1wb3J0YW50IHBhcnQgb2YgdGhlIGJpZ2dlciBwaWN0dXJlIG9mIHRoZSBzd2FwIHNwYWNlIG1hbmFnZW1lbnQgd2l0aGluIHRoZSBPUy4gVGhlIG92ZXJhbGwgcHJvY2VzcywgaG93ZXZlciwgaXMgYSBiaXQgb3BhcXVlIGFzIEkgd291bGQgZXhwZWN0IGBzeXNfc3dhcG9mZmAgd291bGQgaGF2ZSBtb3JlIGNoZWNrcyBhcm91bmQgaXQgdG8gcHJvdGVjdCBhZ2FpbnN0IGVycm9ycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMjM6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHJ5X3RvX3VudXNlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0NSRURJVFM9MTM3PUQ6IEF1dGhvciBvZiBsaWwgKExpbnV4IEludGVycnVwdCBMYXRlbmN5IGJlbmNobWFyaylcbkNSRURJVFM6MTM4OkQ6IEZpeGVkIHRoZSBzaG0gc3dhcCBkZWFsbG9jYXRpb24gYXQgc3dhcG9mZiB0aW1lICh0cnlfdG9fdW51c2UgbWVzc2FnZSlcbkNSRURJVFMtMTM5LUQ6IFZNIGhhY2tlclxuLS1cbmtlcm5lbC9leGl0LmM9NDkyPXZvaWQgbW1fdXBkYXRlX25leHRfb3duZXIoc3RydWN0IG1tX3N0cnVjdCAqbW0pXG4tLVxua2VybmVsL2V4aXQuYy01NDAtXHQgKiBXZSBmb3VuZCBubyBvd25lciB5ZXQgbW1fdXNlcnMgXHUwMDNlIDE6IHRoaXMgaW1wbGllcyB0aGF0IHdlIGFyZVxua2VybmVsL2V4aXQuYzo1NDE6XHQgKiBtb3N0IGxpa2VseSByYWNpbmcgd2l0aCBzd2Fwb2ZmICh0cnlfdG9fdW51c2UoKSkgb3IgL3Byb2Mgb3Jcbmtlcm5lbC9leGl0LmMtNTQyLVx0ICogcHRyYWNlIG9yIHBhZ2UgbWlncmF0aW9uIChnZXRfdGFza19tbSgpKS4gIE1hcmsgb3duZXIgYXMgTlVMTC5cbi0tXG5tbS9zd2FwZmlsZS5jPTEzMTQ9c3RhdGljIHZvaWQgc3dhcF9yYW5nZV9mcmVlKHN0cnVjdCBzd2FwX2luZm9fc3RydWN0ICpzaSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsXG4tLVxubW0vc3dhcGZpbGUuYy0xMzM2LVx0Lypcbm1tL3N3YXBmaWxlLmM6MTMzNzpcdCAqIE1ha2Ugc3VyZSB0aGF0IHRyeV90b191bnVzZSgpIG9ic2VydmVzIHNpLVx1MDAzZWludXNlX3BhZ2VzIHJlYWNoaW5nIDBcbm1tL3N3YXBmaWxlLmMtMTMzOC1cdCAqIG9ubHkgYWZ0ZXIgdGhlIGFib3ZlIGNsZWFudXBzIGFyZSBkb25lLlxuLS1cbm1tL3N3YXBmaWxlLmM9MjQ3MT1zdGF0aWMgaW50IHVudXNlX3B0ZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgcG1kX3QgKnBtZCxcbi0tXG5tbS9zd2FwZmlsZS5jLTI0ODItXHQgKiBJZiB0aGUgZm9saW8gaXMgcmVtb3ZlZCBmcm9tIHN3YXAgY2FjaGUgYnkgb3RoZXJzLCBjb250aW51ZSB0b1xubW0vc3dhcGZpbGUuYzoyNDgzOlx0ICogdW51c2Ugb3RoZXIgUFRFcy4gdHJ5X3RvX3VudXNlIG1heSB0cnkgYWdhaW4gaWYgd2UgbWlzc2VkIHRoaXMgb25lLlxubW0vc3dhcGZpbGUuYy0yNDg0LVx0ICovXG4tLVxubW0vc3dhcGZpbGUuYz0yNzYxPXN0YXRpYyB1bnNpZ25lZCBpbnQgZmluZF9uZXh0X3RvX3VudXNlKHN0cnVjdCBzd2FwX2luZm9fc3RydWN0ICpzaSxcbi0tXG5tbS9zd2FwZmlsZS5jLTI3ODMtXHRcdCAqIEEgc2xvdCBpcyB1bmNvdW50ZWQgb25seSBhZnRlciBpdHMgZm9saW8gbGVmdCB0aGUgc3dhcFxubW0vc3dhcGZpbGUuYzoyNzg0Olx0XHQgKiBjYWNoZSwgc28gdGhlcmUgaXMgbm90aGluZyBoZXJlIGZvciB0cnlfdG9fdW51c2UoKSB0byBhY3Qgb24uXG5tbS9zd2FwZmlsZS5jLTI3ODUtXHRcdCAqL1xuLS1cbm1tL3N3YXBmaWxlLmMtMjgwMi1cbm1tL3N3YXBmaWxlLmM6MjgwMzpzdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcbm1tL3N3YXBmaWxlLmMtMjgwNC17XG4tLVxubW0vc3dhcGZpbGUuYy0yODk3LVx0Lypcbm1tL3N3YXBmaWxlLmM6Mjg5ODpcdCAqIE1ha2Ugc3VyZSB0aGF0IGZ1cnRoZXIgY2xlYW51cHMgYWZ0ZXIgdHJ5X3RvX3VudXNlKCkgcmV0dXJucyBoYXBwZW5cbm1tL3N3YXBmaWxlLmMtMjg5OS1cdCAqIGFmdGVyIHN3YXBfcmFuZ2VfZnJlZSgpIHJlZHVjZXMgc2ktXHUwMDNlaW51c2VfcGFnZXMgdG8gMC5cbi0tXG5tbS9zd2FwZmlsZS5jLTI5MDUtLypcbm1tL3N3YXBmaWxlLmM6MjkwNjogKiBBZnRlciBhIHN1Y2Nlc3NmdWwgdHJ5X3RvX3VudXNlLCBpZiBubyBzd2FwIGlzIG5vdyBpbiB1c2UsIHdlIGtub3dcbm1tL3N3YXBmaWxlLmMtMjkwNy0gKiB3ZSBjYW4gZW1wdHkgdGhlIG1tbGlzdC4gIHN3YXBfbG9jayBtdXN0IGJlIGhlbGQgb24gZW50cnkgYW5kIGV4aXQuXG4tLVxubW0vc3dhcGZpbGUuYz0zMTQ5PVNZU0NBTExfREVGSU5FMShzd2Fwb2ZmLCBjb25zdCBjaGFyIF9fdXNlciAqLCBzcGVjaWFsZmlsZSlcbi0tXG5tbS9zd2FwZmlsZS5jLTMyMDktXHRzZXRfY3VycmVudF9vb21fb3JpZ2luKCk7XG5tbS9zd2FwZmlsZS5jOjMyMTA6XHRlcnIgPSB0cnlfdG9fdW51c2UocC1cdTAwM2V0eXBlKTtcbm1tL3N3YXBmaWxlLmMtMzIxMS1cdGNsZWFyX2N1cnJlbnRfb29tX29yaWdpbigpO1xuLS1cbm1tL3pzd2FwLmM9MTY3MT12b2lkIHpzd2FwX3N3YXBvZmYoaW50IHR5cGUpXG4tLVxubW0venN3YXAuYy0xNjc4LVxubW0venN3YXAuYzoxNjc5Olx0LyogdHJ5X3RvX3VudXNlKCkgaW52YWxpZGF0ZWQgYWxsIHRoZSBlbnRyaWVzIGFscmVhZHkgKi9cbm1tL3pzd2FwLmMtMTY4MC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIG5yX3pzd2FwX3RyZWVzW3R5cGVdOyBpJiM0MzsmIzQzOylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMjM6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTY4MgoJCQkJCQkJb3V0cHV0OiA4NwoJCQkJCQkJdGhvdWdodHM6IDEwODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTd2Fwb2ZmIE9wdGltaXphdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgY2FuIHNlZSBpdCYjMzk7cyB0b3VjaGluZyBgZmluZF9uZXh0X3RvX3VudXNlYCwgd2hpY2ggaXMgY2FsbGVkIGJ5IGB0cnlfdG9fdW51c2VgLCB3aGljaCBpbiB0dXJuIGlzIGNhbGxlZCBieSBgc3lzX3N3YXBvZmZgLiBUaGlzIGlzIGFsbCBwcmV0dHkgZGVlcCBpbiB0aGUgc3dhcCBzdWJzeXN0ZW0uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY29zbWV0aWMgb25lLiBUaGUgcGF0Y2gmIzM5O3MgY29yZSBpZGVhIGlzIHRvIG9wdGltaXplIHRoZSBzZWFyY2ggZm9yIHRoZSBuZXh0IHVzZWQgc3dhcCBlbnRyeSBieSBza2lwcGluZyBlbnRpcmUgZW1wdHkgY2x1c3RlcnMuIFRoaXMgbG9va3MgbGlrZSBhIGRlZmluaXRlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi4KClNpbmNlIHRoaXMgYWZmZWN0cyBjb3JlIGtlcm5lbCBsb2dpYyBhbmQgaXQmIzM5O3MgcmVhY2hhYmxlIHRocm91Z2ggdGhlIGBzd2Fwb2ZmYCBzeXNjYWxsLCBpdCB3YXJyYW50cyBmdXp6aW5nLiBgU1dBUGAgc2VlbXMgbGlrZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gZW5hYmxlLCBhbmQgZ2l2ZW4gdGhhdCBpdCBkb2VzIGVuYWJsZSBzd2FwIHN1cHBvcnQsIEkgdGhpbmsgd2UmIzM5O3JlIGdvb2QgdGhlcmUuCgpOb3csIGxldCYjMzk7cyBuYWlsIGRvd24gdGhlIGZvY3VzIHN5bWJvbHMuIEkgd2FudCB0byBiZSBwcmVjaXNlIGhlcmUuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBmb2N1c2luZyBvbiBhbiBhY3R1YWwgZW50cnlwb2ludC4gSXMgYHN5c19zd2Fwb2ZmYCBhY3R1YWxseSB0aGUgcmlnaHQgc3ltYm9sPyBZZXMsIHRoZSBkZWZpbml0aW9uIHNob3dzIGl0JiMzOTtzIHRoZSByaWdodCBmdW5jdGlvbi4gQW5kLCB3aGlsZSBgdHJ5X3RvX3VudXNlYCBpcyBzdGF0aWMsIGl0JiMzOTtzIHByZXR0eSBsYXJnZSBhbmQgbm90IGxpa2VseSB0byBiZSBpbmxpbmVkLCBidXQgSSB3YW50IHRvIG1ha2Ugc3VyZSBJIGZvY3VzIG9uIHRoZSBlbnRyeXBvaW50LCB3aGljaCBpcyBgc3lzX3N3YXBvZmZgLiBJJiMzOTttIGNvbmZpZGVudCB0aGF0IGBzeXNfc3dhcG9mZmAgaXMgdGhlIHJpZ2h0IGVudHJ5IHBvaW50IHRvIHRhcmdldC4KCkkmIzM5O3ZlIHJlLWV4YW1pbmVkIHRoZSBwYXRjaCBjb2RlLiBJdCYjMzk7cyBza2lwcGluZyBhbiBlbnRpcmUgZW1wdHkgY2x1c3Rlciwgd2hpY2ggaXMgYSBtYWpvciBwZXJmb3JtYW5jZSBlbmhhbmNlbWVudCwgcmF0aGVyIHRoYW4ganVzdCBpbmRpdmlkdWFsIGVudHJpZXMuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLgoKVGhlIGZpbmFsIGNhbGw6IGBGb2N1c1N5bWJvbHM6IHN5c19zd2Fwb2ZmYC4gV2UgbmVlZCB0byBoaXQgdGhpcyB3aXRoIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDIzOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtTV0FQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3lzX3N3YXBvZmYmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb3B0aW1pemVzIHRoZSBgZmluZF9uZXh0X3RvX3VudXNlYCBmdW5jdGlvbiBpbiB0aGUgc3dhcCBzdWJzeXN0ZW0gYnkgc2tpcHBpbmcgZW1wdHkgc3dhcCBjbHVzdGVycyBlbnRpcmVseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUga2VybmVsIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSB0aGUgYHN3YXBvZmZgIHN5c2NhbGwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NXQVAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzeXNfc3dhcG9mZiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvcHRpbWl6ZXMgdGhlIGBmaW5kX25leHRfdG9fdW51c2VgIGZ1bmN0aW9uIGluIHRoZSBzd2FwIHN1YnN5c3RlbSBieSBza2lwcGluZyBlbXB0eSBzd2FwIGNsdXN0ZXJzIGVudGlyZWx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgdmlhIHRoZSBgc3dhcG9mZmAgc3lzY2FsbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjAxLjM2NTA3MzA2M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2MDMxMzk4MTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNXQVBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzeXNfc3dhcG9mZlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9wdGltaXplcyB0aGUgYGZpbmRfbmV4dF90b191bnVzZWAgZnVuY3Rpb24gaW4gdGhlIHN3YXAgc3Vic3lzdGVtIGJ5IHNraXBwaW5nIGVtcHR5IHN3YXAgY2x1c3RlcnMgZW50aXJlbHkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGtlcm5lbCBsb2dpYyB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgdGhlIGBzd2Fwb2ZmYCBzeXNjYWxsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQyMzoxMTowMS4zNjUwODA1NTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxOTg4NTYwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGE3Yzc0ODZkM2I4YjdlNDRjYmI0NGU3OTNjMmMwODQzYTE5MDZjMTVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjkgMjM6MTE6MDAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zd2FwLmggYi9pbmNsdWRlL2xpbnV4L3N3YXAuaFxcbmluZGV4IDJjYjFkMjkzMDdjNTQuLmUxMmM3Mzg5MWI0OGUgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9zd2FwLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L3N3YXAuaFxcbkBAIC0yNDYsNyArMjQ2LDcgQEAgc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3Qge1xcbiBcXHRzdHJ1Y3QgcGxpc3Rfbm9kZSBsaXN0O1xcdFxcdC8qIGVudHJ5IGluIHN3YXBfYWN0aXZlX2hlYWQgKi9cXG4gXFx0c2lnbmVkIGNoYXJcXHR0eXBlO1xcdFxcdC8qIHN0cmFuZ2UgbmFtZSBmb3IgYW4gaW5kZXggKi9cXG4gXFx0dW5zaWduZWQgaW50XFx0bWF4O1xcdFxcdC8qIHNpemUgb2YgdGhpcyBzd2FwIGRldmljZSAqL1xcbi1cXHRzdHJ1Y3Qgc3dhcF9jbHVzdGVyX2luZm8gKmNsdXN0ZXJfaW5mbzsgLyogY2x1c3RlciBpbmZvLiBPbmx5IGZvciBTU0QgKi9cXG4rXFx0c3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjbHVzdGVyX2luZm87IC8qIG9uZSBwZXIgY2x1c3Rlciwgb24gZXZlcnkgZGV2aWNlICovXFxuIFxcdHN0cnVjdCBsaXN0X2hlYWQgZnJlZV9jbHVzdGVyczsgLyogZnJlZSBjbHVzdGVycyBsaXN0ICovXFxuIFxcdHN0cnVjdCBsaXN0X2hlYWQgZnVsbF9jbHVzdGVyczsgLyogZnVsbCBjbHVzdGVycyBsaXN0ICovXFxuIFxcdHN0cnVjdCBsaXN0X2hlYWQgbm9uZnVsbF9jbHVzdGVyc1tTV0FQX05SX09SREVSU107XFxuZGlmZiAtLWdpdCBhL21tL3N3YXBmaWxlLmMgYi9tbS9zd2FwZmlsZS5jXFxuaW5kZXggNWQxNTkxM2RjZjg2My4uMjMwYWJiMjc2Y2ViNCAxMDA2NDRcXG4tLS0gYS9tbS9zd2FwZmlsZS5jXFxuKysrIGIvbW0vc3dhcGZpbGUuY1xcbkBAIC0zNzAsOCArMzcwLDYgQEAgc3RhdGljIHZvaWQgZGlzY2FyZF9zd2FwX2NsdXN0ZXIoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxcbiBcXHR9XFxuIH1cXG4gXFxuLSNkZWZpbmUgTEFURU5DWV9MSU1JVFxcdFxcdDI1Nlxcbi1cXG4gc3RhdGljIGlubGluZSBib29sIGNsdXN0ZXJfaXNfZW1wdHkoc3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICppbmZvKVxcbiB7XFxuIFxcdHJldHVybiBpbmZvLVxcdTAwM2Vjb3VudCA9PSAwO1xcbkBAIC0yNzYzLDcgKzI3NjEsOSBAQCBzdGF0aWMgaW50IHVudXNlX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBpbnQgdHlwZSlcXG4gc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxcbiBcXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgcHJldilcXG4ge1xcbi1cXHR1bnNpZ25lZCBpbnQgaTtcXG4rXFx0c3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjaTtcXG4rXFx0dW5zaWduZWQgbG9uZyBpLCBlbmQ7XFxuK1xcdHVuc2lnbmVkIGludCBjaV9vZmY7XFxuIFxcdHVuc2lnbmVkIGxvbmcgc3dwX3RiO1xcbiBcXG4gXFx0LypcXG5AQCAtMjc3MiwxOSArMjc3MiwzMiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGZpbmRfbmV4dF90b191bnVzZShzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2ksXFxuIFxcdCAqIGhpdHMgYXJlIG9rYXksIGFuZCBzeXNfc3dhcG9mZigpIGhhcyBhbHJlYWR5IHByZXZlbnRlZCBuZXdcXG4gXFx0ICogYWxsb2NhdGlvbnMgZnJvbSB0aGlzIGFyZWEgKHdoaWxlIGhvbGRpbmcgc3dhcF9sb2NrKS5cXG4gXFx0ICovXFxuLVxcdGZvciAoaSA9IHByZXYgKyAxOyBpIFxcdTAwM2Mgc2ktXFx1MDAzZW1heDsgaSsrKSB7XFxuLVxcdFxcdHN3cF90YiA9IHN3YXBfdGFibGVfZ2V0KF9fc3dhcF9vZmZzZXRfdG9fY2x1c3RlcihzaSwgaSksXFxuLVxcdFxcdFxcdFxcdFxcdGkgJSBTV0FQRklMRV9DTFVTVEVSKTtcXG4tXFx0XFx0aWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpIFxcdTAwMjZcXHUwMDI2ICFzd3BfdGJfaXNfYmFkKHN3cF90YikpXFxuLVxcdFxcdFxcdGJyZWFrO1xcbi1cXHRcXHRpZiAoKGkgJSBMQVRFTkNZX0xJTUlUKSA9PSAwKVxcbitcXHRpID0gcHJldiArIDE7XFxuK1xcdHdoaWxlIChpIFxcdTAwM2Mgc2ktXFx1MDAzZW1heCkge1xcbitcXHRcXHRjaSA9IF9fc3dhcF9vZmZzZXRfdG9fY2x1c3RlcihzaSwgaSk7XFxuK1xcdFxcdGNpX29mZiA9IGkgJSBTV0FQRklMRV9DTFVTVEVSO1xcbitcXHRcXHRlbmQgPSBtaW4oc2ktXFx1MDAzZW1heCwgaSAtIGNpX29mZiArIFNXQVBGSUxFX0NMVVNURVIpO1xcbitcXG4rXFx0XFx0LypcXG4rXFx0XFx0ICogQW4gZW1wdHkgY2x1c3RlciBoYXMgbm8gc2xvdCBpbiB1c2UsIHNvIHNraXAgaXQgd2hvbGUuXFxuK1xcdFxcdCAqIEEgc2xvdCBpcyB1bmNvdW50ZWQgb25seSBhZnRlciBpdHMgZm9saW8gbGVmdCB0aGUgc3dhcFxcbitcXHRcXHQgKiBjYWNoZSwgc28gdGhlcmUgaXMgbm90aGluZyBoZXJlIGZvciB0cnlfdG9fdW51c2UoKSB0byBhY3Qgb24uXFxuK1xcdFxcdCAqL1xcbitcXHRcXHRpZiAoY2x1c3Rlcl9pc19lbXB0eShjaSkpIHtcXG4rXFx0XFx0XFx0aSA9IGVuZDtcXG4gXFx0XFx0XFx0Y29uZF9yZXNjaGVkKCk7XFxuLVxcdH1cXG4rXFx0XFx0XFx0Y29udGludWU7XFxuK1xcdFxcdH1cXG4gXFxuLVxcdGlmIChpID09IHNpLVxcdTAwM2VtYXgpXFxuLVxcdFxcdGkgPSAwO1xcbitcXHRcXHRmb3IgKDsgaSBcXHUwMDNjIGVuZDsgY2lfb2ZmKyssIGkrKykge1xcbitcXHRcXHRcXHRzd3BfdGIgPSBzd2FwX3RhYmxlX2dldChjaSwgY2lfb2ZmKTtcXG4rXFx0XFx0XFx0aWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpIFxcdTAwMjZcXHUwMDI2ICFzd3BfdGJfaXNfYmFkKHN3cF90YikpXFxuK1xcdFxcdFxcdFxcdHJldHVybiBpO1xcbitcXHRcXHR9XFxuK1xcdFxcdGNvbmRfcmVzY2hlZCgpO1xcbitcXHR9XFxuIFxcbi1cXHRyZXR1cm4gaTtcXG4rXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgdHJ5X3RvX3VudXNlKHVuc2lnbmVkIGludCB0eXBlKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQyMzoxMTowMS43ODU4MDc2MThaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozNTYxMDY1NTY1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTV0FQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3lzX3N3YXBvZmZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvcHRpbWl6ZXMgdGhlIGBmaW5kX25leHRfdG9fdW51c2VgIGZ1bmN0aW9uIGluIHRoZSBzd2FwIHN1YnN5c3RlbSBieSBza2lwcGluZyBlbXB0eSBzd2FwIGNsdXN0ZXJzIGVudGlyZWx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgdmlhIHRoZSBgc3dhcG9mZmAgc3lzY2FsbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTdjNzQ4NmQzYjhiN2U0NGNiYjQ0ZTc5M2MyYzA4NDNhMTkwNmMxNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDI5IDIzOjExOjAwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zd2FwLmggYi9pbmNsdWRlL2xpbnV4L3N3YXAuaFxuaW5kZXggMmNiMWQyOTMwN2M1NC4uZTEyYzczODkxYjQ4ZSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvc3dhcC5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L3N3YXAuaFxuQEAgLTI0Niw3ICsyNDYsNyBAQCBzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCB7XG4gXHRzdHJ1Y3QgcGxpc3Rfbm9kZSBsaXN0O1x0XHQvKiBlbnRyeSBpbiBzd2FwX2FjdGl2ZV9oZWFkICovXG4gXHRzaWduZWQgY2hhclx0dHlwZTtcdFx0Lyogc3RyYW5nZSBuYW1lIGZvciBhbiBpbmRleCAqL1xuIFx0dW5zaWduZWQgaW50XHRtYXg7XHRcdC8qIHNpemUgb2YgdGhpcyBzd2FwIGRldmljZSAqL1xuLVx0c3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjbHVzdGVyX2luZm87IC8qIGNsdXN0ZXIgaW5mby4gT25seSBmb3IgU1NEICovXG4rXHRzdHJ1Y3Qgc3dhcF9jbHVzdGVyX2luZm8gKmNsdXN0ZXJfaW5mbzsgLyogb25lIHBlciBjbHVzdGVyLCBvbiBldmVyeSBkZXZpY2UgKi9cbiBcdHN0cnVjdCBsaXN0X2hlYWQgZnJlZV9jbHVzdGVyczsgLyogZnJlZSBjbHVzdGVycyBsaXN0ICovXG4gXHRzdHJ1Y3QgbGlzdF9oZWFkIGZ1bGxfY2x1c3RlcnM7IC8qIGZ1bGwgY2x1c3RlcnMgbGlzdCAqL1xuIFx0c3RydWN0IGxpc3RfaGVhZCBub25mdWxsX2NsdXN0ZXJzW1NXQVBfTlJfT1JERVJTXTtcbmRpZmYgLS1naXQgYS9tbS9zd2FwZmlsZS5jIGIvbW0vc3dhcGZpbGUuY1xuaW5kZXggNWQxNTkxM2RjZjg2My4uMjMwYWJiMjc2Y2ViNCAxMDA2NDRcbi0tLSBhL21tL3N3YXBmaWxlLmNcbisrKyBiL21tL3N3YXBmaWxlLmNcbkBAIC0zNzAsOCArMzcwLDYgQEAgc3RhdGljIHZvaWQgZGlzY2FyZF9zd2FwX2NsdXN0ZXIoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxuIFx0fVxuIH1cbiBcbi0jZGVmaW5lIExBVEVOQ1lfTElNSVRcdFx0MjU2XG4tXG4gc3RhdGljIGlubGluZSBib29sIGNsdXN0ZXJfaXNfZW1wdHkoc3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICppbmZvKVxuIHtcbiBcdHJldHVybiBpbmZvLVx1MDAzZWNvdW50ID09IDA7XG5AQCAtMjc2Myw3ICsyNzYxLDkgQEAgc3RhdGljIGludCB1bnVzZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgaW50IHR5cGUpXG4gc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxuIFx0XHRcdFx0XHR1bnNpZ25lZCBpbnQgcHJldilcbiB7XG4tXHR1bnNpZ25lZCBpbnQgaTtcbitcdHN0cnVjdCBzd2FwX2NsdXN0ZXJfaW5mbyAqY2k7XG4rXHR1bnNpZ25lZCBsb25nIGksIGVuZDtcbitcdHVuc2lnbmVkIGludCBjaV9vZmY7XG4gXHR1bnNpZ25lZCBsb25nIHN3cF90YjtcbiBcbiBcdC8qXG5AQCAtMjc3MiwxOSArMjc3MiwzMiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGZpbmRfbmV4dF90b191bnVzZShzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2ksXG4gXHQgKiBoaXRzIGFyZSBva2F5LCBhbmQgc3lzX3N3YXBvZmYoKSBoYXMgYWxyZWFkeSBwcmV2ZW50ZWQgbmV3XG4gXHQgKiBhbGxvY2F0aW9ucyBmcm9tIHRoaXMgYXJlYSAod2hpbGUgaG9sZGluZyBzd2FwX2xvY2spLlxuIFx0ICovXG4tXHRmb3IgKGkgPSBwcmV2ICsgMTsgaSBcdTAwM2Mgc2ktXHUwMDNlbWF4OyBpKyspIHtcbi1cdFx0c3dwX3RiID0gc3dhcF90YWJsZV9nZXQoX19zd2FwX29mZnNldF90b19jbHVzdGVyKHNpLCBpKSxcbi1cdFx0XHRcdFx0aSAlIFNXQVBGSUxFX0NMVVNURVIpO1xuLVx0XHRpZiAoIXN3cF90Yl9pc19udWxsKHN3cF90YikgXHUwMDI2XHUwMDI2ICFzd3BfdGJfaXNfYmFkKHN3cF90YikpXG4tXHRcdFx0YnJlYWs7XG4tXHRcdGlmICgoaSAlIExBVEVOQ1lfTElNSVQpID09IDApXG4rXHRpID0gcHJldiArIDE7XG4rXHR3aGlsZSAoaSBcdTAwM2Mgc2ktXHUwMDNlbWF4KSB7XG4rXHRcdGNpID0gX19zd2FwX29mZnNldF90b19jbHVzdGVyKHNpLCBpKTtcbitcdFx0Y2lfb2ZmID0gaSAlIFNXQVBGSUxFX0NMVVNURVI7XG4rXHRcdGVuZCA9IG1pbihzaS1cdTAwM2VtYXgsIGkgLSBjaV9vZmYgKyBTV0FQRklMRV9DTFVTVEVSKTtcbitcbitcdFx0LypcbitcdFx0ICogQW4gZW1wdHkgY2x1c3RlciBoYXMgbm8gc2xvdCBpbiB1c2UsIHNvIHNraXAgaXQgd2hvbGUuXG4rXHRcdCAqIEEgc2xvdCBpcyB1bmNvdW50ZWQgb25seSBhZnRlciBpdHMgZm9saW8gbGVmdCB0aGUgc3dhcFxuK1x0XHQgKiBjYWNoZSwgc28gdGhlcmUgaXMgbm90aGluZyBoZXJlIGZvciB0cnlfdG9fdW51c2UoKSB0byBhY3Qgb24uXG4rXHRcdCAqL1xuK1x0XHRpZiAoY2x1c3Rlcl9pc19lbXB0eShjaSkpIHtcbitcdFx0XHRpID0gZW5kO1xuIFx0XHRcdGNvbmRfcmVzY2hlZCgpO1xuLVx0fVxuK1x0XHRcdGNvbnRpbnVlO1xuK1x0XHR9XG4gXG4tXHRpZiAoaSA9PSBzaS1cdTAwM2VtYXgpXG4tXHRcdGkgPSAwO1xuK1x0XHRmb3IgKDsgaSBcdTAwM2MgZW5kOyBjaV9vZmYrKywgaSsrKSB7XG4rXHRcdFx0c3dwX3RiID0gc3dhcF90YWJsZV9nZXQoY2ksIGNpX29mZik7XG4rXHRcdFx0aWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpIFx1MDAyNlx1MDAyNiAhc3dwX3RiX2lzX2JhZChzd3BfdGIpKVxuK1x0XHRcdFx0cmV0dXJuIGk7XG4rXHRcdH1cbitcdFx0Y29uZF9yZXNjaGVkKCk7XG4rXHR9XG4gXG4tXHRyZXR1cm4gaTtcbitcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjAxLjc4NTgwOTE3OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2NzY1NTcyNTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgU3dhcGZpbGUgT3B0aW1pemF0aW9uIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgbW0vc3dhcGZpbGUuY2AgYW5kIGBpbmNsdWRlL2xpbnV4L3N3YXAuaGAuIEl0J3MgZm9jdXNlZCBvbiBvcHRpbWl6aW5nIHRoZSBgZmluZF9uZXh0X3RvX3VudXNlYCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHNraXBwaW5nIG92ZXIgZW1wdHkgY2x1c3RlcnMgdXNpbmcgYGNsdXN0ZXJfaXNfZW1wdHkoY2kpYC4gVGhhdCBzb3VuZHMgc3RyYWlnaHRmb3J3YXJkIGFuZCBwb3RlbnRpYWxseSBiZW5lZmljaWFsLiBUaGUgcGF0Y2ggYWxzbyByZW1vdmVzIHRoYXQgYCNkZWZpbmUgTEFURU5DWV9MSU1JVCAyNTZgIGZvciBgY29uZF9yZXNjaGVkKClgLCBpbnRlcmVzdGluZy5cblxuVGhlIGtleSBxdWVzdGlvbiBpcyBhbHdheXMsIFwiSXMgdGhpcyBmdXp6YWJsZT9cIiBXZWxsLCBgZmluZF9uZXh0X3RvX3VudXNlYCBpcyBjYWxsZWQgYnkgYHRyeV90b191bnVzZWAsIHdoaWNoIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBzeXNfc3dhcG9mZmAuIEJpbmdvISBgc3lzX3N3YXBvZmZgIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIHRocm91Z2ggdGhlIHN5c2NhbGwgaW50ZXJmYWNlLCBzbyB3ZSBjYW4gYWJzb2x1dGVseSB0YXJnZXQgaXQuIFRoZXNlIHNlZW0gdG8gYmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgc2hvdWxkIG9wdGltaXplIHRoZSBzd2Fwb2ZmIHByb2Nlc3MsIHdoaWNoIGlzIHByb21pc2luZyBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS5cblxuTGV0J3MgZGl2ZSBkZWVwZXIgaW50byBgdHJ5X3RvX3VudXNlYCBhbmQgYGZpbmRfbmV4dF90b191bnVzZWAuIEhvbGQgb24sIGBmaW5kX25leHRfdG9fdW51c2VgIGlzIHN0YXRpYywgbWVhbmluZyBpdHMgZGlyZWN0IGZ1enppbmcgaXMgbm90IHBvc3NpYmxlOyB0aGUgYmVzdCBhcHByb2FjaCB3b3VsZCBiZSBmdXp6aW5nIHRoZSBmdW5jdGlvbiBpdCBiZWxvbmdzIHRvLCBvciB0aG9zZSB0aGF0IGNhbGwgaXQuIEluIHRoaXMgY2FzZSwgYHRyeV90b191bnVzZWAgb3IgdGhlIHRvcCBsZXZlbCBgc3lzX3N3YXBvZmZgIGFyZSB0aGUgYXR0YWNrIHZlY3RvcnMsIHRoZSBsYXR0ZXIgYmVpbmcgYSBzeXNjYWxsIHdoaWNoIGlzIGV2ZW4gZWFzaWVyIHRvIHRhcmdldC4gRXhjZWxsZW50ISBOb3csIGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IGBzeXNfc3dhcG9mZmAgaXMgYWN0dWFsbHkgYSBzeXNjYWxsLi4uIFllcCwgdGhlcmUgaXQgaXMuIExldCdzIHN0YXJ0IGJ5IHNlYXJjaGluZyBmb3IgYHN5c19zd2Fwb2ZmYC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg5MywiT3V0cHV0VG9rZW5zIjoxOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2OCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjA3LjQ2MjM2OTc4NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODcwMTM0OTczLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5c19zd2Fwb2ZmXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbG9ja2luZy5yc3Q9MzU5PWRpcmVjdGx5IHRvIHRoZSBibG9jayBkZXZpY2UgYGBzaXMtXFx1MDAzZWJkZXZgYC5cXG5Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2xvY2tpbmcucnN0LTM2MC1cXG5Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2xvY2tpbmcucnN0OjM2MTotXFx1MDAzZXN3YXBfZGVhY3RpdmF0ZSgpIHdpbGwgYmUgY2FsbGVkIGluIHRoZSBzeXNfc3dhcG9mZigpXFxuRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9sb2NraW5nLnJzdC0zNjItcGF0aCBhZnRlciAtXFx1MDAzZXN3YXBfYWN0aXZhdGUoKSByZXR1cm5lZCBzdWNjZXNzLlxcbi0tXFxuYXJjaC9hbHBoYS9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjM2LTMwM1xcdGNvbW1vblxcdG9sZF9hZGp0aW1leFxcdFxcdFxcdHN5c19vbGRfYWRqdGltZXhcXG5hcmNoL2FscGhhL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoyMzc6MzA0XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9hbHBoYS9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjM4LTMwNVxcdGNvbW1vblxcdGdldGRlbnRzXFx0XFx0XFx0c3lzX2dldGRlbnRzXFxuLS1cXG5hcmNoL2FybS90b29scy9zeXNjYWxsLnRibC0xMzEtMTE0XFx0Y29tbW9uXFx0d2FpdDRcXHRcXHRcXHRzeXNfd2FpdDRcXG5hcmNoL2FybS90b29scy9zeXNjYWxsLnRibDoxMzI6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9hcm0vdG9vbHMvc3lzY2FsbC50YmwtMTMzLTExNlxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRzeXNfc3lzaW5mb1xcbi0tXFxuYXJjaC9hcm02NC90b29scy9zeXNjYWxsXzMyLnRibC0xMjgtMTE0XFx0Y29tbW9uXFx0d2FpdDRcXHRcXHRcXHRzeXNfd2FpdDRcXHRcXHRjb21wYXRfc3lzX3dhaXQ0XFxuYXJjaC9hcm02NC90b29scy9zeXNjYWxsXzMyLnRibDoxMjk6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9hcm02NC90b29scy9zeXNjYWxsXzMyLnRibC0xMzAtMTE2XFx0Y29tbW9uXFx0c3lzaW5mb1xcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG5hcmNoL202OGsva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNC0xMTRcXHRjb21tb25cXHR3YWl0NFxcdFxcdFxcdFxcdHN5c193YWl0NFxcbmFyY2gvbTY4ay9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTI1OjExNVxcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbmFyY2gvbTY4ay9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI2LTExNlxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRcXHRzeXNfc3lzaW5mb1xcbi0tXFxuYXJjaC9taWNyb2JsYXplL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibC0xMjQtMTE0XFx0Y29tbW9uXFx0d2FpdDRcXHRcXHRcXHRcXHRzeXNfd2FpdDRcXG5hcmNoL21pY3JvYmxhemUva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsOjEyNToxMTVcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL21pY3JvYmxhemUva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0XFx0c3lzX3N5c2luZm9cXG4tLVxcbmFyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbF9uMzIudGJsLTE3Mi0xNjJcXHRuMzJcXHRzd2Fwb25cXHRcXHRcXHRcXHRzeXNfc3dhcG9uXFxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX24zMi50Ymw6MTczOjE2M1xcdG4zMlxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbmFyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbF9uMzIudGJsLTE3NC0xNjRcXHRuMzJcXHRyZWJvb3RcXHRcXHRcXHRcXHRzeXNfcmVib290XFxuLS1cXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzItMTYyXFx0bjY0XFx0c3dhcG9uXFx0XFx0XFx0XFx0c3lzX3N3YXBvblxcbmFyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbF9uNjQudGJsOjE3MzoxNjNcXHRuNjRcXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzQtMTY0XFx0bjY0XFx0cmVib290XFx0XFx0XFx0XFx0c3lzX3JlYm9vdFxcbi0tXFxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX28zMi50YmwtMTI4LTExNFxcdG8zMlxcdHdhaXQ0XFx0XFx0XFx0XFx0c3lzX3dhaXQ0XFx0XFx0XFx0Y29tcGF0X3N5c193YWl0NFxcbmFyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbF9vMzIudGJsOjEyOToxMTVcXHRvMzJcXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbzMyLnRibC0xMzAtMTE2XFx0bzMyXFx0c3lzaW5mb1xcdFxcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG5hcmNoL3BhcmlzYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI5LTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0c3lzX3dhaXQ0XFx0XFx0XFx0Y29tcGF0X3N5c193YWl0NFxcbmFyY2gvcGFyaXNjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoxMzA6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9wYXJpc2Mva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEzMS0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0c3lzX3N5c2luZm9cXHRcXHRcXHRjb21wYXRfc3lzX3N5c2luZm9cXG4tLVxcbmFyY2gvcG93ZXJwYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTUzLTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0XFx0c3lzX3dhaXQ0XFx0XFx0XFx0Y29tcGF0X3N5c193YWl0NFxcbmFyY2gvcG93ZXJwYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTU0OjExNVxcdG5vc3B1XFx0c3dhcG9mZlxcdFxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9wb3dlcnBjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibC0xNTUtMTE2XFx0Y29tbW9uXFx0c3lzaW5mb1xcdFxcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG5hcmNoL3MzOTAva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTg5LTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0XFx0c3lzX3dhaXQ0XFxuYXJjaC9zMzkwL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDo5MDoxMTVcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL3MzOTAva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTkxLTExNlxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRcXHRzeXNfc3lzaW5mb1xcbi0tXFxuYXJjaC9zaC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI0LTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0XFx0c3lzX3dhaXQ0XFxuYXJjaC9zaC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTI1OjExNVxcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbmFyY2gvc2gva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0XFx0c3lzX3N5c2luZm9cXG4tLVxcbmFyY2gvc3BhcmMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTI1Ni0yMTJcXHRjb21tb25cXHR3YWl0cGlkXFx0XFx0XFx0c3lzX3dhaXRwaWRcXG5hcmNoL3NwYXJjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoyNTc6MjEzXFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9zcGFyYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjU4LTIxNFxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRzeXNfc3lzaW5mb1xcdFxcdFxcdGNvbXBhdF9zeXNfc3lzaW5mb1xcbi0tXFxuYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF8zMi50YmwtMTI5LTExNFxcdGkzODZcXHR3YWl0NFxcdFxcdFxcdHN5c193YWl0NFxcdFxcdFxcdGNvbXBhdF9zeXNfd2FpdDRcXG5hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibDoxMzA6MTE1XFx0aTM4NlxcdHN3YXBvZmZcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbmFyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsLTEzMS0xMTZcXHRpMzg2XFx0c3lzaW5mb1xcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG5hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzY0LnRibC0xNzktMTY3XFx0Y29tbW9uXFx0c3dhcG9uXFx0XFx0XFx0c3lzX3N3YXBvblxcbmFyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfNjQudGJsOjE4MDoxNjhcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzY0LnRibC0xODEtMTY5XFx0Y29tbW9uXFx0cmVib290XFx0XFx0XFx0c3lzX3JlYm9vdFxcbi0tXFxuYXJjaC94dGVuc2Eva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTE5My0xNzZcXHRjb21tb25cXHR1bW91bnRcXHRcXHRcXHRcXHRzeXNfb2xkdW1vdW50XFxuYXJjaC94dGVuc2Eva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsOjE5NDoxNzdcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL3h0ZW5zYS9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTk1LTE3OFxcdGNvbW1vblxcdHN5bmNcXHRcXHRcXHRcXHRzeXNfc3luY1xcbi0tXFxuaW5jbHVkZS9saW51eC9zeXNjYWxscy5oPTgzMz1hc21saW5rYWdlIGxvbmcgc3lzX3N3YXBvbihjb25zdCBjaGFyIF9fdXNlciAqc3BlY2lhbGZpbGUsIGludCBzd2FwX2ZsYWdzKTtcXG5pbmNsdWRlL2xpbnV4L3N5c2NhbGxzLmg6ODM0OmFzbWxpbmthZ2UgbG9uZyBzeXNfc3dhcG9mZihjb25zdCBjaGFyIF9fdXNlciAqc3BlY2lhbGZpbGUpO1xcbmluY2x1ZGUvbGludXgvc3lzY2FsbHMuaC04MzUtYXNtbGlua2FnZSBsb25nIHN5c19tcHJvdGVjdCh1bnNpZ25lZCBsb25nIHN0YXJ0LCBzaXplX3QgbGVuLFxcbi0tXFxuaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oPTU3OD1fX1NZU0NBTEwoX19OUl9zd2Fwb24sIHN5c19zd2Fwb24pXFxuaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oLTU3OS0jZGVmaW5lIF9fTlJfc3dhcG9mZiAyMjVcXG5pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmg6NTgwOl9fU1lTQ0FMTChfX05SX3N3YXBvZmYsIHN5c19zd2Fwb2ZmKVxcbmluY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy91bmlzdGQuaC01ODEtI2RlZmluZSBfX05SX21wcm90ZWN0IDIyNlxcbi0tXFxubW0vc3dhcGZpbGUuYz0yNzYxPXN0YXRpYyB1bnNpZ25lZCBpbnQgZmluZF9uZXh0X3RvX3VudXNlKHN0cnVjdCBzd2FwX2luZm9fc3RydWN0ICpzaSxcXG4tLVxcbm1tL3N3YXBmaWxlLmMtMjc3MS1cXHQgKiBmb3Igd2hldGhlciBhbiBlbnRyeSBpcyBpbiB1c2UsIG5vdCBtb2RpZnlpbmcgaXQ7IGZhbHNlXFxubW0vc3dhcGZpbGUuYzoyNzcyOlxcdCAqIGhpdHMgYXJlIG9rYXksIGFuZCBzeXNfc3dhcG9mZigpIGhhcyBhbHJlYWR5IHByZXZlbnRlZCBuZXdcXG5tbS9zd2FwZmlsZS5jLTI3NzMtXFx0ICogYWxsb2NhdGlvbnMgZnJvbSB0aGlzIGFyZWEgKHdoaWxlIGhvbGRpbmcgc3dhcF9sb2NrKS5cXG4tLVxcbnNjcmlwdHMvc3lzY2FsbC50YmwtMjcwLTIyNFxcdGNvbW1vblxcdHN3YXBvblxcdFxcdFxcdFxcdHN5c19zd2Fwb25cXG5zY3JpcHRzL3N5c2NhbGwudGJsOjI3MToyMjVcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5zY3JpcHRzL3N5c2NhbGwudGJsLTI3Mi0yMjZcXHRjb21tb25cXHRtcHJvdGVjdFxcdFxcdFxcdHN5c19tcHJvdGVjdFxcbi0tXFxudG9vbHMvaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oPTU3OD1fX1NZU0NBTEwoX19OUl9zd2Fwb24sIHN5c19zd2Fwb24pXFxudG9vbHMvaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oLTU3OS0jZGVmaW5lIF9fTlJfc3dhcG9mZiAyMjVcXG50b29scy9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmg6NTgwOl9fU1lTQ0FMTChfX05SX3N3YXBvZmYsIHN5c19zd2Fwb2ZmKVxcbnRvb2xzL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy91bmlzdGQuaC01ODEtI2RlZmluZSBfX05SX21wcm90ZWN0IDIyNlxcbi0tXFxudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtc2NyaXB0LXB5dGhvbi50eHQ9NDk9c3lzX2Nsb3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAzN1xcbnRvb2xzL3BlcmYvRG9jdW1lbnRhdGlvbi9wZXJmLXNjcmlwdC1weXRob24udHh0OjUwOnN5c19zd2Fwb2ZmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3NjlcXG50b29scy9wZXJmL0RvY3VtZW50YXRpb24vcGVyZi1zY3JpcHQtcHl0aG9uLnR4dC01MS1zeXNfcmVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTIzXFxuLS1cXG50b29scy9wZXJmL2FyY2gvYWxwaGEvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjM2LTMwM1xcdGNvbW1vblxcdG9sZF9hZGp0aW1leFxcdFxcdFxcdHN5c19vbGRfYWRqdGltZXhcXG50b29scy9wZXJmL2FyY2gvYWxwaGEvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MjM3OjMwNFxcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbnRvb2xzL3BlcmYvYXJjaC9hbHBoYS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0yMzgtMzA1XFx0Y29tbW9uXFx0Z2V0ZGVudHNcXHRcXHRcXHRzeXNfZ2V0ZGVudHNcXG4tLVxcbnRvb2xzL3BlcmYvYXJjaC9hcm0vZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTMxLTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0c3lzX3dhaXQ0XFxudG9vbHMvcGVyZi9hcmNoL2FybS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoxMzI6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxudG9vbHMvcGVyZi9hcmNoL2FybS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xMzMtMTE2XFx0Y29tbW9uXFx0c3lzaW5mb1xcdFxcdFxcdHN5c19zeXNpbmZvXFxuLS1cXG50b29scy9wZXJmL2FyY2gvYXJtNjQvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF8zMi50YmwtMTI4LTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0c3lzX3dhaXQ0XFx0XFx0Y29tcGF0X3N5c193YWl0NFxcbnRvb2xzL3BlcmYvYXJjaC9hcm02NC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibDoxMjk6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxudG9vbHMvcGVyZi9hcmNoL2FybTY0L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsLTEzMC0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0c3lzX3N5c2luZm9cXHRcXHRjb21wYXRfc3lzX3N5c2luZm9cXG4tLVxcbnRvb2xzL3BlcmYvYXJjaC9taXBzL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzItMTYyXFx0bjY0XFx0c3dhcG9uXFx0XFx0XFx0XFx0c3lzX3N3YXBvblxcbnRvb2xzL3BlcmYvYXJjaC9taXBzL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibDoxNzM6MTYzXFx0bjY0XFx0c3dhcG9mZlxcdFxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxudG9vbHMvcGVyZi9hcmNoL21pcHMvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF9uNjQudGJsLTE3NC0xNjRcXHRuNjRcXHRyZWJvb3RcXHRcXHRcXHRcXHRzeXNfcmVib290XFxuLS1cXG50b29scy9wZXJmL2FyY2gvcGFyaXNjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyOS0xMTRcXHRjb21tb25cXHR3YWl0NFxcdFxcdFxcdHN5c193YWl0NFxcdFxcdFxcdGNvbXBhdF9zeXNfd2FpdDRcXG50b29scy9wZXJmL2FyY2gvcGFyaXNjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsOjEzMDoxMTVcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0c3lzX3N3YXBvZmZcXG50b29scy9wZXJmL2FyY2gvcGFyaXNjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTEzMS0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0c3lzX3N5c2luZm9cXHRcXHRcXHRjb21wYXRfc3lzX3N5c2luZm9cXG4tLVxcbnRvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTE1My0xMTRcXHRjb21tb25cXHR3YWl0NFxcdFxcdFxcdFxcdHN5c193YWl0NFxcdFxcdFxcdGNvbXBhdF9zeXNfd2FpdDRcXG50b29scy9wZXJmL2FyY2gvcG93ZXJwYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoxNTQ6MTE1XFx0bm9zcHVcXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG50b29scy9wZXJmL2FyY2gvcG93ZXJwYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xNTUtMTE2XFx0Y29tbW9uXFx0c3lzaW5mb1xcdFxcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG50b29scy9wZXJmL2FyY2gvczM5MC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC04OS0xMTRcXHRjb21tb25cXHR3YWl0NFxcdFxcdFxcdFxcdHN5c193YWl0NFxcbnRvb2xzL3BlcmYvYXJjaC9zMzkwL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsOjkwOjExNVxcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbnRvb2xzL3BlcmYvYXJjaC9zMzkwL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTkxLTExNlxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRcXHRzeXNfc3lzaW5mb1xcbi0tXFxudG9vbHMvcGVyZi9hcmNoL3NoL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNC0xMTRcXHRjb21tb25cXHR3YWl0NFxcdFxcdFxcdFxcdHN5c193YWl0NFxcbnRvb2xzL3BlcmYvYXJjaC9zaC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoxMjU6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxudG9vbHMvcGVyZi9hcmNoL3NoL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0XFx0c3lzX3N5c2luZm9cXG4tLVxcbnRvb2xzL3BlcmYvYXJjaC9zcGFyYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0yNTYtMjEyXFx0Y29tbW9uXFx0d2FpdHBpZFxcdFxcdFxcdHN5c193YWl0cGlkXFxudG9vbHMvcGVyZi9hcmNoL3NwYXJjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsOjI1NzoyMTNcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0c3lzX3N3YXBvZmZcXG50b29scy9wZXJmL2FyY2gvc3BhcmMvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjU4LTIxNFxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRzeXNfc3lzaW5mb1xcdFxcdFxcdGNvbXBhdF9zeXNfc3lzaW5mb1xcbi0tXFxudG9vbHMvcGVyZi9hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibC0xMjktMTE0XFx0aTM4NlxcdHdhaXQ0XFx0XFx0XFx0c3lzX3dhaXQ0XFx0XFx0XFx0Y29tcGF0X3N5c193YWl0NFxcbnRvb2xzL3BlcmYvYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF8zMi50Ymw6MTMwOjExNVxcdGkzODZcXHRzd2Fwb2ZmXFx0XFx0XFx0c3lzX3N3YXBvZmZcXG50b29scy9wZXJmL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsLTEzMS0xMTZcXHRpMzg2XFx0c3lzaW5mb1xcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG50b29scy9wZXJmL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfNjQudGJsLTE3OS0xNjdcXHRjb21tb25cXHRzd2Fwb25cXHRcXHRcXHRzeXNfc3dhcG9uXFxudG9vbHMvcGVyZi9hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzY0LnRibDoxODA6MTY4XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxudG9vbHMvcGVyZi9hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzY0LnRibC0xODEtMTY5XFx0Y29tbW9uXFx0cmVib290XFx0XFx0XFx0c3lzX3JlYm9vdFxcbi0tXFxudG9vbHMvcGVyZi9hcmNoL3h0ZW5zYS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xOTMtMTc2XFx0Y29tbW9uXFx0dW1vdW50XFx0XFx0XFx0XFx0c3lzX29sZHVtb3VudFxcbnRvb2xzL3BlcmYvYXJjaC94dGVuc2EvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTk0OjE3N1xcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbnRvb2xzL3BlcmYvYXJjaC94dGVuc2EvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTk1LTE3OFxcdGNvbW1vblxcdHN5bmNcXHRcXHRcXHRcXHRzeXNfc3luY1xcbi0tXFxudG9vbHMvc2NyaXB0cy9zeXNjYWxsLnRibC0yNzAtMjI0XFx0Y29tbW9uXFx0c3dhcG9uXFx0XFx0XFx0XFx0c3lzX3N3YXBvblxcbnRvb2xzL3NjcmlwdHMvc3lzY2FsbC50Ymw6MjcxOjIyNVxcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbnRvb2xzL3NjcmlwdHMvc3lzY2FsbC50YmwtMjcyLTIyNlxcdGNvbW1vblxcdG1wcm90ZWN0XFx0XFx0XFx0c3lzX21wcm90ZWN0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjEwLjMzMjUwOTY1OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NzY3NzM3NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTd2FwIERlYWN0aXZhdGlvbiBTeXN0ZW0gQ2FsbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBzeXNfc3dhcG9mZmAuIEZpcnN0IHRoaW5ncyBmaXJzdCwgSSB3YW50IHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueSBlc3NlbnRpYWwgY29uZmlndXJhdGlvbnMuIFRoaXMgaXMgd2hlcmUgSSdkIG5vcm1hbGx5IHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUga2VybmVsIGRvY3VtZW50YXRpb24gb3IgcmVsZXZhbnQgc291cmNlIGNvZGUsIGxvb2tpbmcgZm9yIGFueSBlZGdlIGNhc2VzLiBJdCdzIGNydWNpYWwgbm90IHRvIG1pc3MgYW55IGluaXRpYWwgY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgbmVlZGVkIGJlZm9yZSBhY3R1YWxseSBkZWFjdGl2YXRpbmcgc3dhcC5cblxuSSBzZWUgdGhhdCBgQ09ORklHX1NXQVBgIHNlZW1zIHRvIGJlIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHJlbGF0ZWQgdG8gc3dhcCBzcGFjZS4gVGhpcyBpcyBleHBlY3RlZC4gTm93IEkgd2lsbCBuZWVkIHRvIGRlbHZlIGRlZXBlciBpbnRvIGl0cyBpbXBsaWNhdGlvbnMuIElzIHRoZXJlIGFueXRoaW5nIGVsc2UgdGhhdCBuZWVkcyB0byBiZSBjb25zaWRlcmVkIGJlZm9yZSBJIGNvbnRpbnVlP1xuXG5cbiIsIklucHV0VG9rZW5zIjo3NTQxLCJPdXRwdXRUb2tlbnMiOjE3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMjM6MTE6MTMuMjA5Mjg1MTkyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMDc1MjM0OTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFNXQVBcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9taXBzL0tjb25maWc9MTI2Mz1jb25maWcgTUlQU19TUFJBTVxcbi0tXFxuYXJjaC9taXBzL0tjb25maWctMTI2NS1cXG5hcmNoL21pcHMvS2NvbmZpZzoxMjY2OmNvbmZpZyBTV0FQX0lPX1NQQUNFXFxuYXJjaC9taXBzL0tjb25maWctMTI2Ny1cXHRib29sXFxuLS1cXG5hcmNoL3NoL0tjb25maWc9MTI5PWNvbmZpZyBJT19UUkFQUEVEXFxuLS1cXG5hcmNoL3NoL0tjb25maWctMTMxLVxcbmFyY2gvc2gvS2NvbmZpZzoxMzI6Y29uZmlnIFNXQVBfSU9fU1BBQ0VcXG5hcmNoL3NoL0tjb25maWctMTMzLVxcdGJvb2xcXG4tLVxcbm1tL0tjb25maWc9OT1jb25maWcgQVJDSF9OT19TV0FQXFxuLS1cXG5tbS9LY29uZmlnLTExLVxcbm1tL0tjb25maWc6MTI6bWVudWNvbmZpZyBTV0FQXFxubW0vS2NvbmZpZy0xMy1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBwYWdpbmcgb2YgYW5vbnltb3VzIG1lbW9yeSAoc3dhcClcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjE1LjQxNjgxNzg0M1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI2MzU0NTYxMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkludmVzdGlnYXRpbmcgQ09ORklHX1NXQVAgYW5kIEZ1bmN0aW9uIFVzYWdlKipcblxuQWxyaWdodCwgc28gYENPTkZJR19TV0FQYCBpcyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdlJ3JlIGRlYWxpbmcgd2l0aCBoZXJlLCB0aGF0J3MgY2xlYXIuIE5vdywgYSBjcnVjaWFsIHN0ZXAgdG8gZnVsbHkgdW5kZXJzdGFuZGluZyBpdHMgaW1wbGljYXRpb25zIGlzIHRvIHNlZSBpZiBgZmluZF9uZXh0X3RvX3VudXNlYCBpcyB1c2VkIG91dHNpZGUgb2YgdGhpcyBpbW1lZGlhdGUgY29udGV4dC4gV2UgbmVlZCB0byBhc3Nlc3MgaWYgaXRzIHByZXNlbmNlIG9yIGFic2VuY2UgcmVsYXRlcyBzb2xlbHkgdG8gdGhlIHN3YXAgaW1wbGVtZW50YXRpb24sIG9yIGlmIGl0IGNvbnRyaWJ1dGVzIHRvIG90aGVyIGFyZWFzIG9mIHN5c3RlbSBvcGVyYXRpb24sIHdoaWNoIG1heSBwcm92aWRlIG1vcmUgY29udGV4dC4gS25vd2luZyB3aGVyZSBgZmluZF9uZXh0X3RvX3VudXNlYCBpcyB1c2VkIHdpbGwgZ2l2ZSBhIGdvb2QgaW5kaWNhdG9yIG9mIHdoYXQgY2FuIGJlIGV4cGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTQxLCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMjM6MTE6MTguMDUyMjc2Mzk5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMjkwMDY1NjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmluZF9uZXh0X3RvX3VudXNlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL3N3YXBmaWxlLmM9MjczMz1zdGF0aWMgaW50IHVudXNlX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBpbnQgdHlwZSlcXG4tLVxcbm1tL3N3YXBmaWxlLmMtMjc2MC0gKi9cXG5tbS9zd2FwZmlsZS5jOjI3NjE6c3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxcbm1tL3N3YXBmaWxlLmMtMjc2Mi1cXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgcHJldilcXG4tLVxcbm1tL3N3YXBmaWxlLmM9MjgwMz1zdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcXG4tLVxcbm1tL3N3YXBmaWxlLmMtMjg1Ni1cXHQgICAgICAgIXNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpIFxcdTAwMjZcXHUwMDI2XFxubW0vc3dhcGZpbGUuYzoyODU3OlxcdCAgICAgICAoaSA9IGZpbmRfbmV4dF90b191bnVzZShzaSwgaSkpICE9IDApIHtcXG5tbS9zd2FwZmlsZS5jLTI4NTgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjIwLjI4MTI5OTUxMVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NzI0OTU0NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0OlxuXG4qKk15IFBlcnNwZWN0aXZlIG9uIGBmaW5kX25leHRfdG9fdW51c2VgIGFuZCBpdHMgUGxhY2UgaW4gdGhlIFN5c3RlbSoqXG5cbkFscmlnaHQsIHNvIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkgdW5kZXJzdGFuZCwgdGhlIHN5c3RlbSdzIGBzeXNfc3dhcG9mZmAgZnVuY3Rpb24gaXMgdWx0aW1hdGVseSByZXNwb25zaWJsZSBmb3IgaW5pdGlhdGluZyB0aGUgc3dhcC1vZmYgcHJvY2Vzcy4gTm93LCBgc3lzX3N3YXBvZmZgIGl0c2VsZiBjYWxscyB0aGUgZnVuY3Rpb24gYHRyeV90b191bnVzZWAuIEFuZCAqdGhhdCdzKiB0aGUga2V5IOKAkyBgdHJ5X3RvX3VudXNlYCBpcyB3aGVyZSB0aGUgaGVhdnkgbGlmdGluZyBvZiBhdHRlbXB0aW5nIHRvIGRlYWN0aXZhdGUgc3dhcCBzcGFjZSBhY3R1YWxseSBoYXBwZW5zLiBTcGVjaWZpY2FsbHksIGB0cnlfdG9fdW51c2VgIGRlcGVuZHMgb24gYGZpbmRfbmV4dF90b191bnVzZWAuIEZyb20gdGhlIGZ1bmN0aW9uIG5hbWVzLCBJIHdvdWxkIGd1ZXNzIHRoaXMgaXMgc29tZSBraW5kIG9mIHNlYXJjaCBmdW5jdGlvbiB0aGF0IGhlbHBzIHdpdGggaWRlbnRpZnlpbmcgc3dhcCBzcGFjZSBzdWl0YWJsZSBmb3IgdW4tdXNlLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgc3VjaCBhIGZ1bmN0aW9uIG1pZ2h0IHNlYXJjaCBmb3IgYSBcIm5leHRcIiBzd2FwIGFyZWEgdGhhdCBpcyBzYWZlIHRvIHN3YXAgb2ZmLiBJdCBtaWdodCBiZSBsb29raW5nIGZvciBzd2FwIGFyZWFzIHdpdGggbm8gYWN0aXZlIHBhZ2VzLCBvciBtaW5pbWFsIGFjdGl2aXR5LCB0aGF0IGNhbiBiZSBzYWZlbHkgZGVhY3RpdmF0ZWQgd2l0aG91dCBjYXVzaW5nIGlzc3Vlcy4gU28sIGBmaW5kX25leHRfdG9fdW51c2VgIGlzIGVzc2VudGlhbGx5IHRoZSB3b3JraG9yc2UgdGhhdCBoZWxwcyBtYWtlIGB0cnlfdG9fdW51c2VgIHN1Y2Nlc3NmdWwuIEl0J3MgYW4gaW1wb3J0YW50IHBhcnQgb2YgdGhlIGJpZ2dlciBwaWN0dXJlIG9mIHRoZSBzd2FwIHNwYWNlIG1hbmFnZW1lbnQgd2l0aGluIHRoZSBPUy4gVGhlIG92ZXJhbGwgcHJvY2VzcywgaG93ZXZlciwgaXMgYSBiaXQgb3BhcXVlIGFzIEkgd291bGQgZXhwZWN0IGBzeXNfc3dhcG9mZmAgd291bGQgaGF2ZSBtb3JlIGNoZWNrcyBhcm91bmQgaXQgdG8gcHJvdGVjdCBhZ2FpbnN0IGVycm9ycy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODM1MiwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjIzLjg1Mzc5Nzg2MVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIzMjE4NTQ5MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0cnlfdG9fdW51c2VcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiQ1JFRElUUz0xMzc9RDogQXV0aG9yIG9mIGxpbCAoTGludXggSW50ZXJydXB0IExhdGVuY3kgYmVuY2htYXJrKVxcbkNSRURJVFM6MTM4OkQ6IEZpeGVkIHRoZSBzaG0gc3dhcCBkZWFsbG9jYXRpb24gYXQgc3dhcG9mZiB0aW1lICh0cnlfdG9fdW51c2UgbWVzc2FnZSlcXG5DUkVESVRTLTEzOS1EOiBWTSBoYWNrZXJcXG4tLVxcbmtlcm5lbC9leGl0LmM9NDkyPXZvaWQgbW1fdXBkYXRlX25leHRfb3duZXIoc3RydWN0IG1tX3N0cnVjdCAqbW0pXFxuLS1cXG5rZXJuZWwvZXhpdC5jLTU0MC1cXHQgKiBXZSBmb3VuZCBubyBvd25lciB5ZXQgbW1fdXNlcnMgXFx1MDAzZSAxOiB0aGlzIGltcGxpZXMgdGhhdCB3ZSBhcmVcXG5rZXJuZWwvZXhpdC5jOjU0MTpcXHQgKiBtb3N0IGxpa2VseSByYWNpbmcgd2l0aCBzd2Fwb2ZmICh0cnlfdG9fdW51c2UoKSkgb3IgL3Byb2Mgb3JcXG5rZXJuZWwvZXhpdC5jLTU0Mi1cXHQgKiBwdHJhY2Ugb3IgcGFnZSBtaWdyYXRpb24gKGdldF90YXNrX21tKCkpLiAgTWFyayBvd25lciBhcyBOVUxMLlxcbi0tXFxubW0vc3dhcGZpbGUuYz0xMzE0PXN0YXRpYyB2b2lkIHN3YXBfcmFuZ2VfZnJlZShzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2ksIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LFxcbi0tXFxubW0vc3dhcGZpbGUuYy0xMzM2LVxcdC8qXFxubW0vc3dhcGZpbGUuYzoxMzM3OlxcdCAqIE1ha2Ugc3VyZSB0aGF0IHRyeV90b191bnVzZSgpIG9ic2VydmVzIHNpLVxcdTAwM2VpbnVzZV9wYWdlcyByZWFjaGluZyAwXFxubW0vc3dhcGZpbGUuYy0xMzM4LVxcdCAqIG9ubHkgYWZ0ZXIgdGhlIGFib3ZlIGNsZWFudXBzIGFyZSBkb25lLlxcbi0tXFxubW0vc3dhcGZpbGUuYz0yNDcxPXN0YXRpYyBpbnQgdW51c2VfcHRlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBwbWRfdCAqcG1kLFxcbi0tXFxubW0vc3dhcGZpbGUuYy0yNDgyLVxcdCAqIElmIHRoZSBmb2xpbyBpcyByZW1vdmVkIGZyb20gc3dhcCBjYWNoZSBieSBvdGhlcnMsIGNvbnRpbnVlIHRvXFxubW0vc3dhcGZpbGUuYzoyNDgzOlxcdCAqIHVudXNlIG90aGVyIFBURXMuIHRyeV90b191bnVzZSBtYXkgdHJ5IGFnYWluIGlmIHdlIG1pc3NlZCB0aGlzIG9uZS5cXG5tbS9zd2FwZmlsZS5jLTI0ODQtXFx0ICovXFxuLS1cXG5tbS9zd2FwZmlsZS5jPTI3NjE9c3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxcbi0tXFxubW0vc3dhcGZpbGUuYy0yNzgzLVxcdFxcdCAqIEEgc2xvdCBpcyB1bmNvdW50ZWQgb25seSBhZnRlciBpdHMgZm9saW8gbGVmdCB0aGUgc3dhcFxcbm1tL3N3YXBmaWxlLmM6Mjc4NDpcXHRcXHQgKiBjYWNoZSwgc28gdGhlcmUgaXMgbm90aGluZyBoZXJlIGZvciB0cnlfdG9fdW51c2UoKSB0byBhY3Qgb24uXFxubW0vc3dhcGZpbGUuYy0yNzg1LVxcdFxcdCAqL1xcbi0tXFxubW0vc3dhcGZpbGUuYy0yODAyLVxcbm1tL3N3YXBmaWxlLmM6MjgwMzpzdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcXG5tbS9zd2FwZmlsZS5jLTI4MDQte1xcbi0tXFxubW0vc3dhcGZpbGUuYy0yODk3LVxcdC8qXFxubW0vc3dhcGZpbGUuYzoyODk4OlxcdCAqIE1ha2Ugc3VyZSB0aGF0IGZ1cnRoZXIgY2xlYW51cHMgYWZ0ZXIgdHJ5X3RvX3VudXNlKCkgcmV0dXJucyBoYXBwZW5cXG5tbS9zd2FwZmlsZS5jLTI4OTktXFx0ICogYWZ0ZXIgc3dhcF9yYW5nZV9mcmVlKCkgcmVkdWNlcyBzaS1cXHUwMDNlaW51c2VfcGFnZXMgdG8gMC5cXG4tLVxcbm1tL3N3YXBmaWxlLmMtMjkwNS0vKlxcbm1tL3N3YXBmaWxlLmM6MjkwNjogKiBBZnRlciBhIHN1Y2Nlc3NmdWwgdHJ5X3RvX3VudXNlLCBpZiBubyBzd2FwIGlzIG5vdyBpbiB1c2UsIHdlIGtub3dcXG5tbS9zd2FwZmlsZS5jLTI5MDctICogd2UgY2FuIGVtcHR5IHRoZSBtbWxpc3QuICBzd2FwX2xvY2sgbXVzdCBiZSBoZWxkIG9uIGVudHJ5IGFuZCBleGl0Llxcbi0tXFxubW0vc3dhcGZpbGUuYz0zMTQ5PVNZU0NBTExfREVGSU5FMShzd2Fwb2ZmLCBjb25zdCBjaGFyIF9fdXNlciAqLCBzcGVjaWFsZmlsZSlcXG4tLVxcbm1tL3N3YXBmaWxlLmMtMzIwOS1cXHRzZXRfY3VycmVudF9vb21fb3JpZ2luKCk7XFxubW0vc3dhcGZpbGUuYzozMjEwOlxcdGVyciA9IHRyeV90b191bnVzZShwLVxcdTAwM2V0eXBlKTtcXG5tbS9zd2FwZmlsZS5jLTMyMTEtXFx0Y2xlYXJfY3VycmVudF9vb21fb3JpZ2luKCk7XFxuLS1cXG5tbS96c3dhcC5jPTE2NzE9dm9pZCB6c3dhcF9zd2Fwb2ZmKGludCB0eXBlKVxcbi0tXFxubW0venN3YXAuYy0xNjc4LVxcbm1tL3pzd2FwLmM6MTY3OTpcXHQvKiB0cnlfdG9fdW51c2UoKSBpbnZhbGlkYXRlZCBhbGwgdGhlIGVudHJpZXMgYWxyZWFkeSAqL1xcbm1tL3pzd2FwLmMtMTY4MC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbnJfenN3YXBfdHJlZXNbdHlwZV07IGkrKylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMjM6MTE6MjYuMDg1OTg4ODMzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMTg3MDQ4ODMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU3dhcG9mZiBPcHRpbWl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgSSBjYW4gc2VlIGl0J3MgdG91Y2hpbmcgYGZpbmRfbmV4dF90b191bnVzZWAsIHdoaWNoIGlzIGNhbGxlZCBieSBgdHJ5X3RvX3VudXNlYCwgd2hpY2ggaW4gdHVybiBpcyBjYWxsZWQgYnkgYHN5c19zd2Fwb2ZmYC4gVGhpcyBpcyBhbGwgcHJldHR5IGRlZXAgaW4gdGhlIHN3YXAgc3Vic3lzdGVtLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QganVzdCBhIGNvc21ldGljIG9uZS4gVGhlIHBhdGNoJ3MgY29yZSBpZGVhIGlzIHRvIG9wdGltaXplIHRoZSBzZWFyY2ggZm9yIHRoZSBuZXh0IHVzZWQgc3dhcCBlbnRyeSBieSBza2lwcGluZyBlbnRpcmUgZW1wdHkgY2x1c3RlcnMuIFRoaXMgbG9va3MgbGlrZSBhIGRlZmluaXRlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi5cblxuU2luY2UgdGhpcyBhZmZlY3RzIGNvcmUga2VybmVsIGxvZ2ljIGFuZCBpdCdzIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBgc3dhcG9mZmAgc3lzY2FsbCwgaXQgd2FycmFudHMgZnV6emluZy4gYFNXQVBgIHNlZW1zIGxpa2UgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIGVuYWJsZSwgYW5kIGdpdmVuIHRoYXQgaXQgZG9lcyBlbmFibGUgc3dhcCBzdXBwb3J0LCBJIHRoaW5rIHdlJ3JlIGdvb2QgdGhlcmUuXG5cbk5vdywgbGV0J3MgbmFpbCBkb3duIHRoZSBmb2N1cyBzeW1ib2xzLiBJIHdhbnQgdG8gYmUgcHJlY2lzZSBoZXJlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gZm9jdXNpbmcgb24gYW4gYWN0dWFsIGVudHJ5cG9pbnQuIElzIGBzeXNfc3dhcG9mZmAgYWN0dWFsbHkgdGhlIHJpZ2h0IHN5bWJvbD8gWWVzLCB0aGUgZGVmaW5pdGlvbiBzaG93cyBpdCdzIHRoZSByaWdodCBmdW5jdGlvbi4gQW5kLCB3aGlsZSBgdHJ5X3RvX3VudXNlYCBpcyBzdGF0aWMsIGl0J3MgcHJldHR5IGxhcmdlIGFuZCBub3QgbGlrZWx5IHRvIGJlIGlubGluZWQsIGJ1dCBJIHdhbnQgdG8gbWFrZSBzdXJlIEkgZm9jdXMgb24gdGhlIGVudHJ5cG9pbnQsIHdoaWNoIGlzIGBzeXNfc3dhcG9mZmAuIEknbSBjb25maWRlbnQgdGhhdCBgc3lzX3N3YXBvZmZgIGlzIHRoZSByaWdodCBlbnRyeSBwb2ludCB0byB0YXJnZXQuXG5cbkkndmUgcmUtZXhhbWluZWQgdGhlIHBhdGNoIGNvZGUuIEl0J3Mgc2tpcHBpbmcgYW4gZW50aXJlIGVtcHR5IGNsdXN0ZXIsIHdoaWNoIGlzIGEgbWFqb3IgcGVyZm9ybWFuY2UgZW5oYW5jZW1lbnQsIHJhdGhlciB0aGFuIGp1c3QgaW5kaXZpZHVhbCBlbnRyaWVzLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZS5cblxuVGhlIGZpbmFsIGNhbGw6IGBGb2N1c1N5bWJvbHM6IHN5c19zd2Fwb2ZmYC4gV2UgbmVlZCB0byBoaXQgdGhpcyB3aXRoIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk2ODIsIk91dHB1dFRva2VucyI6ODcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDg0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjM3LjI3MzA0NTgzM1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMzQxNDQ2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1dBUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN5c19zd2Fwb2ZmXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb3B0aW1pemVzIHRoZSBgZmluZF9uZXh0X3RvX3VudXNlYCBmdW5jdGlvbiBpbiB0aGUgc3dhcCBzdWJzeXN0ZW0gYnkgc2tpcHBpbmcgZW1wdHkgc3dhcCBjbHVzdGVycyBlbnRpcmVseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUga2VybmVsIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSB0aGUgYHN3YXBvZmZgIHN5c2NhbGwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1dBUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN5c19zd2Fwb2ZmXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb3B0aW1pemVzIHRoZSBgZmluZF9uZXh0X3RvX3VudXNlYCBmdW5jdGlvbiBpbiB0aGUgc3dhcCBzdWJzeXN0ZW0gYnkgc2tpcHBpbmcgZW1wdHkgc3dhcCBjbHVzdGVycyBlbnRpcmVseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUga2VybmVsIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSB0aGUgYHN3YXBvZmZgIHN5c2NhbGwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbbrk2[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-29 22:39:54 +0000 UTC FinishedAt: 2026-07-29 23:11:38 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "ae98967f6e94c2239d81795f9f6c987add5518c8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "SWAP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "ae98967f6e94c2239d81795f9f6c987add5518c8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "SWAP" ], "series_id": "0c6d8451-68cc-4a8f-ad95-5bd462fc856e" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "sys_swapoff" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDIzOjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NXQVAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzeXNfc3dhcG9mZiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvcHRpbWl6ZXMgdGhlIGBmaW5kX25leHRfdG9fdW51c2VgIGZ1bmN0aW9uIGluIHRoZSBzd2FwIHN1YnN5c3RlbSBieSBza2lwcGluZyBlbXB0eSBzd2FwIGNsdXN0ZXJzIGVudGlyZWx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgdmlhIHRoZSBgc3dhcG9mZmAgc3lzY2FsbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAyMzoxMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGE3Yzc0ODZkM2I4YjdlNDRjYmI0NGU3OTNjMmMwODQzYTE5MDZjMTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyOSAyMzoxMTowMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N3YXAuaCBiL2luY2x1ZGUvbGludXgvc3dhcC5oXG5pbmRleCAyY2IxZDI5MzA3YzU0Li5lMTJjNzM4OTFiNDhlIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9zd2FwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvc3dhcC5oXG5AQCAtMjQ2LDcgJiM0MzsyNDYsNyBAQCBzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCB7XG4gXHRzdHJ1Y3QgcGxpc3Rfbm9kZSBsaXN0O1x0XHQvKiBlbnRyeSBpbiBzd2FwX2FjdGl2ZV9oZWFkICovXG4gXHRzaWduZWQgY2hhclx0dHlwZTtcdFx0Lyogc3RyYW5nZSBuYW1lIGZvciBhbiBpbmRleCAqL1xuIFx0dW5zaWduZWQgaW50XHRtYXg7XHRcdC8qIHNpemUgb2YgdGhpcyBzd2FwIGRldmljZSAqL1xuLVx0c3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjbHVzdGVyX2luZm87IC8qIGNsdXN0ZXIgaW5mby4gT25seSBmb3IgU1NEICovXG4mIzQzO1x0c3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjbHVzdGVyX2luZm87IC8qIG9uZSBwZXIgY2x1c3Rlciwgb24gZXZlcnkgZGV2aWNlICovXG4gXHRzdHJ1Y3QgbGlzdF9oZWFkIGZyZWVfY2x1c3RlcnM7IC8qIGZyZWUgY2x1c3RlcnMgbGlzdCAqL1xuIFx0c3RydWN0IGxpc3RfaGVhZCBmdWxsX2NsdXN0ZXJzOyAvKiBmdWxsIGNsdXN0ZXJzIGxpc3QgKi9cbiBcdHN0cnVjdCBsaXN0X2hlYWQgbm9uZnVsbF9jbHVzdGVyc1tTV0FQX05SX09SREVSU107XG5kaWZmIC0tZ2l0IGEvbW0vc3dhcGZpbGUuYyBiL21tL3N3YXBmaWxlLmNcbmluZGV4IDVkMTU5MTNkY2Y4NjMuLjIzMGFiYjI3NmNlYjQgMTAwNjQ0XG4tLS0gYS9tbS9zd2FwZmlsZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9tbS9zd2FwZmlsZS5jXG5AQCAtMzcwLDggJiM0MzszNzAsNiBAQCBzdGF0aWMgdm9pZCBkaXNjYXJkX3N3YXBfY2x1c3RlcihzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2ksXG4gXHR9XG4gfVxuIFxuLSNkZWZpbmUgTEFURU5DWV9MSU1JVFx0XHQyNTZcbi1cbiBzdGF0aWMgaW5saW5lIGJvb2wgY2x1c3Rlcl9pc19lbXB0eShzdHJ1Y3Qgc3dhcF9jbHVzdGVyX2luZm8gKmluZm8pXG4ge1xuIFx0cmV0dXJuIGluZm8tXHUwMDNlY291bnQgPT0gMDtcbkBAIC0yNzYzLDcgJiM0MzsyNzYxLDkgQEAgc3RhdGljIGludCB1bnVzZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgaW50IHR5cGUpXG4gc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxuIFx0XHRcdFx0XHR1bnNpZ25lZCBpbnQgcHJldilcbiB7XG4tXHR1bnNpZ25lZCBpbnQgaTtcbiYjNDM7XHRzdHJ1Y3Qgc3dhcF9jbHVzdGVyX2luZm8gKmNpO1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgaSwgZW5kO1xuJiM0MztcdHVuc2lnbmVkIGludCBjaV9vZmY7XG4gXHR1bnNpZ25lZCBsb25nIHN3cF90YjtcbiBcbiBcdC8qXG5AQCAtMjc3MiwxOSAmIzQzOzI3NzIsMzIgQEAgc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxuIFx0ICogaGl0cyBhcmUgb2theSwgYW5kIHN5c19zd2Fwb2ZmKCkgaGFzIGFscmVhZHkgcHJldmVudGVkIG5ld1xuIFx0ICogYWxsb2NhdGlvbnMgZnJvbSB0aGlzIGFyZWEgKHdoaWxlIGhvbGRpbmcgc3dhcF9sb2NrKS5cbiBcdCAqL1xuLVx0Zm9yIChpID0gcHJldiAmIzQzOyAxOyBpIFx1MDAzYyBzaS1cdTAwM2VtYXg7IGkmIzQzOyYjNDM7KSB7XG4tXHRcdHN3cF90YiA9IHN3YXBfdGFibGVfZ2V0KF9fc3dhcF9vZmZzZXRfdG9fY2x1c3RlcihzaSwgaSksXG4tXHRcdFx0XHRcdGkgJSBTV0FQRklMRV9DTFVTVEVSKTtcbi1cdFx0aWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpIFx1MDAyNlx1MDAyNiAhc3dwX3RiX2lzX2JhZChzd3BfdGIpKVxuLVx0XHRcdGJyZWFrO1xuLVx0XHRpZiAoKGkgJSBMQVRFTkNZX0xJTUlUKSA9PSAwKVxuJiM0MztcdGkgPSBwcmV2ICYjNDM7IDE7XG4mIzQzO1x0d2hpbGUgKGkgXHUwMDNjIHNpLVx1MDAzZW1heCkge1xuJiM0MztcdFx0Y2kgPSBfX3N3YXBfb2Zmc2V0X3RvX2NsdXN0ZXIoc2ksIGkpO1xuJiM0MztcdFx0Y2lfb2ZmID0gaSAlIFNXQVBGSUxFX0NMVVNURVI7XG4mIzQzO1x0XHRlbmQgPSBtaW4oc2ktXHUwMDNlbWF4LCBpIC0gY2lfb2ZmICYjNDM7IFNXQVBGSUxFX0NMVVNURVIpO1xuJiM0MztcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBBbiBlbXB0eSBjbHVzdGVyIGhhcyBubyBzbG90IGluIHVzZSwgc28gc2tpcCBpdCB3aG9sZS5cbiYjNDM7XHRcdCAqIEEgc2xvdCBpcyB1bmNvdW50ZWQgb25seSBhZnRlciBpdHMgZm9saW8gbGVmdCB0aGUgc3dhcFxuJiM0MztcdFx0ICogY2FjaGUsIHNvIHRoZXJlIGlzIG5vdGhpbmcgaGVyZSBmb3IgdHJ5X3RvX3VudXNlKCkgdG8gYWN0IG9uLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRpZiAoY2x1c3Rlcl9pc19lbXB0eShjaSkpIHtcbiYjNDM7XHRcdFx0aSA9IGVuZDtcbiBcdFx0XHRjb25kX3Jlc2NoZWQoKTtcbi1cdH1cbiYjNDM7XHRcdFx0Y29udGludWU7XG4mIzQzO1x0XHR9XG4gXG4tXHRpZiAoaSA9PSBzaS1cdTAwM2VtYXgpXG4tXHRcdGkgPSAwO1xuJiM0MztcdFx0Zm9yICg7IGkgXHUwMDNjIGVuZDsgY2lfb2ZmJiM0MzsmIzQzOywgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdFx0c3dwX3RiID0gc3dhcF90YWJsZV9nZXQoY2ksIGNpX29mZik7XG4mIzQzO1x0XHRcdGlmICghc3dwX3RiX2lzX251bGwoc3dwX3RiKSBcdTAwMjZcdTAwMjYgIXN3cF90Yl9pc19iYWQoc3dwX3RiKSlcbiYjNDM7XHRcdFx0XHRyZXR1cm4gaTtcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdGNvbmRfcmVzY2hlZCgpO1xuJiM0MztcdH1cbiBcbi1cdHJldHVybiBpO1xuJiM0MztcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAyMzoxMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1dBUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N5c19zd2Fwb2ZmJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9wdGltaXplcyB0aGUgYGZpbmRfbmV4dF90b191bnVzZWAgZnVuY3Rpb24gaW4gdGhlIHN3YXAgc3Vic3lzdGVtIGJ5IHNraXBwaW5nIGVtcHR5IHN3YXAgY2x1c3RlcnMgZW50aXJlbHkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGtlcm5lbCBsb2dpYyB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgdGhlIGBzd2Fwb2ZmYCBzeXNjYWxsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTdjNzQ4NmQzYjhiN2U0NGNiYjQ0ZTc5M2MyYzA4NDNhMTkwNmMxNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDI5IDIzOjExOjAwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zd2FwLmggYi9pbmNsdWRlL2xpbnV4L3N3YXAuaAppbmRleCAyY2IxZDI5MzA3YzU0Li5lMTJjNzM4OTFiNDhlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3N3YXAuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3N3YXAuaApAQCAtMjQ2LDcgJiM0MzsyNDYsNyBAQCBzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCB7CiAJc3RydWN0IHBsaXN0X25vZGUgbGlzdDsJCS8qIGVudHJ5IGluIHN3YXBfYWN0aXZlX2hlYWQgKi8KIAlzaWduZWQgY2hhcgl0eXBlOwkJLyogc3RyYW5nZSBuYW1lIGZvciBhbiBpbmRleCAqLwogCXVuc2lnbmVkIGludAltYXg7CQkvKiBzaXplIG9mIHRoaXMgc3dhcCBkZXZpY2UgKi8KLQlzdHJ1Y3Qgc3dhcF9jbHVzdGVyX2luZm8gKmNsdXN0ZXJfaW5mbzsgLyogY2x1c3RlciBpbmZvLiBPbmx5IGZvciBTU0QgKi8KJiM0MzsJc3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjbHVzdGVyX2luZm87IC8qIG9uZSBwZXIgY2x1c3Rlciwgb24gZXZlcnkgZGV2aWNlICovCiAJc3RydWN0IGxpc3RfaGVhZCBmcmVlX2NsdXN0ZXJzOyAvKiBmcmVlIGNsdXN0ZXJzIGxpc3QgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGZ1bGxfY2x1c3RlcnM7IC8qIGZ1bGwgY2x1c3RlcnMgbGlzdCAqLwogCXN0cnVjdCBsaXN0X2hlYWQgbm9uZnVsbF9jbHVzdGVyc1tTV0FQX05SX09SREVSU107CmRpZmYgLS1naXQgYS9tbS9zd2FwZmlsZS5jIGIvbW0vc3dhcGZpbGUuYwppbmRleCA1ZDE1OTEzZGNmODYzLi4yMzBhYmIyNzZjZWI0IDEwMDY0NAotLS0gYS9tbS9zd2FwZmlsZS5jCiYjNDM7JiM0MzsmIzQzOyBiL21tL3N3YXBmaWxlLmMKQEAgLTM3MCw4ICYjNDM7MzcwLDYgQEAgc3RhdGljIHZvaWQgZGlzY2FyZF9zd2FwX2NsdXN0ZXIoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLAogCX0KIH0KIAotI2RlZmluZSBMQVRFTkNZX0xJTUlUCQkyNTYKLQogc3RhdGljIGlubGluZSBib29sIGNsdXN0ZXJfaXNfZW1wdHkoc3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICppbmZvKQogewogCXJldHVybiBpbmZvLSZndDtjb3VudCA9PSAwOwpAQCAtMjc2Myw3ICYjNDM7Mjc2MSw5IEBAIHN0YXRpYyBpbnQgdW51c2VfbW0oc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGludCB0eXBlKQogc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLAogCQkJCQl1bnNpZ25lZCBpbnQgcHJldikKIHsKLQl1bnNpZ25lZCBpbnQgaTsKJiM0MzsJc3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjaTsKJiM0MzsJdW5zaWduZWQgbG9uZyBpLCBlbmQ7CiYjNDM7CXVuc2lnbmVkIGludCBjaV9vZmY7CiAJdW5zaWduZWQgbG9uZyBzd3BfdGI7CiAKIAkvKgpAQCAtMjc3MiwxOSAmIzQzOzI3NzIsMzIgQEAgc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLAogCSAqIGhpdHMgYXJlIG9rYXksIGFuZCBzeXNfc3dhcG9mZigpIGhhcyBhbHJlYWR5IHByZXZlbnRlZCBuZXcKIAkgKiBhbGxvY2F0aW9ucyBmcm9tIHRoaXMgYXJlYSAod2hpbGUgaG9sZGluZyBzd2FwX2xvY2spLgogCSAqLwotCWZvciAoaSA9IHByZXYgJiM0MzsgMTsgaSAmbHQ7IHNpLSZndDttYXg7IGkmIzQzOyYjNDM7KSB7Ci0JCXN3cF90YiA9IHN3YXBfdGFibGVfZ2V0KF9fc3dhcF9vZmZzZXRfdG9fY2x1c3RlcihzaSwgaSksCi0JCQkJCWkgJSBTV0FQRklMRV9DTFVTVEVSKTsKLQkJaWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpICZhbXA7JmFtcDsgIXN3cF90Yl9pc19iYWQoc3dwX3RiKSkKLQkJCWJyZWFrOwotCQlpZiAoKGkgJSBMQVRFTkNZX0xJTUlUKSA9PSAwKQomIzQzOwlpID0gcHJldiAmIzQzOyAxOwomIzQzOwl3aGlsZSAoaSAmbHQ7IHNpLSZndDttYXgpIHsKJiM0MzsJCWNpID0gX19zd2FwX29mZnNldF90b19jbHVzdGVyKHNpLCBpKTsKJiM0MzsJCWNpX29mZiA9IGkgJSBTV0FQRklMRV9DTFVTVEVSOwomIzQzOwkJZW5kID0gbWluKHNpLSZndDttYXgsIGkgLSBjaV9vZmYgJiM0MzsgU1dBUEZJTEVfQ0xVU1RFUik7CiYjNDM7CiYjNDM7CQkvKgomIzQzOwkJICogQW4gZW1wdHkgY2x1c3RlciBoYXMgbm8gc2xvdCBpbiB1c2UsIHNvIHNraXAgaXQgd2hvbGUuCiYjNDM7CQkgKiBBIHNsb3QgaXMgdW5jb3VudGVkIG9ubHkgYWZ0ZXIgaXRzIGZvbGlvIGxlZnQgdGhlIHN3YXAKJiM0MzsJCSAqIGNhY2hlLCBzbyB0aGVyZSBpcyBub3RoaW5nIGhlcmUgZm9yIHRyeV90b191bnVzZSgpIHRvIGFjdCBvbi4KJiM0MzsJCSAqLwomIzQzOwkJaWYgKGNsdXN0ZXJfaXNfZW1wdHkoY2kpKSB7CiYjNDM7CQkJaSA9IGVuZDsKIAkJCWNvbmRfcmVzY2hlZCgpOwotCX0KJiM0MzsJCQljb250aW51ZTsKJiM0MzsJCX0KIAotCWlmIChpID09IHNpLSZndDttYXgpCi0JCWkgPSAwOwomIzQzOwkJZm9yICg7IGkgJmx0OyBlbmQ7IGNpX29mZiYjNDM7JiM0MzssIGkmIzQzOyYjNDM7KSB7CiYjNDM7CQkJc3dwX3RiID0gc3dhcF90YWJsZV9nZXQoY2ksIGNpX29mZik7CiYjNDM7CQkJaWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpICZhbXA7JmFtcDsgIXN3cF90Yl9pc19iYWQoc3dwX3RiKSkKJiM0MzsJCQkJcmV0dXJuIGk7CiYjNDM7CQl9CiYjNDM7CQljb25kX3Jlc2NoZWQoKTsKJiM0MzsJfQogCi0JcmV0dXJuIGk7CiYjNDM7CXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSkKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMjM6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg5MwoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDI2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBTd2FwZmlsZSBPcHRpbWl6YXRpb24gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG1tL3N3YXBmaWxlLmNgIGFuZCBgaW5jbHVkZS9saW51eC9zd2FwLmhgLiBJdCYjMzk7cyBmb2N1c2VkIG9uIG9wdGltaXppbmcgdGhlIGBmaW5kX25leHRfdG9fdW51c2VgIGZ1bmN0aW9uLCBzcGVjaWZpY2FsbHkgc2tpcHBpbmcgb3ZlciBlbXB0eSBjbHVzdGVycyB1c2luZyBgY2x1c3Rlcl9pc19lbXB0eShjaSlgLiBUaGF0IHNvdW5kcyBzdHJhaWdodGZvcndhcmQgYW5kIHBvdGVudGlhbGx5IGJlbmVmaWNpYWwuIFRoZSBwYXRjaCBhbHNvIHJlbW92ZXMgdGhhdCBgI2RlZmluZSBMQVRFTkNZX0xJTUlUIDI1NmAgZm9yIGBjb25kX3Jlc2NoZWQoKWAsIGludGVyZXN0aW5nLgoKVGhlIGtleSBxdWVzdGlvbiBpcyBhbHdheXMsICYjMzQ7SXMgdGhpcyBmdXp6YWJsZT8mIzM0OyBXZWxsLCBgZmluZF9uZXh0X3RvX3VudXNlYCBpcyBjYWxsZWQgYnkgYHRyeV90b191bnVzZWAsIHdoaWNoIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBzeXNfc3dhcG9mZmAuIEJpbmdvISBgc3lzX3N3YXBvZmZgIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIHRocm91Z2ggdGhlIHN5c2NhbGwgaW50ZXJmYWNlLCBzbyB3ZSBjYW4gYWJzb2x1dGVseSB0YXJnZXQgaXQuIFRoZXNlIHNlZW0gdG8gYmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgc2hvdWxkIG9wdGltaXplIHRoZSBzd2Fwb2ZmIHByb2Nlc3MsIHdoaWNoIGlzIHByb21pc2luZyBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4KCkxldCYjMzk7cyBkaXZlIGRlZXBlciBpbnRvIGB0cnlfdG9fdW51c2VgIGFuZCBgZmluZF9uZXh0X3RvX3VudXNlYC4gSG9sZCBvbiwgYGZpbmRfbmV4dF90b191bnVzZWAgaXMgc3RhdGljLCBtZWFuaW5nIGl0cyBkaXJlY3QgZnV6emluZyBpcyBub3QgcG9zc2libGU7IHRoZSBiZXN0IGFwcHJvYWNoIHdvdWxkIGJlIGZ1enppbmcgdGhlIGZ1bmN0aW9uIGl0IGJlbG9uZ3MgdG8sIG9yIHRob3NlIHRoYXQgY2FsbCBpdC4gSW4gdGhpcyBjYXNlLCBgdHJ5X3RvX3VudXNlYCBvciB0aGUgdG9wIGxldmVsIGBzeXNfc3dhcG9mZmAgYXJlIHRoZSBhdHRhY2sgdmVjdG9ycywgdGhlIGxhdHRlciBiZWluZyBhIHN5c2NhbGwgd2hpY2ggaXMgZXZlbiBlYXNpZXIgdG8gdGFyZ2V0LiBFeGNlbGxlbnQhIE5vdywgbGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQgYHN5c19zd2Fwb2ZmYCBpcyBhY3R1YWxseSBhIHN5c2NhbGwuLi4gWWVwLCB0aGVyZSBpdCBpcy4gTGV0JiMzOTtzIHN0YXJ0IGJ5IHNlYXJjaGluZyBmb3IgYHN5c19zd2Fwb2ZmYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAyMzoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzeXNfc3dhcG9mZiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2xvY2tpbmcucnN0PTM1OT1kaXJlY3RseSB0byB0aGUgYmxvY2sgZGV2aWNlIGBgc2lzLVx1MDAzZWJkZXZgYC5cbkRvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbG9ja2luZy5yc3QtMzYwLVxuRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9sb2NraW5nLnJzdDozNjE6LVx1MDAzZXN3YXBfZGVhY3RpdmF0ZSgpIHdpbGwgYmUgY2FsbGVkIGluIHRoZSBzeXNfc3dhcG9mZigpXG5Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2xvY2tpbmcucnN0LTM2Mi1wYXRoIGFmdGVyIC1cdTAwM2Vzd2FwX2FjdGl2YXRlKCkgcmV0dXJuZWQgc3VjY2Vzcy5cbi0tXG5hcmNoL2FscGhhL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibC0yMzYtMzAzXHRjb21tb25cdG9sZF9hZGp0aW1leFx0XHRcdHN5c19vbGRfYWRqdGltZXhcbmFyY2gvYWxwaGEva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsOjIzNzozMDRcdGNvbW1vblx0c3dhcG9mZlx0XHRcdFx0c3lzX3N3YXBvZmZcbmFyY2gvYWxwaGEva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTIzOC0zMDVcdGNvbW1vblx0Z2V0ZGVudHNcdFx0XHRzeXNfZ2V0ZGVudHNcbi0tXG5hcmNoL2FybS90b29scy9zeXNjYWxsLnRibC0xMzEtMTE0XHRjb21tb25cdHdhaXQ0XHRcdFx0c3lzX3dhaXQ0XG5hcmNoL2FybS90b29scy9zeXNjYWxsLnRibDoxMzI6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9hcm0vdG9vbHMvc3lzY2FsbC50YmwtMTMzLTExNlx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0c3lzX3N5c2luZm9cbi0tXG5hcmNoL2FybTY0L3Rvb2xzL3N5c2NhbGxfMzIudGJsLTEyOC0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRzeXNfd2FpdDRcdFx0Y29tcGF0X3N5c193YWl0NFxuYXJjaC9hcm02NC90b29scy9zeXNjYWxsXzMyLnRibDoxMjk6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9hcm02NC90b29scy9zeXNjYWxsXzMyLnRibC0xMzAtMTE2XHRjb21tb25cdHN5c2luZm9cdFx0XHRzeXNfc3lzaW5mb1x0XHRjb21wYXRfc3lzX3N5c2luZm9cbi0tXG5hcmNoL202OGsva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNC0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRcdHN5c193YWl0NFxuYXJjaC9tNjhrL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoxMjU6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG5hcmNoL202OGsva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdFx0c3lzX3N5c2luZm9cbi0tXG5hcmNoL21pY3JvYmxhemUva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNC0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRcdHN5c193YWl0NFxuYXJjaC9taWNyb2JsYXplL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoxMjU6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG5hcmNoL21pY3JvYmxhemUva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdFx0c3lzX3N5c2luZm9cbi0tXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbjMyLnRibC0xNzItMTYyXHRuMzJcdHN3YXBvblx0XHRcdFx0c3lzX3N3YXBvblxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX24zMi50Ymw6MTczOjE2M1x0bjMyXHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX24zMi50YmwtMTc0LTE2NFx0bjMyXHRyZWJvb3RcdFx0XHRcdHN5c19yZWJvb3Rcbi0tXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzItMTYyXHRuNjRcdHN3YXBvblx0XHRcdFx0c3lzX3N3YXBvblxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX242NC50Ymw6MTczOjE2M1x0bjY0XHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX242NC50YmwtMTc0LTE2NFx0bjY0XHRyZWJvb3RcdFx0XHRcdHN5c19yZWJvb3Rcbi0tXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbzMyLnRibC0xMjgtMTE0XHRvMzJcdHdhaXQ0XHRcdFx0XHRzeXNfd2FpdDRcdFx0XHRjb21wYXRfc3lzX3dhaXQ0XG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbzMyLnRibDoxMjk6MTE1XHRvMzJcdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbzMyLnRibC0xMzAtMTE2XHRvMzJcdHN5c2luZm9cdFx0XHRcdHN5c19zeXNpbmZvXHRcdFx0Y29tcGF0X3N5c19zeXNpbmZvXG4tLVxuYXJjaC9wYXJpc2Mva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyOS0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRzeXNfd2FpdDRcdFx0XHRjb21wYXRfc3lzX3dhaXQ0XG5hcmNoL3BhcmlzYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTMwOjExNVx0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0c3lzX3N3YXBvZmZcbmFyY2gvcGFyaXNjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibC0xMzEtMTE2XHRjb21tb25cdHN5c2luZm9cdFx0XHRzeXNfc3lzaW5mb1x0XHRcdGNvbXBhdF9zeXNfc3lzaW5mb1xuLS1cbmFyY2gvcG93ZXJwYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTUzLTExNFx0Y29tbW9uXHR3YWl0NFx0XHRcdFx0c3lzX3dhaXQ0XHRcdFx0Y29tcGF0X3N5c193YWl0NFxuYXJjaC9wb3dlcnBjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoxNTQ6MTE1XHRub3NwdVx0c3dhcG9mZlx0XHRcdFx0c3lzX3N3YXBvZmZcbmFyY2gvcG93ZXJwYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTU1LTExNlx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0XHRzeXNfc3lzaW5mb1x0XHRcdGNvbXBhdF9zeXNfc3lzaW5mb1xuLS1cbmFyY2gvczM5MC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtODktMTE0XHRjb21tb25cdHdhaXQ0XHRcdFx0XHRzeXNfd2FpdDRcbmFyY2gvczM5MC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6OTA6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG5hcmNoL3MzOTAva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTkxLTExNlx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0XHRzeXNfc3lzaW5mb1xuLS1cbmFyY2gvc2gva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNC0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRcdHN5c193YWl0NFxuYXJjaC9zaC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTI1OjExNVx0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9zaC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI2LTExNlx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0XHRzeXNfc3lzaW5mb1xuLS1cbmFyY2gvc3BhcmMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTI1Ni0yMTJcdGNvbW1vblx0d2FpdHBpZFx0XHRcdHN5c193YWl0cGlkXG5hcmNoL3NwYXJjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoyNTc6MjEzXHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC9zcGFyYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjU4LTIxNFx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0c3lzX3N5c2luZm9cdFx0XHRjb21wYXRfc3lzX3N5c2luZm9cbi0tXG5hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibC0xMjktMTE0XHRpMzg2XHR3YWl0NFx0XHRcdHN5c193YWl0NFx0XHRcdGNvbXBhdF9zeXNfd2FpdDRcbmFyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsOjEzMDoxMTVcdGkzODZcdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF8zMi50YmwtMTMxLTExNlx0aTM4Nlx0c3lzaW5mb1x0XHRcdHN5c19zeXNpbmZvXHRcdFx0Y29tcGF0X3N5c19zeXNpbmZvXG4tLVxuYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF82NC50YmwtMTc5LTE2N1x0Y29tbW9uXHRzd2Fwb25cdFx0XHRzeXNfc3dhcG9uXG5hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzY0LnRibDoxODA6MTY4XHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF82NC50YmwtMTgxLTE2OVx0Y29tbW9uXHRyZWJvb3RcdFx0XHRzeXNfcmVib290XG4tLVxuYXJjaC94dGVuc2Eva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTE5My0xNzZcdGNvbW1vblx0dW1vdW50XHRcdFx0XHRzeXNfb2xkdW1vdW50XG5hcmNoL3h0ZW5zYS9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTk0OjE3N1x0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxuYXJjaC94dGVuc2Eva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTE5NS0xNzhcdGNvbW1vblx0c3luY1x0XHRcdFx0c3lzX3N5bmNcbi0tXG5pbmNsdWRlL2xpbnV4L3N5c2NhbGxzLmg9ODMzPWFzbWxpbmthZ2UgbG9uZyBzeXNfc3dhcG9uKGNvbnN0IGNoYXIgX191c2VyICpzcGVjaWFsZmlsZSwgaW50IHN3YXBfZmxhZ3MpO1xuaW5jbHVkZS9saW51eC9zeXNjYWxscy5oOjgzNDphc21saW5rYWdlIGxvbmcgc3lzX3N3YXBvZmYoY29uc3QgY2hhciBfX3VzZXIgKnNwZWNpYWxmaWxlKTtcbmluY2x1ZGUvbGludXgvc3lzY2FsbHMuaC04MzUtYXNtbGlua2FnZSBsb25nIHN5c19tcHJvdGVjdCh1bnNpZ25lZCBsb25nIHN0YXJ0LCBzaXplX3QgbGVuLFxuLS1cbmluY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy91bmlzdGQuaD01Nzg9X19TWVNDQUxMKF9fTlJfc3dhcG9uLCBzeXNfc3dhcG9uKVxuaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oLTU3OS0jZGVmaW5lIF9fTlJfc3dhcG9mZiAyMjVcbmluY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy91bmlzdGQuaDo1ODA6X19TWVNDQUxMKF9fTlJfc3dhcG9mZiwgc3lzX3N3YXBvZmYpXG5pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmgtNTgxLSNkZWZpbmUgX19OUl9tcHJvdGVjdCAyMjZcbi0tXG5tbS9zd2FwZmlsZS5jPTI3NjE9c3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxuLS1cbm1tL3N3YXBmaWxlLmMtMjc3MS1cdCAqIGZvciB3aGV0aGVyIGFuIGVudHJ5IGlzIGluIHVzZSwgbm90IG1vZGlmeWluZyBpdDsgZmFsc2Vcbm1tL3N3YXBmaWxlLmM6Mjc3MjpcdCAqIGhpdHMgYXJlIG9rYXksIGFuZCBzeXNfc3dhcG9mZigpIGhhcyBhbHJlYWR5IHByZXZlbnRlZCBuZXdcbm1tL3N3YXBmaWxlLmMtMjc3My1cdCAqIGFsbG9jYXRpb25zIGZyb20gdGhpcyBhcmVhICh3aGlsZSBob2xkaW5nIHN3YXBfbG9jaykuXG4tLVxuc2NyaXB0cy9zeXNjYWxsLnRibC0yNzAtMjI0XHRjb21tb25cdHN3YXBvblx0XHRcdFx0c3lzX3N3YXBvblxuc2NyaXB0cy9zeXNjYWxsLnRibDoyNzE6MjI1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG5zY3JpcHRzL3N5c2NhbGwudGJsLTI3Mi0yMjZcdGNvbW1vblx0bXByb3RlY3RcdFx0XHRzeXNfbXByb3RlY3Rcbi0tXG50b29scy9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmg9NTc4PV9fU1lTQ0FMTChfX05SX3N3YXBvbiwgc3lzX3N3YXBvbilcbnRvb2xzL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy91bmlzdGQuaC01NzktI2RlZmluZSBfX05SX3N3YXBvZmYgMjI1XG50b29scy9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmg6NTgwOl9fU1lTQ0FMTChfX05SX3N3YXBvZmYsIHN5c19zd2Fwb2ZmKVxudG9vbHMvaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oLTU4MS0jZGVmaW5lIF9fTlJfbXByb3RlY3QgMjI2XG4tLVxudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtc2NyaXB0LXB5dGhvbi50eHQ9NDk9c3lzX2Nsb3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAzN1xudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtc2NyaXB0LXB5dGhvbi50eHQ6NTA6c3lzX3N3YXBvZmYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTc2OVxudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtc2NyaXB0LXB5dGhvbi50eHQtNTEtc3lzX3JlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkyM1xuLS1cbnRvb2xzL3BlcmYvYXJjaC9hbHBoYS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0yMzYtMzAzXHRjb21tb25cdG9sZF9hZGp0aW1leFx0XHRcdHN5c19vbGRfYWRqdGltZXhcbnRvb2xzL3BlcmYvYXJjaC9hbHBoYS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoyMzc6MzA0XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG50b29scy9wZXJmL2FyY2gvYWxwaGEvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjM4LTMwNVx0Y29tbW9uXHRnZXRkZW50c1x0XHRcdHN5c19nZXRkZW50c1xuLS1cbnRvb2xzL3BlcmYvYXJjaC9hcm0vZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTMxLTExNFx0Y29tbW9uXHR3YWl0NFx0XHRcdHN5c193YWl0NFxudG9vbHMvcGVyZi9hcmNoL2FybS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoxMzI6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxudG9vbHMvcGVyZi9hcmNoL2FybS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xMzMtMTE2XHRjb21tb25cdHN5c2luZm9cdFx0XHRzeXNfc3lzaW5mb1xuLS1cbnRvb2xzL3BlcmYvYXJjaC9hcm02NC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibC0xMjgtMTE0XHRjb21tb25cdHdhaXQ0XHRcdFx0c3lzX3dhaXQ0XHRcdGNvbXBhdF9zeXNfd2FpdDRcbnRvb2xzL3BlcmYvYXJjaC9hcm02NC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibDoxMjk6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxudG9vbHMvcGVyZi9hcmNoL2FybTY0L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsLTEzMC0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdHN5c19zeXNpbmZvXHRcdGNvbXBhdF9zeXNfc3lzaW5mb1xuLS1cbnRvb2xzL3BlcmYvYXJjaC9taXBzL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzItMTYyXHRuNjRcdHN3YXBvblx0XHRcdFx0c3lzX3N3YXBvblxudG9vbHMvcGVyZi9hcmNoL21pcHMvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF9uNjQudGJsOjE3MzoxNjNcdG42NFx0c3dhcG9mZlx0XHRcdFx0c3lzX3N3YXBvZmZcbnRvb2xzL3BlcmYvYXJjaC9taXBzL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzQtMTY0XHRuNjRcdHJlYm9vdFx0XHRcdFx0c3lzX3JlYm9vdFxuLS1cbnRvb2xzL3BlcmYvYXJjaC9wYXJpc2MvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI5LTExNFx0Y29tbW9uXHR3YWl0NFx0XHRcdHN5c193YWl0NFx0XHRcdGNvbXBhdF9zeXNfd2FpdDRcbnRvb2xzL3BlcmYvYXJjaC9wYXJpc2MvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTMwOjExNVx0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0c3lzX3N3YXBvZmZcbnRvb2xzL3BlcmYvYXJjaC9wYXJpc2MvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTMxLTExNlx0Y29tbW9uXHRzeXNpbmZvXHRcdFx0c3lzX3N5c2luZm9cdFx0XHRjb21wYXRfc3lzX3N5c2luZm9cbi0tXG50b29scy9wZXJmL2FyY2gvcG93ZXJwYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xNTMtMTE0XHRjb21tb25cdHdhaXQ0XHRcdFx0XHRzeXNfd2FpdDRcdFx0XHRjb21wYXRfc3lzX3dhaXQ0XG50b29scy9wZXJmL2FyY2gvcG93ZXJwYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoxNTQ6MTE1XHRub3NwdVx0c3dhcG9mZlx0XHRcdFx0c3lzX3N3YXBvZmZcbnRvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTE1NS0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdFx0c3lzX3N5c2luZm9cdFx0XHRjb21wYXRfc3lzX3N5c2luZm9cbi0tXG50b29scy9wZXJmL2FyY2gvczM5MC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC04OS0xMTRcdGNvbW1vblx0d2FpdDRcdFx0XHRcdHN5c193YWl0NFxudG9vbHMvcGVyZi9hcmNoL3MzOTAvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6OTA6MTE1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG50b29scy9wZXJmL2FyY2gvczM5MC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC05MS0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdFx0c3lzX3N5c2luZm9cbi0tXG50b29scy9wZXJmL2FyY2gvc2gvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI0LTExNFx0Y29tbW9uXHR3YWl0NFx0XHRcdFx0c3lzX3dhaXQ0XG50b29scy9wZXJmL2FyY2gvc2gvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTI1OjExNVx0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxudG9vbHMvcGVyZi9hcmNoL3NoL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcdGNvbW1vblx0c3lzaW5mb1x0XHRcdFx0c3lzX3N5c2luZm9cbi0tXG50b29scy9wZXJmL2FyY2gvc3BhcmMvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjU2LTIxMlx0Y29tbW9uXHR3YWl0cGlkXHRcdFx0c3lzX3dhaXRwaWRcbnRvb2xzL3BlcmYvYXJjaC9zcGFyYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoyNTc6MjEzXHRjb21tb25cdHN3YXBvZmZcdFx0XHRzeXNfc3dhcG9mZlxudG9vbHMvcGVyZi9hcmNoL3NwYXJjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTI1OC0yMTRcdGNvbW1vblx0c3lzaW5mb1x0XHRcdHN5c19zeXNpbmZvXHRcdFx0Y29tcGF0X3N5c19zeXNpbmZvXG4tLVxudG9vbHMvcGVyZi9hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibC0xMjktMTE0XHRpMzg2XHR3YWl0NFx0XHRcdHN5c193YWl0NFx0XHRcdGNvbXBhdF9zeXNfd2FpdDRcbnRvb2xzL3BlcmYvYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF8zMi50Ymw6MTMwOjExNVx0aTM4Nlx0c3dhcG9mZlx0XHRcdHN5c19zd2Fwb2ZmXG50b29scy9wZXJmL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsLTEzMS0xMTZcdGkzODZcdHN5c2luZm9cdFx0XHRzeXNfc3lzaW5mb1x0XHRcdGNvbXBhdF9zeXNfc3lzaW5mb1xuLS1cbnRvb2xzL3BlcmYvYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF82NC50YmwtMTc5LTE2N1x0Y29tbW9uXHRzd2Fwb25cdFx0XHRzeXNfc3dhcG9uXG50b29scy9wZXJmL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfNjQudGJsOjE4MDoxNjhcdGNvbW1vblx0c3dhcG9mZlx0XHRcdHN5c19zd2Fwb2ZmXG50b29scy9wZXJmL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfNjQudGJsLTE4MS0xNjlcdGNvbW1vblx0cmVib290XHRcdFx0c3lzX3JlYm9vdFxuLS1cbnRvb2xzL3BlcmYvYXJjaC94dGVuc2EvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTkzLTE3Nlx0Y29tbW9uXHR1bW91bnRcdFx0XHRcdHN5c19vbGR1bW91bnRcbnRvb2xzL3BlcmYvYXJjaC94dGVuc2EvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTk0OjE3N1x0Y29tbW9uXHRzd2Fwb2ZmXHRcdFx0XHRzeXNfc3dhcG9mZlxudG9vbHMvcGVyZi9hcmNoL3h0ZW5zYS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xOTUtMTc4XHRjb21tb25cdHN5bmNcdFx0XHRcdHN5c19zeW5jXG4tLVxudG9vbHMvc2NyaXB0cy9zeXNjYWxsLnRibC0yNzAtMjI0XHRjb21tb25cdHN3YXBvblx0XHRcdFx0c3lzX3N3YXBvblxudG9vbHMvc2NyaXB0cy9zeXNjYWxsLnRibDoyNzE6MjI1XHRjb21tb25cdHN3YXBvZmZcdFx0XHRcdHN5c19zd2Fwb2ZmXG50b29scy9zY3JpcHRzL3N5c2NhbGwudGJsLTI3Mi0yMjZcdGNvbW1vblx0bXByb3RlY3RcdFx0XHRzeXNfbXByb3RlY3RcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAyMzoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NTQxCgkJCQkJCQlvdXRwdXQ6IDE3CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTd2FwIERlYWN0aXZhdGlvbiBTeXN0ZW0gQ2FsbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYHN5c19zd2Fwb2ZmYC4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJIHdhbnQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueSBlc3NlbnRpYWwgY29uZmlndXJhdGlvbnMuIFRoaXMgaXMgd2hlcmUgSSYjMzk7ZCBub3JtYWxseSBzdGFydCBkaWdnaW5nIGludG8gdGhlIGtlcm5lbCBkb2N1bWVudGF0aW9uIG9yIHJlbGV2YW50IHNvdXJjZSBjb2RlLCBsb29raW5nIGZvciBhbnkgZWRnZSBjYXNlcy4gSXQmIzM5O3MgY3J1Y2lhbCBub3QgdG8gbWlzcyBhbnkgaW5pdGlhbCBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBuZWVkZWQgYmVmb3JlIGFjdHVhbGx5IGRlYWN0aXZhdGluZyBzd2FwLgoKSSBzZWUgdGhhdCBgQ09ORklHX1NXQVBgIHNlZW1zIHRvIGJlIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHJlbGF0ZWQgdG8gc3dhcCBzcGFjZS4gVGhpcyBpcyBleHBlY3RlZC4gTm93IEkgd2lsbCBuZWVkIHRvIGRlbHZlIGRlZXBlciBpbnRvIGl0cyBpbXBsaWNhdGlvbnMuIElzIHRoZXJlIGFueXRoaW5nIGVsc2UgdGhhdCBuZWVkcyB0byBiZSBjb25zaWRlcmVkIGJlZm9yZSBJIGNvbnRpbnVlPwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDIzOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTV0FQJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvbWlwcy9LY29uZmlnPTEyNjM9Y29uZmlnIE1JUFNfU1BSQU1cbi0tXG5hcmNoL21pcHMvS2NvbmZpZy0xMjY1LVxuYXJjaC9taXBzL0tjb25maWc6MTI2Njpjb25maWcgU1dBUF9JT19TUEFDRVxuYXJjaC9taXBzL0tjb25maWctMTI2Ny1cdGJvb2xcbi0tXG5hcmNoL3NoL0tjb25maWc9MTI5PWNvbmZpZyBJT19UUkFQUEVEXG4tLVxuYXJjaC9zaC9LY29uZmlnLTEzMS1cbmFyY2gvc2gvS2NvbmZpZzoxMzI6Y29uZmlnIFNXQVBfSU9fU1BBQ0VcbmFyY2gvc2gvS2NvbmZpZy0xMzMtXHRib29sXG4tLVxubW0vS2NvbmZpZz05PWNvbmZpZyBBUkNIX05PX1NXQVBcbi0tXG5tbS9LY29uZmlnLTExLVxubW0vS2NvbmZpZzoxMjptZW51Y29uZmlnIFNXQVBcbm1tL0tjb25maWctMTMtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIHBhZ2luZyBvZiBhbm9ueW1vdXMgbWVtb3J5IChzd2FwKVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDIzOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc5NDEKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipJbnZlc3RpZ2F0aW5nIENPTkZJR19TV0FQIGFuZCBGdW5jdGlvbiBVc2FnZSoqCgpBbHJpZ2h0LCBzbyBgQ09ORklHX1NXQVBgIGlzIHRoZSBrZXkgY29uZmlndXJhdGlvbiBvcHRpb24gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBoZXJlLCB0aGF0JiMzOTtzIGNsZWFyLiBOb3csIGEgY3J1Y2lhbCBzdGVwIHRvIGZ1bGx5IHVuZGVyc3RhbmRpbmcgaXRzIGltcGxpY2F0aW9ucyBpcyB0byBzZWUgaWYgYGZpbmRfbmV4dF90b191bnVzZWAgaXMgdXNlZCBvdXRzaWRlIG9mIHRoaXMgaW1tZWRpYXRlIGNvbnRleHQuIFdlIG5lZWQgdG8gYXNzZXNzIGlmIGl0cyBwcmVzZW5jZSBvciBhYnNlbmNlIHJlbGF0ZXMgc29sZWx5IHRvIHRoZSBzd2FwIGltcGxlbWVudGF0aW9uLCBvciBpZiBpdCBjb250cmlidXRlcyB0byBvdGhlciBhcmVhcyBvZiBzeXN0ZW0gb3BlcmF0aW9uLCB3aGljaCBtYXkgcHJvdmlkZSBtb3JlIGNvbnRleHQuIEtub3dpbmcgd2hlcmUgYGZpbmRfbmV4dF90b191bnVzZWAgaXMgdXNlZCB3aWxsIGdpdmUgYSBnb29kIGluZGljYXRvciBvZiB3aGF0IGNhbiBiZSBleHBlY3RlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAyMzoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmaW5kX25leHRfdG9fdW51c2UmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vc3dhcGZpbGUuYz0yNzMzPXN0YXRpYyBpbnQgdW51c2VfbW0oc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGludCB0eXBlKVxuLS1cbm1tL3N3YXBmaWxlLmMtMjc2MC0gKi9cbm1tL3N3YXBmaWxlLmM6Mjc2MTpzdGF0aWMgdW5zaWduZWQgaW50IGZpbmRfbmV4dF90b191bnVzZShzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2ksXG5tbS9zd2FwZmlsZS5jLTI3NjItXHRcdFx0XHRcdHVuc2lnbmVkIGludCBwcmV2KVxuLS1cbm1tL3N3YXBmaWxlLmM9MjgwMz1zdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcbi0tXG5tbS9zd2FwZmlsZS5jLTI4NTYtXHQgICAgICAgIXNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpIFx1MDAyNlx1MDAyNlxubW0vc3dhcGZpbGUuYzoyODU3Olx0ICAgICAgIChpID0gZmluZF9uZXh0X3RvX3VudXNlKHNpLCBpKSkgIT0gMCkge1xubW0vc3dhcGZpbGUuYy0yODU4LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDIzOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgzNTIKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiAzOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0OgoKKipNeSBQZXJzcGVjdGl2ZSBvbiBgZmluZF9uZXh0X3RvX3VudXNlYCBhbmQgaXRzIFBsYWNlIGluIHRoZSBTeXN0ZW0qKgoKQWxyaWdodCwgc28gbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkgdW5kZXJzdGFuZCwgdGhlIHN5c3RlbSYjMzk7cyBgc3lzX3N3YXBvZmZgIGZ1bmN0aW9uIGlzIHVsdGltYXRlbHkgcmVzcG9uc2libGUgZm9yIGluaXRpYXRpbmcgdGhlIHN3YXAtb2ZmIHByb2Nlc3MuIE5vdywgYHN5c19zd2Fwb2ZmYCBpdHNlbGYgY2FsbHMgdGhlIGZ1bmN0aW9uIGB0cnlfdG9fdW51c2VgLiBBbmQgKnRoYXQmIzM5O3MqIHRoZSBrZXkg4oCTIGB0cnlfdG9fdW51c2VgIGlzIHdoZXJlIHRoZSBoZWF2eSBsaWZ0aW5nIG9mIGF0dGVtcHRpbmcgdG8gZGVhY3RpdmF0ZSBzd2FwIHNwYWNlIGFjdHVhbGx5IGhhcHBlbnMuIFNwZWNpZmljYWxseSwgYHRyeV90b191bnVzZWAgZGVwZW5kcyBvbiBgZmluZF9uZXh0X3RvX3VudXNlYC4gRnJvbSB0aGUgZnVuY3Rpb24gbmFtZXMsIEkgd291bGQgZ3Vlc3MgdGhpcyBpcyBzb21lIGtpbmQgb2Ygc2VhcmNoIGZ1bmN0aW9uIHRoYXQgaGVscHMgd2l0aCBpZGVudGlmeWluZyBzd2FwIHNwYWNlIHN1aXRhYmxlIGZvciB1bi11c2UuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhhdCBzdWNoIGEgZnVuY3Rpb24gbWlnaHQgc2VhcmNoIGZvciBhICYjMzQ7bmV4dCYjMzQ7IHN3YXAgYXJlYSB0aGF0IGlzIHNhZmUgdG8gc3dhcCBvZmYuIEl0IG1pZ2h0IGJlIGxvb2tpbmcgZm9yIHN3YXAgYXJlYXMgd2l0aCBubyBhY3RpdmUgcGFnZXMsIG9yIG1pbmltYWwgYWN0aXZpdHksIHRoYXQgY2FuIGJlIHNhZmVseSBkZWFjdGl2YXRlZCB3aXRob3V0IGNhdXNpbmcgaXNzdWVzLiBTbywgYGZpbmRfbmV4dF90b191bnVzZWAgaXMgZXNzZW50aWFsbHkgdGhlIHdvcmtob3JzZSB0aGF0IGhlbHBzIG1ha2UgYHRyeV90b191bnVzZWAgc3VjY2Vzc2Z1bC4gSXQmIzM5O3MgYW4gaW1wb3J0YW50IHBhcnQgb2YgdGhlIGJpZ2dlciBwaWN0dXJlIG9mIHRoZSBzd2FwIHNwYWNlIG1hbmFnZW1lbnQgd2l0aGluIHRoZSBPUy4gVGhlIG92ZXJhbGwgcHJvY2VzcywgaG93ZXZlciwgaXMgYSBiaXQgb3BhcXVlIGFzIEkgd291bGQgZXhwZWN0IGBzeXNfc3dhcG9mZmAgd291bGQgaGF2ZSBtb3JlIGNoZWNrcyBhcm91bmQgaXQgdG8gcHJvdGVjdCBhZ2FpbnN0IGVycm9ycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMjM6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHJ5X3RvX3VudXNlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0NSRURJVFM9MTM3PUQ6IEF1dGhvciBvZiBsaWwgKExpbnV4IEludGVycnVwdCBMYXRlbmN5IGJlbmNobWFyaylcbkNSRURJVFM6MTM4OkQ6IEZpeGVkIHRoZSBzaG0gc3dhcCBkZWFsbG9jYXRpb24gYXQgc3dhcG9mZiB0aW1lICh0cnlfdG9fdW51c2UgbWVzc2FnZSlcbkNSRURJVFMtMTM5LUQ6IFZNIGhhY2tlclxuLS1cbmtlcm5lbC9leGl0LmM9NDkyPXZvaWQgbW1fdXBkYXRlX25leHRfb3duZXIoc3RydWN0IG1tX3N0cnVjdCAqbW0pXG4tLVxua2VybmVsL2V4aXQuYy01NDAtXHQgKiBXZSBmb3VuZCBubyBvd25lciB5ZXQgbW1fdXNlcnMgXHUwMDNlIDE6IHRoaXMgaW1wbGllcyB0aGF0IHdlIGFyZVxua2VybmVsL2V4aXQuYzo1NDE6XHQgKiBtb3N0IGxpa2VseSByYWNpbmcgd2l0aCBzd2Fwb2ZmICh0cnlfdG9fdW51c2UoKSkgb3IgL3Byb2Mgb3Jcbmtlcm5lbC9leGl0LmMtNTQyLVx0ICogcHRyYWNlIG9yIHBhZ2UgbWlncmF0aW9uIChnZXRfdGFza19tbSgpKS4gIE1hcmsgb3duZXIgYXMgTlVMTC5cbi0tXG5tbS9zd2FwZmlsZS5jPTEzMTQ9c3RhdGljIHZvaWQgc3dhcF9yYW5nZV9mcmVlKHN0cnVjdCBzd2FwX2luZm9fc3RydWN0ICpzaSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsXG4tLVxubW0vc3dhcGZpbGUuYy0xMzM2LVx0Lypcbm1tL3N3YXBmaWxlLmM6MTMzNzpcdCAqIE1ha2Ugc3VyZSB0aGF0IHRyeV90b191bnVzZSgpIG9ic2VydmVzIHNpLVx1MDAzZWludXNlX3BhZ2VzIHJlYWNoaW5nIDBcbm1tL3N3YXBmaWxlLmMtMTMzOC1cdCAqIG9ubHkgYWZ0ZXIgdGhlIGFib3ZlIGNsZWFudXBzIGFyZSBkb25lLlxuLS1cbm1tL3N3YXBmaWxlLmM9MjQ3MT1zdGF0aWMgaW50IHVudXNlX3B0ZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgcG1kX3QgKnBtZCxcbi0tXG5tbS9zd2FwZmlsZS5jLTI0ODItXHQgKiBJZiB0aGUgZm9saW8gaXMgcmVtb3ZlZCBmcm9tIHN3YXAgY2FjaGUgYnkgb3RoZXJzLCBjb250aW51ZSB0b1xubW0vc3dhcGZpbGUuYzoyNDgzOlx0ICogdW51c2Ugb3RoZXIgUFRFcy4gdHJ5X3RvX3VudXNlIG1heSB0cnkgYWdhaW4gaWYgd2UgbWlzc2VkIHRoaXMgb25lLlxubW0vc3dhcGZpbGUuYy0yNDg0LVx0ICovXG4tLVxubW0vc3dhcGZpbGUuYz0yNzYxPXN0YXRpYyB1bnNpZ25lZCBpbnQgZmluZF9uZXh0X3RvX3VudXNlKHN0cnVjdCBzd2FwX2luZm9fc3RydWN0ICpzaSxcbi0tXG5tbS9zd2FwZmlsZS5jLTI3ODMtXHRcdCAqIEEgc2xvdCBpcyB1bmNvdW50ZWQgb25seSBhZnRlciBpdHMgZm9saW8gbGVmdCB0aGUgc3dhcFxubW0vc3dhcGZpbGUuYzoyNzg0Olx0XHQgKiBjYWNoZSwgc28gdGhlcmUgaXMgbm90aGluZyBoZXJlIGZvciB0cnlfdG9fdW51c2UoKSB0byBhY3Qgb24uXG5tbS9zd2FwZmlsZS5jLTI3ODUtXHRcdCAqL1xuLS1cbm1tL3N3YXBmaWxlLmMtMjgwMi1cbm1tL3N3YXBmaWxlLmM6MjgwMzpzdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcbm1tL3N3YXBmaWxlLmMtMjgwNC17XG4tLVxubW0vc3dhcGZpbGUuYy0yODk3LVx0Lypcbm1tL3N3YXBmaWxlLmM6Mjg5ODpcdCAqIE1ha2Ugc3VyZSB0aGF0IGZ1cnRoZXIgY2xlYW51cHMgYWZ0ZXIgdHJ5X3RvX3VudXNlKCkgcmV0dXJucyBoYXBwZW5cbm1tL3N3YXBmaWxlLmMtMjg5OS1cdCAqIGFmdGVyIHN3YXBfcmFuZ2VfZnJlZSgpIHJlZHVjZXMgc2ktXHUwMDNlaW51c2VfcGFnZXMgdG8gMC5cbi0tXG5tbS9zd2FwZmlsZS5jLTI5MDUtLypcbm1tL3N3YXBmaWxlLmM6MjkwNjogKiBBZnRlciBhIHN1Y2Nlc3NmdWwgdHJ5X3RvX3VudXNlLCBpZiBubyBzd2FwIGlzIG5vdyBpbiB1c2UsIHdlIGtub3dcbm1tL3N3YXBmaWxlLmMtMjkwNy0gKiB3ZSBjYW4gZW1wdHkgdGhlIG1tbGlzdC4gIHN3YXBfbG9jayBtdXN0IGJlIGhlbGQgb24gZW50cnkgYW5kIGV4aXQuXG4tLVxubW0vc3dhcGZpbGUuYz0zMTQ5PVNZU0NBTExfREVGSU5FMShzd2Fwb2ZmLCBjb25zdCBjaGFyIF9fdXNlciAqLCBzcGVjaWFsZmlsZSlcbi0tXG5tbS9zd2FwZmlsZS5jLTMyMDktXHRzZXRfY3VycmVudF9vb21fb3JpZ2luKCk7XG5tbS9zd2FwZmlsZS5jOjMyMTA6XHRlcnIgPSB0cnlfdG9fdW51c2UocC1cdTAwM2V0eXBlKTtcbm1tL3N3YXBmaWxlLmMtMzIxMS1cdGNsZWFyX2N1cnJlbnRfb29tX29yaWdpbigpO1xuLS1cbm1tL3pzd2FwLmM9MTY3MT12b2lkIHpzd2FwX3N3YXBvZmYoaW50IHR5cGUpXG4tLVxubW0venN3YXAuYy0xNjc4LVxubW0venN3YXAuYzoxNjc5Olx0LyogdHJ5X3RvX3VudXNlKCkgaW52YWxpZGF0ZWQgYWxsIHRoZSBlbnRyaWVzIGFscmVhZHkgKi9cbm1tL3pzd2FwLmMtMTY4MC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIG5yX3pzd2FwX3RyZWVzW3R5cGVdOyBpJiM0MzsmIzQzOylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMjM6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTY4MgoJCQkJCQkJb3V0cHV0OiA4NwoJCQkJCQkJdGhvdWdodHM6IDEwODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTd2Fwb2ZmIE9wdGltaXphdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgY2FuIHNlZSBpdCYjMzk7cyB0b3VjaGluZyBgZmluZF9uZXh0X3RvX3VudXNlYCwgd2hpY2ggaXMgY2FsbGVkIGJ5IGB0cnlfdG9fdW51c2VgLCB3aGljaCBpbiB0dXJuIGlzIGNhbGxlZCBieSBgc3lzX3N3YXBvZmZgLiBUaGlzIGlzIGFsbCBwcmV0dHkgZGVlcCBpbiB0aGUgc3dhcCBzdWJzeXN0ZW0uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY29zbWV0aWMgb25lLiBUaGUgcGF0Y2gmIzM5O3MgY29yZSBpZGVhIGlzIHRvIG9wdGltaXplIHRoZSBzZWFyY2ggZm9yIHRoZSBuZXh0IHVzZWQgc3dhcCBlbnRyeSBieSBza2lwcGluZyBlbnRpcmUgZW1wdHkgY2x1c3RlcnMuIFRoaXMgbG9va3MgbGlrZSBhIGRlZmluaXRlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi4KClNpbmNlIHRoaXMgYWZmZWN0cyBjb3JlIGtlcm5lbCBsb2dpYyBhbmQgaXQmIzM5O3MgcmVhY2hhYmxlIHRocm91Z2ggdGhlIGBzd2Fwb2ZmYCBzeXNjYWxsLCBpdCB3YXJyYW50cyBmdXp6aW5nLiBgU1dBUGAgc2VlbXMgbGlrZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gZW5hYmxlLCBhbmQgZ2l2ZW4gdGhhdCBpdCBkb2VzIGVuYWJsZSBzd2FwIHN1cHBvcnQsIEkgdGhpbmsgd2UmIzM5O3JlIGdvb2QgdGhlcmUuCgpOb3csIGxldCYjMzk7cyBuYWlsIGRvd24gdGhlIGZvY3VzIHN5bWJvbHMuIEkgd2FudCB0byBiZSBwcmVjaXNlIGhlcmUuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBmb2N1c2luZyBvbiBhbiBhY3R1YWwgZW50cnlwb2ludC4gSXMgYHN5c19zd2Fwb2ZmYCBhY3R1YWxseSB0aGUgcmlnaHQgc3ltYm9sPyBZZXMsIHRoZSBkZWZpbml0aW9uIHNob3dzIGl0JiMzOTtzIHRoZSByaWdodCBmdW5jdGlvbi4gQW5kLCB3aGlsZSBgdHJ5X3RvX3VudXNlYCBpcyBzdGF0aWMsIGl0JiMzOTtzIHByZXR0eSBsYXJnZSBhbmQgbm90IGxpa2VseSB0byBiZSBpbmxpbmVkLCBidXQgSSB3YW50IHRvIG1ha2Ugc3VyZSBJIGZvY3VzIG9uIHRoZSBlbnRyeXBvaW50LCB3aGljaCBpcyBgc3lzX3N3YXBvZmZgLiBJJiMzOTttIGNvbmZpZGVudCB0aGF0IGBzeXNfc3dhcG9mZmAgaXMgdGhlIHJpZ2h0IGVudHJ5IHBvaW50IHRvIHRhcmdldC4KCkkmIzM5O3ZlIHJlLWV4YW1pbmVkIHRoZSBwYXRjaCBjb2RlLiBJdCYjMzk7cyBza2lwcGluZyBhbiBlbnRpcmUgZW1wdHkgY2x1c3Rlciwgd2hpY2ggaXMgYSBtYWpvciBwZXJmb3JtYW5jZSBlbmhhbmNlbWVudCwgcmF0aGVyIHRoYW4ganVzdCBpbmRpdmlkdWFsIGVudHJpZXMuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLgoKVGhlIGZpbmFsIGNhbGw6IGBGb2N1c1N5bWJvbHM6IHN5c19zd2Fwb2ZmYC4gV2UgbmVlZCB0byBoaXQgdGhpcyB3aXRoIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDIzOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtTV0FQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3lzX3N3YXBvZmYmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb3B0aW1pemVzIHRoZSBgZmluZF9uZXh0X3RvX3VudXNlYCBmdW5jdGlvbiBpbiB0aGUgc3dhcCBzdWJzeXN0ZW0gYnkgc2tpcHBpbmcgZW1wdHkgc3dhcCBjbHVzdGVycyBlbnRpcmVseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUga2VybmVsIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSB0aGUgYHN3YXBvZmZgIHN5c2NhbGwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NXQVAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzeXNfc3dhcG9mZiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvcHRpbWl6ZXMgdGhlIGBmaW5kX25leHRfdG9fdW51c2VgIGZ1bmN0aW9uIGluIHRoZSBzd2FwIHN1YnN5c3RlbSBieSBza2lwcGluZyBlbXB0eSBzd2FwIGNsdXN0ZXJzIGVudGlyZWx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgdmlhIHRoZSBgc3dhcG9mZmAgc3lzY2FsbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjAxLjM2NTA3MzA2M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2MDMxMzk4MTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNXQVBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzeXNfc3dhcG9mZlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9wdGltaXplcyB0aGUgYGZpbmRfbmV4dF90b191bnVzZWAgZnVuY3Rpb24gaW4gdGhlIHN3YXAgc3Vic3lzdGVtIGJ5IHNraXBwaW5nIGVtcHR5IHN3YXAgY2x1c3RlcnMgZW50aXJlbHkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGtlcm5lbCBsb2dpYyB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgdGhlIGBzd2Fwb2ZmYCBzeXNjYWxsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQyMzoxMTowMS4zNjUwODA1NTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxOTg4NTYwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGE3Yzc0ODZkM2I4YjdlNDRjYmI0NGU3OTNjMmMwODQzYTE5MDZjMTVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjkgMjM6MTE6MDAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zd2FwLmggYi9pbmNsdWRlL2xpbnV4L3N3YXAuaFxcbmluZGV4IDJjYjFkMjkzMDdjNTQuLmUxMmM3Mzg5MWI0OGUgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9zd2FwLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L3N3YXAuaFxcbkBAIC0yNDYsNyArMjQ2LDcgQEAgc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3Qge1xcbiBcXHRzdHJ1Y3QgcGxpc3Rfbm9kZSBsaXN0O1xcdFxcdC8qIGVudHJ5IGluIHN3YXBfYWN0aXZlX2hlYWQgKi9cXG4gXFx0c2lnbmVkIGNoYXJcXHR0eXBlO1xcdFxcdC8qIHN0cmFuZ2UgbmFtZSBmb3IgYW4gaW5kZXggKi9cXG4gXFx0dW5zaWduZWQgaW50XFx0bWF4O1xcdFxcdC8qIHNpemUgb2YgdGhpcyBzd2FwIGRldmljZSAqL1xcbi1cXHRzdHJ1Y3Qgc3dhcF9jbHVzdGVyX2luZm8gKmNsdXN0ZXJfaW5mbzsgLyogY2x1c3RlciBpbmZvLiBPbmx5IGZvciBTU0QgKi9cXG4rXFx0c3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjbHVzdGVyX2luZm87IC8qIG9uZSBwZXIgY2x1c3Rlciwgb24gZXZlcnkgZGV2aWNlICovXFxuIFxcdHN0cnVjdCBsaXN0X2hlYWQgZnJlZV9jbHVzdGVyczsgLyogZnJlZSBjbHVzdGVycyBsaXN0ICovXFxuIFxcdHN0cnVjdCBsaXN0X2hlYWQgZnVsbF9jbHVzdGVyczsgLyogZnVsbCBjbHVzdGVycyBsaXN0ICovXFxuIFxcdHN0cnVjdCBsaXN0X2hlYWQgbm9uZnVsbF9jbHVzdGVyc1tTV0FQX05SX09SREVSU107XFxuZGlmZiAtLWdpdCBhL21tL3N3YXBmaWxlLmMgYi9tbS9zd2FwZmlsZS5jXFxuaW5kZXggNWQxNTkxM2RjZjg2My4uMjMwYWJiMjc2Y2ViNCAxMDA2NDRcXG4tLS0gYS9tbS9zd2FwZmlsZS5jXFxuKysrIGIvbW0vc3dhcGZpbGUuY1xcbkBAIC0zNzAsOCArMzcwLDYgQEAgc3RhdGljIHZvaWQgZGlzY2FyZF9zd2FwX2NsdXN0ZXIoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxcbiBcXHR9XFxuIH1cXG4gXFxuLSNkZWZpbmUgTEFURU5DWV9MSU1JVFxcdFxcdDI1Nlxcbi1cXG4gc3RhdGljIGlubGluZSBib29sIGNsdXN0ZXJfaXNfZW1wdHkoc3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICppbmZvKVxcbiB7XFxuIFxcdHJldHVybiBpbmZvLVxcdTAwM2Vjb3VudCA9PSAwO1xcbkBAIC0yNzYzLDcgKzI3NjEsOSBAQCBzdGF0aWMgaW50IHVudXNlX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBpbnQgdHlwZSlcXG4gc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxcbiBcXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgcHJldilcXG4ge1xcbi1cXHR1bnNpZ25lZCBpbnQgaTtcXG4rXFx0c3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjaTtcXG4rXFx0dW5zaWduZWQgbG9uZyBpLCBlbmQ7XFxuK1xcdHVuc2lnbmVkIGludCBjaV9vZmY7XFxuIFxcdHVuc2lnbmVkIGxvbmcgc3dwX3RiO1xcbiBcXG4gXFx0LypcXG5AQCAtMjc3MiwxOSArMjc3MiwzMiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGZpbmRfbmV4dF90b191bnVzZShzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2ksXFxuIFxcdCAqIGhpdHMgYXJlIG9rYXksIGFuZCBzeXNfc3dhcG9mZigpIGhhcyBhbHJlYWR5IHByZXZlbnRlZCBuZXdcXG4gXFx0ICogYWxsb2NhdGlvbnMgZnJvbSB0aGlzIGFyZWEgKHdoaWxlIGhvbGRpbmcgc3dhcF9sb2NrKS5cXG4gXFx0ICovXFxuLVxcdGZvciAoaSA9IHByZXYgKyAxOyBpIFxcdTAwM2Mgc2ktXFx1MDAzZW1heDsgaSsrKSB7XFxuLVxcdFxcdHN3cF90YiA9IHN3YXBfdGFibGVfZ2V0KF9fc3dhcF9vZmZzZXRfdG9fY2x1c3RlcihzaSwgaSksXFxuLVxcdFxcdFxcdFxcdFxcdGkgJSBTV0FQRklMRV9DTFVTVEVSKTtcXG4tXFx0XFx0aWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpIFxcdTAwMjZcXHUwMDI2ICFzd3BfdGJfaXNfYmFkKHN3cF90YikpXFxuLVxcdFxcdFxcdGJyZWFrO1xcbi1cXHRcXHRpZiAoKGkgJSBMQVRFTkNZX0xJTUlUKSA9PSAwKVxcbitcXHRpID0gcHJldiArIDE7XFxuK1xcdHdoaWxlIChpIFxcdTAwM2Mgc2ktXFx1MDAzZW1heCkge1xcbitcXHRcXHRjaSA9IF9fc3dhcF9vZmZzZXRfdG9fY2x1c3RlcihzaSwgaSk7XFxuK1xcdFxcdGNpX29mZiA9IGkgJSBTV0FQRklMRV9DTFVTVEVSO1xcbitcXHRcXHRlbmQgPSBtaW4oc2ktXFx1MDAzZW1heCwgaSAtIGNpX29mZiArIFNXQVBGSUxFX0NMVVNURVIpO1xcbitcXG4rXFx0XFx0LypcXG4rXFx0XFx0ICogQW4gZW1wdHkgY2x1c3RlciBoYXMgbm8gc2xvdCBpbiB1c2UsIHNvIHNraXAgaXQgd2hvbGUuXFxuK1xcdFxcdCAqIEEgc2xvdCBpcyB1bmNvdW50ZWQgb25seSBhZnRlciBpdHMgZm9saW8gbGVmdCB0aGUgc3dhcFxcbitcXHRcXHQgKiBjYWNoZSwgc28gdGhlcmUgaXMgbm90aGluZyBoZXJlIGZvciB0cnlfdG9fdW51c2UoKSB0byBhY3Qgb24uXFxuK1xcdFxcdCAqL1xcbitcXHRcXHRpZiAoY2x1c3Rlcl9pc19lbXB0eShjaSkpIHtcXG4rXFx0XFx0XFx0aSA9IGVuZDtcXG4gXFx0XFx0XFx0Y29uZF9yZXNjaGVkKCk7XFxuLVxcdH1cXG4rXFx0XFx0XFx0Y29udGludWU7XFxuK1xcdFxcdH1cXG4gXFxuLVxcdGlmIChpID09IHNpLVxcdTAwM2VtYXgpXFxuLVxcdFxcdGkgPSAwO1xcbitcXHRcXHRmb3IgKDsgaSBcXHUwMDNjIGVuZDsgY2lfb2ZmKyssIGkrKykge1xcbitcXHRcXHRcXHRzd3BfdGIgPSBzd2FwX3RhYmxlX2dldChjaSwgY2lfb2ZmKTtcXG4rXFx0XFx0XFx0aWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpIFxcdTAwMjZcXHUwMDI2ICFzd3BfdGJfaXNfYmFkKHN3cF90YikpXFxuK1xcdFxcdFxcdFxcdHJldHVybiBpO1xcbitcXHRcXHR9XFxuK1xcdFxcdGNvbmRfcmVzY2hlZCgpO1xcbitcXHR9XFxuIFxcbi1cXHRyZXR1cm4gaTtcXG4rXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgdHJ5X3RvX3VudXNlKHVuc2lnbmVkIGludCB0eXBlKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQyMzoxMTowMS43ODU4MDc2MThaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozNTYxMDY1NTY1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTV0FQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3lzX3N3YXBvZmZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvcHRpbWl6ZXMgdGhlIGBmaW5kX25leHRfdG9fdW51c2VgIGZ1bmN0aW9uIGluIHRoZSBzd2FwIHN1YnN5c3RlbSBieSBza2lwcGluZyBlbXB0eSBzd2FwIGNsdXN0ZXJzIGVudGlyZWx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgbG9naWMgdGhhdCBpcyByZWFjaGFibGUgdmlhIHRoZSBgc3dhcG9mZmAgc3lzY2FsbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTdjNzQ4NmQzYjhiN2U0NGNiYjQ0ZTc5M2MyYzA4NDNhMTkwNmMxNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDI5IDIzOjExOjAwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zd2FwLmggYi9pbmNsdWRlL2xpbnV4L3N3YXAuaFxuaW5kZXggMmNiMWQyOTMwN2M1NC4uZTEyYzczODkxYjQ4ZSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvc3dhcC5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L3N3YXAuaFxuQEAgLTI0Niw3ICsyNDYsNyBAQCBzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCB7XG4gXHRzdHJ1Y3QgcGxpc3Rfbm9kZSBsaXN0O1x0XHQvKiBlbnRyeSBpbiBzd2FwX2FjdGl2ZV9oZWFkICovXG4gXHRzaWduZWQgY2hhclx0dHlwZTtcdFx0Lyogc3RyYW5nZSBuYW1lIGZvciBhbiBpbmRleCAqL1xuIFx0dW5zaWduZWQgaW50XHRtYXg7XHRcdC8qIHNpemUgb2YgdGhpcyBzd2FwIGRldmljZSAqL1xuLVx0c3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICpjbHVzdGVyX2luZm87IC8qIGNsdXN0ZXIgaW5mby4gT25seSBmb3IgU1NEICovXG4rXHRzdHJ1Y3Qgc3dhcF9jbHVzdGVyX2luZm8gKmNsdXN0ZXJfaW5mbzsgLyogb25lIHBlciBjbHVzdGVyLCBvbiBldmVyeSBkZXZpY2UgKi9cbiBcdHN0cnVjdCBsaXN0X2hlYWQgZnJlZV9jbHVzdGVyczsgLyogZnJlZSBjbHVzdGVycyBsaXN0ICovXG4gXHRzdHJ1Y3QgbGlzdF9oZWFkIGZ1bGxfY2x1c3RlcnM7IC8qIGZ1bGwgY2x1c3RlcnMgbGlzdCAqL1xuIFx0c3RydWN0IGxpc3RfaGVhZCBub25mdWxsX2NsdXN0ZXJzW1NXQVBfTlJfT1JERVJTXTtcbmRpZmYgLS1naXQgYS9tbS9zd2FwZmlsZS5jIGIvbW0vc3dhcGZpbGUuY1xuaW5kZXggNWQxNTkxM2RjZjg2My4uMjMwYWJiMjc2Y2ViNCAxMDA2NDRcbi0tLSBhL21tL3N3YXBmaWxlLmNcbisrKyBiL21tL3N3YXBmaWxlLmNcbkBAIC0zNzAsOCArMzcwLDYgQEAgc3RhdGljIHZvaWQgZGlzY2FyZF9zd2FwX2NsdXN0ZXIoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxuIFx0fVxuIH1cbiBcbi0jZGVmaW5lIExBVEVOQ1lfTElNSVRcdFx0MjU2XG4tXG4gc3RhdGljIGlubGluZSBib29sIGNsdXN0ZXJfaXNfZW1wdHkoc3RydWN0IHN3YXBfY2x1c3Rlcl9pbmZvICppbmZvKVxuIHtcbiBcdHJldHVybiBpbmZvLVx1MDAzZWNvdW50ID09IDA7XG5AQCAtMjc2Myw3ICsyNzYxLDkgQEAgc3RhdGljIGludCB1bnVzZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgaW50IHR5cGUpXG4gc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxuIFx0XHRcdFx0XHR1bnNpZ25lZCBpbnQgcHJldilcbiB7XG4tXHR1bnNpZ25lZCBpbnQgaTtcbitcdHN0cnVjdCBzd2FwX2NsdXN0ZXJfaW5mbyAqY2k7XG4rXHR1bnNpZ25lZCBsb25nIGksIGVuZDtcbitcdHVuc2lnbmVkIGludCBjaV9vZmY7XG4gXHR1bnNpZ25lZCBsb25nIHN3cF90YjtcbiBcbiBcdC8qXG5AQCAtMjc3MiwxOSArMjc3MiwzMiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGZpbmRfbmV4dF90b191bnVzZShzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2ksXG4gXHQgKiBoaXRzIGFyZSBva2F5LCBhbmQgc3lzX3N3YXBvZmYoKSBoYXMgYWxyZWFkeSBwcmV2ZW50ZWQgbmV3XG4gXHQgKiBhbGxvY2F0aW9ucyBmcm9tIHRoaXMgYXJlYSAod2hpbGUgaG9sZGluZyBzd2FwX2xvY2spLlxuIFx0ICovXG4tXHRmb3IgKGkgPSBwcmV2ICsgMTsgaSBcdTAwM2Mgc2ktXHUwMDNlbWF4OyBpKyspIHtcbi1cdFx0c3dwX3RiID0gc3dhcF90YWJsZV9nZXQoX19zd2FwX29mZnNldF90b19jbHVzdGVyKHNpLCBpKSxcbi1cdFx0XHRcdFx0aSAlIFNXQVBGSUxFX0NMVVNURVIpO1xuLVx0XHRpZiAoIXN3cF90Yl9pc19udWxsKHN3cF90YikgXHUwMDI2XHUwMDI2ICFzd3BfdGJfaXNfYmFkKHN3cF90YikpXG4tXHRcdFx0YnJlYWs7XG4tXHRcdGlmICgoaSAlIExBVEVOQ1lfTElNSVQpID09IDApXG4rXHRpID0gcHJldiArIDE7XG4rXHR3aGlsZSAoaSBcdTAwM2Mgc2ktXHUwMDNlbWF4KSB7XG4rXHRcdGNpID0gX19zd2FwX29mZnNldF90b19jbHVzdGVyKHNpLCBpKTtcbitcdFx0Y2lfb2ZmID0gaSAlIFNXQVBGSUxFX0NMVVNURVI7XG4rXHRcdGVuZCA9IG1pbihzaS1cdTAwM2VtYXgsIGkgLSBjaV9vZmYgKyBTV0FQRklMRV9DTFVTVEVSKTtcbitcbitcdFx0LypcbitcdFx0ICogQW4gZW1wdHkgY2x1c3RlciBoYXMgbm8gc2xvdCBpbiB1c2UsIHNvIHNraXAgaXQgd2hvbGUuXG4rXHRcdCAqIEEgc2xvdCBpcyB1bmNvdW50ZWQgb25seSBhZnRlciBpdHMgZm9saW8gbGVmdCB0aGUgc3dhcFxuK1x0XHQgKiBjYWNoZSwgc28gdGhlcmUgaXMgbm90aGluZyBoZXJlIGZvciB0cnlfdG9fdW51c2UoKSB0byBhY3Qgb24uXG4rXHRcdCAqL1xuK1x0XHRpZiAoY2x1c3Rlcl9pc19lbXB0eShjaSkpIHtcbitcdFx0XHRpID0gZW5kO1xuIFx0XHRcdGNvbmRfcmVzY2hlZCgpO1xuLVx0fVxuK1x0XHRcdGNvbnRpbnVlO1xuK1x0XHR9XG4gXG4tXHRpZiAoaSA9PSBzaS1cdTAwM2VtYXgpXG4tXHRcdGkgPSAwO1xuK1x0XHRmb3IgKDsgaSBcdTAwM2MgZW5kOyBjaV9vZmYrKywgaSsrKSB7XG4rXHRcdFx0c3dwX3RiID0gc3dhcF90YWJsZV9nZXQoY2ksIGNpX29mZik7XG4rXHRcdFx0aWYgKCFzd3BfdGJfaXNfbnVsbChzd3BfdGIpIFx1MDAyNlx1MDAyNiAhc3dwX3RiX2lzX2JhZChzd3BfdGIpKVxuK1x0XHRcdFx0cmV0dXJuIGk7XG4rXHRcdH1cbitcdFx0Y29uZF9yZXNjaGVkKCk7XG4rXHR9XG4gXG4tXHRyZXR1cm4gaTtcbitcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjAxLjc4NTgwOTE3OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2NzY1NTcyNTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgU3dhcGZpbGUgT3B0aW1pemF0aW9uIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgbW0vc3dhcGZpbGUuY2AgYW5kIGBpbmNsdWRlL2xpbnV4L3N3YXAuaGAuIEl0J3MgZm9jdXNlZCBvbiBvcHRpbWl6aW5nIHRoZSBgZmluZF9uZXh0X3RvX3VudXNlYCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHNraXBwaW5nIG92ZXIgZW1wdHkgY2x1c3RlcnMgdXNpbmcgYGNsdXN0ZXJfaXNfZW1wdHkoY2kpYC4gVGhhdCBzb3VuZHMgc3RyYWlnaHRmb3J3YXJkIGFuZCBwb3RlbnRpYWxseSBiZW5lZmljaWFsLiBUaGUgcGF0Y2ggYWxzbyByZW1vdmVzIHRoYXQgYCNkZWZpbmUgTEFURU5DWV9MSU1JVCAyNTZgIGZvciBgY29uZF9yZXNjaGVkKClgLCBpbnRlcmVzdGluZy5cblxuVGhlIGtleSBxdWVzdGlvbiBpcyBhbHdheXMsIFwiSXMgdGhpcyBmdXp6YWJsZT9cIiBXZWxsLCBgZmluZF9uZXh0X3RvX3VudXNlYCBpcyBjYWxsZWQgYnkgYHRyeV90b191bnVzZWAsIHdoaWNoIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBzeXNfc3dhcG9mZmAuIEJpbmdvISBgc3lzX3N3YXBvZmZgIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIHRocm91Z2ggdGhlIHN5c2NhbGwgaW50ZXJmYWNlLCBzbyB3ZSBjYW4gYWJzb2x1dGVseSB0YXJnZXQgaXQuIFRoZXNlIHNlZW0gdG8gYmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgc2hvdWxkIG9wdGltaXplIHRoZSBzd2Fwb2ZmIHByb2Nlc3MsIHdoaWNoIGlzIHByb21pc2luZyBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS5cblxuTGV0J3MgZGl2ZSBkZWVwZXIgaW50byBgdHJ5X3RvX3VudXNlYCBhbmQgYGZpbmRfbmV4dF90b191bnVzZWAuIEhvbGQgb24sIGBmaW5kX25leHRfdG9fdW51c2VgIGlzIHN0YXRpYywgbWVhbmluZyBpdHMgZGlyZWN0IGZ1enppbmcgaXMgbm90IHBvc3NpYmxlOyB0aGUgYmVzdCBhcHByb2FjaCB3b3VsZCBiZSBmdXp6aW5nIHRoZSBmdW5jdGlvbiBpdCBiZWxvbmdzIHRvLCBvciB0aG9zZSB0aGF0IGNhbGwgaXQuIEluIHRoaXMgY2FzZSwgYHRyeV90b191bnVzZWAgb3IgdGhlIHRvcCBsZXZlbCBgc3lzX3N3YXBvZmZgIGFyZSB0aGUgYXR0YWNrIHZlY3RvcnMsIHRoZSBsYXR0ZXIgYmVpbmcgYSBzeXNjYWxsIHdoaWNoIGlzIGV2ZW4gZWFzaWVyIHRvIHRhcmdldC4gRXhjZWxsZW50ISBOb3csIGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IGBzeXNfc3dhcG9mZmAgaXMgYWN0dWFsbHkgYSBzeXNjYWxsLi4uIFllcCwgdGhlcmUgaXQgaXMuIExldCdzIHN0YXJ0IGJ5IHNlYXJjaGluZyBmb3IgYHN5c19zd2Fwb2ZmYC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg5MywiT3V0cHV0VG9rZW5zIjoxOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2OCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjA3LjQ2MjM2OTc4NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODcwMTM0OTczLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5c19zd2Fwb2ZmXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbG9ja2luZy5yc3Q9MzU5PWRpcmVjdGx5IHRvIHRoZSBibG9jayBkZXZpY2UgYGBzaXMtXFx1MDAzZWJkZXZgYC5cXG5Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2xvY2tpbmcucnN0LTM2MC1cXG5Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2xvY2tpbmcucnN0OjM2MTotXFx1MDAzZXN3YXBfZGVhY3RpdmF0ZSgpIHdpbGwgYmUgY2FsbGVkIGluIHRoZSBzeXNfc3dhcG9mZigpXFxuRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9sb2NraW5nLnJzdC0zNjItcGF0aCBhZnRlciAtXFx1MDAzZXN3YXBfYWN0aXZhdGUoKSByZXR1cm5lZCBzdWNjZXNzLlxcbi0tXFxuYXJjaC9hbHBoYS9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjM2LTMwM1xcdGNvbW1vblxcdG9sZF9hZGp0aW1leFxcdFxcdFxcdHN5c19vbGRfYWRqdGltZXhcXG5hcmNoL2FscGhhL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoyMzc6MzA0XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9hbHBoYS9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjM4LTMwNVxcdGNvbW1vblxcdGdldGRlbnRzXFx0XFx0XFx0c3lzX2dldGRlbnRzXFxuLS1cXG5hcmNoL2FybS90b29scy9zeXNjYWxsLnRibC0xMzEtMTE0XFx0Y29tbW9uXFx0d2FpdDRcXHRcXHRcXHRzeXNfd2FpdDRcXG5hcmNoL2FybS90b29scy9zeXNjYWxsLnRibDoxMzI6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9hcm0vdG9vbHMvc3lzY2FsbC50YmwtMTMzLTExNlxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRzeXNfc3lzaW5mb1xcbi0tXFxuYXJjaC9hcm02NC90b29scy9zeXNjYWxsXzMyLnRibC0xMjgtMTE0XFx0Y29tbW9uXFx0d2FpdDRcXHRcXHRcXHRzeXNfd2FpdDRcXHRcXHRjb21wYXRfc3lzX3dhaXQ0XFxuYXJjaC9hcm02NC90b29scy9zeXNjYWxsXzMyLnRibDoxMjk6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9hcm02NC90b29scy9zeXNjYWxsXzMyLnRibC0xMzAtMTE2XFx0Y29tbW9uXFx0c3lzaW5mb1xcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG5hcmNoL202OGsva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNC0xMTRcXHRjb21tb25cXHR3YWl0NFxcdFxcdFxcdFxcdHN5c193YWl0NFxcbmFyY2gvbTY4ay9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTI1OjExNVxcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbmFyY2gvbTY4ay9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI2LTExNlxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRcXHRzeXNfc3lzaW5mb1xcbi0tXFxuYXJjaC9taWNyb2JsYXplL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibC0xMjQtMTE0XFx0Y29tbW9uXFx0d2FpdDRcXHRcXHRcXHRcXHRzeXNfd2FpdDRcXG5hcmNoL21pY3JvYmxhemUva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsOjEyNToxMTVcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL21pY3JvYmxhemUva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0XFx0c3lzX3N5c2luZm9cXG4tLVxcbmFyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbF9uMzIudGJsLTE3Mi0xNjJcXHRuMzJcXHRzd2Fwb25cXHRcXHRcXHRcXHRzeXNfc3dhcG9uXFxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX24zMi50Ymw6MTczOjE2M1xcdG4zMlxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbmFyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbF9uMzIudGJsLTE3NC0xNjRcXHRuMzJcXHRyZWJvb3RcXHRcXHRcXHRcXHRzeXNfcmVib290XFxuLS1cXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzItMTYyXFx0bjY0XFx0c3dhcG9uXFx0XFx0XFx0XFx0c3lzX3N3YXBvblxcbmFyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbF9uNjQudGJsOjE3MzoxNjNcXHRuNjRcXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzQtMTY0XFx0bjY0XFx0cmVib290XFx0XFx0XFx0XFx0c3lzX3JlYm9vdFxcbi0tXFxuYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsX28zMi50YmwtMTI4LTExNFxcdG8zMlxcdHdhaXQ0XFx0XFx0XFx0XFx0c3lzX3dhaXQ0XFx0XFx0XFx0Y29tcGF0X3N5c193YWl0NFxcbmFyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbF9vMzIudGJsOjEyOToxMTVcXHRvMzJcXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL21pcHMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGxfbzMyLnRibC0xMzAtMTE2XFx0bzMyXFx0c3lzaW5mb1xcdFxcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG5hcmNoL3BhcmlzYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI5LTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0c3lzX3dhaXQ0XFx0XFx0XFx0Y29tcGF0X3N5c193YWl0NFxcbmFyY2gvcGFyaXNjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoxMzA6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9wYXJpc2Mva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEzMS0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0c3lzX3N5c2luZm9cXHRcXHRcXHRjb21wYXRfc3lzX3N5c2luZm9cXG4tLVxcbmFyY2gvcG93ZXJwYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTUzLTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0XFx0c3lzX3dhaXQ0XFx0XFx0XFx0Y29tcGF0X3N5c193YWl0NFxcbmFyY2gvcG93ZXJwYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTU0OjExNVxcdG5vc3B1XFx0c3dhcG9mZlxcdFxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9wb3dlcnBjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibC0xNTUtMTE2XFx0Y29tbW9uXFx0c3lzaW5mb1xcdFxcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG5hcmNoL3MzOTAva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTg5LTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0XFx0c3lzX3dhaXQ0XFxuYXJjaC9zMzkwL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDo5MDoxMTVcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL3MzOTAva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTkxLTExNlxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRcXHRzeXNfc3lzaW5mb1xcbi0tXFxuYXJjaC9zaC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTI0LTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0XFx0c3lzX3dhaXQ0XFxuYXJjaC9zaC9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTI1OjExNVxcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbmFyY2gvc2gva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0XFx0c3lzX3N5c2luZm9cXG4tLVxcbmFyY2gvc3BhcmMva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTI1Ni0yMTJcXHRjb21tb25cXHR3YWl0cGlkXFx0XFx0XFx0c3lzX3dhaXRwaWRcXG5hcmNoL3NwYXJjL2tlcm5lbC9zeXNjYWxscy9zeXNjYWxsLnRibDoyNTc6MjEzXFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxuYXJjaC9zcGFyYy9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjU4LTIxNFxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRzeXNfc3lzaW5mb1xcdFxcdFxcdGNvbXBhdF9zeXNfc3lzaW5mb1xcbi0tXFxuYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF8zMi50YmwtMTI5LTExNFxcdGkzODZcXHR3YWl0NFxcdFxcdFxcdHN5c193YWl0NFxcdFxcdFxcdGNvbXBhdF9zeXNfd2FpdDRcXG5hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibDoxMzA6MTE1XFx0aTM4NlxcdHN3YXBvZmZcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbmFyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsLTEzMS0xMTZcXHRpMzg2XFx0c3lzaW5mb1xcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG5hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzY0LnRibC0xNzktMTY3XFx0Y29tbW9uXFx0c3dhcG9uXFx0XFx0XFx0c3lzX3N3YXBvblxcbmFyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfNjQudGJsOjE4MDoxNjhcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzY0LnRibC0xODEtMTY5XFx0Y29tbW9uXFx0cmVib290XFx0XFx0XFx0c3lzX3JlYm9vdFxcbi0tXFxuYXJjaC94dGVuc2Eva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsLTE5My0xNzZcXHRjb21tb25cXHR1bW91bnRcXHRcXHRcXHRcXHRzeXNfb2xkdW1vdW50XFxuYXJjaC94dGVuc2Eva2VybmVsL3N5c2NhbGxzL3N5c2NhbGwudGJsOjE5NDoxNzdcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5hcmNoL3h0ZW5zYS9rZXJuZWwvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTk1LTE3OFxcdGNvbW1vblxcdHN5bmNcXHRcXHRcXHRcXHRzeXNfc3luY1xcbi0tXFxuaW5jbHVkZS9saW51eC9zeXNjYWxscy5oPTgzMz1hc21saW5rYWdlIGxvbmcgc3lzX3N3YXBvbihjb25zdCBjaGFyIF9fdXNlciAqc3BlY2lhbGZpbGUsIGludCBzd2FwX2ZsYWdzKTtcXG5pbmNsdWRlL2xpbnV4L3N5c2NhbGxzLmg6ODM0OmFzbWxpbmthZ2UgbG9uZyBzeXNfc3dhcG9mZihjb25zdCBjaGFyIF9fdXNlciAqc3BlY2lhbGZpbGUpO1xcbmluY2x1ZGUvbGludXgvc3lzY2FsbHMuaC04MzUtYXNtbGlua2FnZSBsb25nIHN5c19tcHJvdGVjdCh1bnNpZ25lZCBsb25nIHN0YXJ0LCBzaXplX3QgbGVuLFxcbi0tXFxuaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oPTU3OD1fX1NZU0NBTEwoX19OUl9zd2Fwb24sIHN5c19zd2Fwb24pXFxuaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oLTU3OS0jZGVmaW5lIF9fTlJfc3dhcG9mZiAyMjVcXG5pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmg6NTgwOl9fU1lTQ0FMTChfX05SX3N3YXBvZmYsIHN5c19zd2Fwb2ZmKVxcbmluY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy91bmlzdGQuaC01ODEtI2RlZmluZSBfX05SX21wcm90ZWN0IDIyNlxcbi0tXFxubW0vc3dhcGZpbGUuYz0yNzYxPXN0YXRpYyB1bnNpZ25lZCBpbnQgZmluZF9uZXh0X3RvX3VudXNlKHN0cnVjdCBzd2FwX2luZm9fc3RydWN0ICpzaSxcXG4tLVxcbm1tL3N3YXBmaWxlLmMtMjc3MS1cXHQgKiBmb3Igd2hldGhlciBhbiBlbnRyeSBpcyBpbiB1c2UsIG5vdCBtb2RpZnlpbmcgaXQ7IGZhbHNlXFxubW0vc3dhcGZpbGUuYzoyNzcyOlxcdCAqIGhpdHMgYXJlIG9rYXksIGFuZCBzeXNfc3dhcG9mZigpIGhhcyBhbHJlYWR5IHByZXZlbnRlZCBuZXdcXG5tbS9zd2FwZmlsZS5jLTI3NzMtXFx0ICogYWxsb2NhdGlvbnMgZnJvbSB0aGlzIGFyZWEgKHdoaWxlIGhvbGRpbmcgc3dhcF9sb2NrKS5cXG4tLVxcbnNjcmlwdHMvc3lzY2FsbC50YmwtMjcwLTIyNFxcdGNvbW1vblxcdHN3YXBvblxcdFxcdFxcdFxcdHN5c19zd2Fwb25cXG5zY3JpcHRzL3N5c2NhbGwudGJsOjI3MToyMjVcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG5zY3JpcHRzL3N5c2NhbGwudGJsLTI3Mi0yMjZcXHRjb21tb25cXHRtcHJvdGVjdFxcdFxcdFxcdHN5c19tcHJvdGVjdFxcbi0tXFxudG9vbHMvaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oPTU3OD1fX1NZU0NBTEwoX19OUl9zd2Fwb24sIHN5c19zd2Fwb24pXFxudG9vbHMvaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oLTU3OS0jZGVmaW5lIF9fTlJfc3dhcG9mZiAyMjVcXG50b29scy9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmg6NTgwOl9fU1lTQ0FMTChfX05SX3N3YXBvZmYsIHN5c19zd2Fwb2ZmKVxcbnRvb2xzL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy91bmlzdGQuaC01ODEtI2RlZmluZSBfX05SX21wcm90ZWN0IDIyNlxcbi0tXFxudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtc2NyaXB0LXB5dGhvbi50eHQ9NDk9c3lzX2Nsb3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAzN1xcbnRvb2xzL3BlcmYvRG9jdW1lbnRhdGlvbi9wZXJmLXNjcmlwdC1weXRob24udHh0OjUwOnN5c19zd2Fwb2ZmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3NjlcXG50b29scy9wZXJmL0RvY3VtZW50YXRpb24vcGVyZi1zY3JpcHQtcHl0aG9uLnR4dC01MS1zeXNfcmVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTIzXFxuLS1cXG50b29scy9wZXJmL2FyY2gvYWxwaGEvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjM2LTMwM1xcdGNvbW1vblxcdG9sZF9hZGp0aW1leFxcdFxcdFxcdHN5c19vbGRfYWRqdGltZXhcXG50b29scy9wZXJmL2FyY2gvYWxwaGEvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MjM3OjMwNFxcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbnRvb2xzL3BlcmYvYXJjaC9hbHBoYS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0yMzgtMzA1XFx0Y29tbW9uXFx0Z2V0ZGVudHNcXHRcXHRcXHRzeXNfZ2V0ZGVudHNcXG4tLVxcbnRvb2xzL3BlcmYvYXJjaC9hcm0vZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTMxLTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0c3lzX3dhaXQ0XFxudG9vbHMvcGVyZi9hcmNoL2FybS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoxMzI6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxudG9vbHMvcGVyZi9hcmNoL2FybS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xMzMtMTE2XFx0Y29tbW9uXFx0c3lzaW5mb1xcdFxcdFxcdHN5c19zeXNpbmZvXFxuLS1cXG50b29scy9wZXJmL2FyY2gvYXJtNjQvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF8zMi50YmwtMTI4LTExNFxcdGNvbW1vblxcdHdhaXQ0XFx0XFx0XFx0c3lzX3dhaXQ0XFx0XFx0Y29tcGF0X3N5c193YWl0NFxcbnRvb2xzL3BlcmYvYXJjaC9hcm02NC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibDoxMjk6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxudG9vbHMvcGVyZi9hcmNoL2FybTY0L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsLTEzMC0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0c3lzX3N5c2luZm9cXHRcXHRjb21wYXRfc3lzX3N5c2luZm9cXG4tLVxcbnRvb2xzL3BlcmYvYXJjaC9taXBzL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibC0xNzItMTYyXFx0bjY0XFx0c3dhcG9uXFx0XFx0XFx0XFx0c3lzX3N3YXBvblxcbnRvb2xzL3BlcmYvYXJjaC9taXBzL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfbjY0LnRibDoxNzM6MTYzXFx0bjY0XFx0c3dhcG9mZlxcdFxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxudG9vbHMvcGVyZi9hcmNoL21pcHMvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF9uNjQudGJsLTE3NC0xNjRcXHRuNjRcXHRyZWJvb3RcXHRcXHRcXHRcXHRzeXNfcmVib290XFxuLS1cXG50b29scy9wZXJmL2FyY2gvcGFyaXNjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyOS0xMTRcXHRjb21tb25cXHR3YWl0NFxcdFxcdFxcdHN5c193YWl0NFxcdFxcdFxcdGNvbXBhdF9zeXNfd2FpdDRcXG50b29scy9wZXJmL2FyY2gvcGFyaXNjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsOjEzMDoxMTVcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0c3lzX3N3YXBvZmZcXG50b29scy9wZXJmL2FyY2gvcGFyaXNjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTEzMS0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0c3lzX3N5c2luZm9cXHRcXHRcXHRjb21wYXRfc3lzX3N5c2luZm9cXG4tLVxcbnRvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTE1My0xMTRcXHRjb21tb25cXHR3YWl0NFxcdFxcdFxcdFxcdHN5c193YWl0NFxcdFxcdFxcdGNvbXBhdF9zeXNfd2FpdDRcXG50b29scy9wZXJmL2FyY2gvcG93ZXJwYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoxNTQ6MTE1XFx0bm9zcHVcXHRzd2Fwb2ZmXFx0XFx0XFx0XFx0c3lzX3N3YXBvZmZcXG50b29scy9wZXJmL2FyY2gvcG93ZXJwYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xNTUtMTE2XFx0Y29tbW9uXFx0c3lzaW5mb1xcdFxcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG50b29scy9wZXJmL2FyY2gvczM5MC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC04OS0xMTRcXHRjb21tb25cXHR3YWl0NFxcdFxcdFxcdFxcdHN5c193YWl0NFxcbnRvb2xzL3BlcmYvYXJjaC9zMzkwL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsOjkwOjExNVxcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbnRvb2xzL3BlcmYvYXJjaC9zMzkwL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTkxLTExNlxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRcXHRzeXNfc3lzaW5mb1xcbi0tXFxudG9vbHMvcGVyZi9hcmNoL3NoL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNC0xMTRcXHRjb21tb25cXHR3YWl0NFxcdFxcdFxcdFxcdHN5c193YWl0NFxcbnRvb2xzL3BlcmYvYXJjaC9zaC9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibDoxMjU6MTE1XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxudG9vbHMvcGVyZi9hcmNoL3NoL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsLTEyNi0xMTZcXHRjb21tb25cXHRzeXNpbmZvXFx0XFx0XFx0XFx0c3lzX3N5c2luZm9cXG4tLVxcbnRvb2xzL3BlcmYvYXJjaC9zcGFyYy9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0yNTYtMjEyXFx0Y29tbW9uXFx0d2FpdHBpZFxcdFxcdFxcdHN5c193YWl0cGlkXFxudG9vbHMvcGVyZi9hcmNoL3NwYXJjL2VudHJ5L3N5c2NhbGxzL3N5c2NhbGwudGJsOjI1NzoyMTNcXHRjb21tb25cXHRzd2Fwb2ZmXFx0XFx0XFx0c3lzX3N3YXBvZmZcXG50b29scy9wZXJmL2FyY2gvc3BhcmMvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMjU4LTIxNFxcdGNvbW1vblxcdHN5c2luZm9cXHRcXHRcXHRzeXNfc3lzaW5mb1xcdFxcdFxcdGNvbXBhdF9zeXNfc3lzaW5mb1xcbi0tXFxudG9vbHMvcGVyZi9hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzMyLnRibC0xMjktMTE0XFx0aTM4NlxcdHdhaXQ0XFx0XFx0XFx0c3lzX3dhaXQ0XFx0XFx0XFx0Y29tcGF0X3N5c193YWl0NFxcbnRvb2xzL3BlcmYvYXJjaC94ODYvZW50cnkvc3lzY2FsbHMvc3lzY2FsbF8zMi50Ymw6MTMwOjExNVxcdGkzODZcXHRzd2Fwb2ZmXFx0XFx0XFx0c3lzX3N3YXBvZmZcXG50b29scy9wZXJmL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfMzIudGJsLTEzMS0xMTZcXHRpMzg2XFx0c3lzaW5mb1xcdFxcdFxcdHN5c19zeXNpbmZvXFx0XFx0XFx0Y29tcGF0X3N5c19zeXNpbmZvXFxuLS1cXG50b29scy9wZXJmL2FyY2gveDg2L2VudHJ5L3N5c2NhbGxzL3N5c2NhbGxfNjQudGJsLTE3OS0xNjdcXHRjb21tb25cXHRzd2Fwb25cXHRcXHRcXHRzeXNfc3dhcG9uXFxudG9vbHMvcGVyZi9hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzY0LnRibDoxODA6MTY4XFx0Y29tbW9uXFx0c3dhcG9mZlxcdFxcdFxcdHN5c19zd2Fwb2ZmXFxudG9vbHMvcGVyZi9hcmNoL3g4Ni9lbnRyeS9zeXNjYWxscy9zeXNjYWxsXzY0LnRibC0xODEtMTY5XFx0Y29tbW9uXFx0cmVib290XFx0XFx0XFx0c3lzX3JlYm9vdFxcbi0tXFxudG9vbHMvcGVyZi9hcmNoL3h0ZW5zYS9lbnRyeS9zeXNjYWxscy9zeXNjYWxsLnRibC0xOTMtMTc2XFx0Y29tbW9uXFx0dW1vdW50XFx0XFx0XFx0XFx0c3lzX29sZHVtb3VudFxcbnRvb2xzL3BlcmYvYXJjaC94dGVuc2EvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50Ymw6MTk0OjE3N1xcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbnRvb2xzL3BlcmYvYXJjaC94dGVuc2EvZW50cnkvc3lzY2FsbHMvc3lzY2FsbC50YmwtMTk1LTE3OFxcdGNvbW1vblxcdHN5bmNcXHRcXHRcXHRcXHRzeXNfc3luY1xcbi0tXFxudG9vbHMvc2NyaXB0cy9zeXNjYWxsLnRibC0yNzAtMjI0XFx0Y29tbW9uXFx0c3dhcG9uXFx0XFx0XFx0XFx0c3lzX3N3YXBvblxcbnRvb2xzL3NjcmlwdHMvc3lzY2FsbC50Ymw6MjcxOjIyNVxcdGNvbW1vblxcdHN3YXBvZmZcXHRcXHRcXHRcXHRzeXNfc3dhcG9mZlxcbnRvb2xzL3NjcmlwdHMvc3lzY2FsbC50YmwtMjcyLTIyNlxcdGNvbW1vblxcdG1wcm90ZWN0XFx0XFx0XFx0c3lzX21wcm90ZWN0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjEwLjMzMjUwOTY1OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NzY3NzM3NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTd2FwIERlYWN0aXZhdGlvbiBTeXN0ZW0gQ2FsbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBzeXNfc3dhcG9mZmAuIEZpcnN0IHRoaW5ncyBmaXJzdCwgSSB3YW50IHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueSBlc3NlbnRpYWwgY29uZmlndXJhdGlvbnMuIFRoaXMgaXMgd2hlcmUgSSdkIG5vcm1hbGx5IHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUga2VybmVsIGRvY3VtZW50YXRpb24gb3IgcmVsZXZhbnQgc291cmNlIGNvZGUsIGxvb2tpbmcgZm9yIGFueSBlZGdlIGNhc2VzLiBJdCdzIGNydWNpYWwgbm90IHRvIG1pc3MgYW55IGluaXRpYWwgY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgbmVlZGVkIGJlZm9yZSBhY3R1YWxseSBkZWFjdGl2YXRpbmcgc3dhcC5cblxuSSBzZWUgdGhhdCBgQ09ORklHX1NXQVBgIHNlZW1zIHRvIGJlIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHJlbGF0ZWQgdG8gc3dhcCBzcGFjZS4gVGhpcyBpcyBleHBlY3RlZC4gTm93IEkgd2lsbCBuZWVkIHRvIGRlbHZlIGRlZXBlciBpbnRvIGl0cyBpbXBsaWNhdGlvbnMuIElzIHRoZXJlIGFueXRoaW5nIGVsc2UgdGhhdCBuZWVkcyB0byBiZSBjb25zaWRlcmVkIGJlZm9yZSBJIGNvbnRpbnVlP1xuXG5cbiIsIklucHV0VG9rZW5zIjo3NTQxLCJPdXRwdXRUb2tlbnMiOjE3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMjM6MTE6MTMuMjA5Mjg1MTkyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMDc1MjM0OTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFNXQVBcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9taXBzL0tjb25maWc9MTI2Mz1jb25maWcgTUlQU19TUFJBTVxcbi0tXFxuYXJjaC9taXBzL0tjb25maWctMTI2NS1cXG5hcmNoL21pcHMvS2NvbmZpZzoxMjY2OmNvbmZpZyBTV0FQX0lPX1NQQUNFXFxuYXJjaC9taXBzL0tjb25maWctMTI2Ny1cXHRib29sXFxuLS1cXG5hcmNoL3NoL0tjb25maWc9MTI5PWNvbmZpZyBJT19UUkFQUEVEXFxuLS1cXG5hcmNoL3NoL0tjb25maWctMTMxLVxcbmFyY2gvc2gvS2NvbmZpZzoxMzI6Y29uZmlnIFNXQVBfSU9fU1BBQ0VcXG5hcmNoL3NoL0tjb25maWctMTMzLVxcdGJvb2xcXG4tLVxcbm1tL0tjb25maWc9OT1jb25maWcgQVJDSF9OT19TV0FQXFxuLS1cXG5tbS9LY29uZmlnLTExLVxcbm1tL0tjb25maWc6MTI6bWVudWNvbmZpZyBTV0FQXFxubW0vS2NvbmZpZy0xMy1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBwYWdpbmcgb2YgYW5vbnltb3VzIG1lbW9yeSAoc3dhcClcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjE1LjQxNjgxNzg0M1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI2MzU0NTYxMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkludmVzdGlnYXRpbmcgQ09ORklHX1NXQVAgYW5kIEZ1bmN0aW9uIFVzYWdlKipcblxuQWxyaWdodCwgc28gYENPTkZJR19TV0FQYCBpcyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdlJ3JlIGRlYWxpbmcgd2l0aCBoZXJlLCB0aGF0J3MgY2xlYXIuIE5vdywgYSBjcnVjaWFsIHN0ZXAgdG8gZnVsbHkgdW5kZXJzdGFuZGluZyBpdHMgaW1wbGljYXRpb25zIGlzIHRvIHNlZSBpZiBgZmluZF9uZXh0X3RvX3VudXNlYCBpcyB1c2VkIG91dHNpZGUgb2YgdGhpcyBpbW1lZGlhdGUgY29udGV4dC4gV2UgbmVlZCB0byBhc3Nlc3MgaWYgaXRzIHByZXNlbmNlIG9yIGFic2VuY2UgcmVsYXRlcyBzb2xlbHkgdG8gdGhlIHN3YXAgaW1wbGVtZW50YXRpb24sIG9yIGlmIGl0IGNvbnRyaWJ1dGVzIHRvIG90aGVyIGFyZWFzIG9mIHN5c3RlbSBvcGVyYXRpb24sIHdoaWNoIG1heSBwcm92aWRlIG1vcmUgY29udGV4dC4gS25vd2luZyB3aGVyZSBgZmluZF9uZXh0X3RvX3VudXNlYCBpcyB1c2VkIHdpbGwgZ2l2ZSBhIGdvb2QgaW5kaWNhdG9yIG9mIHdoYXQgY2FuIGJlIGV4cGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTQxLCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMjM6MTE6MTguMDUyMjc2Mzk5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMjkwMDY1NjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmluZF9uZXh0X3RvX3VudXNlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL3N3YXBmaWxlLmM9MjczMz1zdGF0aWMgaW50IHVudXNlX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBpbnQgdHlwZSlcXG4tLVxcbm1tL3N3YXBmaWxlLmMtMjc2MC0gKi9cXG5tbS9zd2FwZmlsZS5jOjI3NjE6c3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxcbm1tL3N3YXBmaWxlLmMtMjc2Mi1cXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgcHJldilcXG4tLVxcbm1tL3N3YXBmaWxlLmM9MjgwMz1zdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcXG4tLVxcbm1tL3N3YXBmaWxlLmMtMjg1Ni1cXHQgICAgICAgIXNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpIFxcdTAwMjZcXHUwMDI2XFxubW0vc3dhcGZpbGUuYzoyODU3OlxcdCAgICAgICAoaSA9IGZpbmRfbmV4dF90b191bnVzZShzaSwgaSkpICE9IDApIHtcXG5tbS9zd2FwZmlsZS5jLTI4NTgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjIwLjI4MTI5OTUxMVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NzI0OTU0NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0OlxuXG4qKk15IFBlcnNwZWN0aXZlIG9uIGBmaW5kX25leHRfdG9fdW51c2VgIGFuZCBpdHMgUGxhY2UgaW4gdGhlIFN5c3RlbSoqXG5cbkFscmlnaHQsIHNvIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkgdW5kZXJzdGFuZCwgdGhlIHN5c3RlbSdzIGBzeXNfc3dhcG9mZmAgZnVuY3Rpb24gaXMgdWx0aW1hdGVseSByZXNwb25zaWJsZSBmb3IgaW5pdGlhdGluZyB0aGUgc3dhcC1vZmYgcHJvY2Vzcy4gTm93LCBgc3lzX3N3YXBvZmZgIGl0c2VsZiBjYWxscyB0aGUgZnVuY3Rpb24gYHRyeV90b191bnVzZWAuIEFuZCAqdGhhdCdzKiB0aGUga2V5IOKAkyBgdHJ5X3RvX3VudXNlYCBpcyB3aGVyZSB0aGUgaGVhdnkgbGlmdGluZyBvZiBhdHRlbXB0aW5nIHRvIGRlYWN0aXZhdGUgc3dhcCBzcGFjZSBhY3R1YWxseSBoYXBwZW5zLiBTcGVjaWZpY2FsbHksIGB0cnlfdG9fdW51c2VgIGRlcGVuZHMgb24gYGZpbmRfbmV4dF90b191bnVzZWAuIEZyb20gdGhlIGZ1bmN0aW9uIG5hbWVzLCBJIHdvdWxkIGd1ZXNzIHRoaXMgaXMgc29tZSBraW5kIG9mIHNlYXJjaCBmdW5jdGlvbiB0aGF0IGhlbHBzIHdpdGggaWRlbnRpZnlpbmcgc3dhcCBzcGFjZSBzdWl0YWJsZSBmb3IgdW4tdXNlLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgc3VjaCBhIGZ1bmN0aW9uIG1pZ2h0IHNlYXJjaCBmb3IgYSBcIm5leHRcIiBzd2FwIGFyZWEgdGhhdCBpcyBzYWZlIHRvIHN3YXAgb2ZmLiBJdCBtaWdodCBiZSBsb29raW5nIGZvciBzd2FwIGFyZWFzIHdpdGggbm8gYWN0aXZlIHBhZ2VzLCBvciBtaW5pbWFsIGFjdGl2aXR5LCB0aGF0IGNhbiBiZSBzYWZlbHkgZGVhY3RpdmF0ZWQgd2l0aG91dCBjYXVzaW5nIGlzc3Vlcy4gU28sIGBmaW5kX25leHRfdG9fdW51c2VgIGlzIGVzc2VudGlhbGx5IHRoZSB3b3JraG9yc2UgdGhhdCBoZWxwcyBtYWtlIGB0cnlfdG9fdW51c2VgIHN1Y2Nlc3NmdWwuIEl0J3MgYW4gaW1wb3J0YW50IHBhcnQgb2YgdGhlIGJpZ2dlciBwaWN0dXJlIG9mIHRoZSBzd2FwIHNwYWNlIG1hbmFnZW1lbnQgd2l0aGluIHRoZSBPUy4gVGhlIG92ZXJhbGwgcHJvY2VzcywgaG93ZXZlciwgaXMgYSBiaXQgb3BhcXVlIGFzIEkgd291bGQgZXhwZWN0IGBzeXNfc3dhcG9mZmAgd291bGQgaGF2ZSBtb3JlIGNoZWNrcyBhcm91bmQgaXQgdG8gcHJvdGVjdCBhZ2FpbnN0IGVycm9ycy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODM1MiwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjIzLjg1Mzc5Nzg2MVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIzMjE4NTQ5MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0cnlfdG9fdW51c2VcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiQ1JFRElUUz0xMzc9RDogQXV0aG9yIG9mIGxpbCAoTGludXggSW50ZXJydXB0IExhdGVuY3kgYmVuY2htYXJrKVxcbkNSRURJVFM6MTM4OkQ6IEZpeGVkIHRoZSBzaG0gc3dhcCBkZWFsbG9jYXRpb24gYXQgc3dhcG9mZiB0aW1lICh0cnlfdG9fdW51c2UgbWVzc2FnZSlcXG5DUkVESVRTLTEzOS1EOiBWTSBoYWNrZXJcXG4tLVxcbmtlcm5lbC9leGl0LmM9NDkyPXZvaWQgbW1fdXBkYXRlX25leHRfb3duZXIoc3RydWN0IG1tX3N0cnVjdCAqbW0pXFxuLS1cXG5rZXJuZWwvZXhpdC5jLTU0MC1cXHQgKiBXZSBmb3VuZCBubyBvd25lciB5ZXQgbW1fdXNlcnMgXFx1MDAzZSAxOiB0aGlzIGltcGxpZXMgdGhhdCB3ZSBhcmVcXG5rZXJuZWwvZXhpdC5jOjU0MTpcXHQgKiBtb3N0IGxpa2VseSByYWNpbmcgd2l0aCBzd2Fwb2ZmICh0cnlfdG9fdW51c2UoKSkgb3IgL3Byb2Mgb3JcXG5rZXJuZWwvZXhpdC5jLTU0Mi1cXHQgKiBwdHJhY2Ugb3IgcGFnZSBtaWdyYXRpb24gKGdldF90YXNrX21tKCkpLiAgTWFyayBvd25lciBhcyBOVUxMLlxcbi0tXFxubW0vc3dhcGZpbGUuYz0xMzE0PXN0YXRpYyB2b2lkIHN3YXBfcmFuZ2VfZnJlZShzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2ksIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LFxcbi0tXFxubW0vc3dhcGZpbGUuYy0xMzM2LVxcdC8qXFxubW0vc3dhcGZpbGUuYzoxMzM3OlxcdCAqIE1ha2Ugc3VyZSB0aGF0IHRyeV90b191bnVzZSgpIG9ic2VydmVzIHNpLVxcdTAwM2VpbnVzZV9wYWdlcyByZWFjaGluZyAwXFxubW0vc3dhcGZpbGUuYy0xMzM4LVxcdCAqIG9ubHkgYWZ0ZXIgdGhlIGFib3ZlIGNsZWFudXBzIGFyZSBkb25lLlxcbi0tXFxubW0vc3dhcGZpbGUuYz0yNDcxPXN0YXRpYyBpbnQgdW51c2VfcHRlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBwbWRfdCAqcG1kLFxcbi0tXFxubW0vc3dhcGZpbGUuYy0yNDgyLVxcdCAqIElmIHRoZSBmb2xpbyBpcyByZW1vdmVkIGZyb20gc3dhcCBjYWNoZSBieSBvdGhlcnMsIGNvbnRpbnVlIHRvXFxubW0vc3dhcGZpbGUuYzoyNDgzOlxcdCAqIHVudXNlIG90aGVyIFBURXMuIHRyeV90b191bnVzZSBtYXkgdHJ5IGFnYWluIGlmIHdlIG1pc3NlZCB0aGlzIG9uZS5cXG5tbS9zd2FwZmlsZS5jLTI0ODQtXFx0ICovXFxuLS1cXG5tbS9zd2FwZmlsZS5jPTI3NjE9c3RhdGljIHVuc2lnbmVkIGludCBmaW5kX25leHRfdG9fdW51c2Uoc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLFxcbi0tXFxubW0vc3dhcGZpbGUuYy0yNzgzLVxcdFxcdCAqIEEgc2xvdCBpcyB1bmNvdW50ZWQgb25seSBhZnRlciBpdHMgZm9saW8gbGVmdCB0aGUgc3dhcFxcbm1tL3N3YXBmaWxlLmM6Mjc4NDpcXHRcXHQgKiBjYWNoZSwgc28gdGhlcmUgaXMgbm90aGluZyBoZXJlIGZvciB0cnlfdG9fdW51c2UoKSB0byBhY3Qgb24uXFxubW0vc3dhcGZpbGUuYy0yNzg1LVxcdFxcdCAqL1xcbi0tXFxubW0vc3dhcGZpbGUuYy0yODAyLVxcbm1tL3N3YXBmaWxlLmM6MjgwMzpzdGF0aWMgaW50IHRyeV90b191bnVzZSh1bnNpZ25lZCBpbnQgdHlwZSlcXG5tbS9zd2FwZmlsZS5jLTI4MDQte1xcbi0tXFxubW0vc3dhcGZpbGUuYy0yODk3LVxcdC8qXFxubW0vc3dhcGZpbGUuYzoyODk4OlxcdCAqIE1ha2Ugc3VyZSB0aGF0IGZ1cnRoZXIgY2xlYW51cHMgYWZ0ZXIgdHJ5X3RvX3VudXNlKCkgcmV0dXJucyBoYXBwZW5cXG5tbS9zd2FwZmlsZS5jLTI4OTktXFx0ICogYWZ0ZXIgc3dhcF9yYW5nZV9mcmVlKCkgcmVkdWNlcyBzaS1cXHUwMDNlaW51c2VfcGFnZXMgdG8gMC5cXG4tLVxcbm1tL3N3YXBmaWxlLmMtMjkwNS0vKlxcbm1tL3N3YXBmaWxlLmM6MjkwNjogKiBBZnRlciBhIHN1Y2Nlc3NmdWwgdHJ5X3RvX3VudXNlLCBpZiBubyBzd2FwIGlzIG5vdyBpbiB1c2UsIHdlIGtub3dcXG5tbS9zd2FwZmlsZS5jLTI5MDctICogd2UgY2FuIGVtcHR5IHRoZSBtbWxpc3QuICBzd2FwX2xvY2sgbXVzdCBiZSBoZWxkIG9uIGVudHJ5IGFuZCBleGl0Llxcbi0tXFxubW0vc3dhcGZpbGUuYz0zMTQ5PVNZU0NBTExfREVGSU5FMShzd2Fwb2ZmLCBjb25zdCBjaGFyIF9fdXNlciAqLCBzcGVjaWFsZmlsZSlcXG4tLVxcbm1tL3N3YXBmaWxlLmMtMzIwOS1cXHRzZXRfY3VycmVudF9vb21fb3JpZ2luKCk7XFxubW0vc3dhcGZpbGUuYzozMjEwOlxcdGVyciA9IHRyeV90b191bnVzZShwLVxcdTAwM2V0eXBlKTtcXG5tbS9zd2FwZmlsZS5jLTMyMTEtXFx0Y2xlYXJfY3VycmVudF9vb21fb3JpZ2luKCk7XFxuLS1cXG5tbS96c3dhcC5jPTE2NzE9dm9pZCB6c3dhcF9zd2Fwb2ZmKGludCB0eXBlKVxcbi0tXFxubW0venN3YXAuYy0xNjc4LVxcbm1tL3pzd2FwLmM6MTY3OTpcXHQvKiB0cnlfdG9fdW51c2UoKSBpbnZhbGlkYXRlZCBhbGwgdGhlIGVudHJpZXMgYWxyZWFkeSAqL1xcbm1tL3pzd2FwLmMtMTY4MC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbnJfenN3YXBfdHJlZXNbdHlwZV07IGkrKylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMjM6MTE6MjYuMDg1OTg4ODMzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMTg3MDQ4ODMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU3dhcG9mZiBPcHRpbWl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgSSBjYW4gc2VlIGl0J3MgdG91Y2hpbmcgYGZpbmRfbmV4dF90b191bnVzZWAsIHdoaWNoIGlzIGNhbGxlZCBieSBgdHJ5X3RvX3VudXNlYCwgd2hpY2ggaW4gdHVybiBpcyBjYWxsZWQgYnkgYHN5c19zd2Fwb2ZmYC4gVGhpcyBpcyBhbGwgcHJldHR5IGRlZXAgaW4gdGhlIHN3YXAgc3Vic3lzdGVtLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QganVzdCBhIGNvc21ldGljIG9uZS4gVGhlIHBhdGNoJ3MgY29yZSBpZGVhIGlzIHRvIG9wdGltaXplIHRoZSBzZWFyY2ggZm9yIHRoZSBuZXh0IHVzZWQgc3dhcCBlbnRyeSBieSBza2lwcGluZyBlbnRpcmUgZW1wdHkgY2x1c3RlcnMuIFRoaXMgbG9va3MgbGlrZSBhIGRlZmluaXRlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi5cblxuU2luY2UgdGhpcyBhZmZlY3RzIGNvcmUga2VybmVsIGxvZ2ljIGFuZCBpdCdzIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBgc3dhcG9mZmAgc3lzY2FsbCwgaXQgd2FycmFudHMgZnV6emluZy4gYFNXQVBgIHNlZW1zIGxpa2UgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIGVuYWJsZSwgYW5kIGdpdmVuIHRoYXQgaXQgZG9lcyBlbmFibGUgc3dhcCBzdXBwb3J0LCBJIHRoaW5rIHdlJ3JlIGdvb2QgdGhlcmUuXG5cbk5vdywgbGV0J3MgbmFpbCBkb3duIHRoZSBmb2N1cyBzeW1ib2xzLiBJIHdhbnQgdG8gYmUgcHJlY2lzZSBoZXJlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gZm9jdXNpbmcgb24gYW4gYWN0dWFsIGVudHJ5cG9pbnQuIElzIGBzeXNfc3dhcG9mZmAgYWN0dWFsbHkgdGhlIHJpZ2h0IHN5bWJvbD8gWWVzLCB0aGUgZGVmaW5pdGlvbiBzaG93cyBpdCdzIHRoZSByaWdodCBmdW5jdGlvbi4gQW5kLCB3aGlsZSBgdHJ5X3RvX3VudXNlYCBpcyBzdGF0aWMsIGl0J3MgcHJldHR5IGxhcmdlIGFuZCBub3QgbGlrZWx5IHRvIGJlIGlubGluZWQsIGJ1dCBJIHdhbnQgdG8gbWFrZSBzdXJlIEkgZm9jdXMgb24gdGhlIGVudHJ5cG9pbnQsIHdoaWNoIGlzIGBzeXNfc3dhcG9mZmAuIEknbSBjb25maWRlbnQgdGhhdCBgc3lzX3N3YXBvZmZgIGlzIHRoZSByaWdodCBlbnRyeSBwb2ludCB0byB0YXJnZXQuXG5cbkkndmUgcmUtZXhhbWluZWQgdGhlIHBhdGNoIGNvZGUuIEl0J3Mgc2tpcHBpbmcgYW4gZW50aXJlIGVtcHR5IGNsdXN0ZXIsIHdoaWNoIGlzIGEgbWFqb3IgcGVyZm9ybWFuY2UgZW5oYW5jZW1lbnQsIHJhdGhlciB0aGFuIGp1c3QgaW5kaXZpZHVhbCBlbnRyaWVzLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZS5cblxuVGhlIGZpbmFsIGNhbGw6IGBGb2N1c1N5bWJvbHM6IHN5c19zd2Fwb2ZmYC4gV2UgbmVlZCB0byBoaXQgdGhpcyB3aXRoIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk2ODIsIk91dHB1dFRva2VucyI6ODcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDg0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDIzOjExOjM3LjI3MzA0NTgzM1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMzQxNDQ2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1dBUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN5c19zd2Fwb2ZmXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb3B0aW1pemVzIHRoZSBgZmluZF9uZXh0X3RvX3VudXNlYCBmdW5jdGlvbiBpbiB0aGUgc3dhcCBzdWJzeXN0ZW0gYnkgc2tpcHBpbmcgZW1wdHkgc3dhcCBjbHVzdGVycyBlbnRpcmVseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUga2VybmVsIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSB0aGUgYHN3YXBvZmZgIHN5c2NhbGwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1dBUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN5c19zd2Fwb2ZmXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb3B0aW1pemVzIHRoZSBgZmluZF9uZXh0X3RvX3VudXNlYCBmdW5jdGlvbiBpbiB0aGUgc3dhcCBzdWJzeXN0ZW0gYnkgc2tpcHBpbmcgZW1wdHkgc3dhcCBjbHVzdGVycyBlbnRpcmVseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUga2VybmVsIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSB0aGUgYHN3YXBvZmZgIHN5c2NhbGwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbbrk2[1] Phase: Succeeded StartedAt: 2026-07-29 23:11:48 +0000 UTC FinishedAt: 2026-07-29 23:11:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-29 23:11:48 +0000 UTC FinishedAt: 2026-07-29 23:11:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2] Phase: Succeeded StartedAt: 2026-07-29 23:11:48 +0000 UTC FinishedAt: 2026-07-30 01:34:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN) Phase: Failed StartedAt: 2026-07-29 23:11:48 +0000 UTC FinishedAt: 2026-07-30 01:34:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-29 23:11:48 +0000 UTC FinishedAt: 2026-07-29 23:11:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-29 23:11:48 +0000 UTC FinishedAt: 2026-07-29 23:11:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbbrk2/series-workflowbbrk2-convert-artifact-2180118177/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-29 23:11:58 +0000 UTC FinishedAt: 2026-07-29 23:34:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-29 23:11:58 +0000 UTC FinishedAt: 2026-07-29 23:34:44 +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:*a99ef12b-cd6d-4996-90d7-848f85e4c622,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-workflowbbrk2/series-workflowbbrk2-convert-artifact-2180118177/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": "659905f9-44bc-43de-ac41-260250f0a6ba", "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-workflowbbrk2/series-workflowbbrk2-build-action-1651690959/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-29 23:11:58 +0000 UTC FinishedAt: 2026-07-29 23:34:34 +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:*a99ef12b-cd6d-4996-90d7-848f85e4c622,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-workflowbbrk2/series-workflowbbrk2-convert-artifact-2180118177/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": "659905f9-44bc-43de-ac41-260250f0a6ba", "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-workflowbbrk2/series-workflowbbrk2-build-action-1651690959/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-29 23:34:44 +0000 UTC FinishedAt: 2026-07-29 23:34:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-29 23:34:44 +0000 UTC FinishedAt: 2026-07-29 23:34:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-29 23:34:44 +0000 UTC FinishedAt: 2026-07-29 23:34:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-29 23:34:44 +0000 UTC FinishedAt: 2026-07-29 23:34:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbbrk2/series-workflowbbrk2-convert-artifact-3014845684/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-29 23:34:54 +0000 UTC FinishedAt: 2026-07-29 23:36:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-29 23:34:54 +0000 UTC FinishedAt: 2026-07-29 23:36:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*659905f9-44bc-43de-ac41-260250f0a6ba,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-workflowbbrk2/series-workflowbbrk2-build-action-1651690959/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-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-29 23:36:43 +0000 UTC FinishedAt: 2026-07-29 23:36:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-29 23:36:43 +0000 UTC FinishedAt: 2026-07-29 23:36:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-29 23:36:43 +0000 UTC FinishedAt: 2026-07-29 23:54:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-29 23:36:43 +0000 UTC FinishedAt: 2026-07-29 23:54:31 +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:*a99ef12b-cd6d-4996-90d7-848f85e4c622,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-workflowbbrk2/series-workflowbbrk2-convert-artifact-3014845684/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": "fe1da284-9520-4078-ba20-8edc257829d1", "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-workflowbbrk2/series-workflowbbrk2-build-action-1743919552/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-29 23:36:43 +0000 UTC FinishedAt: 2026-07-29 23:54:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*a99ef12b-cd6d-4996-90d7-848f85e4c622,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-workflowbbrk2/series-workflowbbrk2-convert-artifact-3014845684/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": "fe1da284-9520-4078-ba20-8edc257829d1", "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-workflowbbrk2/series-workflowbbrk2-build-action-1743919552/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-29 23:54:31 +0000 UTC FinishedAt: 2026-07-29 23:54:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-29 23:54:31 +0000 UTC FinishedAt: 2026-07-29 23:54:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-29 23:54:31 +0000 UTC FinishedAt: 2026-07-29 23:56:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-29 23:54:31 +0000 UTC FinishedAt: 2026-07-29 23:56:21 +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:*fe1da284-9520-4078-ba20-8edc257829d1,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-workflowbbrk2/series-workflowbbrk2-build-action-1743919552/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-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10] Phase: Failed StartedAt: 2026-07-29 23:56:31 +0000 UTC FinishedAt: 2026-07-30 01:34:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Failed StartedAt: 2026-07-29 23:56:31 +0000 UTC FinishedAt: 2026-07-30 01:34:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},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:*659905f9-44bc-43de-ac41-260250f0a6ba,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fe1da284-9520-4078-ba20-8edc257829d1,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-workflowbbrk2/series-workflowbbrk2-build-action-1651690959/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-workflowbbrk2/series-workflowbbrk2-build-action-1743919552/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-29 23:56:31 +0000 UTC FinishedAt: 2026-07-29 23:56:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-29 23:56:31 +0000 UTC FinishedAt: 2026-07-29 23:56:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},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-workflowbbrk2/series-workflowbbrk2-convert-artifact-4214559517/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-29 23:56:31 +0000 UTC FinishedAt: 2026-07-29 23:56:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-29 23:56:31 +0000 UTC FinishedAt: 2026-07-29 23:56:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-29 23:56:31 +0000 UTC FinishedAt: 2026-07-29 23:56:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Failed StartedAt: 2026-07-29 23:56:41 +0000 UTC FinishedAt: 2026-07-30 01:34:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbbrk2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["sys_swapoff"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"ae98967f6e94c2239d81795f9f6c987add5518c8","config_name":"upstream-apparmor-kasan.config","enable_configs":["SWAP"],"series_id":"0c6d8451-68cc-4a8f-ad95-5bd462fc856e","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Error StartedAt: 2026-07-29 23:56:41 +0000 UTC FinishedAt: 2026-07-30 01:34:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*659905f9-44bc-43de-ac41-260250f0a6ba,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fe1da284-9520-4078-ba20-8edc257829d1,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-workflowbbrk2/series-workflowbbrk2-build-action-1651690959/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-workflowbbrk2/series-workflowbbrk2-build-action-1743919552/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-workflowbbrk2/series-workflowbbrk2-convert-artifact-4214559517/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil