Name: series-workflowj5kts Phase: Succeeded StartedAt: 2026-08-07 07:55:33 +0000 UTC FinishedAt: 2026-08-07 11:42:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[0] Phase: Succeeded StartedAt: 2026-08-07 07:55:33 +0000 UTC FinishedAt: 2026-08-07 07:57:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[0].run-triage Phase: Succeeded StartedAt: 2026-08-07 07:55:33 +0000 UTC FinishedAt: 2026-08-07 07:57:20 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLOCK" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLOCK" ], "series_id": "9877783c-d219-4488-a60a-1b4ae2cd7f73" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "blk_mq_free_rqs" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA3OjU2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMT0NLJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YmxrX21xX2ZyZWVfcnFzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBibGtfbXFfZnJlZV9ycXNgIHdpdGhpbiB0aGUgY29yZSBibG9jayBsYXllciAoYmxrLW1xKSB3aGVuIGBoY3R4X2lkeGAgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGhhcmR3YXJlIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDk1NWMxZGMxYzFlNmNiZjc5NGVhODc4ODFjNGRkMTUxZDkwMDRiZGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyA3IDA3OjU2OjM4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1tcS5jIGIvYmxvY2svYmxrLW1xLmNcbmluZGV4IDJjODUwMzMwYTMyYmMuLjhlNjcyNmIzN2M2NTEgMTAwNjQ0XG4tLS0gYS9ibG9jay9ibGstbXEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svYmxrLW1xLmNcbkBAIC0zNDczLDggJiM0MzszNDczLDEwIEBAIHZvaWQgYmxrX21xX2ZyZWVfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LCBzdHJ1Y3QgYmxrX21xX3RhZ3MgKnRhZ3MsXG4gXG4gXHRpZiAoYmxrX21xX2lzX3NoYXJlZF90YWdzKHNldC1cdTAwM2VmbGFncykpXG4gXHRcdGRydl90YWdzID0gc2V0LVx1MDAzZXNoYXJlZF90YWdzO1xuLVx0ZWxzZVxuJiM0MztcdGVsc2UgaWYgKGhjdHhfaWR4IFx1MDAzYyBzZXQtXHUwMDNlbnJfaHdfcXVldWVzKVxuIFx0XHRkcnZfdGFncyA9IHNldC1cdTAwM2V0YWdzW2hjdHhfaWR4XTtcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRkcnZfdGFncyA9IE5VTEw7XG4gXG4gXHRpZiAodGFncy1cdTAwM2VzdGF0aWNfcnFzIFx1MDAyNlx1MDAyNiBzZXQtXHUwMDNlb3BzLVx1MDAzZWV4aXRfcmVxdWVzdCkge1xuIFx0XHRpbnQgaTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxPQ0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtibGtfbXFfZnJlZV9ycXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGJsa19tcV9mcmVlX3Jxc2Agd2l0aGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIChibGstbXEpIHdoZW4gYGhjdHhfaWR4YCBleGNlZWRzIHRoZSBudW1iZXIgb2YgaGFyZHdhcmUgcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOTU1YzFkYzFjMWU2Y2JmNzk0ZWE4Nzg4MWM0ZGQxNTFkOTAwNGJkYwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDcgMDc6NTY6MzggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9ibG9jay9ibGstbXEuYyBiL2Jsb2NrL2Jsay1tcS5jCmluZGV4IDJjODUwMzMwYTMyYmMuLjhlNjcyNmIzN2M2NTEgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1tcS5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL2Jsay1tcS5jCkBAIC0zNDczLDggJiM0MzszNDczLDEwIEBAIHZvaWQgYmxrX21xX2ZyZWVfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LCBzdHJ1Y3QgYmxrX21xX3RhZ3MgKnRhZ3MsCiAKIAlpZiAoYmxrX21xX2lzX3NoYXJlZF90YWdzKHNldC0mZ3Q7ZmxhZ3MpKQogCQlkcnZfdGFncyA9IHNldC0mZ3Q7c2hhcmVkX3RhZ3M7Ci0JZWxzZQomIzQzOwllbHNlIGlmIChoY3R4X2lkeCAmbHQ7IHNldC0mZ3Q7bnJfaHdfcXVldWVzKQogCQlkcnZfdGFncyA9IHNldC0mZ3Q7dGFnc1toY3R4X2lkeF07CiYjNDM7CWVsc2UKJiM0MzsJCWRydl90YWdzID0gTlVMTDsKIAogCWlmICh0YWdzLSZndDtzdGF0aWNfcnFzICZhbXA7JmFtcDsgc2V0LSZndDtvcHMtJmd0O2V4aXRfcmVxdWVzdCkgewogCQlpbnQgaTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDc6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5MQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDE5NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBCbG9jayBMYXllciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGJsb2NrL2Jsay1tcS5jYC4gSXQmIzM5O3MgdG91Y2hpbmcgdGhlIGBibGtfbXFfZnJlZV9ycXNgIGZ1bmN0aW9uLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSB3aXRoaW4gdGhpcyBzbWFsbCBzbmlwcGV0IG9mIGNvZGUuIEkgc2VlIGEgY29uZGl0aW9uYWwgYmxvY2sgbm93IGFkZGVkIHRvIHNhZmVseSBoYW5kbGUgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzLgoKQmVmb3JlLCBpdCB1c2VkIHRvIGJlIGEgc2ltcGxlIGBpZmAuLi4gYGVsc2VgLCBjaGVja2luZyBpZiBzaGFyZWQgdGFncyB3ZXJlIHVzZWQuIE5vdywgdGhleSYjMzk7dmUgaW50cm9kdWNlZCBhbm90aGVyIGBlbHNlIGlmYCBjb25kaXRpb24uIEl0IGNoZWNrcyBpZiBgaGN0eF9pZHhgIGlzIHdpdGhpbiB0aGUgYm91bmRzIG9mIGBzZXQtJmd0O25yX2h3X3F1ZXVlc2AuIElmIGl0ICppcyosIHRoZW4gd2Ugc2FmZWx5IGFjY2VzcyB0aGUgcGVyLXF1ZXVlIHRhZ3MuIElmIGBoY3R4X2lkeGAgKmlzIG5vdCogd2l0aGluIGJvdW5kcywgdGhlbiBgZHJ2X3RhZ3NgIGlzIHNldCB0byBOVUxMLiBUaGlzIGltbWVkaWF0ZWx5IGp1bXBzIG91dCBhdCBtZSBhcyBhIGNyaXRpY2FsIGNoYW5nZSBiZWNhdXNlIGl0IHByZXZlbnRzIGEgcG90ZW50aWFsIG1lbW9yeSBhY2Nlc3MgdmlvbGF0aW9uIG9uIGBzZXQtJmd0O3RhZ3NgLiBUaGUgaW50ZW50IGlzIGNsZWFyOiB0byBncmFjZWZ1bGx5IGhhbmRsZSBhIHNpdHVhdGlvbiB3aGVyZSBgaGN0eF9pZHhgIG1pZ2h0IGJlIGxhcmdlciB0aGFuIHRoZSB2YWxpZCBoYXJkd2FyZSBxdWV1ZSBpbmRleC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGRlc2lnbmVkIHRvIGVuc3VyZSB0aGF0IHRoZSBkcml2ZXIgZG9lc24mIzM5O3QgdHJ5IHRvIGFjY2VzcyBhbiBhcnJheSBlbGVtZW50IG91dHNpZGUgaXRzIGFsbG9jYXRlZCBib3VuZGFyaWVzLiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBkZWVwZXIgdG8gc2VlICp3aHkqIHRoaXMgb3V0LW9mLWJvdW5kcyBjb25kaXRpb24gY291bGQgaGFwcGVuIGluIHRoZSBmaXJzdCBwbGFjZSwgYnV0IHRoaXMgcGF0Y2ggcHJvdmlkZXMgYSB2ZXJ5IGNsZWFuIHNhZmV0eSBuZXQuIEkmIzM5O2xsIHdhbnQgdG8gdmVyaWZ5IHRoYXQgdGhlIGludHJvZHVjZWQgYE5VTExgIGFzc2lnbm1lbnQgaXMgaGFuZGxlZCBjb3JyZWN0bHkgZG93bnN0cmVhbS4gTm8gYnVncyBjcmVlcGluZyBpbiB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtibGtfbXFfZnJlZV9ycXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtibG9jay9ibGstbXEuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtibG9jay9ibGstbXEuYz0zNDM3PXN0YXRpYyB2b2lkIGJsa19tcV9jbGVhcl9ycV9tYXBwaW5nKHN0cnVjdCBibGtfbXFfdGFncyAqZHJ2X3RhZ3MsXG4tLVxuYmxvY2svYmxrLW1xLmMtMzQ2NS1cbmJsb2NrL2Jsay1tcS5jOjM0NjY6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcbmJsb2NrL2Jsay1tcS5jLTM0NjctXHRcdCAgICAgdW5zaWduZWQgaW50IGhjdHhfaWR4KVxuLS1cbmJsb2NrL2Jsay1tcS5jPTM1ODk9c3RhdGljIGludCBibGtfbXFfYWxsb2NfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LFxuLS1cbmJsb2NrL2Jsay1tcS5jLTM2NTktZmFpbDpcbmJsb2NrL2Jsay1tcS5jOjM2NjA6XHRibGtfbXFfZnJlZV9ycXMoc2V0LCB0YWdzLCBoY3R4X2lkeCk7XG5ibG9jay9ibGstbXEuYy0zNjYxLVx0cmV0dXJuIC1FTk9NRU07XG4tLVxuYmxvY2svYmxrLW1xLmM9NDE0NT12b2lkIGJsa19tcV9mcmVlX21hcF9hbmRfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LFxuLS1cbmJsb2NrL2Jsay1tcS5jLTQxNDktXHRpZiAodGFncykge1xuYmxvY2svYmxrLW1xLmM6NDE1MDpcdFx0YmxrX21xX2ZyZWVfcnFzKHNldCwgdGFncywgaGN0eF9pZHgpO1xuYmxvY2svYmxrLW1xLmMtNDE1MS1cdFx0YmxrX21xX2ZyZWVfcnFfbWFwKHNldCwgdGFncyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDc6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAxNgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDgzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb246CgoqKkludmVzdGlnYXRpbmcgdGhlIFNjb3BlIG9mIGBibGtfbXFfZnJlZV9ycXNgKioKCk9rYXksIHNvIGBibGtfbXFfZnJlZV9ycXNgIGlzIGEgZnVuY3Rpb24gaW4gdGhpcyBibG9jayBjb2RlLCBhbmQgaXQmIzM5O3Mgbm90IG1hcmtlZCBhcyBgc3RhdGljYCwgd2hpY2ggaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBOb24tc3RhdGljIGZ1bmN0aW9ucyBhcmUgcG90ZW50aWFsbHkgdmlzaWJsZSBvdXRzaWRlIHRoZWlyIGRlZmluaW5nIGZpbGUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHdoZXJlIGFuZCBob3cgdGhpcyBmdW5jdGlvbiBpcyBiZWluZyB1c2VkLgoKSSBzZWUgdGhhdCBgYmxrX21xX2ZyZWVfcnFzYCBpcyBjYWxsZWQgZnJvbSB0d28gb3RoZXIgZnVuY3Rpb25zOiBgYmxrX21xX2FsbG9jX3Jxc2Ag4oCTIHNwZWNpZmljYWxseSBpbiBpdHMgZmFpbHVyZSBwYXRoIOKAkyBhbmQgYGJsa19tcV9mcmVlX21hcF9hbmRfcnFzYC4gVGhhdOKAmXMgYSBnb29kIHN0YXJ0IGZvciB0cmFjaW5nIGl0cyBpbnRlcm5hbCB1c2Ugd2l0aGluIHRoZSBtb2R1bGUuCgpOb3csIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgaXQgaXMgKmFjdHVhbGx5KiBsaW1pdGVkIHRvIHRoZSBmaWxlIGBibG9jay9ibGstbXEuY2AuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgaXQmIzM5O3MgZXhwb3J0ZWQgb3IgaWYgc29tZXRoaW5nIG91dHNpZGUgdGhhdCBmaWxlIGlzIGFsc28gdXNpbmcgaXQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgZm9yIGV4dGVybmFsIGNhbGxzIHRvIGBibGtfbXFfZnJlZV9ycXNgIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgaW1wbGljYXRpb25zIG9mIGl0cyBub24tc3RhdGljIGRlY2xhcmF0aW9uLiBUaGlzIGludmVzdGlnYXRpb24gaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIG92ZXJhbGwgaW1wYWN0IG9uIHRoZSBibG9jayBsYXllciYjMzk7cyBtZW1vcnkgbWFuYWdlbWVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtibGtfbXFfZnJlZV9ycXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YmxvY2svYmxrLW1xLXNjaGVkLmM9NjcwPXZvaWQgYmxrX21xX3NjaGVkX2ZyZWVfcnFzKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxKVxuLS1cbmJsb2NrL2Jsay1tcS1zY2hlZC5jLTY3NS1cdGlmIChibGtfbXFfaXNfc2hhcmVkX3RhZ3MocS1cdTAwM2V0YWdfc2V0LVx1MDAzZWZsYWdzKSkge1xuYmxvY2svYmxrLW1xLXNjaGVkLmM6Njc2Olx0XHRibGtfbXFfZnJlZV9ycXMocS1cdTAwM2V0YWdfc2V0LCBxLVx1MDAzZXNjaGVkX3NoYXJlZF90YWdzLFxuYmxvY2svYmxrLW1xLXNjaGVkLmMtNjc3LVx0XHRcdFx0QkxLX01RX05PX0hDVFhfSURYKTtcbi0tXG5ibG9jay9ibGstbXEtc2NoZWQuYy02ODAtXHRcdFx0aWYgKGhjdHgtXHUwMDNlc2NoZWRfdGFncylcbmJsb2NrL2Jsay1tcS1zY2hlZC5jOjY4MTpcdFx0XHRcdGJsa19tcV9mcmVlX3JxcyhxLVx1MDAzZXRhZ19zZXQsXG5ibG9jay9ibGstbXEtc2NoZWQuYy02ODItXHRcdFx0XHRcdFx0aGN0eC1cdTAwM2VzY2hlZF90YWdzLCBpKTtcbi0tXG5ibG9jay9ibGstbXEuYz0zNDM3PXN0YXRpYyB2b2lkIGJsa19tcV9jbGVhcl9ycV9tYXBwaW5nKHN0cnVjdCBibGtfbXFfdGFncyAqZHJ2X3RhZ3MsXG4tLVxuYmxvY2svYmxrLW1xLmMtMzQ2NS1cbmJsb2NrL2Jsay1tcS5jOjM0NjY6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcbmJsb2NrL2Jsay1tcS5jLTM0NjctXHRcdCAgICAgdW5zaWduZWQgaW50IGhjdHhfaWR4KVxuLS1cbmJsb2NrL2Jsay1tcS5jPTM1ODk9c3RhdGljIGludCBibGtfbXFfYWxsb2NfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LFxuLS1cbmJsb2NrL2Jsay1tcS5jLTM2NTktZmFpbDpcbmJsb2NrL2Jsay1tcS5jOjM2NjA6XHRibGtfbXFfZnJlZV9ycXMoc2V0LCB0YWdzLCBoY3R4X2lkeCk7XG5ibG9jay9ibGstbXEuYy0zNjYxLVx0cmV0dXJuIC1FTk9NRU07XG4tLVxuYmxvY2svYmxrLW1xLmM9NDE0NT12b2lkIGJsa19tcV9mcmVlX21hcF9hbmRfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LFxuLS1cbmJsb2NrL2Jsay1tcS5jLTQxNDktXHRpZiAodGFncykge1xuYmxvY2svYmxrLW1xLmM6NDE1MDpcdFx0YmxrX21xX2ZyZWVfcnFzKHNldCwgdGFncywgaGN0eF9pZHgpO1xuYmxvY2svYmxrLW1xLmMtNDE1MS1cdFx0YmxrX21xX2ZyZWVfcnFfbWFwKHNldCwgdGFncyk7XG4tLVxuYmxvY2svYmxrLW1xLmg9NTg9dm9pZCBibGtfbXFfcHV0X3JxX3JlZihzdHJ1Y3QgcmVxdWVzdCAqcnEpO1xuLS1cbmJsb2NrL2Jsay1tcS5oLTYyLSAqL1xuYmxvY2svYmxrLW1xLmg6NjM6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcbmJsb2NrL2Jsay1tcS5oLTY0LVx0XHQgICAgIHVuc2lnbmVkIGludCBoY3R4X2lkeCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDc6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDA5OQoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDEyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBgYmxrX21xX2ZyZWVfcnFzYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGJsa19tcV9mcmVlX3Jxc2AuIEkga25vdyB0aGlzIGZ1bmN0aW9uIGlzIGNydWNpYWwsIGxpdmluZyB3aXRoaW4gYGJsb2NrL2Jsay1tcS1zY2hlZC5jYCBhbmQgYGJsb2NrL2Jsay1tcS5jYC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBwaWVjZSBvZiB0aGUgYmxvY2sgbGF5ZXIsIGFuZCB0aGF0IG1ha2VzIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBHaXZlbiBpdHMgc2lnbmlmaWNhbmNlLCBJIHdhbnQgdG8gZW5zdXJlIGl0cyByb2J1c3RuZXNzLgoKTXkgbWFpbiBmb2N1cyBpcyB1bmRvdWJ0ZWRseSBgYmxrX21xX2ZyZWVfcnFzYC4gSSBuZWVkIHRvIGVuc3VyZSBpdCYjMzk7cyB0ZXN0ZWQgdGhvcm91Z2hseS4gSSBhbHJlYWR5IGtub3cgdGhhdCBgQkxPQ0tgIGlzIGFsd2F5cyBlbmFibGVkLCB3aGljaCBpcyBlc3NlbnRpYWwgdG8gdGhlIGJsb2NrIGxheWVyLCBidXQgSSBzaG91bGQgcHJvYmFibHkgY29uZmlybSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgaW5mbHVlbmNlIGl0cyBiZWhhdmlvci4gSSBrbm93IGBDT05GSUdfQkxPQ0tgIGlzIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24sIGJ1dCBpdCBpcyB3b3J0aCBleHBsaWNpdGx5IGFkZGluZyB0aGF0IHRvIHRoZSBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA3OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCTE9DSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtibG9jay9LY29uZmlnLTQtI1xuYmxvY2svS2NvbmZpZzo1Om1lbnVjb25maWcgQkxPQ0tcbmJsb2NrL0tjb25maWctNi0gICAgICAgYm9vbCBcJiMzNDtFbmFibGUgdGhlIGJsb2NrIGxheWVyXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbmJsb2NrL0tjb25maWc9Mjc9aWYgQkxPQ0tcbmJsb2NrL0tjb25maWctMjgtXG5ibG9jay9LY29uZmlnOjI5OmNvbmZpZyBCTE9DS19MRUdBQ1lfQVVUT0xPQURcbmJsb2NrL0tjb25maWctMzAtXHRib29sIFwmIzM0O0xlZ2FjeSBhdXRvbG9hZGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxuYmxvY2svS2NvbmZpZz0yMTQ9Y29uZmlnIEJMS19QTVxuLS1cbmJsb2NrL0tjb25maWctMjE3LSMgZG8gbm90IHVzZSBpbiBuZXcgY29kZVxuYmxvY2svS2NvbmZpZzoyMTg6Y29uZmlnIEJMT0NLX0hPTERFUl9ERVBSRUNBVEVEXG5ibG9jay9LY29uZmlnLTIxOS1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjAzCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIEJsb2NrIExheWVyIE1lbW9yeSBNYW5hZ2VtZW50KioKClJpZ2h0LCBgQkxPQ0tgIHNlZW1zIGxpa2UgaXQmIzM5O3MgdGhlIGNyaXRpY2FsIHBpZWNlIGZvciB0aGlzIHBhcnRpY3VsYXIgaXNzdWUuIEkgbmVlZCB0byB6ZXJvIGluIG9uIHRoZSBleGFjdCBtZWNoYW5pc20sIHNvIGxldCYjMzk7cyBzdGFydCB3aXRoIGEgc3BlY2lmaWMgZnVuY3Rpb24uIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IGl0IGFsbCB3b3JrcyB1bmRlciB0aGUgaG9vZC4gVGhlIGJlc3QgcGxhY2UgdG8gZmluZCB0aGF0IGlzIHRoZSBgYmxrX21xX2ZyZWVfcnFzYCBmdW5jdGlvbi4gSSB3aWxsIGV4YW1pbmUgaXQgaW4gYGJsb2NrL2Jsay1tcS5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHZpZXcgb24gaG93IHRob3NlIHJlcXVlc3QgcXVldWVzIGFyZSBiZWluZyBtYW5hZ2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2Jsb2NrL2Jsay1tcS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzQ2MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDszNDYwOlx0XHRcdFx0XHRjbXB4Y2hnKFx1MDAyNmRydl90YWdzLVx1MDAzZXJxc1tpXSwgcnEsIE5VTEwpO1xuMzQ2MTpcdFx0XHRcdH1cbjM0NjI6XHRcdFx0fVxuMzQ2MzpcdFx0fVxuMzQ2NDpcdH1cbjM0NjU6XHRcbjM0NjY6XHR2b2lkIGJsa19tcV9mcmVlX3JxcyhzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKnNldCwgc3RydWN0IGJsa19tcV90YWdzICp0YWdzLFxuMzQ2NzpcdFx0XHQgICAgIHVuc2lnbmVkIGludCBoY3R4X2lkeClcbjM0Njg6XHR7XG4zNDY5Olx0XHRzdHJ1Y3QgYmxrX21xX3RhZ3MgKmRydl90YWdzO1xuMzQ3MDpcdFxuMzQ3MTpcdFx0aWYgKGxpc3RfZW1wdHkoXHUwMDI2dGFncy1cdTAwM2VwYWdlX2xpc3QpKVxuMzQ3MjpcdFx0XHRyZXR1cm47XG4zNDczOlx0XG4zNDc0Olx0XHRpZiAoYmxrX21xX2lzX3NoYXJlZF90YWdzKHNldC1cdTAwM2VmbGFncykpXG4zNDc1Olx0XHRcdGRydl90YWdzID0gc2V0LVx1MDAzZXNoYXJlZF90YWdzO1xuMzQ3NjpcdFx0ZWxzZSBpZiAoaGN0eF9pZHggXHUwMDNjIHNldC1cdTAwM2Vucl9od19xdWV1ZXMpXG4zNDc3Olx0XHRcdGRydl90YWdzID0gc2V0LVx1MDAzZXRhZ3NbaGN0eF9pZHhdO1xuMzQ3ODpcdFx0ZWxzZVxuMzQ3OTpcdFx0XHRkcnZfdGFncyA9IE5VTEw7XG4zNDgwOlx0XG4zNDgxOlx0XHRpZiAodGFncy1cdTAwM2VzdGF0aWNfcnFzIFx1MDAyNlx1MDAyNiBzZXQtXHUwMDNlb3BzLVx1MDAzZWV4aXRfcmVxdWVzdCkge1xuMzQ4MjpcdFx0XHRpbnQgaTtcbjM0ODM6XHRcbjM0ODQ6XHRcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgdGFncy1cdTAwM2Vucl90YWdzOyBpJiM0MzsmIzQzOykge1xuMzQ4NTpcdFx0XHRcdHN0cnVjdCByZXF1ZXN0ICpycSA9IHRhZ3MtXHUwMDNlc3RhdGljX3Jxc1tpXTtcbjM0ODY6XHRcbjM0ODc6XHRcdFx0XHRpZiAoIXJxKVxuMzQ4ODpcdFx0XHRcdFx0Y29udGludWU7XG4zNDg5Olx0XHRcdFx0c2V0LVx1MDAzZW9wcy1cdTAwM2VleGl0X3JlcXVlc3Qoc2V0LCBycSwgaGN0eF9pZHgpO1xuMzQ5MDpcdFx0XHRcdHRhZ3MtXHUwMDNlc3RhdGljX3Jxc1tpXSA9IE5VTEw7XG4zNDkxOlx0XHRcdH1cbjM0OTI6XHRcdH1cbjM0OTM6XHRcbjM0OTQ6XHRcdGJsa19tcV9jbGVhcl9ycV9tYXBwaW5nKGRydl90YWdzLCB0YWdzKTtcbjM0OTU6XHRcdC8qXG4zNDk2Olx0XHQgKiBGcmVlIHJlcXVlc3QgcGFnZXMgaW4gU1JDVSBjYWxsYmFjaywgd2hpY2ggaXMgY2FsbGVkIGZyb21cbjM0OTc6XHRcdCAqIGJsa19tcV9mcmVlX3RhZ3MoKS5cbjM0OTg6XHRcdCAqL1xuMzQ5OTpcdH1cbjM1MDA6XHRcbjM1MDE6XHR2b2lkIGJsa19tcV9mcmVlX3JxX21hcChzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKnNldCwgc3RydWN0IGJsa19tcV90YWdzICp0YWdzKVxuMzUwMjpcdHtcbjM1MDM6XHRcdGtmcmVlKHRhZ3MtXHUwMDNlcnFzKTtcbjM1MDQ6XHRcdHRhZ3MtXHUwMDNlcnFzID0gTlVMTDtcbjM1MDU6XHRcdGtmcmVlKHRhZ3MtXHUwMDNlc3RhdGljX3Jxcyk7XG4zNTA2Olx0XHR0YWdzLVx1MDAzZXN0YXRpY19ycXMgPSBOVUxMO1xuMzUwNzpcdFxuMzUwODpcdFx0YmxrX21xX2ZyZWVfdGFncyhzZXQsIHRhZ3MpO1xuMzUwOTpcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDc6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTUzNAoJCQkJCQkJb3V0cHV0OiAxMDEKCQkJCQkJCXRob3VnaHRzOiAxNzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQ3JpdGljYWwgQmxvY2sgTGF5ZXIgRml4KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIHdpdGhpbiBgYmxrX21xX2ZyZWVfcnFzYC4gU3BlY2lmaWNhbGx5LCB0aGUgaXNzdWUgYXJpc2VzIHdoZW4gYGhjdHhfaWR4YCBiZWNvbWVzIGxhcmdlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSB0b3RhbCBudW1iZXIgb2YgaGFyZHdhcmUgcXVldWVzLCB3aGljaCBjb3VsZCBsZWFkIHRvIHNlcmlvdXMgcHJvYmxlbXMgaW4gdGhlIGJsb2NrIGxheWVyLiBUaGlzIGlzIGEgY2xlYXItY3V0IGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiBhIGNvcmUgcGFydCBvZiB0aGUgYmxvY2sgbGF5ZXIuIEdpdmVuIHRoZSBwb3RlbnRpYWwgZm9yIGluc3RhYmlsaXR5IGFuZCB0aGUgY3JpdGljYWwgbmF0dXJlIG9mIHRoZSBhZmZlY3RlZCBjb2RlLCBmdXp6aW5nIGlzIGFuIGFic29sdXRlIG11c3QtZG8gZm9yIHRoaXMuIFRoZSBwcmltYXJ5IGZvY3VzIGZvciB0ZXN0aW5nLCBuYXR1cmFsbHksIGlzIGBibGtfbXFfZnJlZV9ycXNgLiBJIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGBCTE9DS2AgY29uZmlndXJhdGlvbiBpcyBlbmFibGVkLiBMZXQgbWUgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhhdCBgQ09ORklHX0JMT0NLYCBpcyB0aGUgcHJpbWFyeSBhbmQgcGVyaGFwcyBvbmx5IHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaGVyZS4gWWVzLCBpdCBsb29rcyBsaWtlIGl0LgoKTXkgYXNzZXNzbWVudCBpcyB0aGF0IHRoaXMgaXMgdmVyeSBpbXBvcnRhbnQuIEkgd2lsbCBzZXQgYFdvcnRoRnV6emluZz10cnVlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDc6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMT0NLJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YmxrX21xX2ZyZWVfcnFzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBibGtfbXFfZnJlZV9ycXNgIHdpdGhpbiB0aGUgY29yZSBibG9jayBsYXllciAoYmxrLW1xKSB3aGVuIGBoY3R4X2lkeGAgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGhhcmR3YXJlIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxPQ0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtibGtfbXFfZnJlZV9ycXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGJsa19tcV9mcmVlX3Jxc2Agd2l0aGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIChibGstbXEpIHdoZW4gYGhjdHhfaWR4YCBleGNlZWRzIHRoZSBudW1iZXIgb2YgaGFyZHdhcmUgcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDc6NTY6MzkuNzYxMDE5ODY1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk2OTIzOTk5NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQkxPQ0tcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJibGtfbXFfZnJlZV9ycXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyBpbiBgYmxrX21xX2ZyZWVfcnFzYCB3aXRoaW4gdGhlIGNvcmUgYmxvY2sgbGF5ZXIgKGJsay1tcSkgd2hlbiBgaGN0eF9pZHhgIGV4Y2VlZHMgdGhlIG51bWJlciBvZiBoYXJkd2FyZSBxdWV1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU2OjM5Ljc2MTAyNzY5NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzg0NDcwNzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOTU1YzFkYzFjMWU2Y2JmNzk0ZWE4Nzg4MWM0ZGQxNTFkOTAwNGJkY1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyA3IDA3OjU2OjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1tcS5jIGIvYmxvY2svYmxrLW1xLmNcXG5pbmRleCAyYzg1MDMzMGEzMmJjLi44ZTY3MjZiMzdjNjUxIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL2Jsay1tcS5jXFxuKysrIGIvYmxvY2svYmxrLW1xLmNcXG5AQCAtMzQ3Myw4ICszNDczLDEwIEBAIHZvaWQgYmxrX21xX2ZyZWVfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LCBzdHJ1Y3QgYmxrX21xX3RhZ3MgKnRhZ3MsXFxuIFxcbiBcXHRpZiAoYmxrX21xX2lzX3NoYXJlZF90YWdzKHNldC1cXHUwMDNlZmxhZ3MpKVxcbiBcXHRcXHRkcnZfdGFncyA9IHNldC1cXHUwMDNlc2hhcmVkX3RhZ3M7XFxuLVxcdGVsc2VcXG4rXFx0ZWxzZSBpZiAoaGN0eF9pZHggXFx1MDAzYyBzZXQtXFx1MDAzZW5yX2h3X3F1ZXVlcylcXG4gXFx0XFx0ZHJ2X3RhZ3MgPSBzZXQtXFx1MDAzZXRhZ3NbaGN0eF9pZHhdO1xcbitcXHRlbHNlXFxuK1xcdFxcdGRydl90YWdzID0gTlVMTDtcXG4gXFxuIFxcdGlmICh0YWdzLVxcdTAwM2VzdGF0aWNfcnFzIFxcdTAwMjZcXHUwMDI2IHNldC1cXHUwMDNlb3BzLVxcdTAwM2VleGl0X3JlcXVlc3QpIHtcXG4gXFx0XFx0aW50IGk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU2OjQwLjE0NjQ0MjMwNVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI5MzA2OTY3MzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMT0NLXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYmxrX21xX2ZyZWVfcnFzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGJsa19tcV9mcmVlX3Jxc2Agd2l0aGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIChibGstbXEpIHdoZW4gYGhjdHhfaWR4YCBleGNlZWRzIHRoZSBudW1iZXIgb2YgaGFyZHdhcmUgcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5NTVjMWRjMWMxZTZjYmY3OTRlYTg3ODgxYzRkZDE1MWQ5MDA0YmRjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgNyAwNzo1NjozOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1tcS5jIGIvYmxvY2svYmxrLW1xLmNcbmluZGV4IDJjODUwMzMwYTMyYmMuLjhlNjcyNmIzN2M2NTEgMTAwNjQ0XG4tLS0gYS9ibG9jay9ibGstbXEuY1xuKysrIGIvYmxvY2svYmxrLW1xLmNcbkBAIC0zNDczLDggKzM0NzMsMTAgQEAgdm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcbiBcbiBcdGlmIChibGtfbXFfaXNfc2hhcmVkX3RhZ3Moc2V0LVx1MDAzZWZsYWdzKSlcbiBcdFx0ZHJ2X3RhZ3MgPSBzZXQtXHUwMDNlc2hhcmVkX3RhZ3M7XG4tXHRlbHNlXG4rXHRlbHNlIGlmIChoY3R4X2lkeCBcdTAwM2Mgc2V0LVx1MDAzZW5yX2h3X3F1ZXVlcylcbiBcdFx0ZHJ2X3RhZ3MgPSBzZXQtXHUwMDNldGFnc1toY3R4X2lkeF07XG4rXHRlbHNlXG4rXHRcdGRydl90YWdzID0gTlVMTDtcbiBcbiBcdGlmICh0YWdzLVx1MDAzZXN0YXRpY19ycXMgXHUwMDI2XHUwMDI2IHNldC1cdTAwM2VvcHMtXHUwMDNlZXhpdF9yZXF1ZXN0KSB7XG4gXHRcdGludCBpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDc6NTY6NDAuMTQ2NDQ0MDI1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjI4NzkzMzQyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCbG9jayBMYXllciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBibG9jay9ibGstbXEuY2AuIEl0J3MgdG91Y2hpbmcgdGhlIGBibGtfbXFfZnJlZV9ycXNgIGZ1bmN0aW9uLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSB3aXRoaW4gdGhpcyBzbWFsbCBzbmlwcGV0IG9mIGNvZGUuIEkgc2VlIGEgY29uZGl0aW9uYWwgYmxvY2sgbm93IGFkZGVkIHRvIHNhZmVseSBoYW5kbGUgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzLlxuXG5CZWZvcmUsIGl0IHVzZWQgdG8gYmUgYSBzaW1wbGUgYGlmYC4uLiBgZWxzZWAsIGNoZWNraW5nIGlmIHNoYXJlZCB0YWdzIHdlcmUgdXNlZC4gTm93LCB0aGV5J3ZlIGludHJvZHVjZWQgYW5vdGhlciBgZWxzZSBpZmAgY29uZGl0aW9uLiBJdCBjaGVja3MgaWYgYGhjdHhfaWR4YCBpcyB3aXRoaW4gdGhlIGJvdW5kcyBvZiBgc2V0LVx1MDAzZW5yX2h3X3F1ZXVlc2AuIElmIGl0ICppcyosIHRoZW4gd2Ugc2FmZWx5IGFjY2VzcyB0aGUgcGVyLXF1ZXVlIHRhZ3MuIElmIGBoY3R4X2lkeGAgKmlzIG5vdCogd2l0aGluIGJvdW5kcywgdGhlbiBgZHJ2X3RhZ3NgIGlzIHNldCB0byBOVUxMLiBUaGlzIGltbWVkaWF0ZWx5IGp1bXBzIG91dCBhdCBtZSBhcyBhIGNyaXRpY2FsIGNoYW5nZSBiZWNhdXNlIGl0IHByZXZlbnRzIGEgcG90ZW50aWFsIG1lbW9yeSBhY2Nlc3MgdmlvbGF0aW9uIG9uIGBzZXQtXHUwMDNldGFnc2AuIFRoZSBpbnRlbnQgaXMgY2xlYXI6IHRvIGdyYWNlZnVsbHkgaGFuZGxlIGEgc2l0dWF0aW9uIHdoZXJlIGBoY3R4X2lkeGAgbWlnaHQgYmUgbGFyZ2VyIHRoYW4gdGhlIHZhbGlkIGhhcmR3YXJlIHF1ZXVlIGluZGV4LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZGVzaWduZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGRyaXZlciBkb2Vzbid0IHRyeSB0byBhY2Nlc3MgYW4gYXJyYXkgZWxlbWVudCBvdXRzaWRlIGl0cyBhbGxvY2F0ZWQgYm91bmRhcmllcy4gSSdsbCBuZWVkIHRvIGRpZyBkZWVwZXIgdG8gc2VlICp3aHkqIHRoaXMgb3V0LW9mLWJvdW5kcyBjb25kaXRpb24gY291bGQgaGFwcGVuIGluIHRoZSBmaXJzdCBwbGFjZSwgYnV0IHRoaXMgcGF0Y2ggcHJvdmlkZXMgYSB2ZXJ5IGNsZWFuIHNhZmV0eSBuZXQuIEknbGwgd2FudCB0byB2ZXJpZnkgdGhhdCB0aGUgaW50cm9kdWNlZCBgTlVMTGAgYXNzaWdubWVudCBpcyBoYW5kbGVkIGNvcnJlY3RseSBkb3duc3RyZWFtLiBObyBidWdzIGNyZWVwaW5nIGluIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDkxLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDc6NTY6NDYuNDM0Mzc5NTYyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5NDYxNjg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJsa19tcV9mcmVlX3Jxc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJibG9jay9ibGstbXEuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJibG9jay9ibGstbXEuYz0zNDM3PXN0YXRpYyB2b2lkIGJsa19tcV9jbGVhcl9ycV9tYXBwaW5nKHN0cnVjdCBibGtfbXFfdGFncyAqZHJ2X3RhZ3MsXFxuLS1cXG5ibG9jay9ibGstbXEuYy0zNDY1LVxcbmJsb2NrL2Jsay1tcS5jOjM0NjY6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcXG5ibG9jay9ibGstbXEuYy0zNDY3LVxcdFxcdCAgICAgdW5zaWduZWQgaW50IGhjdHhfaWR4KVxcbi0tXFxuYmxvY2svYmxrLW1xLmM9MzU4OT1zdGF0aWMgaW50IGJsa19tcV9hbGxvY19ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsXFxuLS1cXG5ibG9jay9ibGstbXEuYy0zNjU5LWZhaWw6XFxuYmxvY2svYmxrLW1xLmM6MzY2MDpcXHRibGtfbXFfZnJlZV9ycXMoc2V0LCB0YWdzLCBoY3R4X2lkeCk7XFxuYmxvY2svYmxrLW1xLmMtMzY2MS1cXHRyZXR1cm4gLUVOT01FTTtcXG4tLVxcbmJsb2NrL2Jsay1tcS5jPTQxNDU9dm9pZCBibGtfbXFfZnJlZV9tYXBfYW5kX3JxcyhzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKnNldCxcXG4tLVxcbmJsb2NrL2Jsay1tcS5jLTQxNDktXFx0aWYgKHRhZ3MpIHtcXG5ibG9jay9ibGstbXEuYzo0MTUwOlxcdFxcdGJsa19tcV9mcmVlX3JxcyhzZXQsIHRhZ3MsIGhjdHhfaWR4KTtcXG5ibG9jay9ibGstbXEuYy00MTUxLVxcdFxcdGJsa19tcV9mcmVlX3JxX21hcChzZXQsIHRhZ3MpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNzo1Njo0Ni40ODM4NDU0NjdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjY2NTQwMjAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhlIHNpdHVhdGlvbjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBTY29wZSBvZiBgYmxrX21xX2ZyZWVfcnFzYCoqXG5cbk9rYXksIHNvIGBibGtfbXFfZnJlZV9ycXNgIGlzIGEgZnVuY3Rpb24gaW4gdGhpcyBibG9jayBjb2RlLCBhbmQgaXQncyBub3QgbWFya2VkIGFzIGBzdGF0aWNgLCB3aGljaCBpbW1lZGlhdGVseSBwaXF1ZXMgbXkgaW50ZXJlc3QuIE5vbi1zdGF0aWMgZnVuY3Rpb25zIGFyZSBwb3RlbnRpYWxseSB2aXNpYmxlIG91dHNpZGUgdGhlaXIgZGVmaW5pbmcgZmlsZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYW5kIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIGJlaW5nIHVzZWQuXG5cbkkgc2VlIHRoYXQgYGJsa19tcV9mcmVlX3Jxc2AgaXMgY2FsbGVkIGZyb20gdHdvIG90aGVyIGZ1bmN0aW9uczogYGJsa19tcV9hbGxvY19ycXNgIOKAkyBzcGVjaWZpY2FsbHkgaW4gaXRzIGZhaWx1cmUgcGF0aCDigJMgYW5kIGBibGtfbXFfZnJlZV9tYXBfYW5kX3Jxc2AuIFRoYXTigJlzIGEgZ29vZCBzdGFydCBmb3IgdHJhY2luZyBpdHMgaW50ZXJuYWwgdXNlIHdpdGhpbiB0aGUgbW9kdWxlLlxuXG5Ob3csIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgaXQgaXMgKmFjdHVhbGx5KiBsaW1pdGVkIHRvIHRoZSBmaWxlIGBibG9jay9ibGstbXEuY2AuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgaXQncyBleHBvcnRlZCBvciBpZiBzb21ldGhpbmcgb3V0c2lkZSB0aGF0IGZpbGUgaXMgYWxzbyB1c2luZyBpdC4gSSdsbCBuZWVkIHRvIGNoZWNrIGZvciBleHRlcm5hbCBjYWxscyB0byBgYmxrX21xX2ZyZWVfcnFzYCB0byB1bmRlcnN0YW5kIHRoZSBmdWxsIGltcGxpY2F0aW9ucyBvZiBpdHMgbm9uLXN0YXRpYyBkZWNsYXJhdGlvbi4gVGhpcyBpbnZlc3RpZ2F0aW9uIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIGl0cyBvdmVyYWxsIGltcGFjdCBvbiB0aGUgYmxvY2sgbGF5ZXIncyBtZW1vcnkgbWFuYWdlbWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAxNiwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU2OjUxLjE1MDM4ODA3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MjYwMzA2MTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYmxrX21xX2ZyZWVfcnFzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJibG9jay9ibGstbXEtc2NoZWQuYz02NzA9dm9pZCBibGtfbXFfc2NoZWRfZnJlZV9ycXMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEpXFxuLS1cXG5ibG9jay9ibGstbXEtc2NoZWQuYy02NzUtXFx0aWYgKGJsa19tcV9pc19zaGFyZWRfdGFncyhxLVxcdTAwM2V0YWdfc2V0LVxcdTAwM2VmbGFncykpIHtcXG5ibG9jay9ibGstbXEtc2NoZWQuYzo2NzY6XFx0XFx0YmxrX21xX2ZyZWVfcnFzKHEtXFx1MDAzZXRhZ19zZXQsIHEtXFx1MDAzZXNjaGVkX3NoYXJlZF90YWdzLFxcbmJsb2NrL2Jsay1tcS1zY2hlZC5jLTY3Ny1cXHRcXHRcXHRcXHRCTEtfTVFfTk9fSENUWF9JRFgpO1xcbi0tXFxuYmxvY2svYmxrLW1xLXNjaGVkLmMtNjgwLVxcdFxcdFxcdGlmIChoY3R4LVxcdTAwM2VzY2hlZF90YWdzKVxcbmJsb2NrL2Jsay1tcS1zY2hlZC5jOjY4MTpcXHRcXHRcXHRcXHRibGtfbXFfZnJlZV9ycXMocS1cXHUwMDNldGFnX3NldCxcXG5ibG9jay9ibGstbXEtc2NoZWQuYy02ODItXFx0XFx0XFx0XFx0XFx0XFx0aGN0eC1cXHUwMDNlc2NoZWRfdGFncywgaSk7XFxuLS1cXG5ibG9jay9ibGstbXEuYz0zNDM3PXN0YXRpYyB2b2lkIGJsa19tcV9jbGVhcl9ycV9tYXBwaW5nKHN0cnVjdCBibGtfbXFfdGFncyAqZHJ2X3RhZ3MsXFxuLS1cXG5ibG9jay9ibGstbXEuYy0zNDY1LVxcbmJsb2NrL2Jsay1tcS5jOjM0NjY6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcXG5ibG9jay9ibGstbXEuYy0zNDY3LVxcdFxcdCAgICAgdW5zaWduZWQgaW50IGhjdHhfaWR4KVxcbi0tXFxuYmxvY2svYmxrLW1xLmM9MzU4OT1zdGF0aWMgaW50IGJsa19tcV9hbGxvY19ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsXFxuLS1cXG5ibG9jay9ibGstbXEuYy0zNjU5LWZhaWw6XFxuYmxvY2svYmxrLW1xLmM6MzY2MDpcXHRibGtfbXFfZnJlZV9ycXMoc2V0LCB0YWdzLCBoY3R4X2lkeCk7XFxuYmxvY2svYmxrLW1xLmMtMzY2MS1cXHRyZXR1cm4gLUVOT01FTTtcXG4tLVxcbmJsb2NrL2Jsay1tcS5jPTQxNDU9dm9pZCBibGtfbXFfZnJlZV9tYXBfYW5kX3JxcyhzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKnNldCxcXG4tLVxcbmJsb2NrL2Jsay1tcS5jLTQxNDktXFx0aWYgKHRhZ3MpIHtcXG5ibG9jay9ibGstbXEuYzo0MTUwOlxcdFxcdGJsa19tcV9mcmVlX3JxcyhzZXQsIHRhZ3MsIGhjdHhfaWR4KTtcXG5ibG9jay9ibGstbXEuYy00MTUxLVxcdFxcdGJsa19tcV9mcmVlX3JxX21hcChzZXQsIHRhZ3MpO1xcbi0tXFxuYmxvY2svYmxrLW1xLmg9NTg9dm9pZCBibGtfbXFfcHV0X3JxX3JlZihzdHJ1Y3QgcmVxdWVzdCAqcnEpO1xcbi0tXFxuYmxvY2svYmxrLW1xLmgtNjItICovXFxuYmxvY2svYmxrLW1xLmg6NjM6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcXG5ibG9jay9ibGstbXEuaC02NC1cXHRcXHQgICAgIHVuc2lnbmVkIGludCBoY3R4X2lkeCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU2OjUyLjk3NjQyNDMyOVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwMDQ4MDk5ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgYGJsa19tcV9mcmVlX3Jxc2AgRnVuY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgYmxrX21xX2ZyZWVfcnFzYC4gSSBrbm93IHRoaXMgZnVuY3Rpb24gaXMgY3J1Y2lhbCwgbGl2aW5nIHdpdGhpbiBgYmxvY2svYmxrLW1xLXNjaGVkLmNgIGFuZCBgYmxvY2svYmxrLW1xLmNgLiBJdCdzIGEgZnVuZGFtZW50YWwgcGllY2Ugb2YgdGhlIGJsb2NrIGxheWVyLCBhbmQgdGhhdCBtYWtlcyBpdCBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gR2l2ZW4gaXRzIHNpZ25pZmljYW5jZSwgSSB3YW50IHRvIGVuc3VyZSBpdHMgcm9idXN0bmVzcy5cblxuTXkgbWFpbiBmb2N1cyBpcyB1bmRvdWJ0ZWRseSBgYmxrX21xX2ZyZWVfcnFzYC4gSSBuZWVkIHRvIGVuc3VyZSBpdCdzIHRlc3RlZCB0aG9yb3VnaGx5LiBJIGFscmVhZHkga25vdyB0aGF0IGBCTE9DS2AgaXMgYWx3YXlzIGVuYWJsZWQsIHdoaWNoIGlzIGVzc2VudGlhbCB0byB0aGUgYmxvY2sgbGF5ZXIsIGJ1dCBJIHNob3VsZCBwcm9iYWJseSBjb25maXJtIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBpbmZsdWVuY2UgaXRzIGJlaGF2aW9yLiBJIGtub3cgYENPTkZJR19CTE9DS2AgaXMgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiwgYnV0IGl0IGlzIHdvcnRoIGV4cGxpY2l0bHkgYWRkaW5nIHRoYXQgdG8gdGhlIGNvbmZpZ3VyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwOTksIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDc6NTY6NTcuOTgxMjM4MjE4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MDUwNzM3NDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJMT0NLXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJibG9jay9LY29uZmlnLTQtI1xcbmJsb2NrL0tjb25maWc6NTptZW51Y29uZmlnIEJMT0NLXFxuYmxvY2svS2NvbmZpZy02LSAgICAgICBib29sIFxcXCJFbmFibGUgdGhlIGJsb2NrIGxheWVyXFxcIiBpZiBFWFBFUlRcXG4tLVxcbmJsb2NrL0tjb25maWc9Mjc9aWYgQkxPQ0tcXG5ibG9jay9LY29uZmlnLTI4LVxcbmJsb2NrL0tjb25maWc6Mjk6Y29uZmlnIEJMT0NLX0xFR0FDWV9BVVRPTE9BRFxcbmJsb2NrL0tjb25maWctMzAtXFx0Ym9vbCBcXFwiTGVnYWN5IGF1dG9sb2FkaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5ibG9jay9LY29uZmlnPTIxND1jb25maWcgQkxLX1BNXFxuLS1cXG5ibG9jay9LY29uZmlnLTIxNy0jIGRvIG5vdCB1c2UgaW4gbmV3IGNvZGVcXG5ibG9jay9LY29uZmlnOjIxODpjb25maWcgQkxPQ0tfSE9MREVSX0RFUFJFQ0FURURcXG5ibG9jay9LY29uZmlnLTIxOS1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU2OjU5Ljg4NjMxNTQwOVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MzcwOTgyMDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyBCbG9jayBMYXllciBNZW1vcnkgTWFuYWdlbWVudCoqXG5cblJpZ2h0LCBgQkxPQ0tgIHNlZW1zIGxpa2UgaXQncyB0aGUgY3JpdGljYWwgcGllY2UgZm9yIHRoaXMgcGFydGljdWxhciBpc3N1ZS4gSSBuZWVkIHRvIHplcm8gaW4gb24gdGhlIGV4YWN0IG1lY2hhbmlzbSwgc28gbGV0J3Mgc3RhcnQgd2l0aCBhIHNwZWNpZmljIGZ1bmN0aW9uLiBJJ2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IGl0IGFsbCB3b3JrcyB1bmRlciB0aGUgaG9vZC4gVGhlIGJlc3QgcGxhY2UgdG8gZmluZCB0aGF0IGlzIHRoZSBgYmxrX21xX2ZyZWVfcnFzYCBmdW5jdGlvbi4gSSB3aWxsIGV4YW1pbmUgaXQgaW4gYGJsb2NrL2Jsay1tcS5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHZpZXcgb24gaG93IHRob3NlIHJlcXVlc3QgcXVldWVzIGFyZSBiZWluZyBtYW5hZ2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjAzLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDc6NTc6MDMuNDIzNDE2MDZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEzMjgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImJsb2NrL2Jsay1tcS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDM0NjAsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjM0NjA6XFx0XFx0XFx0XFx0XFx0Y21weGNoZyhcXHUwMDI2ZHJ2X3RhZ3MtXFx1MDAzZXJxc1tpXSwgcnEsIE5VTEwpO1xcbjM0NjE6XFx0XFx0XFx0XFx0fVxcbjM0NjI6XFx0XFx0XFx0fVxcbjM0NjM6XFx0XFx0fVxcbjM0NjQ6XFx0fVxcbjM0NjU6XFx0XFxuMzQ2NjpcXHR2b2lkIGJsa19tcV9mcmVlX3JxcyhzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKnNldCwgc3RydWN0IGJsa19tcV90YWdzICp0YWdzLFxcbjM0Njc6XFx0XFx0XFx0ICAgICB1bnNpZ25lZCBpbnQgaGN0eF9pZHgpXFxuMzQ2ODpcXHR7XFxuMzQ2OTpcXHRcXHRzdHJ1Y3QgYmxrX21xX3RhZ3MgKmRydl90YWdzO1xcbjM0NzA6XFx0XFxuMzQ3MTpcXHRcXHRpZiAobGlzdF9lbXB0eShcXHUwMDI2dGFncy1cXHUwMDNlcGFnZV9saXN0KSlcXG4zNDcyOlxcdFxcdFxcdHJldHVybjtcXG4zNDczOlxcdFxcbjM0NzQ6XFx0XFx0aWYgKGJsa19tcV9pc19zaGFyZWRfdGFncyhzZXQtXFx1MDAzZWZsYWdzKSlcXG4zNDc1OlxcdFxcdFxcdGRydl90YWdzID0gc2V0LVxcdTAwM2VzaGFyZWRfdGFncztcXG4zNDc2OlxcdFxcdGVsc2UgaWYgKGhjdHhfaWR4IFxcdTAwM2Mgc2V0LVxcdTAwM2Vucl9od19xdWV1ZXMpXFxuMzQ3NzpcXHRcXHRcXHRkcnZfdGFncyA9IHNldC1cXHUwMDNldGFnc1toY3R4X2lkeF07XFxuMzQ3ODpcXHRcXHRlbHNlXFxuMzQ3OTpcXHRcXHRcXHRkcnZfdGFncyA9IE5VTEw7XFxuMzQ4MDpcXHRcXG4zNDgxOlxcdFxcdGlmICh0YWdzLVxcdTAwM2VzdGF0aWNfcnFzIFxcdTAwMjZcXHUwMDI2IHNldC1cXHUwMDNlb3BzLVxcdTAwM2VleGl0X3JlcXVlc3QpIHtcXG4zNDgyOlxcdFxcdFxcdGludCBpO1xcbjM0ODM6XFx0XFxuMzQ4NDpcXHRcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgdGFncy1cXHUwMDNlbnJfdGFnczsgaSsrKSB7XFxuMzQ4NTpcXHRcXHRcXHRcXHRzdHJ1Y3QgcmVxdWVzdCAqcnEgPSB0YWdzLVxcdTAwM2VzdGF0aWNfcnFzW2ldO1xcbjM0ODY6XFx0XFxuMzQ4NzpcXHRcXHRcXHRcXHRpZiAoIXJxKVxcbjM0ODg6XFx0XFx0XFx0XFx0XFx0Y29udGludWU7XFxuMzQ4OTpcXHRcXHRcXHRcXHRzZXQtXFx1MDAzZW9wcy1cXHUwMDNlZXhpdF9yZXF1ZXN0KHNldCwgcnEsIGhjdHhfaWR4KTtcXG4zNDkwOlxcdFxcdFxcdFxcdHRhZ3MtXFx1MDAzZXN0YXRpY19ycXNbaV0gPSBOVUxMO1xcbjM0OTE6XFx0XFx0XFx0fVxcbjM0OTI6XFx0XFx0fVxcbjM0OTM6XFx0XFxuMzQ5NDpcXHRcXHRibGtfbXFfY2xlYXJfcnFfbWFwcGluZyhkcnZfdGFncywgdGFncyk7XFxuMzQ5NTpcXHRcXHQvKlxcbjM0OTY6XFx0XFx0ICogRnJlZSByZXF1ZXN0IHBhZ2VzIGluIFNSQ1UgY2FsbGJhY2ssIHdoaWNoIGlzIGNhbGxlZCBmcm9tXFxuMzQ5NzpcXHRcXHQgKiBibGtfbXFfZnJlZV90YWdzKCkuXFxuMzQ5ODpcXHRcXHQgKi9cXG4zNDk5OlxcdH1cXG4zNTAwOlxcdFxcbjM1MDE6XFx0dm9pZCBibGtfbXFfZnJlZV9ycV9tYXAoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncylcXG4zNTAyOlxcdHtcXG4zNTAzOlxcdFxcdGtmcmVlKHRhZ3MtXFx1MDAzZXJxcyk7XFxuMzUwNDpcXHRcXHR0YWdzLVxcdTAwM2VycXMgPSBOVUxMO1xcbjM1MDU6XFx0XFx0a2ZyZWUodGFncy1cXHUwMDNlc3RhdGljX3Jxcyk7XFxuMzUwNjpcXHRcXHR0YWdzLVxcdTAwM2VzdGF0aWNfcnFzID0gTlVMTDtcXG4zNTA3OlxcdFxcbjM1MDg6XFx0XFx0YmxrX21xX2ZyZWVfdGFncyhzZXQsIHRhZ3MpO1xcbjM1MDk6XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNzo1NzowMy40MjM2MzE4OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTQ2MzM2OTU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIENyaXRpY2FsIEJsb2NrIExheWVyIEZpeCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIHdpdGhpbiBgYmxrX21xX2ZyZWVfcnFzYC4gU3BlY2lmaWNhbGx5LCB0aGUgaXNzdWUgYXJpc2VzIHdoZW4gYGhjdHhfaWR4YCBiZWNvbWVzIGxhcmdlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSB0b3RhbCBudW1iZXIgb2YgaGFyZHdhcmUgcXVldWVzLCB3aGljaCBjb3VsZCBsZWFkIHRvIHNlcmlvdXMgcHJvYmxlbXMgaW4gdGhlIGJsb2NrIGxheWVyLiBUaGlzIGlzIGEgY2xlYXItY3V0IGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiBhIGNvcmUgcGFydCBvZiB0aGUgYmxvY2sgbGF5ZXIuIEdpdmVuIHRoZSBwb3RlbnRpYWwgZm9yIGluc3RhYmlsaXR5IGFuZCB0aGUgY3JpdGljYWwgbmF0dXJlIG9mIHRoZSBhZmZlY3RlZCBjb2RlLCBmdXp6aW5nIGlzIGFuIGFic29sdXRlIG11c3QtZG8gZm9yIHRoaXMuIFRoZSBwcmltYXJ5IGZvY3VzIGZvciB0ZXN0aW5nLCBuYXR1cmFsbHksIGlzIGBibGtfbXFfZnJlZV9ycXNgLiBJIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGBCTE9DS2AgY29uZmlndXJhdGlvbiBpcyBlbmFibGVkLiBMZXQgbWUgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhhdCBgQ09ORklHX0JMT0NLYCBpcyB0aGUgcHJpbWFyeSBhbmQgcGVyaGFwcyBvbmx5IHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaGVyZS4gWWVzLCBpdCBsb29rcyBsaWtlIGl0LlxuXG5NeSBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBpcyB2ZXJ5IGltcG9ydGFudC4gSSB3aWxsIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTM0LCJPdXRwdXRUb2tlbnMiOjEwMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU3OjA5LjM2OTk3MjM4OVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgzNDM0MTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCTE9DS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJsa19tcV9mcmVlX3Jxc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBibGtfbXFfZnJlZV9ycXNgIHdpdGhpbiB0aGUgY29yZSBibG9jayBsYXllciAoYmxrLW1xKSB3aGVuIGBoY3R4X2lkeGAgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGhhcmR3YXJlIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCTE9DS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJsa19tcV9mcmVlX3Jxc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBibGtfbXFfZnJlZV9ycXNgIHdpdGhpbiB0aGUgY29yZSBibG9jayBsYXllciAoYmxrLW1xKSB3aGVuIGBoY3R4X2lkeGAgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGhhcmR3YXJlIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowj5kts[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-07 07:55:33 +0000 UTC FinishedAt: 2026-08-07 07:57:11 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLOCK" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLOCK" ], "series_id": "9877783c-d219-4488-a60a-1b4ae2cd7f73" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "blk_mq_free_rqs" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA3OjU2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMT0NLJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YmxrX21xX2ZyZWVfcnFzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBibGtfbXFfZnJlZV9ycXNgIHdpdGhpbiB0aGUgY29yZSBibG9jayBsYXllciAoYmxrLW1xKSB3aGVuIGBoY3R4X2lkeGAgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGhhcmR3YXJlIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDk1NWMxZGMxYzFlNmNiZjc5NGVhODc4ODFjNGRkMTUxZDkwMDRiZGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyA3IDA3OjU2OjM4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1tcS5jIGIvYmxvY2svYmxrLW1xLmNcbmluZGV4IDJjODUwMzMwYTMyYmMuLjhlNjcyNmIzN2M2NTEgMTAwNjQ0XG4tLS0gYS9ibG9jay9ibGstbXEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svYmxrLW1xLmNcbkBAIC0zNDczLDggJiM0MzszNDczLDEwIEBAIHZvaWQgYmxrX21xX2ZyZWVfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LCBzdHJ1Y3QgYmxrX21xX3RhZ3MgKnRhZ3MsXG4gXG4gXHRpZiAoYmxrX21xX2lzX3NoYXJlZF90YWdzKHNldC1cdTAwM2VmbGFncykpXG4gXHRcdGRydl90YWdzID0gc2V0LVx1MDAzZXNoYXJlZF90YWdzO1xuLVx0ZWxzZVxuJiM0MztcdGVsc2UgaWYgKGhjdHhfaWR4IFx1MDAzYyBzZXQtXHUwMDNlbnJfaHdfcXVldWVzKVxuIFx0XHRkcnZfdGFncyA9IHNldC1cdTAwM2V0YWdzW2hjdHhfaWR4XTtcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRkcnZfdGFncyA9IE5VTEw7XG4gXG4gXHRpZiAodGFncy1cdTAwM2VzdGF0aWNfcnFzIFx1MDAyNlx1MDAyNiBzZXQtXHUwMDNlb3BzLVx1MDAzZWV4aXRfcmVxdWVzdCkge1xuIFx0XHRpbnQgaTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxPQ0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtibGtfbXFfZnJlZV9ycXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGJsa19tcV9mcmVlX3Jxc2Agd2l0aGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIChibGstbXEpIHdoZW4gYGhjdHhfaWR4YCBleGNlZWRzIHRoZSBudW1iZXIgb2YgaGFyZHdhcmUgcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOTU1YzFkYzFjMWU2Y2JmNzk0ZWE4Nzg4MWM0ZGQxNTFkOTAwNGJkYwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDcgMDc6NTY6MzggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9ibG9jay9ibGstbXEuYyBiL2Jsb2NrL2Jsay1tcS5jCmluZGV4IDJjODUwMzMwYTMyYmMuLjhlNjcyNmIzN2M2NTEgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1tcS5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL2Jsay1tcS5jCkBAIC0zNDczLDggJiM0MzszNDczLDEwIEBAIHZvaWQgYmxrX21xX2ZyZWVfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LCBzdHJ1Y3QgYmxrX21xX3RhZ3MgKnRhZ3MsCiAKIAlpZiAoYmxrX21xX2lzX3NoYXJlZF90YWdzKHNldC0mZ3Q7ZmxhZ3MpKQogCQlkcnZfdGFncyA9IHNldC0mZ3Q7c2hhcmVkX3RhZ3M7Ci0JZWxzZQomIzQzOwllbHNlIGlmIChoY3R4X2lkeCAmbHQ7IHNldC0mZ3Q7bnJfaHdfcXVldWVzKQogCQlkcnZfdGFncyA9IHNldC0mZ3Q7dGFnc1toY3R4X2lkeF07CiYjNDM7CWVsc2UKJiM0MzsJCWRydl90YWdzID0gTlVMTDsKIAogCWlmICh0YWdzLSZndDtzdGF0aWNfcnFzICZhbXA7JmFtcDsgc2V0LSZndDtvcHMtJmd0O2V4aXRfcmVxdWVzdCkgewogCQlpbnQgaTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDc6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5MQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDE5NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBCbG9jayBMYXllciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGJsb2NrL2Jsay1tcS5jYC4gSXQmIzM5O3MgdG91Y2hpbmcgdGhlIGBibGtfbXFfZnJlZV9ycXNgIGZ1bmN0aW9uLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSB3aXRoaW4gdGhpcyBzbWFsbCBzbmlwcGV0IG9mIGNvZGUuIEkgc2VlIGEgY29uZGl0aW9uYWwgYmxvY2sgbm93IGFkZGVkIHRvIHNhZmVseSBoYW5kbGUgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzLgoKQmVmb3JlLCBpdCB1c2VkIHRvIGJlIGEgc2ltcGxlIGBpZmAuLi4gYGVsc2VgLCBjaGVja2luZyBpZiBzaGFyZWQgdGFncyB3ZXJlIHVzZWQuIE5vdywgdGhleSYjMzk7dmUgaW50cm9kdWNlZCBhbm90aGVyIGBlbHNlIGlmYCBjb25kaXRpb24uIEl0IGNoZWNrcyBpZiBgaGN0eF9pZHhgIGlzIHdpdGhpbiB0aGUgYm91bmRzIG9mIGBzZXQtJmd0O25yX2h3X3F1ZXVlc2AuIElmIGl0ICppcyosIHRoZW4gd2Ugc2FmZWx5IGFjY2VzcyB0aGUgcGVyLXF1ZXVlIHRhZ3MuIElmIGBoY3R4X2lkeGAgKmlzIG5vdCogd2l0aGluIGJvdW5kcywgdGhlbiBgZHJ2X3RhZ3NgIGlzIHNldCB0byBOVUxMLiBUaGlzIGltbWVkaWF0ZWx5IGp1bXBzIG91dCBhdCBtZSBhcyBhIGNyaXRpY2FsIGNoYW5nZSBiZWNhdXNlIGl0IHByZXZlbnRzIGEgcG90ZW50aWFsIG1lbW9yeSBhY2Nlc3MgdmlvbGF0aW9uIG9uIGBzZXQtJmd0O3RhZ3NgLiBUaGUgaW50ZW50IGlzIGNsZWFyOiB0byBncmFjZWZ1bGx5IGhhbmRsZSBhIHNpdHVhdGlvbiB3aGVyZSBgaGN0eF9pZHhgIG1pZ2h0IGJlIGxhcmdlciB0aGFuIHRoZSB2YWxpZCBoYXJkd2FyZSBxdWV1ZSBpbmRleC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGRlc2lnbmVkIHRvIGVuc3VyZSB0aGF0IHRoZSBkcml2ZXIgZG9lc24mIzM5O3QgdHJ5IHRvIGFjY2VzcyBhbiBhcnJheSBlbGVtZW50IG91dHNpZGUgaXRzIGFsbG9jYXRlZCBib3VuZGFyaWVzLiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBkZWVwZXIgdG8gc2VlICp3aHkqIHRoaXMgb3V0LW9mLWJvdW5kcyBjb25kaXRpb24gY291bGQgaGFwcGVuIGluIHRoZSBmaXJzdCBwbGFjZSwgYnV0IHRoaXMgcGF0Y2ggcHJvdmlkZXMgYSB2ZXJ5IGNsZWFuIHNhZmV0eSBuZXQuIEkmIzM5O2xsIHdhbnQgdG8gdmVyaWZ5IHRoYXQgdGhlIGludHJvZHVjZWQgYE5VTExgIGFzc2lnbm1lbnQgaXMgaGFuZGxlZCBjb3JyZWN0bHkgZG93bnN0cmVhbS4gTm8gYnVncyBjcmVlcGluZyBpbiB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtibGtfbXFfZnJlZV9ycXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtibG9jay9ibGstbXEuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtibG9jay9ibGstbXEuYz0zNDM3PXN0YXRpYyB2b2lkIGJsa19tcV9jbGVhcl9ycV9tYXBwaW5nKHN0cnVjdCBibGtfbXFfdGFncyAqZHJ2X3RhZ3MsXG4tLVxuYmxvY2svYmxrLW1xLmMtMzQ2NS1cbmJsb2NrL2Jsay1tcS5jOjM0NjY6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcbmJsb2NrL2Jsay1tcS5jLTM0NjctXHRcdCAgICAgdW5zaWduZWQgaW50IGhjdHhfaWR4KVxuLS1cbmJsb2NrL2Jsay1tcS5jPTM1ODk9c3RhdGljIGludCBibGtfbXFfYWxsb2NfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LFxuLS1cbmJsb2NrL2Jsay1tcS5jLTM2NTktZmFpbDpcbmJsb2NrL2Jsay1tcS5jOjM2NjA6XHRibGtfbXFfZnJlZV9ycXMoc2V0LCB0YWdzLCBoY3R4X2lkeCk7XG5ibG9jay9ibGstbXEuYy0zNjYxLVx0cmV0dXJuIC1FTk9NRU07XG4tLVxuYmxvY2svYmxrLW1xLmM9NDE0NT12b2lkIGJsa19tcV9mcmVlX21hcF9hbmRfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LFxuLS1cbmJsb2NrL2Jsay1tcS5jLTQxNDktXHRpZiAodGFncykge1xuYmxvY2svYmxrLW1xLmM6NDE1MDpcdFx0YmxrX21xX2ZyZWVfcnFzKHNldCwgdGFncywgaGN0eF9pZHgpO1xuYmxvY2svYmxrLW1xLmMtNDE1MS1cdFx0YmxrX21xX2ZyZWVfcnFfbWFwKHNldCwgdGFncyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDc6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAxNgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDgzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb246CgoqKkludmVzdGlnYXRpbmcgdGhlIFNjb3BlIG9mIGBibGtfbXFfZnJlZV9ycXNgKioKCk9rYXksIHNvIGBibGtfbXFfZnJlZV9ycXNgIGlzIGEgZnVuY3Rpb24gaW4gdGhpcyBibG9jayBjb2RlLCBhbmQgaXQmIzM5O3Mgbm90IG1hcmtlZCBhcyBgc3RhdGljYCwgd2hpY2ggaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBOb24tc3RhdGljIGZ1bmN0aW9ucyBhcmUgcG90ZW50aWFsbHkgdmlzaWJsZSBvdXRzaWRlIHRoZWlyIGRlZmluaW5nIGZpbGUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHdoZXJlIGFuZCBob3cgdGhpcyBmdW5jdGlvbiBpcyBiZWluZyB1c2VkLgoKSSBzZWUgdGhhdCBgYmxrX21xX2ZyZWVfcnFzYCBpcyBjYWxsZWQgZnJvbSB0d28gb3RoZXIgZnVuY3Rpb25zOiBgYmxrX21xX2FsbG9jX3Jxc2Ag4oCTIHNwZWNpZmljYWxseSBpbiBpdHMgZmFpbHVyZSBwYXRoIOKAkyBhbmQgYGJsa19tcV9mcmVlX21hcF9hbmRfcnFzYC4gVGhhdOKAmXMgYSBnb29kIHN0YXJ0IGZvciB0cmFjaW5nIGl0cyBpbnRlcm5hbCB1c2Ugd2l0aGluIHRoZSBtb2R1bGUuCgpOb3csIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgaXQgaXMgKmFjdHVhbGx5KiBsaW1pdGVkIHRvIHRoZSBmaWxlIGBibG9jay9ibGstbXEuY2AuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgaXQmIzM5O3MgZXhwb3J0ZWQgb3IgaWYgc29tZXRoaW5nIG91dHNpZGUgdGhhdCBmaWxlIGlzIGFsc28gdXNpbmcgaXQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgZm9yIGV4dGVybmFsIGNhbGxzIHRvIGBibGtfbXFfZnJlZV9ycXNgIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgaW1wbGljYXRpb25zIG9mIGl0cyBub24tc3RhdGljIGRlY2xhcmF0aW9uLiBUaGlzIGludmVzdGlnYXRpb24gaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIG92ZXJhbGwgaW1wYWN0IG9uIHRoZSBibG9jayBsYXllciYjMzk7cyBtZW1vcnkgbWFuYWdlbWVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtibGtfbXFfZnJlZV9ycXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YmxvY2svYmxrLW1xLXNjaGVkLmM9NjcwPXZvaWQgYmxrX21xX3NjaGVkX2ZyZWVfcnFzKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxKVxuLS1cbmJsb2NrL2Jsay1tcS1zY2hlZC5jLTY3NS1cdGlmIChibGtfbXFfaXNfc2hhcmVkX3RhZ3MocS1cdTAwM2V0YWdfc2V0LVx1MDAzZWZsYWdzKSkge1xuYmxvY2svYmxrLW1xLXNjaGVkLmM6Njc2Olx0XHRibGtfbXFfZnJlZV9ycXMocS1cdTAwM2V0YWdfc2V0LCBxLVx1MDAzZXNjaGVkX3NoYXJlZF90YWdzLFxuYmxvY2svYmxrLW1xLXNjaGVkLmMtNjc3LVx0XHRcdFx0QkxLX01RX05PX0hDVFhfSURYKTtcbi0tXG5ibG9jay9ibGstbXEtc2NoZWQuYy02ODAtXHRcdFx0aWYgKGhjdHgtXHUwMDNlc2NoZWRfdGFncylcbmJsb2NrL2Jsay1tcS1zY2hlZC5jOjY4MTpcdFx0XHRcdGJsa19tcV9mcmVlX3JxcyhxLVx1MDAzZXRhZ19zZXQsXG5ibG9jay9ibGstbXEtc2NoZWQuYy02ODItXHRcdFx0XHRcdFx0aGN0eC1cdTAwM2VzY2hlZF90YWdzLCBpKTtcbi0tXG5ibG9jay9ibGstbXEuYz0zNDM3PXN0YXRpYyB2b2lkIGJsa19tcV9jbGVhcl9ycV9tYXBwaW5nKHN0cnVjdCBibGtfbXFfdGFncyAqZHJ2X3RhZ3MsXG4tLVxuYmxvY2svYmxrLW1xLmMtMzQ2NS1cbmJsb2NrL2Jsay1tcS5jOjM0NjY6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcbmJsb2NrL2Jsay1tcS5jLTM0NjctXHRcdCAgICAgdW5zaWduZWQgaW50IGhjdHhfaWR4KVxuLS1cbmJsb2NrL2Jsay1tcS5jPTM1ODk9c3RhdGljIGludCBibGtfbXFfYWxsb2NfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LFxuLS1cbmJsb2NrL2Jsay1tcS5jLTM2NTktZmFpbDpcbmJsb2NrL2Jsay1tcS5jOjM2NjA6XHRibGtfbXFfZnJlZV9ycXMoc2V0LCB0YWdzLCBoY3R4X2lkeCk7XG5ibG9jay9ibGstbXEuYy0zNjYxLVx0cmV0dXJuIC1FTk9NRU07XG4tLVxuYmxvY2svYmxrLW1xLmM9NDE0NT12b2lkIGJsa19tcV9mcmVlX21hcF9hbmRfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LFxuLS1cbmJsb2NrL2Jsay1tcS5jLTQxNDktXHRpZiAodGFncykge1xuYmxvY2svYmxrLW1xLmM6NDE1MDpcdFx0YmxrX21xX2ZyZWVfcnFzKHNldCwgdGFncywgaGN0eF9pZHgpO1xuYmxvY2svYmxrLW1xLmMtNDE1MS1cdFx0YmxrX21xX2ZyZWVfcnFfbWFwKHNldCwgdGFncyk7XG4tLVxuYmxvY2svYmxrLW1xLmg9NTg9dm9pZCBibGtfbXFfcHV0X3JxX3JlZihzdHJ1Y3QgcmVxdWVzdCAqcnEpO1xuLS1cbmJsb2NrL2Jsay1tcS5oLTYyLSAqL1xuYmxvY2svYmxrLW1xLmg6NjM6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcbmJsb2NrL2Jsay1tcS5oLTY0LVx0XHQgICAgIHVuc2lnbmVkIGludCBoY3R4X2lkeCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDc6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDA5OQoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDEyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBgYmxrX21xX2ZyZWVfcnFzYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGJsa19tcV9mcmVlX3Jxc2AuIEkga25vdyB0aGlzIGZ1bmN0aW9uIGlzIGNydWNpYWwsIGxpdmluZyB3aXRoaW4gYGJsb2NrL2Jsay1tcS1zY2hlZC5jYCBhbmQgYGJsb2NrL2Jsay1tcS5jYC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBwaWVjZSBvZiB0aGUgYmxvY2sgbGF5ZXIsIGFuZCB0aGF0IG1ha2VzIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBHaXZlbiBpdHMgc2lnbmlmaWNhbmNlLCBJIHdhbnQgdG8gZW5zdXJlIGl0cyByb2J1c3RuZXNzLgoKTXkgbWFpbiBmb2N1cyBpcyB1bmRvdWJ0ZWRseSBgYmxrX21xX2ZyZWVfcnFzYC4gSSBuZWVkIHRvIGVuc3VyZSBpdCYjMzk7cyB0ZXN0ZWQgdGhvcm91Z2hseS4gSSBhbHJlYWR5IGtub3cgdGhhdCBgQkxPQ0tgIGlzIGFsd2F5cyBlbmFibGVkLCB3aGljaCBpcyBlc3NlbnRpYWwgdG8gdGhlIGJsb2NrIGxheWVyLCBidXQgSSBzaG91bGQgcHJvYmFibHkgY29uZmlybSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgaW5mbHVlbmNlIGl0cyBiZWhhdmlvci4gSSBrbm93IGBDT05GSUdfQkxPQ0tgIGlzIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24sIGJ1dCBpdCBpcyB3b3J0aCBleHBsaWNpdGx5IGFkZGluZyB0aGF0IHRvIHRoZSBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA3OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCTE9DSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtibG9jay9LY29uZmlnLTQtI1xuYmxvY2svS2NvbmZpZzo1Om1lbnVjb25maWcgQkxPQ0tcbmJsb2NrL0tjb25maWctNi0gICAgICAgYm9vbCBcJiMzNDtFbmFibGUgdGhlIGJsb2NrIGxheWVyXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbmJsb2NrL0tjb25maWc9Mjc9aWYgQkxPQ0tcbmJsb2NrL0tjb25maWctMjgtXG5ibG9jay9LY29uZmlnOjI5OmNvbmZpZyBCTE9DS19MRUdBQ1lfQVVUT0xPQURcbmJsb2NrL0tjb25maWctMzAtXHRib29sIFwmIzM0O0xlZ2FjeSBhdXRvbG9hZGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxuYmxvY2svS2NvbmZpZz0yMTQ9Y29uZmlnIEJMS19QTVxuLS1cbmJsb2NrL0tjb25maWctMjE3LSMgZG8gbm90IHVzZSBpbiBuZXcgY29kZVxuYmxvY2svS2NvbmZpZzoyMTg6Y29uZmlnIEJMT0NLX0hPTERFUl9ERVBSRUNBVEVEXG5ibG9jay9LY29uZmlnLTIxOS1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjAzCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIEJsb2NrIExheWVyIE1lbW9yeSBNYW5hZ2VtZW50KioKClJpZ2h0LCBgQkxPQ0tgIHNlZW1zIGxpa2UgaXQmIzM5O3MgdGhlIGNyaXRpY2FsIHBpZWNlIGZvciB0aGlzIHBhcnRpY3VsYXIgaXNzdWUuIEkgbmVlZCB0byB6ZXJvIGluIG9uIHRoZSBleGFjdCBtZWNoYW5pc20sIHNvIGxldCYjMzk7cyBzdGFydCB3aXRoIGEgc3BlY2lmaWMgZnVuY3Rpb24uIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IGl0IGFsbCB3b3JrcyB1bmRlciB0aGUgaG9vZC4gVGhlIGJlc3QgcGxhY2UgdG8gZmluZCB0aGF0IGlzIHRoZSBgYmxrX21xX2ZyZWVfcnFzYCBmdW5jdGlvbi4gSSB3aWxsIGV4YW1pbmUgaXQgaW4gYGJsb2NrL2Jsay1tcS5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHZpZXcgb24gaG93IHRob3NlIHJlcXVlc3QgcXVldWVzIGFyZSBiZWluZyBtYW5hZ2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNzo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2Jsb2NrL2Jsay1tcS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzQ2MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDszNDYwOlx0XHRcdFx0XHRjbXB4Y2hnKFx1MDAyNmRydl90YWdzLVx1MDAzZXJxc1tpXSwgcnEsIE5VTEwpO1xuMzQ2MTpcdFx0XHRcdH1cbjM0NjI6XHRcdFx0fVxuMzQ2MzpcdFx0fVxuMzQ2NDpcdH1cbjM0NjU6XHRcbjM0NjY6XHR2b2lkIGJsa19tcV9mcmVlX3JxcyhzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKnNldCwgc3RydWN0IGJsa19tcV90YWdzICp0YWdzLFxuMzQ2NzpcdFx0XHQgICAgIHVuc2lnbmVkIGludCBoY3R4X2lkeClcbjM0Njg6XHR7XG4zNDY5Olx0XHRzdHJ1Y3QgYmxrX21xX3RhZ3MgKmRydl90YWdzO1xuMzQ3MDpcdFxuMzQ3MTpcdFx0aWYgKGxpc3RfZW1wdHkoXHUwMDI2dGFncy1cdTAwM2VwYWdlX2xpc3QpKVxuMzQ3MjpcdFx0XHRyZXR1cm47XG4zNDczOlx0XG4zNDc0Olx0XHRpZiAoYmxrX21xX2lzX3NoYXJlZF90YWdzKHNldC1cdTAwM2VmbGFncykpXG4zNDc1Olx0XHRcdGRydl90YWdzID0gc2V0LVx1MDAzZXNoYXJlZF90YWdzO1xuMzQ3NjpcdFx0ZWxzZSBpZiAoaGN0eF9pZHggXHUwMDNjIHNldC1cdTAwM2Vucl9od19xdWV1ZXMpXG4zNDc3Olx0XHRcdGRydl90YWdzID0gc2V0LVx1MDAzZXRhZ3NbaGN0eF9pZHhdO1xuMzQ3ODpcdFx0ZWxzZVxuMzQ3OTpcdFx0XHRkcnZfdGFncyA9IE5VTEw7XG4zNDgwOlx0XG4zNDgxOlx0XHRpZiAodGFncy1cdTAwM2VzdGF0aWNfcnFzIFx1MDAyNlx1MDAyNiBzZXQtXHUwMDNlb3BzLVx1MDAzZWV4aXRfcmVxdWVzdCkge1xuMzQ4MjpcdFx0XHRpbnQgaTtcbjM0ODM6XHRcbjM0ODQ6XHRcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgdGFncy1cdTAwM2Vucl90YWdzOyBpJiM0MzsmIzQzOykge1xuMzQ4NTpcdFx0XHRcdHN0cnVjdCByZXF1ZXN0ICpycSA9IHRhZ3MtXHUwMDNlc3RhdGljX3Jxc1tpXTtcbjM0ODY6XHRcbjM0ODc6XHRcdFx0XHRpZiAoIXJxKVxuMzQ4ODpcdFx0XHRcdFx0Y29udGludWU7XG4zNDg5Olx0XHRcdFx0c2V0LVx1MDAzZW9wcy1cdTAwM2VleGl0X3JlcXVlc3Qoc2V0LCBycSwgaGN0eF9pZHgpO1xuMzQ5MDpcdFx0XHRcdHRhZ3MtXHUwMDNlc3RhdGljX3Jxc1tpXSA9IE5VTEw7XG4zNDkxOlx0XHRcdH1cbjM0OTI6XHRcdH1cbjM0OTM6XHRcbjM0OTQ6XHRcdGJsa19tcV9jbGVhcl9ycV9tYXBwaW5nKGRydl90YWdzLCB0YWdzKTtcbjM0OTU6XHRcdC8qXG4zNDk2Olx0XHQgKiBGcmVlIHJlcXVlc3QgcGFnZXMgaW4gU1JDVSBjYWxsYmFjaywgd2hpY2ggaXMgY2FsbGVkIGZyb21cbjM0OTc6XHRcdCAqIGJsa19tcV9mcmVlX3RhZ3MoKS5cbjM0OTg6XHRcdCAqL1xuMzQ5OTpcdH1cbjM1MDA6XHRcbjM1MDE6XHR2b2lkIGJsa19tcV9mcmVlX3JxX21hcChzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKnNldCwgc3RydWN0IGJsa19tcV90YWdzICp0YWdzKVxuMzUwMjpcdHtcbjM1MDM6XHRcdGtmcmVlKHRhZ3MtXHUwMDNlcnFzKTtcbjM1MDQ6XHRcdHRhZ3MtXHUwMDNlcnFzID0gTlVMTDtcbjM1MDU6XHRcdGtmcmVlKHRhZ3MtXHUwMDNlc3RhdGljX3Jxcyk7XG4zNTA2Olx0XHR0YWdzLVx1MDAzZXN0YXRpY19ycXMgPSBOVUxMO1xuMzUwNzpcdFxuMzUwODpcdFx0YmxrX21xX2ZyZWVfdGFncyhzZXQsIHRhZ3MpO1xuMzUwOTpcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDc6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTUzNAoJCQkJCQkJb3V0cHV0OiAxMDEKCQkJCQkJCXRob3VnaHRzOiAxNzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQ3JpdGljYWwgQmxvY2sgTGF5ZXIgRml4KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIHdpdGhpbiBgYmxrX21xX2ZyZWVfcnFzYC4gU3BlY2lmaWNhbGx5LCB0aGUgaXNzdWUgYXJpc2VzIHdoZW4gYGhjdHhfaWR4YCBiZWNvbWVzIGxhcmdlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSB0b3RhbCBudW1iZXIgb2YgaGFyZHdhcmUgcXVldWVzLCB3aGljaCBjb3VsZCBsZWFkIHRvIHNlcmlvdXMgcHJvYmxlbXMgaW4gdGhlIGJsb2NrIGxheWVyLiBUaGlzIGlzIGEgY2xlYXItY3V0IGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiBhIGNvcmUgcGFydCBvZiB0aGUgYmxvY2sgbGF5ZXIuIEdpdmVuIHRoZSBwb3RlbnRpYWwgZm9yIGluc3RhYmlsaXR5IGFuZCB0aGUgY3JpdGljYWwgbmF0dXJlIG9mIHRoZSBhZmZlY3RlZCBjb2RlLCBmdXp6aW5nIGlzIGFuIGFic29sdXRlIG11c3QtZG8gZm9yIHRoaXMuIFRoZSBwcmltYXJ5IGZvY3VzIGZvciB0ZXN0aW5nLCBuYXR1cmFsbHksIGlzIGBibGtfbXFfZnJlZV9ycXNgLiBJIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGBCTE9DS2AgY29uZmlndXJhdGlvbiBpcyBlbmFibGVkLiBMZXQgbWUgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhhdCBgQ09ORklHX0JMT0NLYCBpcyB0aGUgcHJpbWFyeSBhbmQgcGVyaGFwcyBvbmx5IHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaGVyZS4gWWVzLCBpdCBsb29rcyBsaWtlIGl0LgoKTXkgYXNzZXNzbWVudCBpcyB0aGF0IHRoaXMgaXMgdmVyeSBpbXBvcnRhbnQuIEkgd2lsbCBzZXQgYFdvcnRoRnV6emluZz10cnVlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDc6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMT0NLJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YmxrX21xX2ZyZWVfcnFzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBibGtfbXFfZnJlZV9ycXNgIHdpdGhpbiB0aGUgY29yZSBibG9jayBsYXllciAoYmxrLW1xKSB3aGVuIGBoY3R4X2lkeGAgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGhhcmR3YXJlIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxPQ0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtibGtfbXFfZnJlZV9ycXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGJsa19tcV9mcmVlX3Jxc2Agd2l0aGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIChibGstbXEpIHdoZW4gYGhjdHhfaWR4YCBleGNlZWRzIHRoZSBudW1iZXIgb2YgaGFyZHdhcmUgcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDc6NTY6MzkuNzYxMDE5ODY1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk2OTIzOTk5NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQkxPQ0tcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJibGtfbXFfZnJlZV9ycXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyBpbiBgYmxrX21xX2ZyZWVfcnFzYCB3aXRoaW4gdGhlIGNvcmUgYmxvY2sgbGF5ZXIgKGJsay1tcSkgd2hlbiBgaGN0eF9pZHhgIGV4Y2VlZHMgdGhlIG51bWJlciBvZiBoYXJkd2FyZSBxdWV1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU2OjM5Ljc2MTAyNzY5NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzg0NDcwNzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOTU1YzFkYzFjMWU2Y2JmNzk0ZWE4Nzg4MWM0ZGQxNTFkOTAwNGJkY1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyA3IDA3OjU2OjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1tcS5jIGIvYmxvY2svYmxrLW1xLmNcXG5pbmRleCAyYzg1MDMzMGEzMmJjLi44ZTY3MjZiMzdjNjUxIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL2Jsay1tcS5jXFxuKysrIGIvYmxvY2svYmxrLW1xLmNcXG5AQCAtMzQ3Myw4ICszNDczLDEwIEBAIHZvaWQgYmxrX21xX2ZyZWVfcnFzKHN0cnVjdCBibGtfbXFfdGFnX3NldCAqc2V0LCBzdHJ1Y3QgYmxrX21xX3RhZ3MgKnRhZ3MsXFxuIFxcbiBcXHRpZiAoYmxrX21xX2lzX3NoYXJlZF90YWdzKHNldC1cXHUwMDNlZmxhZ3MpKVxcbiBcXHRcXHRkcnZfdGFncyA9IHNldC1cXHUwMDNlc2hhcmVkX3RhZ3M7XFxuLVxcdGVsc2VcXG4rXFx0ZWxzZSBpZiAoaGN0eF9pZHggXFx1MDAzYyBzZXQtXFx1MDAzZW5yX2h3X3F1ZXVlcylcXG4gXFx0XFx0ZHJ2X3RhZ3MgPSBzZXQtXFx1MDAzZXRhZ3NbaGN0eF9pZHhdO1xcbitcXHRlbHNlXFxuK1xcdFxcdGRydl90YWdzID0gTlVMTDtcXG4gXFxuIFxcdGlmICh0YWdzLVxcdTAwM2VzdGF0aWNfcnFzIFxcdTAwMjZcXHUwMDI2IHNldC1cXHUwMDNlb3BzLVxcdTAwM2VleGl0X3JlcXVlc3QpIHtcXG4gXFx0XFx0aW50IGk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU2OjQwLjE0NjQ0MjMwNVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI5MzA2OTY3MzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMT0NLXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYmxrX21xX2ZyZWVfcnFzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGJsa19tcV9mcmVlX3Jxc2Agd2l0aGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIChibGstbXEpIHdoZW4gYGhjdHhfaWR4YCBleGNlZWRzIHRoZSBudW1iZXIgb2YgaGFyZHdhcmUgcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5NTVjMWRjMWMxZTZjYmY3OTRlYTg3ODgxYzRkZDE1MWQ5MDA0YmRjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgNyAwNzo1NjozOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1tcS5jIGIvYmxvY2svYmxrLW1xLmNcbmluZGV4IDJjODUwMzMwYTMyYmMuLjhlNjcyNmIzN2M2NTEgMTAwNjQ0XG4tLS0gYS9ibG9jay9ibGstbXEuY1xuKysrIGIvYmxvY2svYmxrLW1xLmNcbkBAIC0zNDczLDggKzM0NzMsMTAgQEAgdm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcbiBcbiBcdGlmIChibGtfbXFfaXNfc2hhcmVkX3RhZ3Moc2V0LVx1MDAzZWZsYWdzKSlcbiBcdFx0ZHJ2X3RhZ3MgPSBzZXQtXHUwMDNlc2hhcmVkX3RhZ3M7XG4tXHRlbHNlXG4rXHRlbHNlIGlmIChoY3R4X2lkeCBcdTAwM2Mgc2V0LVx1MDAzZW5yX2h3X3F1ZXVlcylcbiBcdFx0ZHJ2X3RhZ3MgPSBzZXQtXHUwMDNldGFnc1toY3R4X2lkeF07XG4rXHRlbHNlXG4rXHRcdGRydl90YWdzID0gTlVMTDtcbiBcbiBcdGlmICh0YWdzLVx1MDAzZXN0YXRpY19ycXMgXHUwMDI2XHUwMDI2IHNldC1cdTAwM2VvcHMtXHUwMDNlZXhpdF9yZXF1ZXN0KSB7XG4gXHRcdGludCBpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDc6NTY6NDAuMTQ2NDQ0MDI1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjI4NzkzMzQyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCbG9jayBMYXllciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBibG9jay9ibGstbXEuY2AuIEl0J3MgdG91Y2hpbmcgdGhlIGBibGtfbXFfZnJlZV9ycXNgIGZ1bmN0aW9uLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSB3aXRoaW4gdGhpcyBzbWFsbCBzbmlwcGV0IG9mIGNvZGUuIEkgc2VlIGEgY29uZGl0aW9uYWwgYmxvY2sgbm93IGFkZGVkIHRvIHNhZmVseSBoYW5kbGUgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzLlxuXG5CZWZvcmUsIGl0IHVzZWQgdG8gYmUgYSBzaW1wbGUgYGlmYC4uLiBgZWxzZWAsIGNoZWNraW5nIGlmIHNoYXJlZCB0YWdzIHdlcmUgdXNlZC4gTm93LCB0aGV5J3ZlIGludHJvZHVjZWQgYW5vdGhlciBgZWxzZSBpZmAgY29uZGl0aW9uLiBJdCBjaGVja3MgaWYgYGhjdHhfaWR4YCBpcyB3aXRoaW4gdGhlIGJvdW5kcyBvZiBgc2V0LVx1MDAzZW5yX2h3X3F1ZXVlc2AuIElmIGl0ICppcyosIHRoZW4gd2Ugc2FmZWx5IGFjY2VzcyB0aGUgcGVyLXF1ZXVlIHRhZ3MuIElmIGBoY3R4X2lkeGAgKmlzIG5vdCogd2l0aGluIGJvdW5kcywgdGhlbiBgZHJ2X3RhZ3NgIGlzIHNldCB0byBOVUxMLiBUaGlzIGltbWVkaWF0ZWx5IGp1bXBzIG91dCBhdCBtZSBhcyBhIGNyaXRpY2FsIGNoYW5nZSBiZWNhdXNlIGl0IHByZXZlbnRzIGEgcG90ZW50aWFsIG1lbW9yeSBhY2Nlc3MgdmlvbGF0aW9uIG9uIGBzZXQtXHUwMDNldGFnc2AuIFRoZSBpbnRlbnQgaXMgY2xlYXI6IHRvIGdyYWNlZnVsbHkgaGFuZGxlIGEgc2l0dWF0aW9uIHdoZXJlIGBoY3R4X2lkeGAgbWlnaHQgYmUgbGFyZ2VyIHRoYW4gdGhlIHZhbGlkIGhhcmR3YXJlIHF1ZXVlIGluZGV4LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZGVzaWduZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGRyaXZlciBkb2Vzbid0IHRyeSB0byBhY2Nlc3MgYW4gYXJyYXkgZWxlbWVudCBvdXRzaWRlIGl0cyBhbGxvY2F0ZWQgYm91bmRhcmllcy4gSSdsbCBuZWVkIHRvIGRpZyBkZWVwZXIgdG8gc2VlICp3aHkqIHRoaXMgb3V0LW9mLWJvdW5kcyBjb25kaXRpb24gY291bGQgaGFwcGVuIGluIHRoZSBmaXJzdCBwbGFjZSwgYnV0IHRoaXMgcGF0Y2ggcHJvdmlkZXMgYSB2ZXJ5IGNsZWFuIHNhZmV0eSBuZXQuIEknbGwgd2FudCB0byB2ZXJpZnkgdGhhdCB0aGUgaW50cm9kdWNlZCBgTlVMTGAgYXNzaWdubWVudCBpcyBoYW5kbGVkIGNvcnJlY3RseSBkb3duc3RyZWFtLiBObyBidWdzIGNyZWVwaW5nIGluIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDkxLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDc6NTY6NDYuNDM0Mzc5NTYyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5NDYxNjg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJsa19tcV9mcmVlX3Jxc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJibG9jay9ibGstbXEuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJibG9jay9ibGstbXEuYz0zNDM3PXN0YXRpYyB2b2lkIGJsa19tcV9jbGVhcl9ycV9tYXBwaW5nKHN0cnVjdCBibGtfbXFfdGFncyAqZHJ2X3RhZ3MsXFxuLS1cXG5ibG9jay9ibGstbXEuYy0zNDY1LVxcbmJsb2NrL2Jsay1tcS5jOjM0NjY6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcXG5ibG9jay9ibGstbXEuYy0zNDY3LVxcdFxcdCAgICAgdW5zaWduZWQgaW50IGhjdHhfaWR4KVxcbi0tXFxuYmxvY2svYmxrLW1xLmM9MzU4OT1zdGF0aWMgaW50IGJsa19tcV9hbGxvY19ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsXFxuLS1cXG5ibG9jay9ibGstbXEuYy0zNjU5LWZhaWw6XFxuYmxvY2svYmxrLW1xLmM6MzY2MDpcXHRibGtfbXFfZnJlZV9ycXMoc2V0LCB0YWdzLCBoY3R4X2lkeCk7XFxuYmxvY2svYmxrLW1xLmMtMzY2MS1cXHRyZXR1cm4gLUVOT01FTTtcXG4tLVxcbmJsb2NrL2Jsay1tcS5jPTQxNDU9dm9pZCBibGtfbXFfZnJlZV9tYXBfYW5kX3JxcyhzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKnNldCxcXG4tLVxcbmJsb2NrL2Jsay1tcS5jLTQxNDktXFx0aWYgKHRhZ3MpIHtcXG5ibG9jay9ibGstbXEuYzo0MTUwOlxcdFxcdGJsa19tcV9mcmVlX3JxcyhzZXQsIHRhZ3MsIGhjdHhfaWR4KTtcXG5ibG9jay9ibGstbXEuYy00MTUxLVxcdFxcdGJsa19tcV9mcmVlX3JxX21hcChzZXQsIHRhZ3MpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNzo1Njo0Ni40ODM4NDU0NjdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjY2NTQwMjAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhlIHNpdHVhdGlvbjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBTY29wZSBvZiBgYmxrX21xX2ZyZWVfcnFzYCoqXG5cbk9rYXksIHNvIGBibGtfbXFfZnJlZV9ycXNgIGlzIGEgZnVuY3Rpb24gaW4gdGhpcyBibG9jayBjb2RlLCBhbmQgaXQncyBub3QgbWFya2VkIGFzIGBzdGF0aWNgLCB3aGljaCBpbW1lZGlhdGVseSBwaXF1ZXMgbXkgaW50ZXJlc3QuIE5vbi1zdGF0aWMgZnVuY3Rpb25zIGFyZSBwb3RlbnRpYWxseSB2aXNpYmxlIG91dHNpZGUgdGhlaXIgZGVmaW5pbmcgZmlsZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYW5kIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIGJlaW5nIHVzZWQuXG5cbkkgc2VlIHRoYXQgYGJsa19tcV9mcmVlX3Jxc2AgaXMgY2FsbGVkIGZyb20gdHdvIG90aGVyIGZ1bmN0aW9uczogYGJsa19tcV9hbGxvY19ycXNgIOKAkyBzcGVjaWZpY2FsbHkgaW4gaXRzIGZhaWx1cmUgcGF0aCDigJMgYW5kIGBibGtfbXFfZnJlZV9tYXBfYW5kX3Jxc2AuIFRoYXTigJlzIGEgZ29vZCBzdGFydCBmb3IgdHJhY2luZyBpdHMgaW50ZXJuYWwgdXNlIHdpdGhpbiB0aGUgbW9kdWxlLlxuXG5Ob3csIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgaXQgaXMgKmFjdHVhbGx5KiBsaW1pdGVkIHRvIHRoZSBmaWxlIGBibG9jay9ibGstbXEuY2AuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgaXQncyBleHBvcnRlZCBvciBpZiBzb21ldGhpbmcgb3V0c2lkZSB0aGF0IGZpbGUgaXMgYWxzbyB1c2luZyBpdC4gSSdsbCBuZWVkIHRvIGNoZWNrIGZvciBleHRlcm5hbCBjYWxscyB0byBgYmxrX21xX2ZyZWVfcnFzYCB0byB1bmRlcnN0YW5kIHRoZSBmdWxsIGltcGxpY2F0aW9ucyBvZiBpdHMgbm9uLXN0YXRpYyBkZWNsYXJhdGlvbi4gVGhpcyBpbnZlc3RpZ2F0aW9uIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIGl0cyBvdmVyYWxsIGltcGFjdCBvbiB0aGUgYmxvY2sgbGF5ZXIncyBtZW1vcnkgbWFuYWdlbWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAxNiwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU2OjUxLjE1MDM4ODA3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MjYwMzA2MTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYmxrX21xX2ZyZWVfcnFzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJibG9jay9ibGstbXEtc2NoZWQuYz02NzA9dm9pZCBibGtfbXFfc2NoZWRfZnJlZV9ycXMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEpXFxuLS1cXG5ibG9jay9ibGstbXEtc2NoZWQuYy02NzUtXFx0aWYgKGJsa19tcV9pc19zaGFyZWRfdGFncyhxLVxcdTAwM2V0YWdfc2V0LVxcdTAwM2VmbGFncykpIHtcXG5ibG9jay9ibGstbXEtc2NoZWQuYzo2NzY6XFx0XFx0YmxrX21xX2ZyZWVfcnFzKHEtXFx1MDAzZXRhZ19zZXQsIHEtXFx1MDAzZXNjaGVkX3NoYXJlZF90YWdzLFxcbmJsb2NrL2Jsay1tcS1zY2hlZC5jLTY3Ny1cXHRcXHRcXHRcXHRCTEtfTVFfTk9fSENUWF9JRFgpO1xcbi0tXFxuYmxvY2svYmxrLW1xLXNjaGVkLmMtNjgwLVxcdFxcdFxcdGlmIChoY3R4LVxcdTAwM2VzY2hlZF90YWdzKVxcbmJsb2NrL2Jsay1tcS1zY2hlZC5jOjY4MTpcXHRcXHRcXHRcXHRibGtfbXFfZnJlZV9ycXMocS1cXHUwMDNldGFnX3NldCxcXG5ibG9jay9ibGstbXEtc2NoZWQuYy02ODItXFx0XFx0XFx0XFx0XFx0XFx0aGN0eC1cXHUwMDNlc2NoZWRfdGFncywgaSk7XFxuLS1cXG5ibG9jay9ibGstbXEuYz0zNDM3PXN0YXRpYyB2b2lkIGJsa19tcV9jbGVhcl9ycV9tYXBwaW5nKHN0cnVjdCBibGtfbXFfdGFncyAqZHJ2X3RhZ3MsXFxuLS1cXG5ibG9jay9ibGstbXEuYy0zNDY1LVxcbmJsb2NrL2Jsay1tcS5jOjM0NjY6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcXG5ibG9jay9ibGstbXEuYy0zNDY3LVxcdFxcdCAgICAgdW5zaWduZWQgaW50IGhjdHhfaWR4KVxcbi0tXFxuYmxvY2svYmxrLW1xLmM9MzU4OT1zdGF0aWMgaW50IGJsa19tcV9hbGxvY19ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsXFxuLS1cXG5ibG9jay9ibGstbXEuYy0zNjU5LWZhaWw6XFxuYmxvY2svYmxrLW1xLmM6MzY2MDpcXHRibGtfbXFfZnJlZV9ycXMoc2V0LCB0YWdzLCBoY3R4X2lkeCk7XFxuYmxvY2svYmxrLW1xLmMtMzY2MS1cXHRyZXR1cm4gLUVOT01FTTtcXG4tLVxcbmJsb2NrL2Jsay1tcS5jPTQxNDU9dm9pZCBibGtfbXFfZnJlZV9tYXBfYW5kX3JxcyhzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKnNldCxcXG4tLVxcbmJsb2NrL2Jsay1tcS5jLTQxNDktXFx0aWYgKHRhZ3MpIHtcXG5ibG9jay9ibGstbXEuYzo0MTUwOlxcdFxcdGJsa19tcV9mcmVlX3JxcyhzZXQsIHRhZ3MsIGhjdHhfaWR4KTtcXG5ibG9jay9ibGstbXEuYy00MTUxLVxcdFxcdGJsa19tcV9mcmVlX3JxX21hcChzZXQsIHRhZ3MpO1xcbi0tXFxuYmxvY2svYmxrLW1xLmg9NTg9dm9pZCBibGtfbXFfcHV0X3JxX3JlZihzdHJ1Y3QgcmVxdWVzdCAqcnEpO1xcbi0tXFxuYmxvY2svYmxrLW1xLmgtNjItICovXFxuYmxvY2svYmxrLW1xLmg6NjM6dm9pZCBibGtfbXFfZnJlZV9ycXMoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncyxcXG5ibG9jay9ibGstbXEuaC02NC1cXHRcXHQgICAgIHVuc2lnbmVkIGludCBoY3R4X2lkeCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU2OjUyLjk3NjQyNDMyOVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwMDQ4MDk5ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgYGJsa19tcV9mcmVlX3Jxc2AgRnVuY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgYmxrX21xX2ZyZWVfcnFzYC4gSSBrbm93IHRoaXMgZnVuY3Rpb24gaXMgY3J1Y2lhbCwgbGl2aW5nIHdpdGhpbiBgYmxvY2svYmxrLW1xLXNjaGVkLmNgIGFuZCBgYmxvY2svYmxrLW1xLmNgLiBJdCdzIGEgZnVuZGFtZW50YWwgcGllY2Ugb2YgdGhlIGJsb2NrIGxheWVyLCBhbmQgdGhhdCBtYWtlcyBpdCBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gR2l2ZW4gaXRzIHNpZ25pZmljYW5jZSwgSSB3YW50IHRvIGVuc3VyZSBpdHMgcm9idXN0bmVzcy5cblxuTXkgbWFpbiBmb2N1cyBpcyB1bmRvdWJ0ZWRseSBgYmxrX21xX2ZyZWVfcnFzYC4gSSBuZWVkIHRvIGVuc3VyZSBpdCdzIHRlc3RlZCB0aG9yb3VnaGx5LiBJIGFscmVhZHkga25vdyB0aGF0IGBCTE9DS2AgaXMgYWx3YXlzIGVuYWJsZWQsIHdoaWNoIGlzIGVzc2VudGlhbCB0byB0aGUgYmxvY2sgbGF5ZXIsIGJ1dCBJIHNob3VsZCBwcm9iYWJseSBjb25maXJtIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBpbmZsdWVuY2UgaXRzIGJlaGF2aW9yLiBJIGtub3cgYENPTkZJR19CTE9DS2AgaXMgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiwgYnV0IGl0IGlzIHdvcnRoIGV4cGxpY2l0bHkgYWRkaW5nIHRoYXQgdG8gdGhlIGNvbmZpZ3VyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwOTksIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDc6NTY6NTcuOTgxMjM4MjE4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MDUwNzM3NDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJMT0NLXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJibG9jay9LY29uZmlnLTQtI1xcbmJsb2NrL0tjb25maWc6NTptZW51Y29uZmlnIEJMT0NLXFxuYmxvY2svS2NvbmZpZy02LSAgICAgICBib29sIFxcXCJFbmFibGUgdGhlIGJsb2NrIGxheWVyXFxcIiBpZiBFWFBFUlRcXG4tLVxcbmJsb2NrL0tjb25maWc9Mjc9aWYgQkxPQ0tcXG5ibG9jay9LY29uZmlnLTI4LVxcbmJsb2NrL0tjb25maWc6Mjk6Y29uZmlnIEJMT0NLX0xFR0FDWV9BVVRPTE9BRFxcbmJsb2NrL0tjb25maWctMzAtXFx0Ym9vbCBcXFwiTGVnYWN5IGF1dG9sb2FkaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5ibG9jay9LY29uZmlnPTIxND1jb25maWcgQkxLX1BNXFxuLS1cXG5ibG9jay9LY29uZmlnLTIxNy0jIGRvIG5vdCB1c2UgaW4gbmV3IGNvZGVcXG5ibG9jay9LY29uZmlnOjIxODpjb25maWcgQkxPQ0tfSE9MREVSX0RFUFJFQ0FURURcXG5ibG9jay9LY29uZmlnLTIxOS1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU2OjU5Ljg4NjMxNTQwOVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MzcwOTgyMDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyBCbG9jayBMYXllciBNZW1vcnkgTWFuYWdlbWVudCoqXG5cblJpZ2h0LCBgQkxPQ0tgIHNlZW1zIGxpa2UgaXQncyB0aGUgY3JpdGljYWwgcGllY2UgZm9yIHRoaXMgcGFydGljdWxhciBpc3N1ZS4gSSBuZWVkIHRvIHplcm8gaW4gb24gdGhlIGV4YWN0IG1lY2hhbmlzbSwgc28gbGV0J3Mgc3RhcnQgd2l0aCBhIHNwZWNpZmljIGZ1bmN0aW9uLiBJJ2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IGl0IGFsbCB3b3JrcyB1bmRlciB0aGUgaG9vZC4gVGhlIGJlc3QgcGxhY2UgdG8gZmluZCB0aGF0IGlzIHRoZSBgYmxrX21xX2ZyZWVfcnFzYCBmdW5jdGlvbi4gSSB3aWxsIGV4YW1pbmUgaXQgaW4gYGJsb2NrL2Jsay1tcS5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHZpZXcgb24gaG93IHRob3NlIHJlcXVlc3QgcXVldWVzIGFyZSBiZWluZyBtYW5hZ2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjAzLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDc6NTc6MDMuNDIzNDE2MDZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEzMjgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImJsb2NrL2Jsay1tcS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDM0NjAsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjM0NjA6XFx0XFx0XFx0XFx0XFx0Y21weGNoZyhcXHUwMDI2ZHJ2X3RhZ3MtXFx1MDAzZXJxc1tpXSwgcnEsIE5VTEwpO1xcbjM0NjE6XFx0XFx0XFx0XFx0fVxcbjM0NjI6XFx0XFx0XFx0fVxcbjM0NjM6XFx0XFx0fVxcbjM0NjQ6XFx0fVxcbjM0NjU6XFx0XFxuMzQ2NjpcXHR2b2lkIGJsa19tcV9mcmVlX3JxcyhzdHJ1Y3QgYmxrX21xX3RhZ19zZXQgKnNldCwgc3RydWN0IGJsa19tcV90YWdzICp0YWdzLFxcbjM0Njc6XFx0XFx0XFx0ICAgICB1bnNpZ25lZCBpbnQgaGN0eF9pZHgpXFxuMzQ2ODpcXHR7XFxuMzQ2OTpcXHRcXHRzdHJ1Y3QgYmxrX21xX3RhZ3MgKmRydl90YWdzO1xcbjM0NzA6XFx0XFxuMzQ3MTpcXHRcXHRpZiAobGlzdF9lbXB0eShcXHUwMDI2dGFncy1cXHUwMDNlcGFnZV9saXN0KSlcXG4zNDcyOlxcdFxcdFxcdHJldHVybjtcXG4zNDczOlxcdFxcbjM0NzQ6XFx0XFx0aWYgKGJsa19tcV9pc19zaGFyZWRfdGFncyhzZXQtXFx1MDAzZWZsYWdzKSlcXG4zNDc1OlxcdFxcdFxcdGRydl90YWdzID0gc2V0LVxcdTAwM2VzaGFyZWRfdGFncztcXG4zNDc2OlxcdFxcdGVsc2UgaWYgKGhjdHhfaWR4IFxcdTAwM2Mgc2V0LVxcdTAwM2Vucl9od19xdWV1ZXMpXFxuMzQ3NzpcXHRcXHRcXHRkcnZfdGFncyA9IHNldC1cXHUwMDNldGFnc1toY3R4X2lkeF07XFxuMzQ3ODpcXHRcXHRlbHNlXFxuMzQ3OTpcXHRcXHRcXHRkcnZfdGFncyA9IE5VTEw7XFxuMzQ4MDpcXHRcXG4zNDgxOlxcdFxcdGlmICh0YWdzLVxcdTAwM2VzdGF0aWNfcnFzIFxcdTAwMjZcXHUwMDI2IHNldC1cXHUwMDNlb3BzLVxcdTAwM2VleGl0X3JlcXVlc3QpIHtcXG4zNDgyOlxcdFxcdFxcdGludCBpO1xcbjM0ODM6XFx0XFxuMzQ4NDpcXHRcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgdGFncy1cXHUwMDNlbnJfdGFnczsgaSsrKSB7XFxuMzQ4NTpcXHRcXHRcXHRcXHRzdHJ1Y3QgcmVxdWVzdCAqcnEgPSB0YWdzLVxcdTAwM2VzdGF0aWNfcnFzW2ldO1xcbjM0ODY6XFx0XFxuMzQ4NzpcXHRcXHRcXHRcXHRpZiAoIXJxKVxcbjM0ODg6XFx0XFx0XFx0XFx0XFx0Y29udGludWU7XFxuMzQ4OTpcXHRcXHRcXHRcXHRzZXQtXFx1MDAzZW9wcy1cXHUwMDNlZXhpdF9yZXF1ZXN0KHNldCwgcnEsIGhjdHhfaWR4KTtcXG4zNDkwOlxcdFxcdFxcdFxcdHRhZ3MtXFx1MDAzZXN0YXRpY19ycXNbaV0gPSBOVUxMO1xcbjM0OTE6XFx0XFx0XFx0fVxcbjM0OTI6XFx0XFx0fVxcbjM0OTM6XFx0XFxuMzQ5NDpcXHRcXHRibGtfbXFfY2xlYXJfcnFfbWFwcGluZyhkcnZfdGFncywgdGFncyk7XFxuMzQ5NTpcXHRcXHQvKlxcbjM0OTY6XFx0XFx0ICogRnJlZSByZXF1ZXN0IHBhZ2VzIGluIFNSQ1UgY2FsbGJhY2ssIHdoaWNoIGlzIGNhbGxlZCBmcm9tXFxuMzQ5NzpcXHRcXHQgKiBibGtfbXFfZnJlZV90YWdzKCkuXFxuMzQ5ODpcXHRcXHQgKi9cXG4zNDk5OlxcdH1cXG4zNTAwOlxcdFxcbjM1MDE6XFx0dm9pZCBibGtfbXFfZnJlZV9ycV9tYXAoc3RydWN0IGJsa19tcV90YWdfc2V0ICpzZXQsIHN0cnVjdCBibGtfbXFfdGFncyAqdGFncylcXG4zNTAyOlxcdHtcXG4zNTAzOlxcdFxcdGtmcmVlKHRhZ3MtXFx1MDAzZXJxcyk7XFxuMzUwNDpcXHRcXHR0YWdzLVxcdTAwM2VycXMgPSBOVUxMO1xcbjM1MDU6XFx0XFx0a2ZyZWUodGFncy1cXHUwMDNlc3RhdGljX3Jxcyk7XFxuMzUwNjpcXHRcXHR0YWdzLVxcdTAwM2VzdGF0aWNfcnFzID0gTlVMTDtcXG4zNTA3OlxcdFxcbjM1MDg6XFx0XFx0YmxrX21xX2ZyZWVfdGFncyhzZXQsIHRhZ3MpO1xcbjM1MDk6XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNzo1NzowMy40MjM2MzE4OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTQ2MzM2OTU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIENyaXRpY2FsIEJsb2NrIExheWVyIEZpeCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIHdpdGhpbiBgYmxrX21xX2ZyZWVfcnFzYC4gU3BlY2lmaWNhbGx5LCB0aGUgaXNzdWUgYXJpc2VzIHdoZW4gYGhjdHhfaWR4YCBiZWNvbWVzIGxhcmdlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSB0b3RhbCBudW1iZXIgb2YgaGFyZHdhcmUgcXVldWVzLCB3aGljaCBjb3VsZCBsZWFkIHRvIHNlcmlvdXMgcHJvYmxlbXMgaW4gdGhlIGJsb2NrIGxheWVyLiBUaGlzIGlzIGEgY2xlYXItY3V0IGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiBhIGNvcmUgcGFydCBvZiB0aGUgYmxvY2sgbGF5ZXIuIEdpdmVuIHRoZSBwb3RlbnRpYWwgZm9yIGluc3RhYmlsaXR5IGFuZCB0aGUgY3JpdGljYWwgbmF0dXJlIG9mIHRoZSBhZmZlY3RlZCBjb2RlLCBmdXp6aW5nIGlzIGFuIGFic29sdXRlIG11c3QtZG8gZm9yIHRoaXMuIFRoZSBwcmltYXJ5IGZvY3VzIGZvciB0ZXN0aW5nLCBuYXR1cmFsbHksIGlzIGBibGtfbXFfZnJlZV9ycXNgLiBJIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGBCTE9DS2AgY29uZmlndXJhdGlvbiBpcyBlbmFibGVkLiBMZXQgbWUgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhhdCBgQ09ORklHX0JMT0NLYCBpcyB0aGUgcHJpbWFyeSBhbmQgcGVyaGFwcyBvbmx5IHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaGVyZS4gWWVzLCBpdCBsb29rcyBsaWtlIGl0LlxuXG5NeSBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBpcyB2ZXJ5IGltcG9ydGFudC4gSSB3aWxsIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTM0LCJPdXRwdXRUb2tlbnMiOjEwMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA3OjU3OjA5LjM2OTk3MjM4OVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgzNDM0MTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCTE9DS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJsa19tcV9mcmVlX3Jxc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBibGtfbXFfZnJlZV9ycXNgIHdpdGhpbiB0aGUgY29yZSBibG9jayBsYXllciAoYmxrLW1xKSB3aGVuIGBoY3R4X2lkeGAgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGhhcmR3YXJlIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCTE9DS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJsa19tcV9mcmVlX3Jxc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBibGtfbXFfZnJlZV9ycXNgIHdpdGhpbiB0aGUgY29yZSBibG9jayBsYXllciAoYmxrLW1xKSB3aGVuIGBoY3R4X2lkeGAgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGhhcmR3YXJlIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowj5kts[1] Phase: Succeeded StartedAt: 2026-08-07 07:57:20 +0000 UTC FinishedAt: 2026-08-07 07:57:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-07 07:57:20 +0000 UTC FinishedAt: 2026-08-07 07:57:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2] Phase: Succeeded StartedAt: 2026-08-07 07:57:20 +0000 UTC FinishedAt: 2026-08-07 11:42:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-07 07:57:20 +0000 UTC FinishedAt: 2026-08-07 11:42:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-07 07:57:20 +0000 UTC FinishedAt: 2026-08-07 07:57:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-07 07:57:20 +0000 UTC FinishedAt: 2026-08-07 07:57:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.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-workflowj5kts/series-workflowj5kts-convert-artifact-4259880446/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-07 07:57:31 +0000 UTC FinishedAt: 2026-08-07 08:16:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-07 07:57:31 +0000 UTC FinishedAt: 2026-08-07 08:16:15 +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:*78a0ac41-b3c9-4a4c-9abc-fa159f20ce53,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-workflowj5kts/series-workflowj5kts-convert-artifact-4259880446/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": "ef76a613-85cc-45c6-ba0d-6decbe045c61", "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-workflowj5kts/series-workflowj5kts-build-action-3528951268/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-07 07:57:31 +0000 UTC FinishedAt: 2026-08-07 08:16:05 +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:*78a0ac41-b3c9-4a4c-9abc-fa159f20ce53,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-workflowj5kts/series-workflowj5kts-convert-artifact-4259880446/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": "ef76a613-85cc-45c6-ba0d-6decbe045c61", "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-workflowj5kts/series-workflowj5kts-build-action-3528951268/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-07 08:16:15 +0000 UTC FinishedAt: 2026-08-07 08:16:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-07 08:16:15 +0000 UTC FinishedAt: 2026-08-07 08:16:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-07 08:16:15 +0000 UTC FinishedAt: 2026-08-07 08:16:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-07 08:16:15 +0000 UTC FinishedAt: 2026-08-07 08:16:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.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-workflowj5kts/series-workflowj5kts-convert-artifact-1070503217/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-07 08:16:44 +0000 UTC FinishedAt: 2026-08-07 08:18:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-07 08:16:44 +0000 UTC FinishedAt: 2026-08-07 08:18:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ef76a613-85cc-45c6-ba0d-6decbe045c61,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-workflowj5kts/series-workflowj5kts-build-action-3528951268/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-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-07 08:18:39 +0000 UTC FinishedAt: 2026-08-07 08:18:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-07 08:18:39 +0000 UTC FinishedAt: 2026-08-07 08:18:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-07 08:18:39 +0000 UTC FinishedAt: 2026-08-07 08:37:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-07 08:18:39 +0000 UTC FinishedAt: 2026-08-07 08:37:46 +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:*78a0ac41-b3c9-4a4c-9abc-fa159f20ce53,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-workflowj5kts/series-workflowj5kts-convert-artifact-1070503217/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": "bb8d4fbb-d4ab-4d93-8cdc-5042e0bf1b26", "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-workflowj5kts/series-workflowj5kts-build-action-3205616381/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-07 08:18:39 +0000 UTC FinishedAt: 2026-08-07 08:37:36 +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:*78a0ac41-b3c9-4a4c-9abc-fa159f20ce53,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-workflowj5kts/series-workflowj5kts-convert-artifact-1070503217/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": "bb8d4fbb-d4ab-4d93-8cdc-5042e0bf1b26", "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-workflowj5kts/series-workflowj5kts-build-action-3205616381/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-07 08:37:46 +0000 UTC FinishedAt: 2026-08-07 08:37:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-07 08:37:46 +0000 UTC FinishedAt: 2026-08-07 08:37:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-07 08:37:46 +0000 UTC FinishedAt: 2026-08-07 08:39:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-07 08:37:46 +0000 UTC FinishedAt: 2026-08-07 08:39:27 +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:*bb8d4fbb-d4ab-4d93-8cdc-5042e0bf1b26,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-workflowj5kts/series-workflowj5kts-build-action-3205616381/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-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-07 08:39:37 +0000 UTC FinishedAt: 2026-08-07 11:42:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-07 08:39:37 +0000 UTC FinishedAt: 2026-08-07 11:42:48 +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":["blk_mq_free_rqs"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*ef76a613-85cc-45c6-ba0d-6decbe045c61,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*bb8d4fbb-d4ab-4d93-8cdc-5042e0bf1b26,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-workflowj5kts/series-workflowj5kts-build-action-3528951268/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-workflowj5kts/series-workflowj5kts-build-action-3205616381/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-07 08:39:37 +0000 UTC FinishedAt: 2026-08-07 08:39:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-07 08:39:37 +0000 UTC FinishedAt: 2026-08-07 08:39:44 +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":["blk_mq_free_rqs"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowj5kts/series-workflowj5kts-convert-artifact-1833379814/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-07 08:39:37 +0000 UTC FinishedAt: 2026-08-07 08:39:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-07 08:39:37 +0000 UTC FinishedAt: 2026-08-07 08:39:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-07 08:39:37 +0000 UTC FinishedAt: 2026-08-07 08:39:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-07 08:39:47 +0000 UTC FinishedAt: 2026-08-07 11:42:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj5kts[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["blk_mq_free_rqs"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"9877783c-d219-4488-a60a-1b4ae2cd7f73","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-07 08:39:47 +0000 UTC FinishedAt: 2026-08-07 11:42:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ef76a613-85cc-45c6-ba0d-6decbe045c61,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*bb8d4fbb-d4ab-4d93-8cdc-5042e0bf1b26,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-workflowj5kts/series-workflowj5kts-build-action-3528951268/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-workflowj5kts/series-workflowj5kts-build-action-3205616381/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-workflowj5kts/series-workflowj5kts-convert-artifact-1833379814/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}