Name: series-workflowlvtll Phase: Succeeded StartedAt: 2026-08-01 08:36:37 +0000 UTC FinishedAt: 2026-08-01 13:25:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[0] Phase: Succeeded StartedAt: 2026-08-01 08:36:37 +0000 UTC FinishedAt: 2026-08-01 09:42:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[0].run-triage Phase: Succeeded StartedAt: 2026-08-01 08:36:37 +0000 UTC FinishedAt: 2026-08-01 09:42:15 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OPENVSWITCH" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OPENVSWITCH" ], "series_id": "f5fac290-87aa-4ca8-aa6b-e2a3843b60f1" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ovs_flow_key_extract", "ovs_flow_key_extract_userspace", "ovs_flow_key_update", "ovs_vport_receive", "ovs_packet_cmd_execute" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09QRU5WU1dJVENIJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7b3ZzX2Zsb3dfa2V5X2V4dHJhY3QmIzM0OywKICAgICYjMzQ7b3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlJiMzNDssCiAgICAmIzM0O292c19mbG93X2tleV91cGRhdGUmIzM0OywKICAgICYjMzQ7b3ZzX3Zwb3J0X3JlY2VpdmUmIzM0OywKICAgICYjMzQ7b3ZzX3BhY2tldF9jbWRfZXhlY3V0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIChgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCkgaW4gYGtleV9leHRyYWN0YCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgd2hlbiBwYXJzaW5nIHRoZSBFdGhlcm5ldCBoZWFkZXIgb2YgYW4gc2tiIGluIE9wZW4gdlN3aXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE9WUyBmbG93IGV4dHJhY3Rpb24gbG9naWMsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoZS5nLiwgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgKSBhbmQgZnJvbSBuZXR3b3JrIHBhY2tldCBwcm9jZXNzaW5nIChgb3ZzX3Zwb3J0X3JlY2VpdmVgKS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZGNkZTJjNGQzZjA2ZWU1YzAyODhjYmE4ZGRlODcxMzQxOGVjNzdkYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDE6MjIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2Zsb3cuYyBiL25ldC9vcGVudnN3aXRjaC9mbG93LmNcbmluZGV4IDY2MzY2OTgyZjYwNDQuLjQ2YzFkNjZhYWQ4YzMgMTAwNjQ0XG4tLS0gYS9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jXG5AQCAtODg5LDggJiM0Mzs4ODksNiBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG4gICogRXRoZXJuZXQgaGVhZGVyXG4gICogQGtleTogb3V0cHV0IGZsb3cga2V5XG4gICpcbi0gKiBUaGUgY2FsbGVyIG11c3QgZW5zdXJlIHRoYXQgc2tiLVx1MDAzZWxlbiBcdTAwM2U9IEVUSF9ITEVOLlxuLSAqXG4gICogSW5pdGlhbGl6ZXMgQHNrYiBoZWFkZXIgZmllbGRzIGFzIGZvbGxvd3M6XG4gICpcbiAgKiAgICAtIHNrYi1cdTAwM2VtYWNfaGVhZGVyOiB0aGUgTDIgaGVhZGVyLlxuQEAgLTkxMCw4ICYjNDM7OTA4LDYgQEAgc3RhdGljIGludCBrZXlfZXh0cmFjdF9sM2w0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxuICAqL1xuIHN0YXRpYyBpbnQga2V5X2V4dHJhY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG4ge1xuLVx0c3RydWN0IGV0aGhkciAqZXRoO1xuLVxuIFx0LyogRmxhZ3MgYXJlIGFsd2F5cyB1c2VkIGFzIHBhcnQgb2Ygc3RhdHMgKi9cbiBcdGtleS1cdTAwM2V0cC5mbGFncyA9IDA7XG4gXG5AQCAtOTI2LDYgJiM0Mzs5MjIsMTMgQEAgc3RhdGljIGludCBrZXlfZXh0cmFjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbiBcdFx0c2tiX3Jlc2V0X25ldHdvcmtfaGVhZGVyKHNrYik7XG4gXHRcdGtleS1cdTAwM2VldGgudHlwZSA9IHNrYi1cdTAwM2Vwcm90b2NvbDtcbiBcdH0gZWxzZSB7XG4mIzQzO1x0XHRzdHJ1Y3QgZXRoaGRyICpldGg7XG4mIzQzO1x0XHRpbnQgZXJyO1xuJiM0MztcbiYjNDM7XHRcdGVyciA9IGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKTtcbiYjNDM7XHRcdGlmICh1bmxpa2VseShlcnIpKVxuJiM0MztcdFx0XHRyZXR1cm4gZXJyO1xuJiM0MztcbiBcdFx0ZXRoID0gZXRoX2hkcihza2IpO1xuIFx0XHRldGhlcl9hZGRyX2NvcHkoa2V5LVx1MDAzZWV0aC5zcmMsIGV0aC1cdTAwM2VoX3NvdXJjZSk7XG4gXHRcdGV0aGVyX2FkZHJfY29weShrZXktXHUwMDNlZXRoLmRzdCwgZXRoLVx1MDAzZWhfZGVzdCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09QRU5WU1dJVENIJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7b3ZzX2Zsb3dfa2V5X2V4dHJhY3QmIzM0OywKICAgICYjMzQ7b3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlJiMzNDssCiAgICAmIzM0O292c19mbG93X2tleV91cGRhdGUmIzM0OywKICAgICYjMzQ7b3ZzX3Zwb3J0X3JlY2VpdmUmIzM0OywKICAgICYjMzQ7b3ZzX3BhY2tldF9jbWRfZXhlY3V0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIChgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCkgaW4gYGtleV9leHRyYWN0YCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgd2hlbiBwYXJzaW5nIHRoZSBFdGhlcm5ldCBoZWFkZXIgb2YgYW4gc2tiIGluIE9wZW4gdlN3aXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE9WUyBmbG93IGV4dHJhY3Rpb24gbG9naWMsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoZS5nLiwgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgKSBhbmQgZnJvbSBuZXR3b3JrIHBhY2tldCBwcm9jZXNzaW5nIChgb3ZzX3Zwb3J0X3JlY2VpdmVgKS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZGNkZTJjNGQzZjA2ZWU1YzAyODhjYmE4ZGRlODcxMzQxOGVjNzdkYgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDEgMDk6NDE6MjIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jIGIvbmV0L29wZW52c3dpdGNoL2Zsb3cuYwppbmRleCA2NjM2Njk4MmY2MDQ0Li40NmMxZDY2YWFkOGMzIDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9vcGVudnN3aXRjaC9mbG93LmMKQEAgLTg4OSw4ICYjNDM7ODg5LDYgQEAgc3RhdGljIGludCBrZXlfZXh0cmFjdF9sM2w0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KQogICogRXRoZXJuZXQgaGVhZGVyCiAgKiBAa2V5OiBvdXRwdXQgZmxvdyBrZXkKICAqCi0gKiBUaGUgY2FsbGVyIG11c3QgZW5zdXJlIHRoYXQgc2tiLSZndDtsZW4gJmd0Oz0gRVRIX0hMRU4uCi0gKgogICogSW5pdGlhbGl6ZXMgQHNrYiBoZWFkZXIgZmllbGRzIGFzIGZvbGxvd3M6CiAgKgogICogICAgLSBza2ItJmd0O21hY19oZWFkZXI6IHRoZSBMMiBoZWFkZXIuCkBAIC05MTAsOCAmIzQzOzkwOCw2IEBAIHN0YXRpYyBpbnQga2V5X2V4dHJhY3RfbDNsNChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSkKICAqLwogc3RhdGljIGludCBrZXlfZXh0cmFjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSkKIHsKLQlzdHJ1Y3QgZXRoaGRyICpldGg7Ci0KIAkvKiBGbGFncyBhcmUgYWx3YXlzIHVzZWQgYXMgcGFydCBvZiBzdGF0cyAqLwogCWtleS0mZ3Q7dHAuZmxhZ3MgPSAwOwogCkBAIC05MjYsNiAmIzQzOzkyMiwxMyBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KQogCQlza2JfcmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTsKIAkJa2V5LSZndDtldGgudHlwZSA9IHNrYi0mZ3Q7cHJvdG9jb2w7CiAJfSBlbHNlIHsKJiM0MzsJCXN0cnVjdCBldGhoZHIgKmV0aDsKJiM0MzsJCWludCBlcnI7CiYjNDM7CiYjNDM7CQllcnIgPSBjaGVja19oZWFkZXIoc2tiLCBFVEhfSExFTik7CiYjNDM7CQlpZiAodW5saWtlbHkoZXJyKSkKJiM0MzsJCQlyZXR1cm4gZXJyOwomIzQzOwogCQlldGggPSBldGhfaGRyKHNrYik7CiAJCWV0aGVyX2FkZHJfY29weShrZXktJmd0O2V0aC5zcmMsIGV0aC0mZ3Q7aF9zb3VyY2UpOwogCQlldGhlcl9hZGRyX2NvcHkoa2V5LSZndDtldGguZHN0LCBldGgtJmd0O2hfZGVzdCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMzAKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxNTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUmVjZW50IE9WUyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBtb2RpZnlpbmcgYG5ldC9vcGVudnN3aXRjaC9mbG93LmNgLiBJdCBsb29rcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIGZpeDogdGhleSYjMzk7cmUgYWRkaW5nIGEgYGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKWAgY2FsbCB3aXRoaW4gYGtleV9leHRyYWN0KClgLiBUaGUgaW50ZW50aW9uIGlzIGNsZWFybHkgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIHdoZW4gZGVhbGluZyB3aXRoIHRoZSBFdGhlcm5ldCBoZWFkZXIsIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UuIEdpdmVuIHRoYXQgdGhpcyBpcyBpbiBPcGVuIHZTd2l0Y2gsIHdoaWNoIGlzIGEga2V5IGNvbXBvbmVudCBhbmQgcXVpdGUgcmVhY2hhYmxlLCBhbmQgdGhlcmVmb3JlLCBlbWluZW50bHkgZnV6emFibGUsIHRoaXMga2luZCBvZiBwcm90ZWN0aW9uIGlzIGNydWNpYWwuCgpOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UgbW9yZSBmdWxseS4gSSYjMzk7bGwgdGFrZSBhIGxvb2sgYXQgdGhlIGNvZGUsIHNwZWNpZmljYWxseSBgbmV0L29wZW52c3dpdGNoL2Zsb3cuY2AsIHRvIHNlZSB3aGVyZSBga2V5X2V4dHJhY3RgIGlzIGNhbGxlZC4gSXQmIzM5O3MgbWFya2VkIGFzIGBzdGF0aWNgLCBzbyBJIGtub3cgSSBuZWVkIHRvIGJlIGNhcmVmdWwgd2l0aCBteSBzZWFyY2guIEkmIzM5O2xsIG5lZWQgdG8gaWRlbnRpZnkgYWxsIG9mIHRoZSBmdW5jdGlvbnMgdGhhdCBjYWxsIGBrZXlfZXh0cmFjdGAgdG8gdW5kZXJzdGFuZCB0aGUgZmxvdyBvZiBleGVjdXRpb24gYW5kIGhvdyB0aGlzIHByb3RlY3Rpb24gYWZmZWN0cyB0aGUgc3lzdGVtJiMzOTtzIGJlaGF2aW9yLiBUaW1lIHRvIGZpbmQgdGhvc2UgY2FsbGVycyEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrZXlfZXh0cmFjdFxcKCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9vcGVudnN3aXRjaC9mbG93LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoL2Zsb3cuYz02Nzk9c3RhdGljIGludCBrZXlfZXh0cmFjdF9sM2w0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxuLS1cbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTA4LSAqL1xubmV0L29wZW52c3dpdGNoL2Zsb3cuYzo5MDk6c3RhdGljIGludCBrZXlfZXh0cmFjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTEwLXtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTk3NT1pbnQgb3ZzX2Zsb3dfa2V5X3VwZGF0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk3OC1cbm5ldC9vcGVudnN3aXRjaC9mbG93LmM6OTc5Olx0cmVzID0ga2V5X2V4dHJhY3Qoc2tiLCBrZXkpO1xubmV0L29wZW52c3dpdGNoL2Zsb3cuYy05ODAtXHRpZiAoIXJlcylcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTk4Nj1zdGF0aWMgaW50IGtleV9leHRyYWN0X21hY19wcm90byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTk5LVxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDAwOmludCBvdnNfZmxvd19rZXlfZXh0cmFjdChjb25zdCBzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKnR1bl9pbmZvLFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMDAxLVx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwNTctXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jOjEwNTg6XHRlcnIgPSBrZXlfZXh0cmFjdChza2IsIGtleSk7XG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwNTktXHRpZiAoIWVycikge1xubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDYwOlx0XHRvdnNfY3RfZmlsbF9rZXkoc2tiLCBrZXksIHBvc3RfY3QpOyAgIC8qIE11c3QgYmUgYWZ0ZXIga2V5X2V4dHJhY3QoKS4gKi9cbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtMTA2MS1cdFx0aWYgKHBvc3RfY3QpIHtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTEwNzU9aW50IG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXG4tLVxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMTAxLVx0c2tiLVx1MDAzZXByb3RvY29sID0ga2V5LVx1MDAzZWV0aC50eXBlO1xubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMTAyOlx0ZXJyID0ga2V5X2V4dHJhY3Qoc2tiLCBrZXkpO1xubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMTAzLVx0aWYgKGVycilcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzYxCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYGtleV9leHRyYWN0YCBGdW5jdGlvbiYjMzk7cyBDYWxsZXJzKioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBga2V5X2V4dHJhY3RgIGlzIGJlaW5nIHVzZWQuIEZpcnN0LCBJJiMzOTttIG5vdGluZyB0aGUgdGhyZWUgZnVuY3Rpb25zIHRoYXQgY2FsbCBpdDogYG92c19mbG93X2tleV91cGRhdGVgLCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgLCBhbmQgYG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZWAuIFRoYXQmIzM5O3MgYSByZWFzb25hYmxlIHNldCwgYW5kIG5vdyBJIG5lZWQgdG8gZGlnIGludG8gd2hhdCYjMzk7cyBoYXBwZW5pbmcgd2l0aGluIHRob3NlIGZ1bmN0aW9ucy4KCk15IGltbWVkaWF0ZSBuZXh0IHN0ZXAgaXMgdG8gZXhhbWluZSB0aG9zZSB0aHJlZSBmdW5jdGlvbnMsIHNwZWNpZmljYWxseSBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgLCBgb3ZzX2Zsb3dfa2V5X3VwZGF0ZWAsIGFuZCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlYCBiZWNhdXNlIHRoYXQgd2lsbCB0ZWxsIG1lIGhvdyBga2V5X2V4dHJhY3RgIGlzIGJlaW5nIHVzZWQuIENydWNpYWxseSwgSSBoYXZlIHRvIGRldGVybWluZSBpZiB0aGVzZSBjYWxsZXJzIGFyZSBleHBvcnRlZCBmdW5jdGlvbnMgb3IganVzdCBub24tc3RhdGljLCBiZWNhdXNlIHRoZSBzY29wZSBhbmQgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiB1c2FnZSBhcmUgdmVyeSBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIHRoZSBmdW5jdGlvbiYjMzk7cyBzY29wZS4gVGhpcyB3aWxsIGluZmx1ZW5jZSBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBsYXJnZXIgYXJjaGl0ZWN0dXJlIGFuZCBob3cgZGF0YSBpcyBtYW5hZ2VkIHdpdGhpbiB0aGlzIGtleSBleHRyYWN0aW9uIHByb2Nlc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtFWFBPUlRfU1lNQk9MLipvdnNfZmxvd19rZXlfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc0NwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IHBlcnNwZWN0aXZlOgoKKipJbnZlc3RpZ2F0aW5nIFBvdGVudGlhbCBPcGVuIHZTd2l0Y2ggSW50ZWdyYXRpb24qKgoKQWxyaWdodCwgSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiB0aGVzZSBpdGVtcyBjb3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgT3BlbiB2U3dpdGNoIG1vZHVsZS4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb3JlIHNvdXJjZSBjb2RlLiBJJiMzOTtsbCBuZWVkIHRvIGxvY2F0ZSB3aGVyZSB0aGVzZSBjb21wb25lbnRzIGFyZSBkZWNsYXJlZCwgZGVmaW5lZCwgYW5kIHBvdGVudGlhbGx5IHVzZWQuIFRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0IGxvb2tpbmcgd291bGQgYmUgd2l0aGluIHRoZSBgbmV0L29wZW52c3dpdGNoYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgSSBzaG91bGQgY2hlY2sgYGZsb3cuaGAgYW5kIGBmbG93LmNgIOKAkyB0aGF0JiMzOTtzIHdoZXJlIEkmIzM5O2QgZXhwZWN0IHRvIGZpbmQgdGhlIGZ1bmRhbWVudGFsIHN0cnVjdHVyZXMgYW5kIGZ1bmN0aW9uIGRlZmluaXRpb25zIHJlbGF0ZWQgdG8gZmxvdyBtYW5hZ2VtZW50LCB3aGljaCBpcyBvZnRlbiB3aGVyZSB5b3UmIzM5O2QgaW50ZWdyYXRlIG5ldyBlbGVtZW50cy4gSSYjMzk7bGwgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB0aG9zZSBmaWxlcyB0byBzZWUgaWYgYW55dGhpbmcganVtcHMgb3V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O292c19mbG93X2tleV9leHRyYWN0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYz0zNjY9c3RhdGljIGludCBxdWV1ZV9nc29fcGFja2V0cyhzdHJ1Y3QgZGF0YXBhdGggKmRwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTM4My1cdGlmIChnc29fdHlwZSBcdTAwMjYgU0tCX0dTT19VRFApIHtcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jOjM4NDpcdFx0LyogVGhlIGluaXRpYWwgZmxvdyBrZXkgZXh0cmFjdGVkIGJ5IG92c19mbG93X2tleV9leHRyYWN0KClcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTM4NS1cdFx0ICogaW4gdGhpcyBjYXNlIGlzIGZvciBhIGZpcnN0IGZyYWdtZW50LCBzbyB3ZSBuZWVkIHRvXG4tLVxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM9NjEyPXN0YXRpYyBpbnQgb3ZzX3BhY2tldF9jbWRfZXhlY3V0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTY2Ny1cbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jOjY2ODpcdGVyciA9IG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZShuZXQsIGFbT1ZTX1BBQ0tFVF9BVFRSX0tFWV0sXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYy02NjktXHRcdFx0XHRcdCAgICAgcGFja2V0LCBcdTAwMjZmbG93LVx1MDAzZWtleSwgbG9nKTtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTk4Nj1zdGF0aWMgaW50IGtleV9leHRyYWN0X21hY19wcm90byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTk5LVxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDAwOmludCBvdnNfZmxvd19rZXlfZXh0cmFjdChjb25zdCBzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKnR1bl9pbmZvLFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMDAxLVx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwNzQtXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jOjEwNzU6aW50IG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwNzYtXHRcdFx0XHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC9vcGVudnN3aXRjaC9mbG93Lmg9Mjg5PWludCBvdnNfZmxvd19rZXlfdXBkYXRlX2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpO1xubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyOTA6aW50IG92c19mbG93X2tleV9leHRyYWN0KGNvbnN0IHN0cnVjdCBpcF90dW5uZWxfaW5mbyAqdHVuX2luZm8sXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oLTI5MS1cdFx0XHQgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oLTI5My0vKiBFeHRyYWN0IGtleSBmcm9tIHBhY2tldCBjb21pbmcgZnJvbSB1c2Vyc3BhY2UuICovXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oOjI5NDppbnQgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlKHN0cnVjdCBuZXQgKm5ldCwgY29uc3Qgc3RydWN0IG5sYXR0ciAqYXR0cixcbm5ldC9vcGVudnN3aXRjaC9mbG93LmgtMjk1LVx0XHRcdFx0ICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvdnBvcnQuYz00OTc9aW50IG92c192cG9ydF9yZWNlaXZlKHN0cnVjdCB2cG9ydCAqdnBvcnQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxubmV0L29wZW52c3dpdGNoL3Zwb3J0LmMtNTE3LVx0LyogRXh0cmFjdCBmbG93IGZyb20gJiMzOTtza2ImIzM5OyBpbnRvICYjMzk7a2V5JiMzOTsuICovXG5uZXQvb3BlbnZzd2l0Y2gvdnBvcnQuYzo1MTg6XHRlcnJvciA9IG92c19mbG93X2tleV9leHRyYWN0KHR1bl9pbmZvLCBza2IsIFx1MDAyNmtleSk7XG5uZXQvb3BlbnZzd2l0Y2gvdnBvcnQuYy01MTktXHRpZiAodW5saWtlbHkoZXJyb3IpKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDgyMgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDExOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgS2V5IEZsb3cgRXh0cmFjdGlvbiBQb2ludHMgaW4gT1ZTKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgZmxvdyBrZXlzIGFyZSBoYW5kbGVkIGluIE9wZW4gdlN3aXRjaC4gSSYjMzk7dmUgZ290IHR3byBpbnRlcmVzdGluZyBmdW5jdGlvbnMgaGlnaGxpZ2h0ZWQ6IGBvdnNfZmxvd19rZXlfZXh0cmFjdGAgYW5kIGBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2VgLiBJIHNlZSB0aGF0IGBvdnNfZmxvd19rZXlfZXh0cmFjdGAgaXMgY2FsbGVkIHdpdGhpbiBgb3ZzX3Zwb3J0X3JlY2VpdmVgLiBUaGF0JiMzOTtzIGEgc3Ryb25nIGluZGljYXRvciDigJMgYG92c192cG9ydF9yZWNlaXZlYCBpcyBmdW5kYW1lbnRhbDsgaXTigJlzIHdoZXJlIGluY29taW5nIHBhY2tldHMgYXJlIGluaXRpYWxseSBwcm9jZXNzZWQuIFRoZXJlZm9yZSwgYG92c19mbG93X2tleV9leHRyYWN0YCBtdXN0IGJlIGEgY3JpdGljYWwgcGFydCBvZiB0aGF0IGNvcmUgcGFja2V0IHJlY2VwdGlvbiBwYXRoLgoKT24gdGhlIG90aGVyIGhhbmQsIGBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2VgIGdldHMgY2FsbGVkIHdpdGhpbiBgb3ZzX3BhY2tldF9jbWRfZXhlY3V0ZWAuIEFoLCBzbyB0aGlzIGRlYWxzIHdpdGggdGhlIGV4ZWN1dGlvbiBvZiBwYWNrZXQgY29tbWFuZHMgc2VudCBvdmVyIG5ldGxpbmsuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBgb3ZzX3BhY2tldF9jbWRfZXhlY3V0ZWAgaGFuZGxlcyB0aG9zZSBgT1ZTX1BBQ0tFVF9DTURfRVhFQ1VURWAgbWVzc2FnZXMsIG1lYW5pbmcgdGhpcyBmdW5jdGlvbiBsaWtlbHkgaXMgcmVzcG9uc2libGUgZm9yIHByb2Nlc3NpbmcgcGFja2V0cyBpbiB0aGUgdXNlcnNwYWNlLgoKTm93LCBJJiMzOTttIHRoaW5raW5nLCB3aGVyZSBkb2VzIHRoZSBmbG93IGtleSBnZXQgdXBkYXRlZCBpbiB0aGUga2VybmVsPyBJIG5lZWQgdG8gY2hlY2sgYG92c19mbG93X2tleV91cGRhdGVgIHRvIHNlZSBpZiBpdCYjMzk7cyBpbnZvbHZlZCBpbiB0aGlzIHByb2Nlc3MuIFRpbWUgdG8gZGlnIGluIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtvdnNfZmxvd19rZXlfdXBkYXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jPTExMTU9c3RhdGljIGludCBleGVjdXRlX3JlY2lyYyhzdHJ1Y3QgZGF0YXBhdGggKmRwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMtMTEyMy1cbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmM6MTEyNDpcdFx0ZXJyID0gb3ZzX2Zsb3dfa2V5X3VwZGF0ZShza2IsIGtleSk7XG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jLTExMjUtXHRcdGlmIChlcnIpIHtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jPTEyNTU9c3RhdGljIGludCBkb19leGVjdXRlX2FjdGlvbnMoc3RydWN0IGRhdGFwYXRoICpkcCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jLTEzODAtXHRcdFx0aWYgKCFpc19mbG93X2tleV92YWxpZChrZXkpKSB7XG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jOjEzODE6XHRcdFx0XHRlcnIgPSBvdnNfZmxvd19rZXlfdXBkYXRlKHNrYiwga2V5KTtcbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMtMTM4Mi1cdFx0XHRcdGlmIChlcnIpXG4tLVxubmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jPTQ0ND1zdGF0aWMgaW50IG92c19jdF9oYW5kbGVfZnJhZ21lbnRzKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXksXG4tLVxubmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jLTQ1Ni1cdCAqL1xubmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jOjQ1NzpcdG92c19mbG93X2tleV91cGRhdGVfbDNsNChza2IsIGtleSk7XG5uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMtNDU4LVx0a2V5LVx1MDAzZWlwLmZyYWcgPSBPVlNfRlJBR19UWVBFX05PTkU7XG4tLVxubmV0L29wZW52c3dpdGNoL2Zsb3cuYz05MDk9c3RhdGljIGludCBrZXlfZXh0cmFjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk2OS0gKi9cbm5ldC9vcGVudnN3aXRjaC9mbG93LmM6OTcwOmludCBvdnNfZmxvd19rZXlfdXBkYXRlX2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk3MS17XG4tLVxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy05NzQtXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jOjk3NTppbnQgb3ZzX2Zsb3dfa2V5X3VwZGF0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTc2LXtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oPTI4Nj11NjQgb3ZzX2Zsb3dfdXNlZF90aW1lKHVuc2lnbmVkIGxvbmcgZmxvd19qaWZmaWVzKTtcbm5ldC9vcGVudnN3aXRjaC9mbG93LmgtMjg3LVxubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyODg6aW50IG92c19mbG93X2tleV91cGRhdGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpO1xubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyODk6aW50IG92c19mbG93X2tleV91cGRhdGVfbDNsNChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSk7XG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oLTI5MC1pbnQgb3ZzX2Zsb3dfa2V5X2V4dHJhY3QoY29uc3Qgc3RydWN0IGlwX3R1bm5lbF9pbmZvICp0dW5faW5mbyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjAxNgoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLCBteSBtaW5kIGlzIHdvcmtpbmcgb24gaG93IHRvIGFwcHJvYWNoIHRoaXMuLi4KCioqRm9jdXNpbmcgb24gT3BlbiB2U3dpdGNoIEtlcm5lbCBPcGVyYXRpb25zKioKCkFscmlnaHQsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUga2V5IGFyZWFzLCB0aGUgY3JpdGljYWwgY29tcG9uZW50cywgd2l0aGluIHRoZSBPcGVuIHZTd2l0Y2gga2VybmVsIG1vZHVsZXMuIEkgbmVlZCB0byBiZSBleGFjdCBoZXJlLCB0byBhdm9pZCB3YXN0aW5nIHRpbWUuIEkmIzM5O20gdGhpbmtpbmcgb2YgZml2ZSBzcGVjaWZpYyBzeW1ib2xzIGFzIHBvdGVudGlhbCBzdGFydGluZyBwb2ludHM6IGBvdnNfZmxvd19rZXlfZXh0cmFjdGAsIGBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2VgLCBgb3ZzX2Zsb3dfa2V5X3VwZGF0ZWAsIGBvdnNfdnBvcnRfcmVjZWl2ZWAsIGFuZCBgb3ZzX3BhY2tldF9jbWRfZXhlY3V0ZWAuIFRoZXNlIGFsbCAqZmVlbCogbGlrZSBoaWdoLWxldmVyYWdlIHBvaW50cyBpbiB0aGUgZGF0YSBwYXRoLCBidXQgSSBuZWVkIHRvIGJlIHN1cmUuIEkmIzM5O20gdmlzdWFsaXppbmcgdGhlbSwgdGhlc2UgYXJlIGFsbCBjcml0aWNhbCB0byB0aGUgb3BlcmF0aW9uIG9mIHRoZSBrZXJuZWwgbW9kdWxlcy4KCkkgbmVlZCB0byBjb25maXJtIHRoZXNlIGZ1bmN0aW9ucyB0aHJvdWdoIHRoZSBjb25maWd1cmF0aW9uLCBieSBjaGVja2luZyB0aGUgS2NvbmZpZyBzZXR0aW5ncy4gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBzeW1ib2xzIGludGVyYWN0IHRvIGFjaGlldmUgdGhlaXIgZ29hbC4gVGltZSB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBhbmQgbWFrZSBzdXJlIG15IGluc3RpbmN0cyBhcmUgc291bmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBPUEVOVlNXSVRDSCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9vcGVudnN3aXRjaC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9vcGVudnN3aXRjaC9LY29uZmlnLTUtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo2OmNvbmZpZyBPUEVOVlNXSVRDSFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaFwmIzM0O1xuLS1cbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTQzLVxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NDQ6Y29uZmlnIE9QRU5WU1dJVENIX0dSRVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuIHZTd2l0Y2ggR1JFIHR1bm5lbGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTYtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo1Nzpjb25maWcgT1BFTlZTV0lUQ0hfVlhMQU5cbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTU4LVx0dHJpc3RhdGUgXCYjMzQ7T3BlbiB2U3dpdGNoIFZYTEFOIHR1bm5lbGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNjgtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo2OTpjb25maWcgT1BFTlZTV0lUQ0hfR0VORVZFXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03MC1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaCBHZW5ldmUgdHVubmVsaW5nIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjU5NgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgT3BlbiB2U3dpdGNoIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gaXRlbSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGlzIGBPUEVOVlNXSVRDSGAuIFRoZSBmaXJzdCB0aGluZyBJIGFsd2F5cyBkbyBpcyB0cmFjZSBiYWNrIGl0cyBsaW5lYWdlIGFuZCBkZXBlbmRlbmNpZXMuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlcy4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgYE9QRU5WU1dJVENIYCB2YXJpYWJsZSBpcyBnYXRpbmcuIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCB0aGUgYG5ldC9vcGVudnN3aXRjaC9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHdoZXJlIEkgZXhwZWN0IHRvIGZpbmQgdGhlIGRlcGVuZGVuY2llcywgYW55IHN1cHBvcnRpbmcgb3B0aW9ucywgYW5kIHBvc3NpYmx5IHNvbWUgY29udGV4dCBhcm91bmQgdGhlIGludGVudCBvZiBgT1BFTlZTV0lUQ0hgIGl0c2VsZi4gV2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMgaXMgaXQgcHVsbGluZyBpbj8gQW55IHNwZWNpZmljIG5ldHdvcmtpbmcgc3RhY2tzPyBUaGF0IGZpbGUgc2hvdWxkIGdpdmUgbWUgdGhlIGdyb3VuZCB0cnV0aCB0byB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgdGhpcyBjb25maWd1cmF0aW9uIGl0ZW0uIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBhY3R1YWxseSB1bmRlciB0aGUgaG9vZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdCNcbiAgIDM6XHQjIE9wZW4gdlN3aXRjaFxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRjb25maWcgT1BFTlZTV0lUQ0hcbiAgIDc6XHRcdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaFwmIzM0O1xuICAgODpcdFx0ZGVwZW5kcyBvbiBJTkVUXG4gICA5Olx0XHRkZXBlbmRzIG9uICFORl9DT05OVFJBQ0sgfHwgXFxcbiAgMTA6XHRcdFx0ICAgKE5GX0NPTk5UUkFDSyBcdTAwMjZcdTAwMjYgKCghTkZfREVGUkFHX0lQVjYgfHwgTkZfREVGUkFHX0lQVjYpIFx1MDAyNlx1MDAyNiBcXFxuICAxMTpcdFx0XHRcdFx0ICAgICAoIU5GX05BVCB8fCBORl9OQVQpIFx1MDAyNlx1MDAyNiBcXFxuICAxMjpcdFx0XHRcdFx0ICAgICAoIU5FVEZJTFRFUl9DT05OQ09VTlQgfHwgTkVURklMVEVSX0NPTk5DT1VOVCkpKVxuICAxMzpcdFx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8ICFQU0FNUExFXG4gIDE0Olx0XHRzZWxlY3QgTVBMU1xuICAxNTpcdFx0c2VsZWN0IE5FVF9DUkMzMkNcbiAgMTY6XHRcdHNlbGVjdCBORVRfTVBMU19HU09cbiAgMTc6XHRcdHNlbGVjdCBEU1RfQ0FDSEVcbiAgMTg6XHRcdHNlbGVjdCBORVRfTlNIXG4gIDE5Olx0XHRzZWxlY3QgTkZfQ09OTlRSQUNLX09WUyBpZiBORl9DT05OVFJBQ0tcbiAgMjA6XHRcdHNlbGVjdCBORl9OQVRfT1ZTIGlmIE5GX05BVFxuICAyMTpcdFx0aGVscFxuICAyMjpcdFx0ICBPcGVuIHZTd2l0Y2ggaXMgYSBtdWx0aWxheWVyIEV0aGVybmV0IHN3aXRjaCB0YXJnZXRlZCBhdCB2aXJ0dWFsaXplZFxuICAyMzpcdFx0ICBlbnZpcm9ubWVudHMuICBJbiBhZGRpdGlvbiB0byBzdXBwb3J0aW5nIGEgdmFyaWV0eSBvZiBmZWF0dXJlc1xuICAyNDpcdFx0ICBleHBlY3RlZCBpbiBhIHRyYWRpdGlvbmFsIGhhcmR3YXJlIHN3aXRjaCwgaXQgZW5hYmxlcyBmaW5lLWdyYWluZWRcbiAgMjU6XHRcdCAgcHJvZ3JhbW1hdGljIGV4dGVuc2lvbiBhbmQgZmxvdy1iYXNlZCBjb250cm9sIG9mIHRoZSBuZXR3b3JrLiAgVGhpc1xuICAyNjpcdFx0ICBjb250cm9sIGlzIHVzZWZ1bCBpbiBhIHdpZGUgdmFyaWV0eSBvZiBhcHBsaWNhdGlvbnMgYnV0IGlzXG4gIDI3Olx0XHQgIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgaW4gbXVsdGktc2VydmVyIHZpcnR1YWxpemF0aW9uIGRlcGxveW1lbnRzLFxuICAyODpcdFx0ICB3aGljaCBhcmUgb2Z0ZW4gY2hhcmFjdGVyaXplZCBieSBoaWdobHkgZHluYW1pYyBlbmRwb2ludHMgYW5kIHRoZVxuICAyOTpcdFx0ICBuZWVkIHRvIG1haW50YWluIGxvZ2ljYWwgYWJzdHJhY3Rpb25zIGZvciBtdWx0aXBsZSB0ZW5hbnRzLlxuICAzMDpcdFxuICAzMTpcdFx0ICBUaGUgT3BlbiB2U3dpdGNoIGRhdGFwYXRoIHByb3ZpZGVzIGFuIGluLWtlcm5lbCBmYXN0IHBhdGggZm9yIHBhY2tldFxuICAzMjpcdFx0ICBmb3J3YXJkaW5nLiAgSXQgaXMgY29tcGxlbWVudGVkIGJ5IGEgdXNlcnNwYWNlIGRhZW1vbiwgb3ZzLXZzd2l0Y2hkLFxuICAzMzpcdFx0ICB3aGljaCBpcyBhYmxlIHRvIGFjY2VwdCBjb25maWd1cmF0aW9uIGZyb20gYSB2YXJpZXR5IG9mIHNvdXJjZXMgYW5kXG4gIDM0Olx0XHQgIHRyYW5zbGF0ZSBpdCBpbnRvIHBhY2tldCBwcm9jZXNzaW5nIHJ1bGVzLlxuICAzNTpcdFxuICAzNjpcdFx0ICBTZWUgaHR0cDovL29wZW52c3dpdGNoLm9yZyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgdXNlcnNwYWNlXG4gIDM3Olx0XHQgIHV0aWxpdGllcy5cbiAgMzg6XHRcbiAgMzk6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGNvZGUgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbCBiZVxuICA0MDpcdFx0ICBjYWxsZWQgb3BlbnZzd2l0Y2guXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc0NDYKCQkJCQkJCW91dHB1dDogMjE1CgkJCQkJCQl0aG91Z2h0czogMjU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEZ1enppbmcgU3RyYXRlZ3kgZm9yIFRoaXMgT3BlbiB2U3dpdGNoIFBhdGNoKioKCk9rYXksIHNvIHRoZSBjb25maWcgaXMgZGVmaW5pdGVseSBgT1BFTlZTV0lUQ0hgLiBUaGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBrZXlfZXh0cmFjdGAgd2l0aGluIGBuZXQvb3BlbnZzd2l0Y2gvZmxvdy5jYC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgZmxvdyBrZXkgZ2V0cyBwdWxsZWQgZnJvbSBhbiBgc2tiYC4gU291bmRzIGxpa2UgbG93LWhhbmdpbmcgZnJ1aXQgZm9yIGZ1enppbmcsIGFic29sdXRlbHkuIEFueSBjaGFuZ2UgaW4gdGhhdCBjb3JlIGZ1bmN0aW9uIGRlYWxpbmcgd2l0aCBwYWNrZXQgcHJvY2Vzc2luZyBpcyBnb2luZyB0byBiZSBpbnRlcmVzdGluZy4KCkxldCYjMzk7cyBzZWUsIHdoYXQgc3ltYm9scyBzaG91bGQgSSB0YXJnZXQ/IFRvcCBvZiBteSBsaXN0OiBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgIGFuZCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlYCDigJMgdGhlIGNvcmUgZXh0cmFjdGlvbiBmdW5jdGlvbnMsIG9mIGNvdXJzZS4gVGhlbiwgYG92c19mbG93X2tleV91cGRhdGVgIOKAkyBob3cgZG9lcyB0aGlzIGludGVyYWN0LCBjb3VsZCB0aGVyZSBiZSBzaWRlIGVmZmVjdHM/IEFuZCwgSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGBvdnNfdnBvcnRfcmVjZWl2ZWAgYW5kIGBvdnNfcGFja2V0X2NtZF9leGVjdXRlYCwgYmVjYXVzZSB0aG9zZSBhcmUgdGhlIGxpa2VseSBlbnRyeSBwb2ludHMgZnJvbSBuZXR3b3JrIHBhY2tldHMgYW5kIHVzZXJzcGFjZS4KClRoZSByZWFzb24gaXQmIzM5O3MgZnV6ei13b3J0aHkgaXMgYmVjYXVzZSB0aGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCBib3VuZHMgY2hlY2sgaW4gYGtleV9leHRyYWN0YC4gVGhpcyBpcyBhICpmdW5jdGlvbmFsKiBjaGFuZ2U6IGl0JiMzOTtzIGludGVuZGVkIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcyB3aGVuIHBhcnNpbmcgdGhlIEV0aGVybmV0IGhlYWRlciBpbiBPVlMuIENydWNpYWxseSwgdGhpcyBhZmZlY3RzIHRoZSBjb3JlIGZsb3cgZXh0cmFjdGlvbiBsb2dpYywgd2hpY2ggY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGxpbmsg4oCTIHdoaWNoIG1lYW5zIHVzZXJzcGFjZSBpbnRlcmFjdGlvbiB2aWEgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgIGlzIGEgcGF0aC4gQWxzbywgbm9ybWFsIHBhY2tldCBwcm9jZXNzaW5nIHRocm91Z2ggYG92c192cG9ydF9yZWNlaXZlYC4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgYm91bmRzIGNoZWNrICpjb3JyZWN0bHkqIGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgYW5kIHRoYXQgaXQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSByZWdyZXNzaW9ucy4gSXQmIzM5O3MgYWJvdXQgcHJvdGVjdGluZyBhZ2FpbnN0IGNyYXNoZXMgYW5kIGVuc3VyaW5nIHRoZSBzeXN0ZW0mIzM5O3Mgc3RhYmlsaXR5IHVuZGVyIGR1cmVzcy4gVGhpcyBpcyBhIHZlcnkgdGFyZ2V0ZWQgcGF0Y2gsIHNvIEkgbmVlZCB0byBmb2N1cyBvbiB0aGlzIGFyZWEuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtPUEVOVlNXSVRDSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O292c19mbG93X2tleV9leHRyYWN0JiMzNDssCiAgICAmIzM0O292c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZSYjMzQ7LAogICAgJiMzNDtvdnNfZmxvd19rZXlfdXBkYXRlJiMzNDssCiAgICAmIzM0O292c192cG9ydF9yZWNlaXZlJiMzNDssCiAgICAmIzM0O292c19wYWNrZXRfY21kX2V4ZWN1dGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayAoYGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKWApIGluIGBrZXlfZXh0cmFjdGAgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIHdoZW4gcGFyc2luZyB0aGUgRXRoZXJuZXQgaGVhZGVyIG9mIGFuIHNrYiBpbiBPcGVuIHZTd2l0Y2guIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBPVlMgZmxvdyBleHRyYWN0aW9uIGxvZ2ljLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGUuZy4sIGBPVlNfUEFDS0VUX0NNRF9FWEVDVVRFYCkgYW5kIGZyb20gbmV0d29yayBwYWNrZXQgcHJvY2Vzc2luZyAoYG92c192cG9ydF9yZWNlaXZlYCkuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgd2l0aG91dCBpbnRyb2R1Y2luZyByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7T1BFTlZTV0lUQ0gmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtvdnNfZmxvd19rZXlfZXh0cmFjdCYjMzQ7LAogICAgJiMzNDtvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2UmIzM0OywKICAgICYjMzQ7b3ZzX2Zsb3dfa2V5X3VwZGF0ZSYjMzQ7LAogICAgJiMzNDtvdnNfdnBvcnRfcmVjZWl2ZSYjMzQ7LAogICAgJiMzNDtvdnNfcGFja2V0X2NtZF9leGVjdXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgKGBjaGVja19oZWFkZXIoc2tiLCBFVEhfSExFTilgKSBpbiBga2V5X2V4dHJhY3RgIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcyB3aGVuIHBhcnNpbmcgdGhlIEV0aGVybmV0IGhlYWRlciBvZiBhbiBza2IgaW4gT3BlbiB2U3dpdGNoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgT1ZTIGZsb3cgZXh0cmFjdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZXRsaW5rIChlLmcuLCBgT1ZTX1BBQ0tFVF9DTURfRVhFQ1VURWApIGFuZCBmcm9tIG5ldHdvcmsgcGFja2V0IHByb2Nlc3NpbmcgKGBvdnNfdnBvcnRfcmVjZWl2ZWApLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgYm91bmRzIGNoZWNrIGNvcnJlY3RseSBoYW5kbGVzIG1hbGZvcm1lZCBwYWNrZXRzIHdpdGhvdXQgaW50cm9kdWNpbmcgcmVncmVzc2lvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MToyMy4yNzMwMTM4NTJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODQ5NzEwOTUwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJPUEVOVlNXSVRDSFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm92c19mbG93X2tleV9leHRyYWN0XCIsXG4gICAgXCJvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2VcIixcbiAgICBcIm92c19mbG93X2tleV91cGRhdGVcIixcbiAgICBcIm92c192cG9ydF9yZWNlaXZlXCIsXG4gICAgXCJvdnNfcGFja2V0X2NtZF9leGVjdXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayAoYGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKWApIGluIGBrZXlfZXh0cmFjdGAgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIHdoZW4gcGFyc2luZyB0aGUgRXRoZXJuZXQgaGVhZGVyIG9mIGFuIHNrYiBpbiBPcGVuIHZTd2l0Y2guIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBPVlMgZmxvdyBleHRyYWN0aW9uIGxvZ2ljLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGUuZy4sIGBPVlNfUEFDS0VUX0NNRF9FWEVDVVRFYCkgYW5kIGZyb20gbmV0d29yayBwYWNrZXQgcHJvY2Vzc2luZyAoYG92c192cG9ydF9yZWNlaXZlYCkuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgd2l0aG91dCBpbnRyb2R1Y2luZyByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDE6MjMuMjczMDIwNzYzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODE5MzQwNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkY2RlMmM0ZDNmMDZlZTVjMDI4OGNiYThkZGU4NzEzNDE4ZWM3N2RiXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDE6MjIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2Zsb3cuYyBiL25ldC9vcGVudnN3aXRjaC9mbG93LmNcXG5pbmRleCA2NjM2Njk4MmY2MDQ0Li40NmMxZDY2YWFkOGMzIDEwMDY0NFxcbi0tLSBhL25ldC9vcGVudnN3aXRjaC9mbG93LmNcXG4rKysgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jXFxuQEAgLTg4OSw4ICs4ODksNiBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXFxuICAqIEV0aGVybmV0IGhlYWRlclxcbiAgKiBAa2V5OiBvdXRwdXQgZmxvdyBrZXlcXG4gICpcXG4tICogVGhlIGNhbGxlciBtdXN0IGVuc3VyZSB0aGF0IHNrYi1cXHUwMDNlbGVuIFxcdTAwM2U9IEVUSF9ITEVOLlxcbi0gKlxcbiAgKiBJbml0aWFsaXplcyBAc2tiIGhlYWRlciBmaWVsZHMgYXMgZm9sbG93czpcXG4gICpcXG4gICogICAgLSBza2ItXFx1MDAzZW1hY19oZWFkZXI6IHRoZSBMMiBoZWFkZXIuXFxuQEAgLTkxMCw4ICs5MDgsNiBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXFxuICAqL1xcbiBzdGF0aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbiB7XFxuLVxcdHN0cnVjdCBldGhoZHIgKmV0aDtcXG4tXFxuIFxcdC8qIEZsYWdzIGFyZSBhbHdheXMgdXNlZCBhcyBwYXJ0IG9mIHN0YXRzICovXFxuIFxcdGtleS1cXHUwMDNldHAuZmxhZ3MgPSAwO1xcbiBcXG5AQCAtOTI2LDYgKzkyMiwxMyBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbiBcXHRcXHRza2JfcmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTtcXG4gXFx0XFx0a2V5LVxcdTAwM2VldGgudHlwZSA9IHNrYi1cXHUwMDNlcHJvdG9jb2w7XFxuIFxcdH0gZWxzZSB7XFxuK1xcdFxcdHN0cnVjdCBldGhoZHIgKmV0aDtcXG4rXFx0XFx0aW50IGVycjtcXG4rXFxuK1xcdFxcdGVyciA9IGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKTtcXG4rXFx0XFx0aWYgKHVubGlrZWx5KGVycikpXFxuK1xcdFxcdFxcdHJldHVybiBlcnI7XFxuK1xcbiBcXHRcXHRldGggPSBldGhfaGRyKHNrYik7XFxuIFxcdFxcdGV0aGVyX2FkZHJfY29weShrZXktXFx1MDAzZWV0aC5zcmMsIGV0aC1cXHUwMDNlaF9zb3VyY2UpO1xcbiBcXHRcXHRldGhlcl9hZGRyX2NvcHkoa2V5LVxcdTAwM2VldGguZHN0LCBldGgtXFx1MDAzZWhfZGVzdCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjIzLjg1NTY4ODIxN1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI3OTE0NDI1NjQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9QRU5WU1dJVENIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwib3ZzX2Zsb3dfa2V5X2V4dHJhY3RcIixcbiAgICBcIm92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZVwiLFxuICAgIFwib3ZzX2Zsb3dfa2V5X3VwZGF0ZVwiLFxuICAgIFwib3ZzX3Zwb3J0X3JlY2VpdmVcIixcbiAgICBcIm92c19wYWNrZXRfY21kX2V4ZWN1dGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIChgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCkgaW4gYGtleV9leHRyYWN0YCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgd2hlbiBwYXJzaW5nIHRoZSBFdGhlcm5ldCBoZWFkZXIgb2YgYW4gc2tiIGluIE9wZW4gdlN3aXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE9WUyBmbG93IGV4dHJhY3Rpb24gbG9naWMsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoZS5nLiwgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgKSBhbmQgZnJvbSBuZXR3b3JrIHBhY2tldCBwcm9jZXNzaW5nIChgb3ZzX3Zwb3J0X3JlY2VpdmVgKS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkY2RlMmM0ZDNmMDZlZTVjMDI4OGNiYThkZGU4NzEzNDE4ZWM3N2RiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMSAwOTo0MToyMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC9mbG93LmMgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jXG5pbmRleCA2NjM2Njk4MmY2MDQ0Li40NmMxZDY2YWFkOGMzIDEwMDY0NFxuLS0tIGEvbmV0L29wZW52c3dpdGNoL2Zsb3cuY1xuKysrIGIvbmV0L29wZW52c3dpdGNoL2Zsb3cuY1xuQEAgLTg4OSw4ICs4ODksNiBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG4gICogRXRoZXJuZXQgaGVhZGVyXG4gICogQGtleTogb3V0cHV0IGZsb3cga2V5XG4gICpcbi0gKiBUaGUgY2FsbGVyIG11c3QgZW5zdXJlIHRoYXQgc2tiLVx1MDAzZWxlbiBcdTAwM2U9IEVUSF9ITEVOLlxuLSAqXG4gICogSW5pdGlhbGl6ZXMgQHNrYiBoZWFkZXIgZmllbGRzIGFzIGZvbGxvd3M6XG4gICpcbiAgKiAgICAtIHNrYi1cdTAwM2VtYWNfaGVhZGVyOiB0aGUgTDIgaGVhZGVyLlxuQEAgLTkxMCw4ICs5MDgsNiBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG4gICovXG4gc3RhdGljIGludCBrZXlfZXh0cmFjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbiB7XG4tXHRzdHJ1Y3QgZXRoaGRyICpldGg7XG4tXG4gXHQvKiBGbGFncyBhcmUgYWx3YXlzIHVzZWQgYXMgcGFydCBvZiBzdGF0cyAqL1xuIFx0a2V5LVx1MDAzZXRwLmZsYWdzID0gMDtcbiBcbkBAIC05MjYsNiArOTIyLDEzIEBAIHN0YXRpYyBpbnQga2V5X2V4dHJhY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG4gXHRcdHNrYl9yZXNldF9uZXR3b3JrX2hlYWRlcihza2IpO1xuIFx0XHRrZXktXHUwMDNlZXRoLnR5cGUgPSBza2ItXHUwMDNlcHJvdG9jb2w7XG4gXHR9IGVsc2Uge1xuK1x0XHRzdHJ1Y3QgZXRoaGRyICpldGg7XG4rXHRcdGludCBlcnI7XG4rXG4rXHRcdGVyciA9IGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKTtcbitcdFx0aWYgKHVubGlrZWx5KGVycikpXG4rXHRcdFx0cmV0dXJuIGVycjtcbitcbiBcdFx0ZXRoID0gZXRoX2hkcihza2IpO1xuIFx0XHRldGhlcl9hZGRyX2NvcHkoa2V5LVx1MDAzZWV0aC5zcmMsIGV0aC1cdTAwM2VoX3NvdXJjZSk7XG4gXHRcdGV0aGVyX2FkZHJfY29weShrZXktXHUwMDNlZXRoLmRzdCwgZXRoLVx1MDAzZWhfZGVzdCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MToyMy44NTU2OTY2MTdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mjk3MzQzMjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFJlY2VudCBPVlMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIG1vZGlmeWluZyBgbmV0L29wZW52c3dpdGNoL2Zsb3cuY2AuIEl0IGxvb2tzIGxpa2UgYSBzdHJhaWdodGZvcndhcmQgZml4OiB0aGV5J3JlIGFkZGluZyBhIGBjaGVja19oZWFkZXIoc2tiLCBFVEhfSExFTilgIGNhbGwgd2l0aGluIGBrZXlfZXh0cmFjdCgpYC4gVGhlIGludGVudGlvbiBpcyBjbGVhcmx5IHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcyB3aGVuIGRlYWxpbmcgd2l0aCB0aGUgRXRoZXJuZXQgaGVhZGVyLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlLiBHaXZlbiB0aGF0IHRoaXMgaXMgaW4gT3BlbiB2U3dpdGNoLCB3aGljaCBpcyBhIGtleSBjb21wb25lbnQgYW5kIHF1aXRlIHJlYWNoYWJsZSwgYW5kIHRoZXJlZm9yZSwgZW1pbmVudGx5IGZ1enphYmxlLCB0aGlzIGtpbmQgb2YgcHJvdGVjdGlvbiBpcyBjcnVjaWFsLlxuXG5Ob3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UgbW9yZSBmdWxseS4gSSdsbCB0YWtlIGEgbG9vayBhdCB0aGUgY29kZSwgc3BlY2lmaWNhbGx5IGBuZXQvb3BlbnZzd2l0Y2gvZmxvdy5jYCwgdG8gc2VlIHdoZXJlIGBrZXlfZXh0cmFjdGAgaXMgY2FsbGVkLiBJdCdzIG1hcmtlZCBhcyBgc3RhdGljYCwgc28gSSBrbm93IEkgbmVlZCB0byBiZSBjYXJlZnVsIHdpdGggbXkgc2VhcmNoLiBJJ2xsIG5lZWQgdG8gaWRlbnRpZnkgYWxsIG9mIHRoZSBmdW5jdGlvbnMgdGhhdCBjYWxsIGBrZXlfZXh0cmFjdGAgdG8gdW5kZXJzdGFuZCB0aGUgZmxvdyBvZiBleGVjdXRpb24gYW5kIGhvdyB0aGlzIHByb3RlY3Rpb24gYWZmZWN0cyB0aGUgc3lzdGVtJ3MgYmVoYXZpb3IuIFRpbWUgdG8gZmluZCB0aG9zZSBjYWxsZXJzIVxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzMwLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDE6MjguMTUzMDQyNDJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEyMzcyODc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImtleV9leHRyYWN0XFxcXChcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L29wZW52c3dpdGNoL2Zsb3cuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTY3OT1zdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTkwOC0gKi9cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jOjkwOTpzdGF0aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTEwLXtcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmM9OTc1PWludCBvdnNfZmxvd19rZXlfdXBkYXRlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy05NzgtXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzo5Nzk6XFx0cmVzID0ga2V5X2V4dHJhY3Qoc2tiLCBrZXkpO1xcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTgwLVxcdGlmICghcmVzKVxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYz05ODY9c3RhdGljIGludCBrZXlfZXh0cmFjdF9tYWNfcHJvdG8oc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTk5LVxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmM6MTAwMDppbnQgb3ZzX2Zsb3dfa2V5X2V4dHJhY3QoY29uc3Qgc3RydWN0IGlwX3R1bm5lbF9pbmZvICp0dW5faW5mbyxcXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwMDEtXFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMDU3LVxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmM6MTA1ODpcXHRlcnIgPSBrZXlfZXh0cmFjdChza2IsIGtleSk7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMDU5LVxcdGlmICghZXJyKSB7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDYwOlxcdFxcdG92c19jdF9maWxsX2tleShza2IsIGtleSwgcG9zdF9jdCk7ICAgLyogTXVzdCBiZSBhZnRlciBrZXlfZXh0cmFjdCgpLiAqL1xcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtMTA2MS1cXHRcXHRpZiAocG9zdF9jdCkge1xcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYz0xMDc1PWludCBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2Uoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLFxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMTAxLVxcdHNrYi1cXHUwMDNlcHJvdG9jb2wgPSBrZXktXFx1MDAzZWV0aC50eXBlO1xcbm5ldC9vcGVudnN3aXRjaC9mbG93LmM6MTEwMjpcXHRlcnIgPSBrZXlfZXh0cmFjdChza2IsIGtleSk7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMTAzLVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjI4LjI2NTQyMDYxNFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NjA5Mzk1NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBga2V5X2V4dHJhY3RgIEZ1bmN0aW9uJ3MgQ2FsbGVycyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBga2V5X2V4dHJhY3RgIGlzIGJlaW5nIHVzZWQuIEZpcnN0LCBJJ20gbm90aW5nIHRoZSB0aHJlZSBmdW5jdGlvbnMgdGhhdCBjYWxsIGl0OiBgb3ZzX2Zsb3dfa2V5X3VwZGF0ZWAsIGBvdnNfZmxvd19rZXlfZXh0cmFjdGAsIGFuZCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlYC4gVGhhdCdzIGEgcmVhc29uYWJsZSBzZXQsIGFuZCBub3cgSSBuZWVkIHRvIGRpZyBpbnRvIHdoYXQncyBoYXBwZW5pbmcgd2l0aGluIHRob3NlIGZ1bmN0aW9ucy5cblxuTXkgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyB0byBleGFtaW5lIHRob3NlIHRocmVlIGZ1bmN0aW9ucywgc3BlY2lmaWNhbGx5IGBvdnNfZmxvd19rZXlfZXh0cmFjdGAsIGBvdnNfZmxvd19rZXlfdXBkYXRlYCwgYW5kIGBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2VgIGJlY2F1c2UgdGhhdCB3aWxsIHRlbGwgbWUgaG93IGBrZXlfZXh0cmFjdGAgaXMgYmVpbmcgdXNlZC4gQ3J1Y2lhbGx5LCBJIGhhdmUgdG8gZGV0ZXJtaW5lIGlmIHRoZXNlIGNhbGxlcnMgYXJlIGV4cG9ydGVkIGZ1bmN0aW9ucyBvciBqdXN0IG5vbi1zdGF0aWMsIGJlY2F1c2UgdGhlIHNjb3BlIGFuZCBwb3RlbnRpYWwgaW1wbGljYXRpb25zIG9mIHVzYWdlIGFyZSB2ZXJ5IGRpZmZlcmVudCBkZXBlbmRpbmcgb24gdGhlIGZ1bmN0aW9uJ3Mgc2NvcGUuIFRoaXMgd2lsbCBpbmZsdWVuY2UgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgbGFyZ2VyIGFyY2hpdGVjdHVyZSBhbmQgaG93IGRhdGEgaXMgbWFuYWdlZCB3aXRoaW4gdGhpcyBrZXkgZXh0cmFjdGlvbiBwcm9jZXNzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzYxLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjMxLjgyNjM2MzI0MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MTU0MzEyNCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRVhQT1JUX1NZTUJPTC4qb3ZzX2Zsb3dfa2V5X1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvb3BlbnZzd2l0Y2gvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MTozMS45MTc5MTc4ODVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTY3MTk4NDAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgcGVyc3BlY3RpdmU6XG5cbioqSW52ZXN0aWdhdGluZyBQb3RlbnRpYWwgT3BlbiB2U3dpdGNoIEludGVncmF0aW9uKipcblxuQWxyaWdodCwgSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIHRoZXNlIGl0ZW1zIGNvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBPcGVuIHZTd2l0Y2ggbW9kdWxlLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBkaXZlIGludG8gdGhlIGNvcmUgc291cmNlIGNvZGUuIEknbGwgbmVlZCB0byBsb2NhdGUgd2hlcmUgdGhlc2UgY29tcG9uZW50cyBhcmUgZGVjbGFyZWQsIGRlZmluZWQsIGFuZCBwb3RlbnRpYWxseSB1c2VkLiBUaGUgbG9naWNhbCBwbGFjZSB0byBzdGFydCBsb29raW5nIHdvdWxkIGJlIHdpdGhpbiB0aGUgYG5ldC9vcGVudnN3aXRjaGAgZGlyZWN0b3J5LiBTcGVjaWZpY2FsbHksIEkgc2hvdWxkIGNoZWNrIGBmbG93LmhgIGFuZCBgZmxvdy5jYCDigJMgdGhhdCdzIHdoZXJlIEknZCBleHBlY3QgdG8gZmluZCB0aGUgZnVuZGFtZW50YWwgc3RydWN0dXJlcyBhbmQgZnVuY3Rpb24gZGVmaW5pdGlvbnMgcmVsYXRlZCB0byBmbG93IG1hbmFnZW1lbnQsIHdoaWNoIGlzIG9mdGVuIHdoZXJlIHlvdSdkIGludGVncmF0ZSBuZXcgZWxlbWVudHMuIEknbGwgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB0aG9zZSBmaWxlcyB0byBzZWUgaWYgYW55dGhpbmcganVtcHMgb3V0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzQ3LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDE6MzUuMDg1MTE5MTk2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4OTI2MzE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm92c19mbG93X2tleV9leHRyYWN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9vcGVudnN3aXRjaC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM9MzY2PXN0YXRpYyBpbnQgcXVldWVfZ3NvX3BhY2tldHMoc3RydWN0IGRhdGFwYXRoICpkcCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTM4My1cXHRpZiAoZ3NvX3R5cGUgXFx1MDAyNiBTS0JfR1NPX1VEUCkge1xcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jOjM4NDpcXHRcXHQvKiBUaGUgaW5pdGlhbCBmbG93IGtleSBleHRyYWN0ZWQgYnkgb3ZzX2Zsb3dfa2V5X2V4dHJhY3QoKVxcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTM4NS1cXHRcXHQgKiBpbiB0aGlzIGNhc2UgaXMgZm9yIGEgZmlyc3QgZnJhZ21lbnQsIHNvIHdlIG5lZWQgdG9cXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jPTYxMj1zdGF0aWMgaW50IG92c19wYWNrZXRfY21kX2V4ZWN1dGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTY2Ny1cXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYzo2Njg6XFx0ZXJyID0gb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlKG5ldCwgYVtPVlNfUEFDS0VUX0FUVFJfS0VZXSxcXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYy02NjktXFx0XFx0XFx0XFx0XFx0ICAgICBwYWNrZXQsIFxcdTAwMjZmbG93LVxcdTAwM2VrZXksIGxvZyk7XFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTk4Nj1zdGF0aWMgaW50IGtleV9leHRyYWN0X21hY19wcm90byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy05OTktXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDAwOmludCBvdnNfZmxvd19rZXlfZXh0cmFjdChjb25zdCBzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKnR1bl9pbmZvLFxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtMTAwMS1cXHRcXHRcXHQgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwNzQtXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDc1OmludCBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2Uoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLFxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtMTA3Ni1cXHRcXHRcXHRcXHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaD0yODk9aW50IG92c19mbG93X2tleV91cGRhdGVfbDNsNChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSk7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyOTA6aW50IG92c19mbG93X2tleV9leHRyYWN0KGNvbnN0IHN0cnVjdCBpcF90dW5uZWxfaW5mbyAqdHVuX2luZm8sXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaC0yOTEtXFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oLTI5My0vKiBFeHRyYWN0IGtleSBmcm9tIHBhY2tldCBjb21pbmcgZnJvbSB1c2Vyc3BhY2UuICovXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyOTQ6aW50IG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaC0yOTUtXFx0XFx0XFx0XFx0ICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC92cG9ydC5jPTQ5Nz1pbnQgb3ZzX3Zwb3J0X3JlY2VpdmUoc3RydWN0IHZwb3J0ICp2cG9ydCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC92cG9ydC5jLTUxNy1cXHQvKiBFeHRyYWN0IGZsb3cgZnJvbSAnc2tiJyBpbnRvICdrZXknLiAqL1xcbm5ldC9vcGVudnN3aXRjaC92cG9ydC5jOjUxODpcXHRlcnJvciA9IG92c19mbG93X2tleV9leHRyYWN0KHR1bl9pbmZvLCBza2IsIFxcdTAwMjZrZXkpO1xcbm5ldC9vcGVudnN3aXRjaC92cG9ydC5jLTUxOS1cXHRpZiAodW5saWtlbHkoZXJyb3IpKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjM1LjE2NDA1MDY0MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3ODQ0MTEwOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIEtleSBGbG93IEV4dHJhY3Rpb24gUG9pbnRzIGluIE9WUyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGhvdyBmbG93IGtleXMgYXJlIGhhbmRsZWQgaW4gT3BlbiB2U3dpdGNoLiBJJ3ZlIGdvdCB0d28gaW50ZXJlc3RpbmcgZnVuY3Rpb25zIGhpZ2hsaWdodGVkOiBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgIGFuZCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlYC4gSSBzZWUgdGhhdCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgIGlzIGNhbGxlZCB3aXRoaW4gYG92c192cG9ydF9yZWNlaXZlYC4gVGhhdCdzIGEgc3Ryb25nIGluZGljYXRvciDigJMgYG92c192cG9ydF9yZWNlaXZlYCBpcyBmdW5kYW1lbnRhbDsgaXTigJlzIHdoZXJlIGluY29taW5nIHBhY2tldHMgYXJlIGluaXRpYWxseSBwcm9jZXNzZWQuIFRoZXJlZm9yZSwgYG92c19mbG93X2tleV9leHRyYWN0YCBtdXN0IGJlIGEgY3JpdGljYWwgcGFydCBvZiB0aGF0IGNvcmUgcGFja2V0IHJlY2VwdGlvbiBwYXRoLlxuXG5PbiB0aGUgb3RoZXIgaGFuZCwgYG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZWAgZ2V0cyBjYWxsZWQgd2l0aGluIGBvdnNfcGFja2V0X2NtZF9leGVjdXRlYC4gQWgsIHNvIHRoaXMgZGVhbHMgd2l0aCB0aGUgZXhlY3V0aW9uIG9mIHBhY2tldCBjb21tYW5kcyBzZW50IG92ZXIgbmV0bGluay4gVGhhdCdzIGdvb2QgdG8ga25vdy4gYG92c19wYWNrZXRfY21kX2V4ZWN1dGVgIGhhbmRsZXMgdGhvc2UgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgIG1lc3NhZ2VzLCBtZWFuaW5nIHRoaXMgZnVuY3Rpb24gbGlrZWx5IGlzIHJlc3BvbnNpYmxlIGZvciBwcm9jZXNzaW5nIHBhY2tldHMgaW4gdGhlIHVzZXJzcGFjZS5cblxuTm93LCBJJ20gdGhpbmtpbmcsIHdoZXJlIGRvZXMgdGhlIGZsb3cga2V5IGdldCB1cGRhdGVkIGluIHRoZSBrZXJuZWw/IEkgbmVlZCB0byBjaGVjayBgb3ZzX2Zsb3dfa2V5X3VwZGF0ZWAgdG8gc2VlIGlmIGl0J3MgaW52b2x2ZWQgaW4gdGhpcyBwcm9jZXNzLiBUaW1lIHRvIGRpZyBpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDgyMiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MTozOC45NDg0NjQ0MzVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjQ3MDQ3MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJvdnNfZmxvd19rZXlfdXBkYXRlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9vcGVudnN3aXRjaC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYz0xMTE1PXN0YXRpYyBpbnQgZXhlY3V0ZV9yZWNpcmMoc3RydWN0IGRhdGFwYXRoICpkcCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMtMTEyMy1cXG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jOjExMjQ6XFx0XFx0ZXJyID0gb3ZzX2Zsb3dfa2V5X3VwZGF0ZShza2IsIGtleSk7XFxubmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYy0xMTI1LVxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmM9MTI1NT1zdGF0aWMgaW50IGRvX2V4ZWN1dGVfYWN0aW9ucyhzdHJ1Y3QgZGF0YXBhdGggKmRwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxubmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYy0xMzgwLVxcdFxcdFxcdGlmICghaXNfZmxvd19rZXlfdmFsaWQoa2V5KSkge1xcbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmM6MTM4MTpcXHRcXHRcXHRcXHRlcnIgPSBvdnNfZmxvd19rZXlfdXBkYXRlKHNrYiwga2V5KTtcXG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jLTEzODItXFx0XFx0XFx0XFx0aWYgKGVycilcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9jb25udHJhY2suYz00NDQ9c3RhdGljIGludCBvdnNfY3RfaGFuZGxlX2ZyYWdtZW50cyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5LFxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jLTQ1Ni1cXHQgKi9cXG5uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmM6NDU3OlxcdG92c19mbG93X2tleV91cGRhdGVfbDNsNChza2IsIGtleSk7XFxubmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jLTQ1OC1cXHRrZXktXFx1MDAzZWlwLmZyYWcgPSBPVlNfRlJBR19UWVBFX05PTkU7XFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTkwOT1zdGF0aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy05NjktICovXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzo5NzA6aW50IG92c19mbG93X2tleV91cGRhdGVfbDNsNChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk3MS17XFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk3NC1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jOjk3NTppbnQgb3ZzX2Zsb3dfa2V5X3VwZGF0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk3Ni17XFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oPTI4Nj11NjQgb3ZzX2Zsb3dfdXNlZF90aW1lKHVuc2lnbmVkIGxvbmcgZmxvd19qaWZmaWVzKTtcXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oLTI4Ny1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oOjI4ODppbnQgb3ZzX2Zsb3dfa2V5X3VwZGF0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSk7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyODk6aW50IG92c19mbG93X2tleV91cGRhdGVfbDNsNChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSk7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaC0yOTAtaW50IG92c19mbG93X2tleV9leHRyYWN0KGNvbnN0IHN0cnVjdCBpcF90dW5uZWxfaW5mbyAqdHVuX2luZm8sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjM5LjA2NDk0MjE4OFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzUzOTk3NTA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUsIG15IG1pbmQgaXMgd29ya2luZyBvbiBob3cgdG8gYXBwcm9hY2ggdGhpcy4uLlxuXG4qKkZvY3VzaW5nIG9uIE9wZW4gdlN3aXRjaCBLZXJuZWwgT3BlcmF0aW9ucyoqXG5cbkFscmlnaHQsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUga2V5IGFyZWFzLCB0aGUgY3JpdGljYWwgY29tcG9uZW50cywgd2l0aGluIHRoZSBPcGVuIHZTd2l0Y2gga2VybmVsIG1vZHVsZXMuIEkgbmVlZCB0byBiZSBleGFjdCBoZXJlLCB0byBhdm9pZCB3YXN0aW5nIHRpbWUuIEknbSB0aGlua2luZyBvZiBmaXZlIHNwZWNpZmljIHN5bWJvbHMgYXMgcG90ZW50aWFsIHN0YXJ0aW5nIHBvaW50czogYG92c19mbG93X2tleV9leHRyYWN0YCwgYG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZWAsIGBvdnNfZmxvd19rZXlfdXBkYXRlYCwgYG92c192cG9ydF9yZWNlaXZlYCwgYW5kIGBvdnNfcGFja2V0X2NtZF9leGVjdXRlYC4gVGhlc2UgYWxsICpmZWVsKiBsaWtlIGhpZ2gtbGV2ZXJhZ2UgcG9pbnRzIGluIHRoZSBkYXRhIHBhdGgsIGJ1dCBJIG5lZWQgdG8gYmUgc3VyZS4gSSdtIHZpc3VhbGl6aW5nIHRoZW0sIHRoZXNlIGFyZSBhbGwgY3JpdGljYWwgdG8gdGhlIG9wZXJhdGlvbiBvZiB0aGUga2VybmVsIG1vZHVsZXMuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZXNlIGZ1bmN0aW9ucyB0aHJvdWdoIHRoZSBjb25maWd1cmF0aW9uLCBieSBjaGVja2luZyB0aGUgS2NvbmZpZyBzZXR0aW5ncy4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIHN5bWJvbHMgaW50ZXJhY3QgdG8gYWNoaWV2ZSB0aGVpciBnb2FsLiBUaW1lIHRvIGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIGFuZCBtYWtlIHN1cmUgbXkgaW5zdGluY3RzIGFyZSBzb3VuZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjAxNiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjQyLjQxODk0Mzk1N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTk4NjA2MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE9QRU5WU1dJVENIXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9vcGVudnN3aXRjaC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTUtXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6Njpjb25maWcgT1BFTlZTV0lUQ0hcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJPcGVuIHZTd2l0Y2hcXFwiXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy00My1cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo0NDpjb25maWcgT1BFTlZTV0lUQ0hfR1JFXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDUtXFx0dHJpc3RhdGUgXFxcIk9wZW4gdlN3aXRjaCBHUkUgdHVubmVsaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy01Ni1cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo1Nzpjb25maWcgT1BFTlZTV0lUQ0hfVlhMQU5cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy01OC1cXHR0cmlzdGF0ZSBcXFwiT3BlbiB2U3dpdGNoIFZYTEFOIHR1bm5lbGluZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNjgtXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6Njk6Y29uZmlnIE9QRU5WU1dJVENIX0dFTkVWRVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTcwLVxcdHRyaXN0YXRlIFxcXCJPcGVuIHZTd2l0Y2ggR2VuZXZlIHR1bm5lbGluZyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MTo0Mi40Nzg4MTMzMjRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjg2MTEyODY1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBPcGVuIHZTd2l0Y2ggQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyB0aGUgY29yZSBjb25maWd1cmF0aW9uIGl0ZW0gd2UncmUgZGVhbGluZyB3aXRoIGlzIGBPUEVOVlNXSVRDSGAuIFRoZSBmaXJzdCB0aGluZyBJIGFsd2F5cyBkbyBpcyB0cmFjZSBiYWNrIGl0cyBsaW5lYWdlIGFuZCBkZXBlbmRlbmNpZXMuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlcy4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgYE9QRU5WU1dJVENIYCB2YXJpYWJsZSBpcyBnYXRpbmcuIEknbSBnb2luZyB0byBsb29rIGF0IHRoZSBgbmV0L29wZW52c3dpdGNoL0tjb25maWdgIGZpbGUuIFRoYXQncyB3aGVyZSBJIGV4cGVjdCB0byBmaW5kIHRoZSBkZXBlbmRlbmNpZXMsIGFueSBzdXBwb3J0aW5nIG9wdGlvbnMsIGFuZCBwb3NzaWJseSBzb21lIGNvbnRleHQgYXJvdW5kIHRoZSBpbnRlbnQgb2YgYE9QRU5WU1dJVENIYCBpdHNlbGYuIFdoYXQgb3RoZXIga2VybmVsIGZlYXR1cmVzIGlzIGl0IHB1bGxpbmcgaW4/IEFueSBzcGVjaWZpYyBuZXR3b3JraW5nIHN0YWNrcz8gVGhhdCBmaWxlIHNob3VsZCBnaXZlIG1lIHRoZSBncm91bmQgdHJ1dGggdG8gdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIHRoaXMgY29uZmlndXJhdGlvbiBpdGVtLiBMZXQncyBzZWUgd2hhdCdzIGFjdHVhbGx5IHVuZGVyIHRoZSBob29kLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NTk2LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDE6NDUuMzM5OTQ2MzIzWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NjYwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBPcGVuIHZTd2l0Y2hcXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0Y29uZmlnIE9QRU5WU1dJVENIXFxuICAgNzpcXHRcXHR0cmlzdGF0ZSBcXFwiT3BlbiB2U3dpdGNoXFxcIlxcbiAgIDg6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUXFxuICAgOTpcXHRcXHRkZXBlbmRzIG9uICFORl9DT05OVFJBQ0sgfHwgXFxcXFxcbiAgMTA6XFx0XFx0XFx0ICAgKE5GX0NPTk5UUkFDSyBcXHUwMDI2XFx1MDAyNiAoKCFORl9ERUZSQUdfSVBWNiB8fCBORl9ERUZSQUdfSVBWNikgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbiAgMTE6XFx0XFx0XFx0XFx0XFx0ICAgICAoIU5GX05BVCB8fCBORl9OQVQpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4gIDEyOlxcdFxcdFxcdFxcdFxcdCAgICAgKCFORVRGSUxURVJfQ09OTkNPVU5UIHx8IE5FVEZJTFRFUl9DT05OQ09VTlQpKSlcXG4gIDEzOlxcdFxcdGRlcGVuZHMgb24gUFNBTVBMRSB8fCAhUFNBTVBMRVxcbiAgMTQ6XFx0XFx0c2VsZWN0IE1QTFNcXG4gIDE1OlxcdFxcdHNlbGVjdCBORVRfQ1JDMzJDXFxuICAxNjpcXHRcXHRzZWxlY3QgTkVUX01QTFNfR1NPXFxuICAxNzpcXHRcXHRzZWxlY3QgRFNUX0NBQ0hFXFxuICAxODpcXHRcXHRzZWxlY3QgTkVUX05TSFxcbiAgMTk6XFx0XFx0c2VsZWN0IE5GX0NPTk5UUkFDS19PVlMgaWYgTkZfQ09OTlRSQUNLXFxuICAyMDpcXHRcXHRzZWxlY3QgTkZfTkFUX09WUyBpZiBORl9OQVRcXG4gIDIxOlxcdFxcdGhlbHBcXG4gIDIyOlxcdFxcdCAgT3BlbiB2U3dpdGNoIGlzIGEgbXVsdGlsYXllciBFdGhlcm5ldCBzd2l0Y2ggdGFyZ2V0ZWQgYXQgdmlydHVhbGl6ZWRcXG4gIDIzOlxcdFxcdCAgZW52aXJvbm1lbnRzLiAgSW4gYWRkaXRpb24gdG8gc3VwcG9ydGluZyBhIHZhcmlldHkgb2YgZmVhdHVyZXNcXG4gIDI0OlxcdFxcdCAgZXhwZWN0ZWQgaW4gYSB0cmFkaXRpb25hbCBoYXJkd2FyZSBzd2l0Y2gsIGl0IGVuYWJsZXMgZmluZS1ncmFpbmVkXFxuICAyNTpcXHRcXHQgIHByb2dyYW1tYXRpYyBleHRlbnNpb24gYW5kIGZsb3ctYmFzZWQgY29udHJvbCBvZiB0aGUgbmV0d29yay4gIFRoaXNcXG4gIDI2OlxcdFxcdCAgY29udHJvbCBpcyB1c2VmdWwgaW4gYSB3aWRlIHZhcmlldHkgb2YgYXBwbGljYXRpb25zIGJ1dCBpc1xcbiAgMjc6XFx0XFx0ICBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IGluIG11bHRpLXNlcnZlciB2aXJ0dWFsaXphdGlvbiBkZXBsb3ltZW50cyxcXG4gIDI4OlxcdFxcdCAgd2hpY2ggYXJlIG9mdGVuIGNoYXJhY3Rlcml6ZWQgYnkgaGlnaGx5IGR5bmFtaWMgZW5kcG9pbnRzIGFuZCB0aGVcXG4gIDI5OlxcdFxcdCAgbmVlZCB0byBtYWludGFpbiBsb2dpY2FsIGFic3RyYWN0aW9ucyBmb3IgbXVsdGlwbGUgdGVuYW50cy5cXG4gIDMwOlxcdFxcbiAgMzE6XFx0XFx0ICBUaGUgT3BlbiB2U3dpdGNoIGRhdGFwYXRoIHByb3ZpZGVzIGFuIGluLWtlcm5lbCBmYXN0IHBhdGggZm9yIHBhY2tldFxcbiAgMzI6XFx0XFx0ICBmb3J3YXJkaW5nLiAgSXQgaXMgY29tcGxlbWVudGVkIGJ5IGEgdXNlcnNwYWNlIGRhZW1vbiwgb3ZzLXZzd2l0Y2hkLFxcbiAgMzM6XFx0XFx0ICB3aGljaCBpcyBhYmxlIHRvIGFjY2VwdCBjb25maWd1cmF0aW9uIGZyb20gYSB2YXJpZXR5IG9mIHNvdXJjZXMgYW5kXFxuICAzNDpcXHRcXHQgIHRyYW5zbGF0ZSBpdCBpbnRvIHBhY2tldCBwcm9jZXNzaW5nIHJ1bGVzLlxcbiAgMzU6XFx0XFxuICAzNjpcXHRcXHQgIFNlZSBodHRwOi8vb3BlbnZzd2l0Y2gub3JnIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB1c2Vyc3BhY2VcXG4gIDM3OlxcdFxcdCAgdXRpbGl0aWVzLlxcbiAgMzg6XFx0XFxuICAzOTpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBjb2RlIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmVcXG4gIDQwOlxcdFxcdCAgY2FsbGVkIG9wZW52c3dpdGNoLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MTo0NS4zNDAxMDczNzJaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMwNTYwMDg2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBGdXp6aW5nIFN0cmF0ZWd5IGZvciBUaGlzIE9wZW4gdlN3aXRjaCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoZSBjb25maWcgaXMgZGVmaW5pdGVseSBgT1BFTlZTV0lUQ0hgLiBUaGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBrZXlfZXh0cmFjdGAgd2l0aGluIGBuZXQvb3BlbnZzd2l0Y2gvZmxvdy5jYC4gVGhhdCdzIHdoZXJlIHRoZSBmbG93IGtleSBnZXRzIHB1bGxlZCBmcm9tIGFuIGBza2JgLiBTb3VuZHMgbGlrZSBsb3ctaGFuZ2luZyBmcnVpdCBmb3IgZnV6emluZywgYWJzb2x1dGVseS4gQW55IGNoYW5nZSBpbiB0aGF0IGNvcmUgZnVuY3Rpb24gZGVhbGluZyB3aXRoIHBhY2tldCBwcm9jZXNzaW5nIGlzIGdvaW5nIHRvIGJlIGludGVyZXN0aW5nLlxuXG5MZXQncyBzZWUsIHdoYXQgc3ltYm9scyBzaG91bGQgSSB0YXJnZXQ/IFRvcCBvZiBteSBsaXN0OiBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgIGFuZCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlYCDigJMgdGhlIGNvcmUgZXh0cmFjdGlvbiBmdW5jdGlvbnMsIG9mIGNvdXJzZS4gVGhlbiwgYG92c19mbG93X2tleV91cGRhdGVgIOKAkyBob3cgZG9lcyB0aGlzIGludGVyYWN0LCBjb3VsZCB0aGVyZSBiZSBzaWRlIGVmZmVjdHM/IEFuZCwgSSdsbCBuZWVkIHRvIGxvb2sgYXQgYG92c192cG9ydF9yZWNlaXZlYCBhbmQgYG92c19wYWNrZXRfY21kX2V4ZWN1dGVgLCBiZWNhdXNlIHRob3NlIGFyZSB0aGUgbGlrZWx5IGVudHJ5IHBvaW50cyBmcm9tIG5ldHdvcmsgcGFja2V0cyBhbmQgdXNlcnNwYWNlLlxuXG5UaGUgcmVhc29uIGl0J3MgZnV6ei13b3J0aHkgaXMgYmVjYXVzZSB0aGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCBib3VuZHMgY2hlY2sgaW4gYGtleV9leHRyYWN0YC4gVGhpcyBpcyBhICpmdW5jdGlvbmFsKiBjaGFuZ2U6IGl0J3MgaW50ZW5kZWQgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIHdoZW4gcGFyc2luZyB0aGUgRXRoZXJuZXQgaGVhZGVyIGluIE9WUy4gQ3J1Y2lhbGx5LCB0aGlzIGFmZmVjdHMgdGhlIGNvcmUgZmxvdyBleHRyYWN0aW9uIGxvZ2ljLCB3aGljaCBjYW4gYmUgcmVhY2hlZCB2aWEgbmV0bGluayDigJMgd2hpY2ggbWVhbnMgdXNlcnNwYWNlIGludGVyYWN0aW9uIHZpYSBgT1ZTX1BBQ0tFVF9DTURfRVhFQ1VURWAgaXMgYSBwYXRoLiBBbHNvLCBub3JtYWwgcGFja2V0IHByb2Nlc3NpbmcgdGhyb3VnaCBgb3ZzX3Zwb3J0X3JlY2VpdmVgLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhpcyBib3VuZHMgY2hlY2sgKmNvcnJlY3RseSogaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyBhbmQgdGhhdCBpdCBkb2Vzbid0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMuIEl0J3MgYWJvdXQgcHJvdGVjdGluZyBhZ2FpbnN0IGNyYXNoZXMgYW5kIGVuc3VyaW5nIHRoZSBzeXN0ZW0ncyBzdGFiaWxpdHkgdW5kZXIgZHVyZXNzLiBUaGlzIGlzIGEgdmVyeSB0YXJnZXRlZCBwYXRjaCwgc28gSSBuZWVkIHRvIGZvY3VzIG9uIHRoaXMgYXJlYS5cblxuXG4iLCJJbnB1dFRva2VucyI6NzQ0NiwiT3V0cHV0VG9rZW5zIjoyMTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MTo1MS42NDU3MTE1OTVaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjQzOTg3NDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9QRU5WU1dJVENIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwib3ZzX2Zsb3dfa2V5X2V4dHJhY3RcIixcbiAgICBcIm92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZVwiLFxuICAgIFwib3ZzX2Zsb3dfa2V5X3VwZGF0ZVwiLFxuICAgIFwib3ZzX3Zwb3J0X3JlY2VpdmVcIixcbiAgICBcIm92c19wYWNrZXRfY21kX2V4ZWN1dGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIChgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCkgaW4gYGtleV9leHRyYWN0YCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgd2hlbiBwYXJzaW5nIHRoZSBFdGhlcm5ldCBoZWFkZXIgb2YgYW4gc2tiIGluIE9wZW4gdlN3aXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE9WUyBmbG93IGV4dHJhY3Rpb24gbG9naWMsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoZS5nLiwgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgKSBhbmQgZnJvbSBuZXR3b3JrIHBhY2tldCBwcm9jZXNzaW5nIChgb3ZzX3Zwb3J0X3JlY2VpdmVgKS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9QRU5WU1dJVENIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwib3ZzX2Zsb3dfa2V5X2V4dHJhY3RcIixcbiAgICBcIm92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZVwiLFxuICAgIFwib3ZzX2Zsb3dfa2V5X3VwZGF0ZVwiLFxuICAgIFwib3ZzX3Zwb3J0X3JlY2VpdmVcIixcbiAgICBcIm92c19wYWNrZXRfY21kX2V4ZWN1dGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIChgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCkgaW4gYGtleV9leHRyYWN0YCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgd2hlbiBwYXJzaW5nIHRoZSBFdGhlcm5ldCBoZWFkZXIgb2YgYW4gc2tiIGluIE9wZW4gdlN3aXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE9WUyBmbG93IGV4dHJhY3Rpb24gbG9naWMsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoZS5nLiwgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgKSBhbmQgZnJvbSBuZXR3b3JrIHBhY2tldCBwcm9jZXNzaW5nIChgb3ZzX3Zwb3J0X3JlY2VpdmVgKS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowlvtll[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-01 08:36:37 +0000 UTC FinishedAt: 2026-08-01 09:41:53 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OPENVSWITCH" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "OPENVSWITCH" ], "series_id": "f5fac290-87aa-4ca8-aa6b-e2a3843b60f1" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ovs_flow_key_extract", "ovs_flow_key_extract_userspace", "ovs_flow_key_update", "ovs_vport_receive", "ovs_packet_cmd_execute" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09QRU5WU1dJVENIJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7b3ZzX2Zsb3dfa2V5X2V4dHJhY3QmIzM0OywKICAgICYjMzQ7b3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlJiMzNDssCiAgICAmIzM0O292c19mbG93X2tleV91cGRhdGUmIzM0OywKICAgICYjMzQ7b3ZzX3Zwb3J0X3JlY2VpdmUmIzM0OywKICAgICYjMzQ7b3ZzX3BhY2tldF9jbWRfZXhlY3V0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIChgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCkgaW4gYGtleV9leHRyYWN0YCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgd2hlbiBwYXJzaW5nIHRoZSBFdGhlcm5ldCBoZWFkZXIgb2YgYW4gc2tiIGluIE9wZW4gdlN3aXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE9WUyBmbG93IGV4dHJhY3Rpb24gbG9naWMsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoZS5nLiwgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgKSBhbmQgZnJvbSBuZXR3b3JrIHBhY2tldCBwcm9jZXNzaW5nIChgb3ZzX3Zwb3J0X3JlY2VpdmVgKS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZGNkZTJjNGQzZjA2ZWU1YzAyODhjYmE4ZGRlODcxMzQxOGVjNzdkYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDE6MjIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2Zsb3cuYyBiL25ldC9vcGVudnN3aXRjaC9mbG93LmNcbmluZGV4IDY2MzY2OTgyZjYwNDQuLjQ2YzFkNjZhYWQ4YzMgMTAwNjQ0XG4tLS0gYS9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jXG5AQCAtODg5LDggJiM0Mzs4ODksNiBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG4gICogRXRoZXJuZXQgaGVhZGVyXG4gICogQGtleTogb3V0cHV0IGZsb3cga2V5XG4gICpcbi0gKiBUaGUgY2FsbGVyIG11c3QgZW5zdXJlIHRoYXQgc2tiLVx1MDAzZWxlbiBcdTAwM2U9IEVUSF9ITEVOLlxuLSAqXG4gICogSW5pdGlhbGl6ZXMgQHNrYiBoZWFkZXIgZmllbGRzIGFzIGZvbGxvd3M6XG4gICpcbiAgKiAgICAtIHNrYi1cdTAwM2VtYWNfaGVhZGVyOiB0aGUgTDIgaGVhZGVyLlxuQEAgLTkxMCw4ICYjNDM7OTA4LDYgQEAgc3RhdGljIGludCBrZXlfZXh0cmFjdF9sM2w0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxuICAqL1xuIHN0YXRpYyBpbnQga2V5X2V4dHJhY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG4ge1xuLVx0c3RydWN0IGV0aGhkciAqZXRoO1xuLVxuIFx0LyogRmxhZ3MgYXJlIGFsd2F5cyB1c2VkIGFzIHBhcnQgb2Ygc3RhdHMgKi9cbiBcdGtleS1cdTAwM2V0cC5mbGFncyA9IDA7XG4gXG5AQCAtOTI2LDYgJiM0Mzs5MjIsMTMgQEAgc3RhdGljIGludCBrZXlfZXh0cmFjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbiBcdFx0c2tiX3Jlc2V0X25ldHdvcmtfaGVhZGVyKHNrYik7XG4gXHRcdGtleS1cdTAwM2VldGgudHlwZSA9IHNrYi1cdTAwM2Vwcm90b2NvbDtcbiBcdH0gZWxzZSB7XG4mIzQzO1x0XHRzdHJ1Y3QgZXRoaGRyICpldGg7XG4mIzQzO1x0XHRpbnQgZXJyO1xuJiM0MztcbiYjNDM7XHRcdGVyciA9IGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKTtcbiYjNDM7XHRcdGlmICh1bmxpa2VseShlcnIpKVxuJiM0MztcdFx0XHRyZXR1cm4gZXJyO1xuJiM0MztcbiBcdFx0ZXRoID0gZXRoX2hkcihza2IpO1xuIFx0XHRldGhlcl9hZGRyX2NvcHkoa2V5LVx1MDAzZWV0aC5zcmMsIGV0aC1cdTAwM2VoX3NvdXJjZSk7XG4gXHRcdGV0aGVyX2FkZHJfY29weShrZXktXHUwMDNlZXRoLmRzdCwgZXRoLVx1MDAzZWhfZGVzdCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O09QRU5WU1dJVENIJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7b3ZzX2Zsb3dfa2V5X2V4dHJhY3QmIzM0OywKICAgICYjMzQ7b3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlJiMzNDssCiAgICAmIzM0O292c19mbG93X2tleV91cGRhdGUmIzM0OywKICAgICYjMzQ7b3ZzX3Zwb3J0X3JlY2VpdmUmIzM0OywKICAgICYjMzQ7b3ZzX3BhY2tldF9jbWRfZXhlY3V0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIChgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCkgaW4gYGtleV9leHRyYWN0YCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgd2hlbiBwYXJzaW5nIHRoZSBFdGhlcm5ldCBoZWFkZXIgb2YgYW4gc2tiIGluIE9wZW4gdlN3aXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE9WUyBmbG93IGV4dHJhY3Rpb24gbG9naWMsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoZS5nLiwgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgKSBhbmQgZnJvbSBuZXR3b3JrIHBhY2tldCBwcm9jZXNzaW5nIChgb3ZzX3Zwb3J0X3JlY2VpdmVgKS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZGNkZTJjNGQzZjA2ZWU1YzAyODhjYmE4ZGRlODcxMzQxOGVjNzdkYgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDEgMDk6NDE6MjIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jIGIvbmV0L29wZW52c3dpdGNoL2Zsb3cuYwppbmRleCA2NjM2Njk4MmY2MDQ0Li40NmMxZDY2YWFkOGMzIDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9vcGVudnN3aXRjaC9mbG93LmMKQEAgLTg4OSw4ICYjNDM7ODg5LDYgQEAgc3RhdGljIGludCBrZXlfZXh0cmFjdF9sM2w0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KQogICogRXRoZXJuZXQgaGVhZGVyCiAgKiBAa2V5OiBvdXRwdXQgZmxvdyBrZXkKICAqCi0gKiBUaGUgY2FsbGVyIG11c3QgZW5zdXJlIHRoYXQgc2tiLSZndDtsZW4gJmd0Oz0gRVRIX0hMRU4uCi0gKgogICogSW5pdGlhbGl6ZXMgQHNrYiBoZWFkZXIgZmllbGRzIGFzIGZvbGxvd3M6CiAgKgogICogICAgLSBza2ItJmd0O21hY19oZWFkZXI6IHRoZSBMMiBoZWFkZXIuCkBAIC05MTAsOCAmIzQzOzkwOCw2IEBAIHN0YXRpYyBpbnQga2V5X2V4dHJhY3RfbDNsNChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSkKICAqLwogc3RhdGljIGludCBrZXlfZXh0cmFjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSkKIHsKLQlzdHJ1Y3QgZXRoaGRyICpldGg7Ci0KIAkvKiBGbGFncyBhcmUgYWx3YXlzIHVzZWQgYXMgcGFydCBvZiBzdGF0cyAqLwogCWtleS0mZ3Q7dHAuZmxhZ3MgPSAwOwogCkBAIC05MjYsNiAmIzQzOzkyMiwxMyBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KQogCQlza2JfcmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTsKIAkJa2V5LSZndDtldGgudHlwZSA9IHNrYi0mZ3Q7cHJvdG9jb2w7CiAJfSBlbHNlIHsKJiM0MzsJCXN0cnVjdCBldGhoZHIgKmV0aDsKJiM0MzsJCWludCBlcnI7CiYjNDM7CiYjNDM7CQllcnIgPSBjaGVja19oZWFkZXIoc2tiLCBFVEhfSExFTik7CiYjNDM7CQlpZiAodW5saWtlbHkoZXJyKSkKJiM0MzsJCQlyZXR1cm4gZXJyOwomIzQzOwogCQlldGggPSBldGhfaGRyKHNrYik7CiAJCWV0aGVyX2FkZHJfY29weShrZXktJmd0O2V0aC5zcmMsIGV0aC0mZ3Q7aF9zb3VyY2UpOwogCQlldGhlcl9hZGRyX2NvcHkoa2V5LSZndDtldGguZHN0LCBldGgtJmd0O2hfZGVzdCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMzAKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxNTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUmVjZW50IE9WUyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBtb2RpZnlpbmcgYG5ldC9vcGVudnN3aXRjaC9mbG93LmNgLiBJdCBsb29rcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIGZpeDogdGhleSYjMzk7cmUgYWRkaW5nIGEgYGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKWAgY2FsbCB3aXRoaW4gYGtleV9leHRyYWN0KClgLiBUaGUgaW50ZW50aW9uIGlzIGNsZWFybHkgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIHdoZW4gZGVhbGluZyB3aXRoIHRoZSBFdGhlcm5ldCBoZWFkZXIsIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UuIEdpdmVuIHRoYXQgdGhpcyBpcyBpbiBPcGVuIHZTd2l0Y2gsIHdoaWNoIGlzIGEga2V5IGNvbXBvbmVudCBhbmQgcXVpdGUgcmVhY2hhYmxlLCBhbmQgdGhlcmVmb3JlLCBlbWluZW50bHkgZnV6emFibGUsIHRoaXMga2luZCBvZiBwcm90ZWN0aW9uIGlzIGNydWNpYWwuCgpOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UgbW9yZSBmdWxseS4gSSYjMzk7bGwgdGFrZSBhIGxvb2sgYXQgdGhlIGNvZGUsIHNwZWNpZmljYWxseSBgbmV0L29wZW52c3dpdGNoL2Zsb3cuY2AsIHRvIHNlZSB3aGVyZSBga2V5X2V4dHJhY3RgIGlzIGNhbGxlZC4gSXQmIzM5O3MgbWFya2VkIGFzIGBzdGF0aWNgLCBzbyBJIGtub3cgSSBuZWVkIHRvIGJlIGNhcmVmdWwgd2l0aCBteSBzZWFyY2guIEkmIzM5O2xsIG5lZWQgdG8gaWRlbnRpZnkgYWxsIG9mIHRoZSBmdW5jdGlvbnMgdGhhdCBjYWxsIGBrZXlfZXh0cmFjdGAgdG8gdW5kZXJzdGFuZCB0aGUgZmxvdyBvZiBleGVjdXRpb24gYW5kIGhvdyB0aGlzIHByb3RlY3Rpb24gYWZmZWN0cyB0aGUgc3lzdGVtJiMzOTtzIGJlaGF2aW9yLiBUaW1lIHRvIGZpbmQgdGhvc2UgY2FsbGVycyEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrZXlfZXh0cmFjdFxcKCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9vcGVudnN3aXRjaC9mbG93LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoL2Zsb3cuYz02Nzk9c3RhdGljIGludCBrZXlfZXh0cmFjdF9sM2w0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxuLS1cbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTA4LSAqL1xubmV0L29wZW52c3dpdGNoL2Zsb3cuYzo5MDk6c3RhdGljIGludCBrZXlfZXh0cmFjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTEwLXtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTk3NT1pbnQgb3ZzX2Zsb3dfa2V5X3VwZGF0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk3OC1cbm5ldC9vcGVudnN3aXRjaC9mbG93LmM6OTc5Olx0cmVzID0ga2V5X2V4dHJhY3Qoc2tiLCBrZXkpO1xubmV0L29wZW52c3dpdGNoL2Zsb3cuYy05ODAtXHRpZiAoIXJlcylcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTk4Nj1zdGF0aWMgaW50IGtleV9leHRyYWN0X21hY19wcm90byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTk5LVxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDAwOmludCBvdnNfZmxvd19rZXlfZXh0cmFjdChjb25zdCBzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKnR1bl9pbmZvLFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMDAxLVx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwNTctXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jOjEwNTg6XHRlcnIgPSBrZXlfZXh0cmFjdChza2IsIGtleSk7XG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwNTktXHRpZiAoIWVycikge1xubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDYwOlx0XHRvdnNfY3RfZmlsbF9rZXkoc2tiLCBrZXksIHBvc3RfY3QpOyAgIC8qIE11c3QgYmUgYWZ0ZXIga2V5X2V4dHJhY3QoKS4gKi9cbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtMTA2MS1cdFx0aWYgKHBvc3RfY3QpIHtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTEwNzU9aW50IG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXG4tLVxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMTAxLVx0c2tiLVx1MDAzZXByb3RvY29sID0ga2V5LVx1MDAzZWV0aC50eXBlO1xubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMTAyOlx0ZXJyID0ga2V5X2V4dHJhY3Qoc2tiLCBrZXkpO1xubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMTAzLVx0aWYgKGVycilcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzYxCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYGtleV9leHRyYWN0YCBGdW5jdGlvbiYjMzk7cyBDYWxsZXJzKioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBga2V5X2V4dHJhY3RgIGlzIGJlaW5nIHVzZWQuIEZpcnN0LCBJJiMzOTttIG5vdGluZyB0aGUgdGhyZWUgZnVuY3Rpb25zIHRoYXQgY2FsbCBpdDogYG92c19mbG93X2tleV91cGRhdGVgLCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgLCBhbmQgYG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZWAuIFRoYXQmIzM5O3MgYSByZWFzb25hYmxlIHNldCwgYW5kIG5vdyBJIG5lZWQgdG8gZGlnIGludG8gd2hhdCYjMzk7cyBoYXBwZW5pbmcgd2l0aGluIHRob3NlIGZ1bmN0aW9ucy4KCk15IGltbWVkaWF0ZSBuZXh0IHN0ZXAgaXMgdG8gZXhhbWluZSB0aG9zZSB0aHJlZSBmdW5jdGlvbnMsIHNwZWNpZmljYWxseSBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgLCBgb3ZzX2Zsb3dfa2V5X3VwZGF0ZWAsIGFuZCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlYCBiZWNhdXNlIHRoYXQgd2lsbCB0ZWxsIG1lIGhvdyBga2V5X2V4dHJhY3RgIGlzIGJlaW5nIHVzZWQuIENydWNpYWxseSwgSSBoYXZlIHRvIGRldGVybWluZSBpZiB0aGVzZSBjYWxsZXJzIGFyZSBleHBvcnRlZCBmdW5jdGlvbnMgb3IganVzdCBub24tc3RhdGljLCBiZWNhdXNlIHRoZSBzY29wZSBhbmQgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiB1c2FnZSBhcmUgdmVyeSBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIHRoZSBmdW5jdGlvbiYjMzk7cyBzY29wZS4gVGhpcyB3aWxsIGluZmx1ZW5jZSBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBsYXJnZXIgYXJjaGl0ZWN0dXJlIGFuZCBob3cgZGF0YSBpcyBtYW5hZ2VkIHdpdGhpbiB0aGlzIGtleSBleHRyYWN0aW9uIHByb2Nlc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtFWFBPUlRfU1lNQk9MLipvdnNfZmxvd19rZXlfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc0NwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IHBlcnNwZWN0aXZlOgoKKipJbnZlc3RpZ2F0aW5nIFBvdGVudGlhbCBPcGVuIHZTd2l0Y2ggSW50ZWdyYXRpb24qKgoKQWxyaWdodCwgSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiB0aGVzZSBpdGVtcyBjb3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgT3BlbiB2U3dpdGNoIG1vZHVsZS4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb3JlIHNvdXJjZSBjb2RlLiBJJiMzOTtsbCBuZWVkIHRvIGxvY2F0ZSB3aGVyZSB0aGVzZSBjb21wb25lbnRzIGFyZSBkZWNsYXJlZCwgZGVmaW5lZCwgYW5kIHBvdGVudGlhbGx5IHVzZWQuIFRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0IGxvb2tpbmcgd291bGQgYmUgd2l0aGluIHRoZSBgbmV0L29wZW52c3dpdGNoYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgSSBzaG91bGQgY2hlY2sgYGZsb3cuaGAgYW5kIGBmbG93LmNgIOKAkyB0aGF0JiMzOTtzIHdoZXJlIEkmIzM5O2QgZXhwZWN0IHRvIGZpbmQgdGhlIGZ1bmRhbWVudGFsIHN0cnVjdHVyZXMgYW5kIGZ1bmN0aW9uIGRlZmluaXRpb25zIHJlbGF0ZWQgdG8gZmxvdyBtYW5hZ2VtZW50LCB3aGljaCBpcyBvZnRlbiB3aGVyZSB5b3UmIzM5O2QgaW50ZWdyYXRlIG5ldyBlbGVtZW50cy4gSSYjMzk7bGwgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB0aG9zZSBmaWxlcyB0byBzZWUgaWYgYW55dGhpbmcganVtcHMgb3V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O292c19mbG93X2tleV9leHRyYWN0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYz0zNjY9c3RhdGljIGludCBxdWV1ZV9nc29fcGFja2V0cyhzdHJ1Y3QgZGF0YXBhdGggKmRwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTM4My1cdGlmIChnc29fdHlwZSBcdTAwMjYgU0tCX0dTT19VRFApIHtcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jOjM4NDpcdFx0LyogVGhlIGluaXRpYWwgZmxvdyBrZXkgZXh0cmFjdGVkIGJ5IG92c19mbG93X2tleV9leHRyYWN0KClcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTM4NS1cdFx0ICogaW4gdGhpcyBjYXNlIGlzIGZvciBhIGZpcnN0IGZyYWdtZW50LCBzbyB3ZSBuZWVkIHRvXG4tLVxubmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM9NjEyPXN0YXRpYyBpbnQgb3ZzX3BhY2tldF9jbWRfZXhlY3V0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTY2Ny1cbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jOjY2ODpcdGVyciA9IG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZShuZXQsIGFbT1ZTX1BBQ0tFVF9BVFRSX0tFWV0sXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYy02NjktXHRcdFx0XHRcdCAgICAgcGFja2V0LCBcdTAwMjZmbG93LVx1MDAzZWtleSwgbG9nKTtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTk4Nj1zdGF0aWMgaW50IGtleV9leHRyYWN0X21hY19wcm90byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTk5LVxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDAwOmludCBvdnNfZmxvd19rZXlfZXh0cmFjdChjb25zdCBzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKnR1bl9pbmZvLFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMDAxLVx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwNzQtXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jOjEwNzU6aW50IG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwNzYtXHRcdFx0XHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC9vcGVudnN3aXRjaC9mbG93Lmg9Mjg5PWludCBvdnNfZmxvd19rZXlfdXBkYXRlX2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpO1xubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyOTA6aW50IG92c19mbG93X2tleV9leHRyYWN0KGNvbnN0IHN0cnVjdCBpcF90dW5uZWxfaW5mbyAqdHVuX2luZm8sXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oLTI5MS1cdFx0XHQgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oLTI5My0vKiBFeHRyYWN0IGtleSBmcm9tIHBhY2tldCBjb21pbmcgZnJvbSB1c2Vyc3BhY2UuICovXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oOjI5NDppbnQgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlKHN0cnVjdCBuZXQgKm5ldCwgY29uc3Qgc3RydWN0IG5sYXR0ciAqYXR0cixcbm5ldC9vcGVudnN3aXRjaC9mbG93LmgtMjk1LVx0XHRcdFx0ICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvdnBvcnQuYz00OTc9aW50IG92c192cG9ydF9yZWNlaXZlKHN0cnVjdCB2cG9ydCAqdnBvcnQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxubmV0L29wZW52c3dpdGNoL3Zwb3J0LmMtNTE3LVx0LyogRXh0cmFjdCBmbG93IGZyb20gJiMzOTtza2ImIzM5OyBpbnRvICYjMzk7a2V5JiMzOTsuICovXG5uZXQvb3BlbnZzd2l0Y2gvdnBvcnQuYzo1MTg6XHRlcnJvciA9IG92c19mbG93X2tleV9leHRyYWN0KHR1bl9pbmZvLCBza2IsIFx1MDAyNmtleSk7XG5uZXQvb3BlbnZzd2l0Y2gvdnBvcnQuYy01MTktXHRpZiAodW5saWtlbHkoZXJyb3IpKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDgyMgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDExOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgS2V5IEZsb3cgRXh0cmFjdGlvbiBQb2ludHMgaW4gT1ZTKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgZmxvdyBrZXlzIGFyZSBoYW5kbGVkIGluIE9wZW4gdlN3aXRjaC4gSSYjMzk7dmUgZ290IHR3byBpbnRlcmVzdGluZyBmdW5jdGlvbnMgaGlnaGxpZ2h0ZWQ6IGBvdnNfZmxvd19rZXlfZXh0cmFjdGAgYW5kIGBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2VgLiBJIHNlZSB0aGF0IGBvdnNfZmxvd19rZXlfZXh0cmFjdGAgaXMgY2FsbGVkIHdpdGhpbiBgb3ZzX3Zwb3J0X3JlY2VpdmVgLiBUaGF0JiMzOTtzIGEgc3Ryb25nIGluZGljYXRvciDigJMgYG92c192cG9ydF9yZWNlaXZlYCBpcyBmdW5kYW1lbnRhbDsgaXTigJlzIHdoZXJlIGluY29taW5nIHBhY2tldHMgYXJlIGluaXRpYWxseSBwcm9jZXNzZWQuIFRoZXJlZm9yZSwgYG92c19mbG93X2tleV9leHRyYWN0YCBtdXN0IGJlIGEgY3JpdGljYWwgcGFydCBvZiB0aGF0IGNvcmUgcGFja2V0IHJlY2VwdGlvbiBwYXRoLgoKT24gdGhlIG90aGVyIGhhbmQsIGBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2VgIGdldHMgY2FsbGVkIHdpdGhpbiBgb3ZzX3BhY2tldF9jbWRfZXhlY3V0ZWAuIEFoLCBzbyB0aGlzIGRlYWxzIHdpdGggdGhlIGV4ZWN1dGlvbiBvZiBwYWNrZXQgY29tbWFuZHMgc2VudCBvdmVyIG5ldGxpbmsuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBgb3ZzX3BhY2tldF9jbWRfZXhlY3V0ZWAgaGFuZGxlcyB0aG9zZSBgT1ZTX1BBQ0tFVF9DTURfRVhFQ1VURWAgbWVzc2FnZXMsIG1lYW5pbmcgdGhpcyBmdW5jdGlvbiBsaWtlbHkgaXMgcmVzcG9uc2libGUgZm9yIHByb2Nlc3NpbmcgcGFja2V0cyBpbiB0aGUgdXNlcnNwYWNlLgoKTm93LCBJJiMzOTttIHRoaW5raW5nLCB3aGVyZSBkb2VzIHRoZSBmbG93IGtleSBnZXQgdXBkYXRlZCBpbiB0aGUga2VybmVsPyBJIG5lZWQgdG8gY2hlY2sgYG92c19mbG93X2tleV91cGRhdGVgIHRvIHNlZSBpZiBpdCYjMzk7cyBpbnZvbHZlZCBpbiB0aGlzIHByb2Nlc3MuIFRpbWUgdG8gZGlnIGluIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtvdnNfZmxvd19rZXlfdXBkYXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L29wZW52c3dpdGNoLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jPTExMTU9c3RhdGljIGludCBleGVjdXRlX3JlY2lyYyhzdHJ1Y3QgZGF0YXBhdGggKmRwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMtMTEyMy1cbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmM6MTEyNDpcdFx0ZXJyID0gb3ZzX2Zsb3dfa2V5X3VwZGF0ZShza2IsIGtleSk7XG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jLTExMjUtXHRcdGlmIChlcnIpIHtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jPTEyNTU9c3RhdGljIGludCBkb19leGVjdXRlX2FjdGlvbnMoc3RydWN0IGRhdGFwYXRoICpkcCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jLTEzODAtXHRcdFx0aWYgKCFpc19mbG93X2tleV92YWxpZChrZXkpKSB7XG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jOjEzODE6XHRcdFx0XHRlcnIgPSBvdnNfZmxvd19rZXlfdXBkYXRlKHNrYiwga2V5KTtcbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMtMTM4Mi1cdFx0XHRcdGlmIChlcnIpXG4tLVxubmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jPTQ0ND1zdGF0aWMgaW50IG92c19jdF9oYW5kbGVfZnJhZ21lbnRzKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXksXG4tLVxubmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jLTQ1Ni1cdCAqL1xubmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jOjQ1NzpcdG92c19mbG93X2tleV91cGRhdGVfbDNsNChza2IsIGtleSk7XG5uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMtNDU4LVx0a2V5LVx1MDAzZWlwLmZyYWcgPSBPVlNfRlJBR19UWVBFX05PTkU7XG4tLVxubmV0L29wZW52c3dpdGNoL2Zsb3cuYz05MDk9c3RhdGljIGludCBrZXlfZXh0cmFjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk2OS0gKi9cbm5ldC9vcGVudnN3aXRjaC9mbG93LmM6OTcwOmludCBvdnNfZmxvd19rZXlfdXBkYXRlX2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk3MS17XG4tLVxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy05NzQtXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jOjk3NTppbnQgb3ZzX2Zsb3dfa2V5X3VwZGF0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTc2LXtcbi0tXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oPTI4Nj11NjQgb3ZzX2Zsb3dfdXNlZF90aW1lKHVuc2lnbmVkIGxvbmcgZmxvd19qaWZmaWVzKTtcbm5ldC9vcGVudnN3aXRjaC9mbG93LmgtMjg3LVxubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyODg6aW50IG92c19mbG93X2tleV91cGRhdGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpO1xubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyODk6aW50IG92c19mbG93X2tleV91cGRhdGVfbDNsNChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSk7XG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oLTI5MC1pbnQgb3ZzX2Zsb3dfa2V5X2V4dHJhY3QoY29uc3Qgc3RydWN0IGlwX3R1bm5lbF9pbmZvICp0dW5faW5mbyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjAxNgoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLCBteSBtaW5kIGlzIHdvcmtpbmcgb24gaG93IHRvIGFwcHJvYWNoIHRoaXMuLi4KCioqRm9jdXNpbmcgb24gT3BlbiB2U3dpdGNoIEtlcm5lbCBPcGVyYXRpb25zKioKCkFscmlnaHQsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUga2V5IGFyZWFzLCB0aGUgY3JpdGljYWwgY29tcG9uZW50cywgd2l0aGluIHRoZSBPcGVuIHZTd2l0Y2gga2VybmVsIG1vZHVsZXMuIEkgbmVlZCB0byBiZSBleGFjdCBoZXJlLCB0byBhdm9pZCB3YXN0aW5nIHRpbWUuIEkmIzM5O20gdGhpbmtpbmcgb2YgZml2ZSBzcGVjaWZpYyBzeW1ib2xzIGFzIHBvdGVudGlhbCBzdGFydGluZyBwb2ludHM6IGBvdnNfZmxvd19rZXlfZXh0cmFjdGAsIGBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2VgLCBgb3ZzX2Zsb3dfa2V5X3VwZGF0ZWAsIGBvdnNfdnBvcnRfcmVjZWl2ZWAsIGFuZCBgb3ZzX3BhY2tldF9jbWRfZXhlY3V0ZWAuIFRoZXNlIGFsbCAqZmVlbCogbGlrZSBoaWdoLWxldmVyYWdlIHBvaW50cyBpbiB0aGUgZGF0YSBwYXRoLCBidXQgSSBuZWVkIHRvIGJlIHN1cmUuIEkmIzM5O20gdmlzdWFsaXppbmcgdGhlbSwgdGhlc2UgYXJlIGFsbCBjcml0aWNhbCB0byB0aGUgb3BlcmF0aW9uIG9mIHRoZSBrZXJuZWwgbW9kdWxlcy4KCkkgbmVlZCB0byBjb25maXJtIHRoZXNlIGZ1bmN0aW9ucyB0aHJvdWdoIHRoZSBjb25maWd1cmF0aW9uLCBieSBjaGVja2luZyB0aGUgS2NvbmZpZyBzZXR0aW5ncy4gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBzeW1ib2xzIGludGVyYWN0IHRvIGFjaGlldmUgdGhlaXIgZ29hbC4gVGltZSB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBhbmQgbWFrZSBzdXJlIG15IGluc3RpbmN0cyBhcmUgc291bmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBPUEVOVlNXSVRDSCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9vcGVudnN3aXRjaC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9vcGVudnN3aXRjaC9LY29uZmlnLTUtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo2OmNvbmZpZyBPUEVOVlNXSVRDSFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaFwmIzM0O1xuLS1cbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTQzLVxubmV0L29wZW52c3dpdGNoL0tjb25maWc6NDQ6Y29uZmlnIE9QRU5WU1dJVENIX0dSRVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuIHZTd2l0Y2ggR1JFIHR1bm5lbGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNTYtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo1Nzpjb25maWcgT1BFTlZTV0lUQ0hfVlhMQU5cbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTU4LVx0dHJpc3RhdGUgXCYjMzQ7T3BlbiB2U3dpdGNoIFZYTEFOIHR1bm5lbGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L29wZW52c3dpdGNoL0tjb25maWctNjgtXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo2OTpjb25maWcgT1BFTlZTV0lUQ0hfR0VORVZFXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03MC1cdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaCBHZW5ldmUgdHVubmVsaW5nIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjU5NgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgT3BlbiB2U3dpdGNoIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gaXRlbSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGlzIGBPUEVOVlNXSVRDSGAuIFRoZSBmaXJzdCB0aGluZyBJIGFsd2F5cyBkbyBpcyB0cmFjZSBiYWNrIGl0cyBsaW5lYWdlIGFuZCBkZXBlbmRlbmNpZXMuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlcy4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgYE9QRU5WU1dJVENIYCB2YXJpYWJsZSBpcyBnYXRpbmcuIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCB0aGUgYG5ldC9vcGVudnN3aXRjaC9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHdoZXJlIEkgZXhwZWN0IHRvIGZpbmQgdGhlIGRlcGVuZGVuY2llcywgYW55IHN1cHBvcnRpbmcgb3B0aW9ucywgYW5kIHBvc3NpYmx5IHNvbWUgY29udGV4dCBhcm91bmQgdGhlIGludGVudCBvZiBgT1BFTlZTV0lUQ0hgIGl0c2VsZi4gV2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMgaXMgaXQgcHVsbGluZyBpbj8gQW55IHNwZWNpZmljIG5ldHdvcmtpbmcgc3RhY2tzPyBUaGF0IGZpbGUgc2hvdWxkIGdpdmUgbWUgdGhlIGdyb3VuZCB0cnV0aCB0byB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgdGhpcyBjb25maWd1cmF0aW9uIGl0ZW0uIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBhY3R1YWxseSB1bmRlciB0aGUgaG9vZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdCNcbiAgIDM6XHQjIE9wZW4gdlN3aXRjaFxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRjb25maWcgT1BFTlZTV0lUQ0hcbiAgIDc6XHRcdHRyaXN0YXRlIFwmIzM0O09wZW4gdlN3aXRjaFwmIzM0O1xuICAgODpcdFx0ZGVwZW5kcyBvbiBJTkVUXG4gICA5Olx0XHRkZXBlbmRzIG9uICFORl9DT05OVFJBQ0sgfHwgXFxcbiAgMTA6XHRcdFx0ICAgKE5GX0NPTk5UUkFDSyBcdTAwMjZcdTAwMjYgKCghTkZfREVGUkFHX0lQVjYgfHwgTkZfREVGUkFHX0lQVjYpIFx1MDAyNlx1MDAyNiBcXFxuICAxMTpcdFx0XHRcdFx0ICAgICAoIU5GX05BVCB8fCBORl9OQVQpIFx1MDAyNlx1MDAyNiBcXFxuICAxMjpcdFx0XHRcdFx0ICAgICAoIU5FVEZJTFRFUl9DT05OQ09VTlQgfHwgTkVURklMVEVSX0NPTk5DT1VOVCkpKVxuICAxMzpcdFx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8ICFQU0FNUExFXG4gIDE0Olx0XHRzZWxlY3QgTVBMU1xuICAxNTpcdFx0c2VsZWN0IE5FVF9DUkMzMkNcbiAgMTY6XHRcdHNlbGVjdCBORVRfTVBMU19HU09cbiAgMTc6XHRcdHNlbGVjdCBEU1RfQ0FDSEVcbiAgMTg6XHRcdHNlbGVjdCBORVRfTlNIXG4gIDE5Olx0XHRzZWxlY3QgTkZfQ09OTlRSQUNLX09WUyBpZiBORl9DT05OVFJBQ0tcbiAgMjA6XHRcdHNlbGVjdCBORl9OQVRfT1ZTIGlmIE5GX05BVFxuICAyMTpcdFx0aGVscFxuICAyMjpcdFx0ICBPcGVuIHZTd2l0Y2ggaXMgYSBtdWx0aWxheWVyIEV0aGVybmV0IHN3aXRjaCB0YXJnZXRlZCBhdCB2aXJ0dWFsaXplZFxuICAyMzpcdFx0ICBlbnZpcm9ubWVudHMuICBJbiBhZGRpdGlvbiB0byBzdXBwb3J0aW5nIGEgdmFyaWV0eSBvZiBmZWF0dXJlc1xuICAyNDpcdFx0ICBleHBlY3RlZCBpbiBhIHRyYWRpdGlvbmFsIGhhcmR3YXJlIHN3aXRjaCwgaXQgZW5hYmxlcyBmaW5lLWdyYWluZWRcbiAgMjU6XHRcdCAgcHJvZ3JhbW1hdGljIGV4dGVuc2lvbiBhbmQgZmxvdy1iYXNlZCBjb250cm9sIG9mIHRoZSBuZXR3b3JrLiAgVGhpc1xuICAyNjpcdFx0ICBjb250cm9sIGlzIHVzZWZ1bCBpbiBhIHdpZGUgdmFyaWV0eSBvZiBhcHBsaWNhdGlvbnMgYnV0IGlzXG4gIDI3Olx0XHQgIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgaW4gbXVsdGktc2VydmVyIHZpcnR1YWxpemF0aW9uIGRlcGxveW1lbnRzLFxuICAyODpcdFx0ICB3aGljaCBhcmUgb2Z0ZW4gY2hhcmFjdGVyaXplZCBieSBoaWdobHkgZHluYW1pYyBlbmRwb2ludHMgYW5kIHRoZVxuICAyOTpcdFx0ICBuZWVkIHRvIG1haW50YWluIGxvZ2ljYWwgYWJzdHJhY3Rpb25zIGZvciBtdWx0aXBsZSB0ZW5hbnRzLlxuICAzMDpcdFxuICAzMTpcdFx0ICBUaGUgT3BlbiB2U3dpdGNoIGRhdGFwYXRoIHByb3ZpZGVzIGFuIGluLWtlcm5lbCBmYXN0IHBhdGggZm9yIHBhY2tldFxuICAzMjpcdFx0ICBmb3J3YXJkaW5nLiAgSXQgaXMgY29tcGxlbWVudGVkIGJ5IGEgdXNlcnNwYWNlIGRhZW1vbiwgb3ZzLXZzd2l0Y2hkLFxuICAzMzpcdFx0ICB3aGljaCBpcyBhYmxlIHRvIGFjY2VwdCBjb25maWd1cmF0aW9uIGZyb20gYSB2YXJpZXR5IG9mIHNvdXJjZXMgYW5kXG4gIDM0Olx0XHQgIHRyYW5zbGF0ZSBpdCBpbnRvIHBhY2tldCBwcm9jZXNzaW5nIHJ1bGVzLlxuICAzNTpcdFxuICAzNjpcdFx0ICBTZWUgaHR0cDovL29wZW52c3dpdGNoLm9yZyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgdXNlcnNwYWNlXG4gIDM3Olx0XHQgIHV0aWxpdGllcy5cbiAgMzg6XHRcbiAgMzk6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGNvZGUgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbCBiZVxuICA0MDpcdFx0ICBjYWxsZWQgb3BlbnZzd2l0Y2guXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc0NDYKCQkJCQkJCW91dHB1dDogMjE1CgkJCQkJCQl0aG91Z2h0czogMjU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEZ1enppbmcgU3RyYXRlZ3kgZm9yIFRoaXMgT3BlbiB2U3dpdGNoIFBhdGNoKioKCk9rYXksIHNvIHRoZSBjb25maWcgaXMgZGVmaW5pdGVseSBgT1BFTlZTV0lUQ0hgLiBUaGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBrZXlfZXh0cmFjdGAgd2l0aGluIGBuZXQvb3BlbnZzd2l0Y2gvZmxvdy5jYC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgZmxvdyBrZXkgZ2V0cyBwdWxsZWQgZnJvbSBhbiBgc2tiYC4gU291bmRzIGxpa2UgbG93LWhhbmdpbmcgZnJ1aXQgZm9yIGZ1enppbmcsIGFic29sdXRlbHkuIEFueSBjaGFuZ2UgaW4gdGhhdCBjb3JlIGZ1bmN0aW9uIGRlYWxpbmcgd2l0aCBwYWNrZXQgcHJvY2Vzc2luZyBpcyBnb2luZyB0byBiZSBpbnRlcmVzdGluZy4KCkxldCYjMzk7cyBzZWUsIHdoYXQgc3ltYm9scyBzaG91bGQgSSB0YXJnZXQ/IFRvcCBvZiBteSBsaXN0OiBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgIGFuZCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlYCDigJMgdGhlIGNvcmUgZXh0cmFjdGlvbiBmdW5jdGlvbnMsIG9mIGNvdXJzZS4gVGhlbiwgYG92c19mbG93X2tleV91cGRhdGVgIOKAkyBob3cgZG9lcyB0aGlzIGludGVyYWN0LCBjb3VsZCB0aGVyZSBiZSBzaWRlIGVmZmVjdHM/IEFuZCwgSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGBvdnNfdnBvcnRfcmVjZWl2ZWAgYW5kIGBvdnNfcGFja2V0X2NtZF9leGVjdXRlYCwgYmVjYXVzZSB0aG9zZSBhcmUgdGhlIGxpa2VseSBlbnRyeSBwb2ludHMgZnJvbSBuZXR3b3JrIHBhY2tldHMgYW5kIHVzZXJzcGFjZS4KClRoZSByZWFzb24gaXQmIzM5O3MgZnV6ei13b3J0aHkgaXMgYmVjYXVzZSB0aGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCBib3VuZHMgY2hlY2sgaW4gYGtleV9leHRyYWN0YC4gVGhpcyBpcyBhICpmdW5jdGlvbmFsKiBjaGFuZ2U6IGl0JiMzOTtzIGludGVuZGVkIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcyB3aGVuIHBhcnNpbmcgdGhlIEV0aGVybmV0IGhlYWRlciBpbiBPVlMuIENydWNpYWxseSwgdGhpcyBhZmZlY3RzIHRoZSBjb3JlIGZsb3cgZXh0cmFjdGlvbiBsb2dpYywgd2hpY2ggY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGxpbmsg4oCTIHdoaWNoIG1lYW5zIHVzZXJzcGFjZSBpbnRlcmFjdGlvbiB2aWEgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgIGlzIGEgcGF0aC4gQWxzbywgbm9ybWFsIHBhY2tldCBwcm9jZXNzaW5nIHRocm91Z2ggYG92c192cG9ydF9yZWNlaXZlYC4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgYm91bmRzIGNoZWNrICpjb3JyZWN0bHkqIGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgYW5kIHRoYXQgaXQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSByZWdyZXNzaW9ucy4gSXQmIzM5O3MgYWJvdXQgcHJvdGVjdGluZyBhZ2FpbnN0IGNyYXNoZXMgYW5kIGVuc3VyaW5nIHRoZSBzeXN0ZW0mIzM5O3Mgc3RhYmlsaXR5IHVuZGVyIGR1cmVzcy4gVGhpcyBpcyBhIHZlcnkgdGFyZ2V0ZWQgcGF0Y2gsIHNvIEkgbmVlZCB0byBmb2N1cyBvbiB0aGlzIGFyZWEuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtPUEVOVlNXSVRDSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O292c19mbG93X2tleV9leHRyYWN0JiMzNDssCiAgICAmIzM0O292c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZSYjMzQ7LAogICAgJiMzNDtvdnNfZmxvd19rZXlfdXBkYXRlJiMzNDssCiAgICAmIzM0O292c192cG9ydF9yZWNlaXZlJiMzNDssCiAgICAmIzM0O292c19wYWNrZXRfY21kX2V4ZWN1dGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayAoYGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKWApIGluIGBrZXlfZXh0cmFjdGAgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIHdoZW4gcGFyc2luZyB0aGUgRXRoZXJuZXQgaGVhZGVyIG9mIGFuIHNrYiBpbiBPcGVuIHZTd2l0Y2guIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBPVlMgZmxvdyBleHRyYWN0aW9uIGxvZ2ljLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGUuZy4sIGBPVlNfUEFDS0VUX0NNRF9FWEVDVVRFYCkgYW5kIGZyb20gbmV0d29yayBwYWNrZXQgcHJvY2Vzc2luZyAoYG92c192cG9ydF9yZWNlaXZlYCkuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgd2l0aG91dCBpbnRyb2R1Y2luZyByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7T1BFTlZTV0lUQ0gmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtvdnNfZmxvd19rZXlfZXh0cmFjdCYjMzQ7LAogICAgJiMzNDtvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2UmIzM0OywKICAgICYjMzQ7b3ZzX2Zsb3dfa2V5X3VwZGF0ZSYjMzQ7LAogICAgJiMzNDtvdnNfdnBvcnRfcmVjZWl2ZSYjMzQ7LAogICAgJiMzNDtvdnNfcGFja2V0X2NtZF9leGVjdXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgKGBjaGVja19oZWFkZXIoc2tiLCBFVEhfSExFTilgKSBpbiBga2V5X2V4dHJhY3RgIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcyB3aGVuIHBhcnNpbmcgdGhlIEV0aGVybmV0IGhlYWRlciBvZiBhbiBza2IgaW4gT3BlbiB2U3dpdGNoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgT1ZTIGZsb3cgZXh0cmFjdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZXRsaW5rIChlLmcuLCBgT1ZTX1BBQ0tFVF9DTURfRVhFQ1VURWApIGFuZCBmcm9tIG5ldHdvcmsgcGFja2V0IHByb2Nlc3NpbmcgKGBvdnNfdnBvcnRfcmVjZWl2ZWApLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgYm91bmRzIGNoZWNrIGNvcnJlY3RseSBoYW5kbGVzIG1hbGZvcm1lZCBwYWNrZXRzIHdpdGhvdXQgaW50cm9kdWNpbmcgcmVncmVzc2lvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MToyMy4yNzMwMTM4NTJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODQ5NzEwOTUwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJPUEVOVlNXSVRDSFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm92c19mbG93X2tleV9leHRyYWN0XCIsXG4gICAgXCJvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2VcIixcbiAgICBcIm92c19mbG93X2tleV91cGRhdGVcIixcbiAgICBcIm92c192cG9ydF9yZWNlaXZlXCIsXG4gICAgXCJvdnNfcGFja2V0X2NtZF9leGVjdXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayAoYGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKWApIGluIGBrZXlfZXh0cmFjdGAgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIHdoZW4gcGFyc2luZyB0aGUgRXRoZXJuZXQgaGVhZGVyIG9mIGFuIHNrYiBpbiBPcGVuIHZTd2l0Y2guIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBPVlMgZmxvdyBleHRyYWN0aW9uIGxvZ2ljLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGUuZy4sIGBPVlNfUEFDS0VUX0NNRF9FWEVDVVRFYCkgYW5kIGZyb20gbmV0d29yayBwYWNrZXQgcHJvY2Vzc2luZyAoYG92c192cG9ydF9yZWNlaXZlYCkuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgd2l0aG91dCBpbnRyb2R1Y2luZyByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDE6MjMuMjczMDIwNzYzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODE5MzQwNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkY2RlMmM0ZDNmMDZlZTVjMDI4OGNiYThkZGU4NzEzNDE4ZWM3N2RiXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDE6MjIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2Zsb3cuYyBiL25ldC9vcGVudnN3aXRjaC9mbG93LmNcXG5pbmRleCA2NjM2Njk4MmY2MDQ0Li40NmMxZDY2YWFkOGMzIDEwMDY0NFxcbi0tLSBhL25ldC9vcGVudnN3aXRjaC9mbG93LmNcXG4rKysgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jXFxuQEAgLTg4OSw4ICs4ODksNiBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXFxuICAqIEV0aGVybmV0IGhlYWRlclxcbiAgKiBAa2V5OiBvdXRwdXQgZmxvdyBrZXlcXG4gICpcXG4tICogVGhlIGNhbGxlciBtdXN0IGVuc3VyZSB0aGF0IHNrYi1cXHUwMDNlbGVuIFxcdTAwM2U9IEVUSF9ITEVOLlxcbi0gKlxcbiAgKiBJbml0aWFsaXplcyBAc2tiIGhlYWRlciBmaWVsZHMgYXMgZm9sbG93czpcXG4gICpcXG4gICogICAgLSBza2ItXFx1MDAzZW1hY19oZWFkZXI6IHRoZSBMMiBoZWFkZXIuXFxuQEAgLTkxMCw4ICs5MDgsNiBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXFxuICAqL1xcbiBzdGF0aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbiB7XFxuLVxcdHN0cnVjdCBldGhoZHIgKmV0aDtcXG4tXFxuIFxcdC8qIEZsYWdzIGFyZSBhbHdheXMgdXNlZCBhcyBwYXJ0IG9mIHN0YXRzICovXFxuIFxcdGtleS1cXHUwMDNldHAuZmxhZ3MgPSAwO1xcbiBcXG5AQCAtOTI2LDYgKzkyMiwxMyBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbiBcXHRcXHRza2JfcmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTtcXG4gXFx0XFx0a2V5LVxcdTAwM2VldGgudHlwZSA9IHNrYi1cXHUwMDNlcHJvdG9jb2w7XFxuIFxcdH0gZWxzZSB7XFxuK1xcdFxcdHN0cnVjdCBldGhoZHIgKmV0aDtcXG4rXFx0XFx0aW50IGVycjtcXG4rXFxuK1xcdFxcdGVyciA9IGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKTtcXG4rXFx0XFx0aWYgKHVubGlrZWx5KGVycikpXFxuK1xcdFxcdFxcdHJldHVybiBlcnI7XFxuK1xcbiBcXHRcXHRldGggPSBldGhfaGRyKHNrYik7XFxuIFxcdFxcdGV0aGVyX2FkZHJfY29weShrZXktXFx1MDAzZWV0aC5zcmMsIGV0aC1cXHUwMDNlaF9zb3VyY2UpO1xcbiBcXHRcXHRldGhlcl9hZGRyX2NvcHkoa2V5LVxcdTAwM2VldGguZHN0LCBldGgtXFx1MDAzZWhfZGVzdCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjIzLjg1NTY4ODIxN1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI3OTE0NDI1NjQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9QRU5WU1dJVENIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwib3ZzX2Zsb3dfa2V5X2V4dHJhY3RcIixcbiAgICBcIm92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZVwiLFxuICAgIFwib3ZzX2Zsb3dfa2V5X3VwZGF0ZVwiLFxuICAgIFwib3ZzX3Zwb3J0X3JlY2VpdmVcIixcbiAgICBcIm92c19wYWNrZXRfY21kX2V4ZWN1dGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIChgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCkgaW4gYGtleV9leHRyYWN0YCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgd2hlbiBwYXJzaW5nIHRoZSBFdGhlcm5ldCBoZWFkZXIgb2YgYW4gc2tiIGluIE9wZW4gdlN3aXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE9WUyBmbG93IGV4dHJhY3Rpb24gbG9naWMsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoZS5nLiwgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgKSBhbmQgZnJvbSBuZXR3b3JrIHBhY2tldCBwcm9jZXNzaW5nIChgb3ZzX3Zwb3J0X3JlY2VpdmVgKS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkY2RlMmM0ZDNmMDZlZTVjMDI4OGNiYThkZGU4NzEzNDE4ZWM3N2RiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMSAwOTo0MToyMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC9mbG93LmMgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jXG5pbmRleCA2NjM2Njk4MmY2MDQ0Li40NmMxZDY2YWFkOGMzIDEwMDY0NFxuLS0tIGEvbmV0L29wZW52c3dpdGNoL2Zsb3cuY1xuKysrIGIvbmV0L29wZW52c3dpdGNoL2Zsb3cuY1xuQEAgLTg4OSw4ICs4ODksNiBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG4gICogRXRoZXJuZXQgaGVhZGVyXG4gICogQGtleTogb3V0cHV0IGZsb3cga2V5XG4gICpcbi0gKiBUaGUgY2FsbGVyIG11c3QgZW5zdXJlIHRoYXQgc2tiLVx1MDAzZWxlbiBcdTAwM2U9IEVUSF9ITEVOLlxuLSAqXG4gICogSW5pdGlhbGl6ZXMgQHNrYiBoZWFkZXIgZmllbGRzIGFzIGZvbGxvd3M6XG4gICpcbiAgKiAgICAtIHNrYi1cdTAwM2VtYWNfaGVhZGVyOiB0aGUgTDIgaGVhZGVyLlxuQEAgLTkxMCw4ICs5MDgsNiBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG4gICovXG4gc3RhdGljIGludCBrZXlfZXh0cmFjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcbiB7XG4tXHRzdHJ1Y3QgZXRoaGRyICpldGg7XG4tXG4gXHQvKiBGbGFncyBhcmUgYWx3YXlzIHVzZWQgYXMgcGFydCBvZiBzdGF0cyAqL1xuIFx0a2V5LVx1MDAzZXRwLmZsYWdzID0gMDtcbiBcbkBAIC05MjYsNiArOTIyLDEzIEBAIHN0YXRpYyBpbnQga2V5X2V4dHJhY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXG4gXHRcdHNrYl9yZXNldF9uZXR3b3JrX2hlYWRlcihza2IpO1xuIFx0XHRrZXktXHUwMDNlZXRoLnR5cGUgPSBza2ItXHUwMDNlcHJvdG9jb2w7XG4gXHR9IGVsc2Uge1xuK1x0XHRzdHJ1Y3QgZXRoaGRyICpldGg7XG4rXHRcdGludCBlcnI7XG4rXG4rXHRcdGVyciA9IGNoZWNrX2hlYWRlcihza2IsIEVUSF9ITEVOKTtcbitcdFx0aWYgKHVubGlrZWx5KGVycikpXG4rXHRcdFx0cmV0dXJuIGVycjtcbitcbiBcdFx0ZXRoID0gZXRoX2hkcihza2IpO1xuIFx0XHRldGhlcl9hZGRyX2NvcHkoa2V5LVx1MDAzZWV0aC5zcmMsIGV0aC1cdTAwM2VoX3NvdXJjZSk7XG4gXHRcdGV0aGVyX2FkZHJfY29weShrZXktXHUwMDNlZXRoLmRzdCwgZXRoLVx1MDAzZWhfZGVzdCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MToyMy44NTU2OTY2MTdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mjk3MzQzMjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFJlY2VudCBPVlMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIG1vZGlmeWluZyBgbmV0L29wZW52c3dpdGNoL2Zsb3cuY2AuIEl0IGxvb2tzIGxpa2UgYSBzdHJhaWdodGZvcndhcmQgZml4OiB0aGV5J3JlIGFkZGluZyBhIGBjaGVja19oZWFkZXIoc2tiLCBFVEhfSExFTilgIGNhbGwgd2l0aGluIGBrZXlfZXh0cmFjdCgpYC4gVGhlIGludGVudGlvbiBpcyBjbGVhcmx5IHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcyB3aGVuIGRlYWxpbmcgd2l0aCB0aGUgRXRoZXJuZXQgaGVhZGVyLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlLiBHaXZlbiB0aGF0IHRoaXMgaXMgaW4gT3BlbiB2U3dpdGNoLCB3aGljaCBpcyBhIGtleSBjb21wb25lbnQgYW5kIHF1aXRlIHJlYWNoYWJsZSwgYW5kIHRoZXJlZm9yZSwgZW1pbmVudGx5IGZ1enphYmxlLCB0aGlzIGtpbmQgb2YgcHJvdGVjdGlvbiBpcyBjcnVjaWFsLlxuXG5Ob3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UgbW9yZSBmdWxseS4gSSdsbCB0YWtlIGEgbG9vayBhdCB0aGUgY29kZSwgc3BlY2lmaWNhbGx5IGBuZXQvb3BlbnZzd2l0Y2gvZmxvdy5jYCwgdG8gc2VlIHdoZXJlIGBrZXlfZXh0cmFjdGAgaXMgY2FsbGVkLiBJdCdzIG1hcmtlZCBhcyBgc3RhdGljYCwgc28gSSBrbm93IEkgbmVlZCB0byBiZSBjYXJlZnVsIHdpdGggbXkgc2VhcmNoLiBJJ2xsIG5lZWQgdG8gaWRlbnRpZnkgYWxsIG9mIHRoZSBmdW5jdGlvbnMgdGhhdCBjYWxsIGBrZXlfZXh0cmFjdGAgdG8gdW5kZXJzdGFuZCB0aGUgZmxvdyBvZiBleGVjdXRpb24gYW5kIGhvdyB0aGlzIHByb3RlY3Rpb24gYWZmZWN0cyB0aGUgc3lzdGVtJ3MgYmVoYXZpb3IuIFRpbWUgdG8gZmluZCB0aG9zZSBjYWxsZXJzIVxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzMwLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDE6MjguMTUzMDQyNDJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEyMzcyODc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImtleV9leHRyYWN0XFxcXChcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L29wZW52c3dpdGNoL2Zsb3cuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTY3OT1zdGF0aWMgaW50IGtleV9leHRyYWN0X2wzbDQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTkwOC0gKi9cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jOjkwOTpzdGF0aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTEwLXtcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmM9OTc1PWludCBvdnNfZmxvd19rZXlfdXBkYXRlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy05NzgtXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzo5Nzk6XFx0cmVzID0ga2V5X2V4dHJhY3Qoc2tiLCBrZXkpO1xcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTgwLVxcdGlmICghcmVzKVxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYz05ODY9c3RhdGljIGludCBrZXlfZXh0cmFjdF9tYWNfcHJvdG8oc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtOTk5LVxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmM6MTAwMDppbnQgb3ZzX2Zsb3dfa2V5X2V4dHJhY3QoY29uc3Qgc3RydWN0IGlwX3R1bm5lbF9pbmZvICp0dW5faW5mbyxcXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwMDEtXFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMDU3LVxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmM6MTA1ODpcXHRlcnIgPSBrZXlfZXh0cmFjdChza2IsIGtleSk7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMDU5LVxcdGlmICghZXJyKSB7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDYwOlxcdFxcdG92c19jdF9maWxsX2tleShza2IsIGtleSwgcG9zdF9jdCk7ICAgLyogTXVzdCBiZSBhZnRlciBrZXlfZXh0cmFjdCgpLiAqL1xcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtMTA2MS1cXHRcXHRpZiAocG9zdF9jdCkge1xcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYz0xMDc1PWludCBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2Uoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLFxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMTAxLVxcdHNrYi1cXHUwMDNlcHJvdG9jb2wgPSBrZXktXFx1MDAzZWV0aC50eXBlO1xcbm5ldC9vcGVudnN3aXRjaC9mbG93LmM6MTEwMjpcXHRlcnIgPSBrZXlfZXh0cmFjdChza2IsIGtleSk7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy0xMTAzLVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjI4LjI2NTQyMDYxNFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NjA5Mzk1NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBga2V5X2V4dHJhY3RgIEZ1bmN0aW9uJ3MgQ2FsbGVycyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBga2V5X2V4dHJhY3RgIGlzIGJlaW5nIHVzZWQuIEZpcnN0LCBJJ20gbm90aW5nIHRoZSB0aHJlZSBmdW5jdGlvbnMgdGhhdCBjYWxsIGl0OiBgb3ZzX2Zsb3dfa2V5X3VwZGF0ZWAsIGBvdnNfZmxvd19rZXlfZXh0cmFjdGAsIGFuZCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlYC4gVGhhdCdzIGEgcmVhc29uYWJsZSBzZXQsIGFuZCBub3cgSSBuZWVkIHRvIGRpZyBpbnRvIHdoYXQncyBoYXBwZW5pbmcgd2l0aGluIHRob3NlIGZ1bmN0aW9ucy5cblxuTXkgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyB0byBleGFtaW5lIHRob3NlIHRocmVlIGZ1bmN0aW9ucywgc3BlY2lmaWNhbGx5IGBvdnNfZmxvd19rZXlfZXh0cmFjdGAsIGBvdnNfZmxvd19rZXlfdXBkYXRlYCwgYW5kIGBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2VgIGJlY2F1c2UgdGhhdCB3aWxsIHRlbGwgbWUgaG93IGBrZXlfZXh0cmFjdGAgaXMgYmVpbmcgdXNlZC4gQ3J1Y2lhbGx5LCBJIGhhdmUgdG8gZGV0ZXJtaW5lIGlmIHRoZXNlIGNhbGxlcnMgYXJlIGV4cG9ydGVkIGZ1bmN0aW9ucyBvciBqdXN0IG5vbi1zdGF0aWMsIGJlY2F1c2UgdGhlIHNjb3BlIGFuZCBwb3RlbnRpYWwgaW1wbGljYXRpb25zIG9mIHVzYWdlIGFyZSB2ZXJ5IGRpZmZlcmVudCBkZXBlbmRpbmcgb24gdGhlIGZ1bmN0aW9uJ3Mgc2NvcGUuIFRoaXMgd2lsbCBpbmZsdWVuY2UgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgbGFyZ2VyIGFyY2hpdGVjdHVyZSBhbmQgaG93IGRhdGEgaXMgbWFuYWdlZCB3aXRoaW4gdGhpcyBrZXkgZXh0cmFjdGlvbiBwcm9jZXNzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzYxLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjMxLjgyNjM2MzI0MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MTU0MzEyNCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRVhQT1JUX1NZTUJPTC4qb3ZzX2Zsb3dfa2V5X1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvb3BlbnZzd2l0Y2gvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MTozMS45MTc5MTc4ODVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTY3MTk4NDAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgcGVyc3BlY3RpdmU6XG5cbioqSW52ZXN0aWdhdGluZyBQb3RlbnRpYWwgT3BlbiB2U3dpdGNoIEludGVncmF0aW9uKipcblxuQWxyaWdodCwgSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIHRoZXNlIGl0ZW1zIGNvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBPcGVuIHZTd2l0Y2ggbW9kdWxlLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBkaXZlIGludG8gdGhlIGNvcmUgc291cmNlIGNvZGUuIEknbGwgbmVlZCB0byBsb2NhdGUgd2hlcmUgdGhlc2UgY29tcG9uZW50cyBhcmUgZGVjbGFyZWQsIGRlZmluZWQsIGFuZCBwb3RlbnRpYWxseSB1c2VkLiBUaGUgbG9naWNhbCBwbGFjZSB0byBzdGFydCBsb29raW5nIHdvdWxkIGJlIHdpdGhpbiB0aGUgYG5ldC9vcGVudnN3aXRjaGAgZGlyZWN0b3J5LiBTcGVjaWZpY2FsbHksIEkgc2hvdWxkIGNoZWNrIGBmbG93LmhgIGFuZCBgZmxvdy5jYCDigJMgdGhhdCdzIHdoZXJlIEknZCBleHBlY3QgdG8gZmluZCB0aGUgZnVuZGFtZW50YWwgc3RydWN0dXJlcyBhbmQgZnVuY3Rpb24gZGVmaW5pdGlvbnMgcmVsYXRlZCB0byBmbG93IG1hbmFnZW1lbnQsIHdoaWNoIGlzIG9mdGVuIHdoZXJlIHlvdSdkIGludGVncmF0ZSBuZXcgZWxlbWVudHMuIEknbGwgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB0aG9zZSBmaWxlcyB0byBzZWUgaWYgYW55dGhpbmcganVtcHMgb3V0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzQ3LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDE6MzUuMDg1MTE5MTk2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4OTI2MzE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm92c19mbG93X2tleV9leHRyYWN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9vcGVudnN3aXRjaC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmM9MzY2PXN0YXRpYyBpbnQgcXVldWVfZ3NvX3BhY2tldHMoc3RydWN0IGRhdGFwYXRoICpkcCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTM4My1cXHRpZiAoZ3NvX3R5cGUgXFx1MDAyNiBTS0JfR1NPX1VEUCkge1xcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jOjM4NDpcXHRcXHQvKiBUaGUgaW5pdGlhbCBmbG93IGtleSBleHRyYWN0ZWQgYnkgb3ZzX2Zsb3dfa2V5X2V4dHJhY3QoKVxcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTM4NS1cXHRcXHQgKiBpbiB0aGlzIGNhc2UgaXMgZm9yIGEgZmlyc3QgZnJhZ21lbnQsIHNvIHdlIG5lZWQgdG9cXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jPTYxMj1zdGF0aWMgaW50IG92c19wYWNrZXRfY21kX2V4ZWN1dGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jLTY2Ny1cXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYzo2Njg6XFx0ZXJyID0gb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlKG5ldCwgYVtPVlNfUEFDS0VUX0FUVFJfS0VZXSxcXG5uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYy02NjktXFx0XFx0XFx0XFx0XFx0ICAgICBwYWNrZXQsIFxcdTAwMjZmbG93LVxcdTAwM2VrZXksIGxvZyk7XFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTk4Nj1zdGF0aWMgaW50IGtleV9leHRyYWN0X21hY19wcm90byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy05OTktXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDAwOmludCBvdnNfZmxvd19rZXlfZXh0cmFjdChjb25zdCBzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKnR1bl9pbmZvLFxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtMTAwMS1cXHRcXHRcXHQgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTEwNzQtXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzoxMDc1OmludCBvdnNfZmxvd19rZXlfZXh0cmFjdF91c2Vyc3BhY2Uoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLFxcbm5ldC9vcGVudnN3aXRjaC9mbG93LmMtMTA3Ni1cXHRcXHRcXHRcXHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaD0yODk9aW50IG92c19mbG93X2tleV91cGRhdGVfbDNsNChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSk7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyOTA6aW50IG92c19mbG93X2tleV9leHRyYWN0KGNvbnN0IHN0cnVjdCBpcF90dW5uZWxfaW5mbyAqdHVuX2luZm8sXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaC0yOTEtXFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oLTI5My0vKiBFeHRyYWN0IGtleSBmcm9tIHBhY2tldCBjb21pbmcgZnJvbSB1c2Vyc3BhY2UuICovXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyOTQ6aW50IG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaC0yOTUtXFx0XFx0XFx0XFx0ICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC92cG9ydC5jPTQ5Nz1pbnQgb3ZzX3Zwb3J0X3JlY2VpdmUoc3RydWN0IHZwb3J0ICp2cG9ydCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC92cG9ydC5jLTUxNy1cXHQvKiBFeHRyYWN0IGZsb3cgZnJvbSAnc2tiJyBpbnRvICdrZXknLiAqL1xcbm5ldC9vcGVudnN3aXRjaC92cG9ydC5jOjUxODpcXHRlcnJvciA9IG92c19mbG93X2tleV9leHRyYWN0KHR1bl9pbmZvLCBza2IsIFxcdTAwMjZrZXkpO1xcbm5ldC9vcGVudnN3aXRjaC92cG9ydC5jLTUxOS1cXHRpZiAodW5saWtlbHkoZXJyb3IpKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjM1LjE2NDA1MDY0MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3ODQ0MTEwOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIEtleSBGbG93IEV4dHJhY3Rpb24gUG9pbnRzIGluIE9WUyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGhvdyBmbG93IGtleXMgYXJlIGhhbmRsZWQgaW4gT3BlbiB2U3dpdGNoLiBJJ3ZlIGdvdCB0d28gaW50ZXJlc3RpbmcgZnVuY3Rpb25zIGhpZ2hsaWdodGVkOiBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgIGFuZCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlYC4gSSBzZWUgdGhhdCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgIGlzIGNhbGxlZCB3aXRoaW4gYG92c192cG9ydF9yZWNlaXZlYC4gVGhhdCdzIGEgc3Ryb25nIGluZGljYXRvciDigJMgYG92c192cG9ydF9yZWNlaXZlYCBpcyBmdW5kYW1lbnRhbDsgaXTigJlzIHdoZXJlIGluY29taW5nIHBhY2tldHMgYXJlIGluaXRpYWxseSBwcm9jZXNzZWQuIFRoZXJlZm9yZSwgYG92c19mbG93X2tleV9leHRyYWN0YCBtdXN0IGJlIGEgY3JpdGljYWwgcGFydCBvZiB0aGF0IGNvcmUgcGFja2V0IHJlY2VwdGlvbiBwYXRoLlxuXG5PbiB0aGUgb3RoZXIgaGFuZCwgYG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZWAgZ2V0cyBjYWxsZWQgd2l0aGluIGBvdnNfcGFja2V0X2NtZF9leGVjdXRlYC4gQWgsIHNvIHRoaXMgZGVhbHMgd2l0aCB0aGUgZXhlY3V0aW9uIG9mIHBhY2tldCBjb21tYW5kcyBzZW50IG92ZXIgbmV0bGluay4gVGhhdCdzIGdvb2QgdG8ga25vdy4gYG92c19wYWNrZXRfY21kX2V4ZWN1dGVgIGhhbmRsZXMgdGhvc2UgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgIG1lc3NhZ2VzLCBtZWFuaW5nIHRoaXMgZnVuY3Rpb24gbGlrZWx5IGlzIHJlc3BvbnNpYmxlIGZvciBwcm9jZXNzaW5nIHBhY2tldHMgaW4gdGhlIHVzZXJzcGFjZS5cblxuTm93LCBJJ20gdGhpbmtpbmcsIHdoZXJlIGRvZXMgdGhlIGZsb3cga2V5IGdldCB1cGRhdGVkIGluIHRoZSBrZXJuZWw/IEkgbmVlZCB0byBjaGVjayBgb3ZzX2Zsb3dfa2V5X3VwZGF0ZWAgdG8gc2VlIGlmIGl0J3MgaW52b2x2ZWQgaW4gdGhpcyBwcm9jZXNzLiBUaW1lIHRvIGRpZyBpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDgyMiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MTozOC45NDg0NjQ0MzVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjQ3MDQ3MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJvdnNfZmxvd19rZXlfdXBkYXRlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9vcGVudnN3aXRjaC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYz0xMTE1PXN0YXRpYyBpbnQgZXhlY3V0ZV9yZWNpcmMoc3RydWN0IGRhdGFwYXRoICpkcCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMtMTEyMy1cXG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jOjExMjQ6XFx0XFx0ZXJyID0gb3ZzX2Zsb3dfa2V5X3VwZGF0ZShza2IsIGtleSk7XFxubmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYy0xMTI1LVxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmM9MTI1NT1zdGF0aWMgaW50IGRvX2V4ZWN1dGVfYWN0aW9ucyhzdHJ1Y3QgZGF0YXBhdGggKmRwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxubmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYy0xMzgwLVxcdFxcdFxcdGlmICghaXNfZmxvd19rZXlfdmFsaWQoa2V5KSkge1xcbm5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmM6MTM4MTpcXHRcXHRcXHRcXHRlcnIgPSBvdnNfZmxvd19rZXlfdXBkYXRlKHNrYiwga2V5KTtcXG5uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jLTEzODItXFx0XFx0XFx0XFx0aWYgKGVycilcXG4tLVxcbm5ldC9vcGVudnN3aXRjaC9jb25udHJhY2suYz00NDQ9c3RhdGljIGludCBvdnNfY3RfaGFuZGxlX2ZyYWdtZW50cyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5LFxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jLTQ1Ni1cXHQgKi9cXG5uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmM6NDU3OlxcdG92c19mbG93X2tleV91cGRhdGVfbDNsNChza2IsIGtleSk7XFxubmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jLTQ1OC1cXHRrZXktXFx1MDAzZWlwLmZyYWcgPSBPVlNfRlJBR19UWVBFX05PTkU7XFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jPTkwOT1zdGF0aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KVxcbi0tXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYy05NjktICovXFxubmV0L29wZW52c3dpdGNoL2Zsb3cuYzo5NzA6aW50IG92c19mbG93X2tleV91cGRhdGVfbDNsNChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk3MS17XFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk3NC1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jOjk3NTppbnQgb3ZzX2Zsb3dfa2V5X3VwZGF0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSlcXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jLTk3Ni17XFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oPTI4Nj11NjQgb3ZzX2Zsb3dfdXNlZF90aW1lKHVuc2lnbmVkIGxvbmcgZmxvd19qaWZmaWVzKTtcXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oLTI4Ny1cXG5uZXQvb3BlbnZzd2l0Y2gvZmxvdy5oOjI4ODppbnQgb3ZzX2Zsb3dfa2V5X3VwZGF0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSk7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaDoyODk6aW50IG92c19mbG93X2tleV91cGRhdGVfbDNsNChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSk7XFxubmV0L29wZW52c3dpdGNoL2Zsb3cuaC0yOTAtaW50IG92c19mbG93X2tleV9leHRyYWN0KGNvbnN0IHN0cnVjdCBpcF90dW5uZWxfaW5mbyAqdHVuX2luZm8sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjM5LjA2NDk0MjE4OFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzUzOTk3NTA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUsIG15IG1pbmQgaXMgd29ya2luZyBvbiBob3cgdG8gYXBwcm9hY2ggdGhpcy4uLlxuXG4qKkZvY3VzaW5nIG9uIE9wZW4gdlN3aXRjaCBLZXJuZWwgT3BlcmF0aW9ucyoqXG5cbkFscmlnaHQsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUga2V5IGFyZWFzLCB0aGUgY3JpdGljYWwgY29tcG9uZW50cywgd2l0aGluIHRoZSBPcGVuIHZTd2l0Y2gga2VybmVsIG1vZHVsZXMuIEkgbmVlZCB0byBiZSBleGFjdCBoZXJlLCB0byBhdm9pZCB3YXN0aW5nIHRpbWUuIEknbSB0aGlua2luZyBvZiBmaXZlIHNwZWNpZmljIHN5bWJvbHMgYXMgcG90ZW50aWFsIHN0YXJ0aW5nIHBvaW50czogYG92c19mbG93X2tleV9leHRyYWN0YCwgYG92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZWAsIGBvdnNfZmxvd19rZXlfdXBkYXRlYCwgYG92c192cG9ydF9yZWNlaXZlYCwgYW5kIGBvdnNfcGFja2V0X2NtZF9leGVjdXRlYC4gVGhlc2UgYWxsICpmZWVsKiBsaWtlIGhpZ2gtbGV2ZXJhZ2UgcG9pbnRzIGluIHRoZSBkYXRhIHBhdGgsIGJ1dCBJIG5lZWQgdG8gYmUgc3VyZS4gSSdtIHZpc3VhbGl6aW5nIHRoZW0sIHRoZXNlIGFyZSBhbGwgY3JpdGljYWwgdG8gdGhlIG9wZXJhdGlvbiBvZiB0aGUga2VybmVsIG1vZHVsZXMuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZXNlIGZ1bmN0aW9ucyB0aHJvdWdoIHRoZSBjb25maWd1cmF0aW9uLCBieSBjaGVja2luZyB0aGUgS2NvbmZpZyBzZXR0aW5ncy4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIHN5bWJvbHMgaW50ZXJhY3QgdG8gYWNoaWV2ZSB0aGVpciBnb2FsLiBUaW1lIHRvIGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIGFuZCBtYWtlIHN1cmUgbXkgaW5zdGluY3RzIGFyZSBzb3VuZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjAxNiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQxOjQyLjQxODk0Mzk1N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTk4NjA2MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE9QRU5WU1dJVENIXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9vcGVudnN3aXRjaC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTUtXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6Njpjb25maWcgT1BFTlZTV0lUQ0hcXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJPcGVuIHZTd2l0Y2hcXFwiXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy00My1cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo0NDpjb25maWcgT1BFTlZTV0lUQ0hfR1JFXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNDUtXFx0dHJpc3RhdGUgXFxcIk9wZW4gdlN3aXRjaCBHUkUgdHVubmVsaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy01Ni1cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZzo1Nzpjb25maWcgT1BFTlZTV0lUQ0hfVlhMQU5cXG5uZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZy01OC1cXHR0cmlzdGF0ZSBcXFwiT3BlbiB2U3dpdGNoIFZYTEFOIHR1bm5lbGluZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L29wZW52c3dpdGNoL0tjb25maWctNjgtXFxubmV0L29wZW52c3dpdGNoL0tjb25maWc6Njk6Y29uZmlnIE9QRU5WU1dJVENIX0dFTkVWRVxcbm5ldC9vcGVudnN3aXRjaC9LY29uZmlnLTcwLVxcdHRyaXN0YXRlIFxcXCJPcGVuIHZTd2l0Y2ggR2VuZXZlIHR1bm5lbGluZyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MTo0Mi40Nzg4MTMzMjRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjg2MTEyODY1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBPcGVuIHZTd2l0Y2ggQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyB0aGUgY29yZSBjb25maWd1cmF0aW9uIGl0ZW0gd2UncmUgZGVhbGluZyB3aXRoIGlzIGBPUEVOVlNXSVRDSGAuIFRoZSBmaXJzdCB0aGluZyBJIGFsd2F5cyBkbyBpcyB0cmFjZSBiYWNrIGl0cyBsaW5lYWdlIGFuZCBkZXBlbmRlbmNpZXMuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlcy4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgYE9QRU5WU1dJVENIYCB2YXJpYWJsZSBpcyBnYXRpbmcuIEknbSBnb2luZyB0byBsb29rIGF0IHRoZSBgbmV0L29wZW52c3dpdGNoL0tjb25maWdgIGZpbGUuIFRoYXQncyB3aGVyZSBJIGV4cGVjdCB0byBmaW5kIHRoZSBkZXBlbmRlbmNpZXMsIGFueSBzdXBwb3J0aW5nIG9wdGlvbnMsIGFuZCBwb3NzaWJseSBzb21lIGNvbnRleHQgYXJvdW5kIHRoZSBpbnRlbnQgb2YgYE9QRU5WU1dJVENIYCBpdHNlbGYuIFdoYXQgb3RoZXIga2VybmVsIGZlYXR1cmVzIGlzIGl0IHB1bGxpbmcgaW4/IEFueSBzcGVjaWZpYyBuZXR3b3JraW5nIHN0YWNrcz8gVGhhdCBmaWxlIHNob3VsZCBnaXZlIG1lIHRoZSBncm91bmQgdHJ1dGggdG8gdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIHRoaXMgY29uZmlndXJhdGlvbiBpdGVtLiBMZXQncyBzZWUgd2hhdCdzIGFjdHVhbGx5IHVuZGVyIHRoZSBob29kLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NTk2LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDE6NDUuMzM5OTQ2MzIzWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NjYwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvb3BlbnZzd2l0Y2gvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBPcGVuIHZTd2l0Y2hcXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0Y29uZmlnIE9QRU5WU1dJVENIXFxuICAgNzpcXHRcXHR0cmlzdGF0ZSBcXFwiT3BlbiB2U3dpdGNoXFxcIlxcbiAgIDg6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUXFxuICAgOTpcXHRcXHRkZXBlbmRzIG9uICFORl9DT05OVFJBQ0sgfHwgXFxcXFxcbiAgMTA6XFx0XFx0XFx0ICAgKE5GX0NPTk5UUkFDSyBcXHUwMDI2XFx1MDAyNiAoKCFORl9ERUZSQUdfSVBWNiB8fCBORl9ERUZSQUdfSVBWNikgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbiAgMTE6XFx0XFx0XFx0XFx0XFx0ICAgICAoIU5GX05BVCB8fCBORl9OQVQpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4gIDEyOlxcdFxcdFxcdFxcdFxcdCAgICAgKCFORVRGSUxURVJfQ09OTkNPVU5UIHx8IE5FVEZJTFRFUl9DT05OQ09VTlQpKSlcXG4gIDEzOlxcdFxcdGRlcGVuZHMgb24gUFNBTVBMRSB8fCAhUFNBTVBMRVxcbiAgMTQ6XFx0XFx0c2VsZWN0IE1QTFNcXG4gIDE1OlxcdFxcdHNlbGVjdCBORVRfQ1JDMzJDXFxuICAxNjpcXHRcXHRzZWxlY3QgTkVUX01QTFNfR1NPXFxuICAxNzpcXHRcXHRzZWxlY3QgRFNUX0NBQ0hFXFxuICAxODpcXHRcXHRzZWxlY3QgTkVUX05TSFxcbiAgMTk6XFx0XFx0c2VsZWN0IE5GX0NPTk5UUkFDS19PVlMgaWYgTkZfQ09OTlRSQUNLXFxuICAyMDpcXHRcXHRzZWxlY3QgTkZfTkFUX09WUyBpZiBORl9OQVRcXG4gIDIxOlxcdFxcdGhlbHBcXG4gIDIyOlxcdFxcdCAgT3BlbiB2U3dpdGNoIGlzIGEgbXVsdGlsYXllciBFdGhlcm5ldCBzd2l0Y2ggdGFyZ2V0ZWQgYXQgdmlydHVhbGl6ZWRcXG4gIDIzOlxcdFxcdCAgZW52aXJvbm1lbnRzLiAgSW4gYWRkaXRpb24gdG8gc3VwcG9ydGluZyBhIHZhcmlldHkgb2YgZmVhdHVyZXNcXG4gIDI0OlxcdFxcdCAgZXhwZWN0ZWQgaW4gYSB0cmFkaXRpb25hbCBoYXJkd2FyZSBzd2l0Y2gsIGl0IGVuYWJsZXMgZmluZS1ncmFpbmVkXFxuICAyNTpcXHRcXHQgIHByb2dyYW1tYXRpYyBleHRlbnNpb24gYW5kIGZsb3ctYmFzZWQgY29udHJvbCBvZiB0aGUgbmV0d29yay4gIFRoaXNcXG4gIDI2OlxcdFxcdCAgY29udHJvbCBpcyB1c2VmdWwgaW4gYSB3aWRlIHZhcmlldHkgb2YgYXBwbGljYXRpb25zIGJ1dCBpc1xcbiAgMjc6XFx0XFx0ICBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IGluIG11bHRpLXNlcnZlciB2aXJ0dWFsaXphdGlvbiBkZXBsb3ltZW50cyxcXG4gIDI4OlxcdFxcdCAgd2hpY2ggYXJlIG9mdGVuIGNoYXJhY3Rlcml6ZWQgYnkgaGlnaGx5IGR5bmFtaWMgZW5kcG9pbnRzIGFuZCB0aGVcXG4gIDI5OlxcdFxcdCAgbmVlZCB0byBtYWludGFpbiBsb2dpY2FsIGFic3RyYWN0aW9ucyBmb3IgbXVsdGlwbGUgdGVuYW50cy5cXG4gIDMwOlxcdFxcbiAgMzE6XFx0XFx0ICBUaGUgT3BlbiB2U3dpdGNoIGRhdGFwYXRoIHByb3ZpZGVzIGFuIGluLWtlcm5lbCBmYXN0IHBhdGggZm9yIHBhY2tldFxcbiAgMzI6XFx0XFx0ICBmb3J3YXJkaW5nLiAgSXQgaXMgY29tcGxlbWVudGVkIGJ5IGEgdXNlcnNwYWNlIGRhZW1vbiwgb3ZzLXZzd2l0Y2hkLFxcbiAgMzM6XFx0XFx0ICB3aGljaCBpcyBhYmxlIHRvIGFjY2VwdCBjb25maWd1cmF0aW9uIGZyb20gYSB2YXJpZXR5IG9mIHNvdXJjZXMgYW5kXFxuICAzNDpcXHRcXHQgIHRyYW5zbGF0ZSBpdCBpbnRvIHBhY2tldCBwcm9jZXNzaW5nIHJ1bGVzLlxcbiAgMzU6XFx0XFxuICAzNjpcXHRcXHQgIFNlZSBodHRwOi8vb3BlbnZzd2l0Y2gub3JnIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB1c2Vyc3BhY2VcXG4gIDM3OlxcdFxcdCAgdXRpbGl0aWVzLlxcbiAgMzg6XFx0XFxuICAzOTpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBjb2RlIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmVcXG4gIDQwOlxcdFxcdCAgY2FsbGVkIG9wZW52c3dpdGNoLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MTo0NS4zNDAxMDczNzJaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMwNTYwMDg2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBGdXp6aW5nIFN0cmF0ZWd5IGZvciBUaGlzIE9wZW4gdlN3aXRjaCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoZSBjb25maWcgaXMgZGVmaW5pdGVseSBgT1BFTlZTV0lUQ0hgLiBUaGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBrZXlfZXh0cmFjdGAgd2l0aGluIGBuZXQvb3BlbnZzd2l0Y2gvZmxvdy5jYC4gVGhhdCdzIHdoZXJlIHRoZSBmbG93IGtleSBnZXRzIHB1bGxlZCBmcm9tIGFuIGBza2JgLiBTb3VuZHMgbGlrZSBsb3ctaGFuZ2luZyBmcnVpdCBmb3IgZnV6emluZywgYWJzb2x1dGVseS4gQW55IGNoYW5nZSBpbiB0aGF0IGNvcmUgZnVuY3Rpb24gZGVhbGluZyB3aXRoIHBhY2tldCBwcm9jZXNzaW5nIGlzIGdvaW5nIHRvIGJlIGludGVyZXN0aW5nLlxuXG5MZXQncyBzZWUsIHdoYXQgc3ltYm9scyBzaG91bGQgSSB0YXJnZXQ/IFRvcCBvZiBteSBsaXN0OiBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RgIGFuZCBgb3ZzX2Zsb3dfa2V5X2V4dHJhY3RfdXNlcnNwYWNlYCDigJMgdGhlIGNvcmUgZXh0cmFjdGlvbiBmdW5jdGlvbnMsIG9mIGNvdXJzZS4gVGhlbiwgYG92c19mbG93X2tleV91cGRhdGVgIOKAkyBob3cgZG9lcyB0aGlzIGludGVyYWN0LCBjb3VsZCB0aGVyZSBiZSBzaWRlIGVmZmVjdHM/IEFuZCwgSSdsbCBuZWVkIHRvIGxvb2sgYXQgYG92c192cG9ydF9yZWNlaXZlYCBhbmQgYG92c19wYWNrZXRfY21kX2V4ZWN1dGVgLCBiZWNhdXNlIHRob3NlIGFyZSB0aGUgbGlrZWx5IGVudHJ5IHBvaW50cyBmcm9tIG5ldHdvcmsgcGFja2V0cyBhbmQgdXNlcnNwYWNlLlxuXG5UaGUgcmVhc29uIGl0J3MgZnV6ei13b3J0aHkgaXMgYmVjYXVzZSB0aGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCBib3VuZHMgY2hlY2sgaW4gYGtleV9leHRyYWN0YC4gVGhpcyBpcyBhICpmdW5jdGlvbmFsKiBjaGFuZ2U6IGl0J3MgaW50ZW5kZWQgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIHdoZW4gcGFyc2luZyB0aGUgRXRoZXJuZXQgaGVhZGVyIGluIE9WUy4gQ3J1Y2lhbGx5LCB0aGlzIGFmZmVjdHMgdGhlIGNvcmUgZmxvdyBleHRyYWN0aW9uIGxvZ2ljLCB3aGljaCBjYW4gYmUgcmVhY2hlZCB2aWEgbmV0bGluayDigJMgd2hpY2ggbWVhbnMgdXNlcnNwYWNlIGludGVyYWN0aW9uIHZpYSBgT1ZTX1BBQ0tFVF9DTURfRVhFQ1VURWAgaXMgYSBwYXRoLiBBbHNvLCBub3JtYWwgcGFja2V0IHByb2Nlc3NpbmcgdGhyb3VnaCBgb3ZzX3Zwb3J0X3JlY2VpdmVgLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhpcyBib3VuZHMgY2hlY2sgKmNvcnJlY3RseSogaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyBhbmQgdGhhdCBpdCBkb2Vzbid0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMuIEl0J3MgYWJvdXQgcHJvdGVjdGluZyBhZ2FpbnN0IGNyYXNoZXMgYW5kIGVuc3VyaW5nIHRoZSBzeXN0ZW0ncyBzdGFiaWxpdHkgdW5kZXIgZHVyZXNzLiBUaGlzIGlzIGEgdmVyeSB0YXJnZXRlZCBwYXRjaCwgc28gSSBuZWVkIHRvIGZvY3VzIG9uIHRoaXMgYXJlYS5cblxuXG4iLCJJbnB1dFRva2VucyI6NzQ0NiwiT3V0cHV0VG9rZW5zIjoyMTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0MTo1MS42NDU3MTE1OTVaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjQzOTg3NDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9QRU5WU1dJVENIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwib3ZzX2Zsb3dfa2V5X2V4dHJhY3RcIixcbiAgICBcIm92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZVwiLFxuICAgIFwib3ZzX2Zsb3dfa2V5X3VwZGF0ZVwiLFxuICAgIFwib3ZzX3Zwb3J0X3JlY2VpdmVcIixcbiAgICBcIm92c19wYWNrZXRfY21kX2V4ZWN1dGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIChgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCkgaW4gYGtleV9leHRyYWN0YCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgd2hlbiBwYXJzaW5nIHRoZSBFdGhlcm5ldCBoZWFkZXIgb2YgYW4gc2tiIGluIE9wZW4gdlN3aXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE9WUyBmbG93IGV4dHJhY3Rpb24gbG9naWMsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoZS5nLiwgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgKSBhbmQgZnJvbSBuZXR3b3JrIHBhY2tldCBwcm9jZXNzaW5nIChgb3ZzX3Zwb3J0X3JlY2VpdmVgKS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk9QRU5WU1dJVENIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwib3ZzX2Zsb3dfa2V5X2V4dHJhY3RcIixcbiAgICBcIm92c19mbG93X2tleV9leHRyYWN0X3VzZXJzcGFjZVwiLFxuICAgIFwib3ZzX2Zsb3dfa2V5X3VwZGF0ZVwiLFxuICAgIFwib3ZzX3Zwb3J0X3JlY2VpdmVcIixcbiAgICBcIm92c19wYWNrZXRfY21kX2V4ZWN1dGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIChgY2hlY2tfaGVhZGVyKHNrYiwgRVRIX0hMRU4pYCkgaW4gYGtleV9leHRyYWN0YCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgd2hlbiBwYXJzaW5nIHRoZSBFdGhlcm5ldCBoZWFkZXIgb2YgYW4gc2tiIGluIE9wZW4gdlN3aXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE9WUyBmbG93IGV4dHJhY3Rpb24gbG9naWMsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoZS5nLiwgYE9WU19QQUNLRVRfQ01EX0VYRUNVVEVgKSBhbmQgZnJvbSBuZXR3b3JrIHBhY2tldCBwcm9jZXNzaW5nIChgb3ZzX3Zwb3J0X3JlY2VpdmVgKS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGludHJvZHVjaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowlvtll[1] Phase: Succeeded StartedAt: 2026-08-01 09:42:15 +0000 UTC FinishedAt: 2026-08-01 09:42:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-01 09:42:15 +0000 UTC FinishedAt: 2026-08-01 09:42:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2] Phase: Succeeded StartedAt: 2026-08-01 09:42:15 +0000 UTC FinishedAt: 2026-08-01 13:25:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-01 09:42:15 +0000 UTC FinishedAt: 2026-08-01 13:25:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-01 09:42:15 +0000 UTC FinishedAt: 2026-08-01 09:42:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-01 09:42:15 +0000 UTC FinishedAt: 2026-08-01 09:42:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowlvtll/series-workflowlvtll-convert-artifact-3114932808/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-01 09:42:25 +0000 UTC FinishedAt: 2026-08-01 10:00:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-01 09:42:25 +0000 UTC FinishedAt: 2026-08-01 10:00:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*5f87717b-de45-46e0-9445-e460e3c369af,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-workflowlvtll/series-workflowlvtll-convert-artifact-3114932808/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": "dd78ba9f-4bc7-4904-8d58-e04a9be21489", "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-workflowlvtll/series-workflowlvtll-build-action-243795646/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-01 09:42:25 +0000 UTC FinishedAt: 2026-08-01 10:00:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*5f87717b-de45-46e0-9445-e460e3c369af,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-workflowlvtll/series-workflowlvtll-convert-artifact-3114932808/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": "dd78ba9f-4bc7-4904-8d58-e04a9be21489", "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-workflowlvtll/series-workflowlvtll-build-action-243795646/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-01 10:00:53 +0000 UTC FinishedAt: 2026-08-01 10:00:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-01 10:00:53 +0000 UTC FinishedAt: 2026-08-01 10:00:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-01 10:00:53 +0000 UTC FinishedAt: 2026-08-01 10:01:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-01 10:00:53 +0000 UTC FinishedAt: 2026-08-01 10:00:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowlvtll/series-workflowlvtll-convert-artifact-1315919919/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-01 10:01:03 +0000 UTC FinishedAt: 2026-08-01 10:03:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-01 10:01:03 +0000 UTC FinishedAt: 2026-08-01 10:02:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*dd78ba9f-4bc7-4904-8d58-e04a9be21489,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-workflowlvtll/series-workflowlvtll-build-action-243795646/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-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-01 10:03:08 +0000 UTC FinishedAt: 2026-08-01 10:03:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-01 10:03:08 +0000 UTC FinishedAt: 2026-08-01 10:03:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-01 10:03:08 +0000 UTC FinishedAt: 2026-08-01 10:21:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-01 10:03:08 +0000 UTC FinishedAt: 2026-08-01 10:21:52 +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:*5f87717b-de45-46e0-9445-e460e3c369af,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-workflowlvtll/series-workflowlvtll-convert-artifact-1315919919/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": "989ec483-a471-4735-ad26-3d60ca104576", "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-workflowlvtll/series-workflowlvtll-build-action-1753162691/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-01 10:03:08 +0000 UTC FinishedAt: 2026-08-01 10:21:41 +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:*5f87717b-de45-46e0-9445-e460e3c369af,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-workflowlvtll/series-workflowlvtll-convert-artifact-1315919919/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": "989ec483-a471-4735-ad26-3d60ca104576", "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-workflowlvtll/series-workflowlvtll-build-action-1753162691/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-01 10:21:52 +0000 UTC FinishedAt: 2026-08-01 10:21:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-01 10:21:52 +0000 UTC FinishedAt: 2026-08-01 10:21:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-01 10:21:52 +0000 UTC FinishedAt: 2026-08-01 10:23:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-01 10:21:52 +0000 UTC FinishedAt: 2026-08-01 10:23:44 +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:*989ec483-a471-4735-ad26-3d60ca104576,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-workflowlvtll/series-workflowlvtll-build-action-1753162691/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-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-01 10:23:54 +0000 UTC FinishedAt: 2026-08-01 13:25:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-01 10:23:54 +0000 UTC FinishedAt: 2026-08-01 13:25:57 +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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"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:*dd78ba9f-4bc7-4904-8d58-e04a9be21489,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*989ec483-a471-4735-ad26-3d60ca104576,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-workflowlvtll/series-workflowlvtll-build-action-243795646/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-workflowlvtll/series-workflowlvtll-build-action-1753162691/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-01 10:23:54 +0000 UTC FinishedAt: 2026-08-01 10:24:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-01 10:23:54 +0000 UTC FinishedAt: 2026-08-01 10:24:19 +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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"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-workflowlvtll/series-workflowlvtll-convert-artifact-3897587176/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-01 10:23:54 +0000 UTC FinishedAt: 2026-08-01 10:23:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-01 10:23:54 +0000 UTC FinishedAt: 2026-08-01 10:23:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-01 10:23:54 +0000 UTC FinishedAt: 2026-08-01 10:23:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-01 10:24:28 +0000 UTC FinishedAt: 2026-08-01 13:25:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlvtll[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ovs_flow_key_extract","ovs_flow_key_extract_userspace","ovs_flow_key_update","ovs_vport_receive","ovs_packet_cmd_execute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["OPENVSWITCH"],"series_id":"f5fac290-87aa-4ca8-aa6b-e2a3843b60f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-01 10:24:28 +0000 UTC FinishedAt: 2026-08-01 13:25:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*dd78ba9f-4bc7-4904-8d58-e04a9be21489,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*989ec483-a471-4735-ad26-3d60ca104576,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-workflowlvtll/series-workflowlvtll-build-action-243795646/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-workflowlvtll/series-workflowlvtll-build-action-1753162691/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-workflowlvtll/series-workflowlvtll-convert-artifact-3897587176/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,}