Name: series-workflows7q6d Phase: Succeeded StartedAt: 2026-06-23 09:11:31 +0000 UTC FinishedAt: 2026-06-23 13:22:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[0] Phase: Succeeded StartedAt: 2026-06-23 09:11:31 +0000 UTC FinishedAt: 2026-06-23 09:25:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[0].run-triage Phase: Succeeded StartedAt: 2026-06-23 09:11:31 +0000 UTC FinishedAt: 2026-06-23 09:25:29 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "803d09a554055aba160a62abd1e4b1260b899dc1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "803d09a554055aba160a62abd1e4b1260b899dc1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "8fe2d2b0-6721-4f67-943d-75f3a97e3f1e" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_rx_mgmt_spectrum_mgmt", "ieee80211_rx_bss_info" ], "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+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfcnhfYnNzX2luZm8mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBwcm9jZXNzaW5nIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudHMgaW4gbWFjODAyMTEgSUJTUyBtb2RlLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsaXplZCBoYXJkd2FyZSAobWFjODAyMTFfaHdzaW0pLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNTc0YjI2MGEzOGQzMzAxMjQ3NjNjODdiMGI1YTI5YTc0YmIyNmZjOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDA5OjIyOjUyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9pYnNzLmMgYi9uZXQvbWFjODAyMTEvaWJzcy5jXG5pbmRleCA5NzI5MmZmNTE0NzVmZC4uNjQ0MGZkOTE1YWE1NmEgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvaWJzcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvaWJzcy5jXG5AQCAtODk1LDYgJiM0Mzs4OTUsMTAgQEAgaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiBcdGlmIChtZ210LVx1MDAzZXUuYWN0aW9uLmFjdGlvbl9jb2RlICE9IFdMQU5fQUNUSU9OX1NQQ1RfQ0hMX1NXSVRDSClcbiBcdFx0cmV0dXJuO1xuIFxuJiM0MztcdC8qIG9ubHkgYWN0IG9uIGNoYW5uZWwgc3dpdGNoIGZyYW1lcyBjb21pbmcgZnJvbSBvdXIgb3duIElCU1MgKi9cbiYjNDM7XHRpZiAoIWV0aGVyX2FkZHJfZXF1YWwobWdtdC1cdTAwM2Vic3NpZCwgc2RhdGEtXHUwMDNldS5pYnNzLmJzc2lkKSlcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4gXHRpZiAoIXNkYXRhLVx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlKVxuIFx0XHRpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc2RhdGEsIGVsZW1zLCBmYWxzZSk7XG4gfVxuQEAgLTExMTEsMTQgJiM0MzsxMTE1LDIxIEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9yeF9ic3NfaW5mbyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiBcdFx0XHRcdHNkYXRhLVx1MDAzZXUuaWJzcy5zc2lkX2xlbikpXG4gXHRcdGdvdG8gcHV0X2JzcztcbiBcbi1cdC8qIHByb2Nlc3MgY2hhbm5lbCBzd2l0Y2ggKi9cbi1cdGlmIChzZGF0YS1cdTAwM2V2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSB8fFxuLVx0ICAgIGllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaChzZGF0YSwgZWxlbXMsIHRydWUpKVxuJiM0MztcdC8qIGRvbiYjMzk7dCBwcm9jZXNzIGJlYWNvbnMgd2hpbGUgYSBjaGFubmVsIHN3aXRjaCBpcyBpbiBwcm9ncmVzcyAqL1xuJiM0MztcdGlmIChzZGF0YS1cdTAwM2V2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSlcbiBcdFx0Z290byBwdXRfYnNzO1xuIFxuIFx0Lyogc2FtZSBCU1NJRCAqL1xuLVx0aWYgKGV0aGVyX2FkZHJfZXF1YWwoY2Jzcy1cdTAwM2Vic3NpZCwgc2RhdGEtXHUwMDNldS5pYnNzLmJzc2lkKSlcbiYjNDM7XHRpZiAoZXRoZXJfYWRkcl9lcXVhbChjYnNzLVx1MDAzZWJzc2lkLCBzZGF0YS1cdTAwM2V1Lmlic3MuYnNzaWQpKSB7XG4mIzQzO1x0XHQvKlxuJiM0MztcdFx0ICogT25seSBhY3Qgb24gYSBjaGFubmVsIHN3aXRjaCBhbm5vdW5jZW1lbnQgdGhhdCBjb21lcyBmcm9tXG4mIzQzO1x0XHQgKiBvdXIgb3duIElCU1MgKGkuZS4gbWF0Y2hpbmcgQlNTSUQpLiBBY3Rpbmcgb24gYSBDU0EgZnJvbSBhXG4mIzQzO1x0XHQgKiBmb3JlaWduIEJTU0lEIHRoYXQgbWVyZWx5IHNoYXJlcyBvdXIgU1NJRCB3b3VsZCBsZXQgYW55XG4mIzQzO1x0XHQgKiBzdGF0aW9uIGZvcmNlIHVzIG9mZi1jaGFubmVsIG9yIHRlYXIgdGhlIGNlbGwgZG93bi5cbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0aWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgdHJ1ZSk7XG4gXHRcdGdvdG8gcHV0X2JzcztcbiYjNDM7XHR9XG4gXG4gXHQvKiB3ZSB1c2UgYSBmaXhlZCBCU1NJRCAqL1xuIFx0aWYgKHNkYXRhLVx1MDAzZXUuaWJzcy5maXhlZF9ic3NpZClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwOToyMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3J4X2Jzc19pbmZvJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgcHJvY2Vzc2luZyBjaGFubmVsIHN3aXRjaCBhbm5vdW5jZW1lbnRzIGluIG1hYzgwMjExIElCU1MgbW9kZS4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIHJlYWNoYWJsZSB2aWEgdmlydHVhbGl6ZWQgaGFyZHdhcmUgKG1hYzgwMjExX2h3c2ltKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNTc0YjI2MGEzOGQzMzAxMjQ3NjNjODdiMGI1YTI5YTc0YmIyNmZjOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgSnVuIDIzIDA5OjIyOjUyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2lic3MuYyBiL25ldC9tYWM4MDIxMS9pYnNzLmMKaW5kZXggOTcyOTJmZjUxNDc1ZmQuLjY0NDBmZDkxNWFhNTZhIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvaWJzcy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9pYnNzLmMKQEAgLTg5NSw2ICYjNDM7ODk1LDEwIEBAIGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsCiAJaWYgKG1nbXQtJmd0O3UuYWN0aW9uLmFjdGlvbl9jb2RlICE9IFdMQU5fQUNUSU9OX1NQQ1RfQ0hMX1NXSVRDSCkKIAkJcmV0dXJuOwogCiYjNDM7CS8qIG9ubHkgYWN0IG9uIGNoYW5uZWwgc3dpdGNoIGZyYW1lcyBjb21pbmcgZnJvbSBvdXIgb3duIElCU1MgKi8KJiM0MzsJaWYgKCFldGhlcl9hZGRyX2VxdWFsKG1nbXQtJmd0O2Jzc2lkLCBzZGF0YS0mZ3Q7dS5pYnNzLmJzc2lkKSkKJiM0MzsJCXJldHVybjsKJiM0MzsKIAlpZiAoIXNkYXRhLSZndDt2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSkKIAkJaWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgZmFsc2UpOwogfQpAQCAtMTExMSwxNCAmIzQzOzExMTUsMjEgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLAogCQkJCXNkYXRhLSZndDt1Lmlic3Muc3NpZF9sZW4pKQogCQlnb3RvIHB1dF9ic3M7CiAKLQkvKiBwcm9jZXNzIGNoYW5uZWwgc3dpdGNoICovCi0JaWYgKHNkYXRhLSZndDt2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSB8fAotCSAgICBpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc2RhdGEsIGVsZW1zLCB0cnVlKSkKJiM0MzsJLyogZG9uJiMzOTt0IHByb2Nlc3MgYmVhY29ucyB3aGlsZSBhIGNoYW5uZWwgc3dpdGNoIGlzIGluIHByb2dyZXNzICovCiYjNDM7CWlmIChzZGF0YS0mZ3Q7dmlmLmJzc19jb25mLmNzYV9hY3RpdmUpCiAJCWdvdG8gcHV0X2JzczsKIAogCS8qIHNhbWUgQlNTSUQgKi8KLQlpZiAoZXRoZXJfYWRkcl9lcXVhbChjYnNzLSZndDtic3NpZCwgc2RhdGEtJmd0O3UuaWJzcy5ic3NpZCkpCiYjNDM7CWlmIChldGhlcl9hZGRyX2VxdWFsKGNic3MtJmd0O2Jzc2lkLCBzZGF0YS0mZ3Q7dS5pYnNzLmJzc2lkKSkgewomIzQzOwkJLyoKJiM0MzsJCSAqIE9ubHkgYWN0IG9uIGEgY2hhbm5lbCBzd2l0Y2ggYW5ub3VuY2VtZW50IHRoYXQgY29tZXMgZnJvbQomIzQzOwkJICogb3VyIG93biBJQlNTIChpLmUuIG1hdGNoaW5nIEJTU0lEKS4gQWN0aW5nIG9uIGEgQ1NBIGZyb20gYQomIzQzOwkJICogZm9yZWlnbiBCU1NJRCB0aGF0IG1lcmVseSBzaGFyZXMgb3VyIFNTSUQgd291bGQgbGV0IGFueQomIzQzOwkJICogc3RhdGlvbiBmb3JjZSB1cyBvZmYtY2hhbm5lbCBvciB0ZWFyIHRoZSBjZWxsIGRvd24uCiYjNDM7CQkgKi8KJiM0MzsJCWllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaChzZGF0YSwgZWxlbXMsIHRydWUpOwogCQlnb3RvIHB1dF9ic3M7CiYjNDM7CX0KIAogCS8qIHdlIHVzZSBhIGZpeGVkIEJTU0lEICovCiAJaWYgKHNkYXRhLSZndDt1Lmlic3MuZml4ZWRfYnNzaWQpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMDkKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBtYWM4MDIxMSBJQlNTIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L21hYzgwMjExL2lic3MuY2AuIEl0JiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGZ1bmN0aW9uYWxseSBzcGVha2luZy4gSXQgc2VlbXMgd2UmIzM5O3JlIGFkZGluZyBzb21lIGNydWNpYWwgY2hlY2tzIHdpdGhpbiB0aGUgSUJTUyBjb2RlLiBUaGUgZ29hbCBpcyB0byBtYWtlIHN1cmUgd2UmIzM5O3JlIG9ubHkgcmVzcG9uZGluZyB0byBjaGFubmVsIHN3aXRjaCBmcmFtZXMg4oCTIHNwZWNpZmljYWxseSBzcGVjdHJ1bSBtYW5hZ2VtZW50IGFjdGlvbiBmcmFtZXMgYW5kIGFubm91bmNlbWVudHMg4oCTIHRoYXQgb3JpZ2luYXRlIGZyb20gKm91ciogSUJTUy4gVGhlIHBhdGNoIGRvZXMgdGhpcyBieSBtYXRjaGluZyB0aGUgQlNTSUQsIGJvdGggaW4gYGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRgIGFuZCBpbiBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYC4KCkl0IGFwcGVhcnMgdGhhdCBhIGtleSBwYXJ0IG9mIHRoZSB1cGRhdGUgaXMgdG8gYXZvaWQgcHJvY2Vzc2luZyBiZWFjb25zIGR1cmluZyBhbiBhY3RpdmUgY2hhbm5lbCBzd2l0Y2guIFRoaXMgbWFrZXMgc2Vuc2U7IHdlIHdvdWxkbiYjMzk7dCB3YW50IHRob3NlIGludGVycnVwdGluZyB0aGUgcHJvY2Vzcy4gVGhlIGNvZGUmIzM5O3MgY2xlYXJseSBkZXNpZ25lZCB0byBoYW5kbGUgODAyLjExIG1hbmFnZW1lbnQgZnJhbWVzIHdpdGhpbiBhbiBJQlNTIGNvbnRleHQsIHdoaWNoIG1ha2VzIGl0IGltcG9ydGFudCB0byByZXZpZXcgdGhlIGNoYW5nZS4KCkdpdmVuIHRoYXQgdGhpcyBhZmZlY3RzIElCU1MgbWFuYWdlbWVudCwgYW5kIGlzIGV4cG9zZWQgdGhyb3VnaCBgbWFjODAyMTFfaHdzaW1gLCBJIG5lZWQgdG8gY2hlY2sgaG93IGl0IHdpbGwgYmUgZW5hYmxlZCBhbmQgaWYgYW55dGhpbmcgaXMgYWZmZWN0ZWQuCgpOb3csIEkgbmVlZCB0byBkaWcgaW50byB0aGUgY29uZmlndXJhdGlvbi4gTGV0JiMzOTtzIHN0YXJ0IGJ5IGZpbmRpbmcgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9ucy4gSSBrbm93IGBDT05GSUdfTUFDODAyMTFgIGlzIHRoZSBiaWcgb25lLCBidXQgSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGBuZXQvbWFjODAyMTEvS2NvbmZpZ2Agb3Igc2ltaWxhciBmaWxlcyB0byBzZWUgdGhlIGdyYW51bGFyIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhpcyBzcGVjaWZpYyBJQlNTIGZ1bmN0aW9uYWxpdHkuIEkgaGF2ZSBhIGZlZWxpbmcgdGhlcmUgbWlnaHQgYmUgYSBmZXcgb3RoZXIgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSByZXZpZXdlZCB0byBiZSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxubmV0L21hYzgwMjExL0tjb25maWctMjAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cdGJvb2xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDsgaWYgRVhQRVJUXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNDAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctNDItXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cdHN0cmluZ1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXCYjMzQ7U29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNTktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7RW5hYmxlIExFRCB0cmlnZ2Vyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVx0Ym9vbCBcJiMzNDtFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVx0Ym9vbCBcJiMzNDtUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXHRib29sIFwmIzM0O1NlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXHRib29sIFwmIzM0O0RvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXHRib29sIFwmIzM0O1ZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXHRib29sIFwmIzM0O1ZlcmJvc2UgSFQgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBPQ0IgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXHRib29sIFwmIzM0O1ZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1ZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjgyLVx0Ym9vbCBcJiMzNDtWZXJib3NlIFRETFMgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL0tjb25maWctMjk0LVx0Ym9vbCBcJiMzNDtFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXHRpbnQgXCYjMzQ7U3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVwmIzM0OyBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDk6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA5MwoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDE0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIG1hYzgwMjExIElCU1MgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIHBhdGNoLiBJdCBsb29rcyBsaWtlIHRoZSBjaGFuZ2VzIGFyZSBmb2N1c2VkIHdpdGhpbiBgbmV0L21hYzgwMjExL2lic3MuY2AuIE15IGZpcnN0IG1vdmUgaXMgYWx3YXlzIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgdGhhdCBhcmUgYmVpbmcgdG91Y2hlZC4gSSBzZWUgYGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRgIGFuZCBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYCBsaXN0ZWQuIFRoYXQgZ2l2ZXMgbWUgYSBnb29kIHN0YXJ0aW5nIHBvaW50IOKAkyBzb21ldGhpbmcgcmVsYXRlZCB0byBtYW5hZ2VtZW50IGZyYW1lIHJlY2VwdGlvbiBhbmQgQlNTIGluZm9ybWF0aW9uLgoKTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIHBhdGNoIGhhcyBhbnkgc3BlY2lhbCBjb25zaWRlcmF0aW9ucyBmb3IgSUJTUyBzcGVjaWZpY2FsbHkuIExldCBtZSBxdWlja2x5IGNoZWNrIHRoZSBjb25maWdzLiBBaCwgSSBzZWUgYE1BQzgwMjExX0lCU1NfREVCVUdgIC0gYnV0IEkgcmVtZW1iZXIgdGhhdCYjMzk7cyBtYWlubHkgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4gU28sIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gaW4gcGxheSBoZXJlIGlzIHRoZSBnZW5lcmFsIGBNQUM4MDIxMWAgb3B0aW9uLCBub3RoaW5nIElCU1Mtc3BlY2lmaWMgcmVhbGx5LgoKT2theSwgbGFzdCBzdGVwIGZvciBub3c6IEkmIzM5O20gZ29pbmcgdG8gc2NhbiB0aGUgY29kZSB3aXRoaW4gYG5ldC9tYWM4MDIxMS9pYnNzLmNgIGZvciBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gKGAjaWZkZWZgKSB0aGF0IG1pZ2h0IGJlIHN1cnJvdW5kaW5nIHRoZXNlIG1vZGlmaWVkIGZ1bmN0aW9ucy4gVGhhdCB3aWxsIHRlbGwgbWUgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBjb21waWxhdGlvbiBwYXRocyB0aGlzIHBhdGNoIGlzIHRhcmdldGluZywgb3IgaWYgaXQgaXMgYWZmZWN0aW5nIHRoZSBkZWZhdWx0IGJlaGF2aW9yLiBJJiMzOTttIGxvb2tpbmcgZm9yIGFueSBjbHVlcyB0aGF0IGNvdWxkIHRlbGwgbWUgd2hhdCB0aGlzIHBhdGNoIHJlYWxseSBkb2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2llZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvaWJzcy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9pYnNzLmM9ODg1PXN0YXRpYyB2b2lkXG5uZXQvbWFjODAyMTEvaWJzcy5jOjg4NjppZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL2lic3MuYy04ODctXHRcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQsIHNpemVfdCBsZW4sXG4tLVxubmV0L21hYzgwMjExL2lic3MuYz0xNTg1PXZvaWQgaWVlZTgwMjExX2lic3NfcnhfcXVldWVkX21nbXQoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL2lic3MuYy0xNjMyLVx0XHRcdGlmIChlbGVtcyBcdTAwMjZcdTAwMjYgIWVsZW1zLVx1MDAzZXBhcnNlX2Vycm9yKVxubmV0L21hYzgwMjExL2lic3MuYzoxNjMzOlx0XHRcdFx0aWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzZGF0YSwgbWdtdCxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTYzNC1cdFx0XHRcdFx0XHRcdFx0c2tiLVx1MDAzZWxlbixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwOToyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODY3CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhlIG1hdHRlcjoKCioqQW5hbHl6aW5nIGBpZWVlODAyMTFfcnhfYnNzX2luZm9gIGluIGBuZXQvbWFjODAyMTEvaWJzcy5jYCoqCgpBbHJpZ2h0LCBzbyB0aGUgZmlyc3QgdGhpbmcgSSB3YW50IHRvIGRvIGlzIG5hdmlnYXRlIHRvIHRoZSBgbmV0L21hYzgwMjExL2lic3MuY2AgZmlsZS4gVGhpcyBsb29rcyBsaWtlIHRoZSBwbGFjZSB0byBiZSwgZ2l2ZW4gdGhlIGZ1bmN0aW9uIG5hbWUuIEkmIzM5O20gZm9jdXNpbmcgc3BlY2lmaWNhbGx5IG9uIGBpZWVlODAyMTFfcnhfYnNzX2luZm9gLiBXaHk/IFdlbGwsIHRoZSBCU1MgaW5mb3JtYXRpb24gaXMgY3JpdGljYWwgaW4gYW4gSUJTUyBlbnZpcm9ubWVudCBiZWNhdXNlIGl0JiMzOTtzIHVzZWQgZm9yIGFzc29jaWF0aW9uLCByZWFzc29jaWF0aW9uLCBhbmQgZ2VuZXJhbGx5IG1haW50YWluaW5nIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIG5vZGVzLiBGcm9tIG15IGV4cGVyaWVuY2Ugd2l0aCB0aGUgODAyLjExIHN0YW5kYXJkcywgSSB3b3VsZCBoYXphcmQgYSBndWVzcyB0aGlzIGlzIGEgaGFuZGxlciBmb3IgQlNTIGluZm9ybWF0aW9uIGluIHRoZSByZWNlaXZlIHBhdGguIEkgZXhwZWN0IHRoZSBjb2RlIGhlcmUgdG8gYmUgY2hlY2tpbmcgZmllbGRzIGluIGJlYWNvbnMgYW5kIHByb2JlIHJlc3BvbnNlcywgdmVyaWZ5aW5nIGNhcGFiaWxpdGllcywgYW5kIHBvdGVudGlhbGx5IG1hbmFnaW5nIGFzc29jaWF0aW9uIHN0YXRlLiBJJiMzOTttIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiBob3cgaXQmIzM5O3MgaGFuZGxpbmcgdGhlIGRldGFpbHMgb2YgSUJTUyBzcGVjaWZpYyBlbGVtZW50cyBvciBmbGFncywgZ2l2ZW4gdGhlIGxvY2F0aW9uIG9mIHRoZSBzb3VyY2UgZmlsZS4gSSBuZWVkIHRvIGJlIHN1cmUgdGhpcyBmdW5jdGlvbiBpcyBwcm9wZXJseSBoYW5kbGluZyB2YXJpb3VzIGNvcm5lciBjYXNlcywgcGVyaGFwcyBldmVuIHNvbWUgb2JzY3VyZSBvciBpbmZyZXF1ZW50bHkgdXNlZCBCU1MgZWxlbWVudHMuIFRoYXQmIzM5O3Mgd2hlcmUgSSB3aWxsIGJlZ2luIG15IGFuYWx5c2lzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2llZWU4MDIxMV9yeF9ic3NfaW5mbyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9pYnNzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2lic3MuYz05NTE9c3RhdGljIHZvaWQgaWVlZTgwMjExX3VwZGF0ZV9zdGFfaW5mbyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jLTEwNzItXG5uZXQvbWFjODAyMTEvaWJzcy5jOjEwNzM6c3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL2lic3MuYy0xMDc0LVx0XHRcdFx0ICBzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQsIHNpemVfdCBsZW4sXG4tLVxubmV0L21hYzgwMjExL2lic3MuYz0xNTU2PXZvaWQgaWVlZTgwMjExX3J4X21nbXRfcHJvYmVfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTU3OS1cdGlmIChlbGVtcykge1xubmV0L21hYzgwMjExL2lic3MuYzoxNTgwOlx0XHRpZWVlODAyMTFfcnhfYnNzX2luZm8oc2RhdGEsIG1nbXQsIGxlbiwgcnhfc3RhdHVzLCBlbGVtcyk7XG5uZXQvbWFjODAyMTEvaWJzcy5jLTE1ODEtXHRcdGtmcmVlKGVsZW1zKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwOToyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NTYzCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTY3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSUJTUyBNYW5hZ2VtZW50IEZyYW1lIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyBtb2RpZnlpbmcgdGhlIGBpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210YCBhbmQgYGllZWU4MDIxMV9yeF9ic3NfaW5mb2AgZnVuY3Rpb25zLiBIbW0sIHRob3NlIGFyZSBkZWZpbml0ZWx5IGZ1bmN0aW9ucyBjYWxsZWQgd2hlbiB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIG1hbmFnZW1lbnQgZnJhbWVzIGluIGFuIElCU1MgKGFkLWhvYykgbmV0d29yay4gVGhhdCBtYWtlcyBzZW5zZSwgZ2l2ZW4gdGhlIGNvbnRleHQuIEFuZCwgYmFzZWQgb24gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgc3lzdGVtLCB0aGlzIGlzIGFic29sdXRlbHkgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIHRocm91Z2ggYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggaXMgdGhlIGNvcnJlY3QgYXBwcm9hY2ggdG8gdGVzdGluZyB0aGVzZSBzb3J0cyBvZiBjaGFuZ2VzLiBUaGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBpcyBgTUFDODAyMTFgLCBJIGNhbiB2ZXJpZnkgdGhhdCBlYXNpbHkuCgpOb3csIEkgbmVlZCB0byBjaGVjayBmb3Igb3RoZXIgY29uZmlnIGRlcGVuZGVuY2llcy4gVGhlIHBhdGNoIHNwZWNpZmljYWxseSB1c2VzIGBzZGF0YS0mZ3Q7dmlmLmJzc19jb25mLmNzYV9hY3RpdmVgIGFuZCBgaWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoYC4gTGV0JiMzOTtzIGRpZyBpbnRvIGBpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2hgIGFuZCBzZWUgaWYgKml0KiBoYXMgYW55IGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLiBUaGF0JiMzOTtsbCBiZSBjcml0aWNhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBmdWxsIHNjb3BlIG9mIHRoaXMgY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwOToyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvaWJzcy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9pYnNzLmM9NzQzPXN0YXRpYyBib29sXG5uZXQvbWFjODAyMTEvaWJzcy5jOjc0NDppZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvaWJzcy5jLTc0NS1cdFx0XHRcdCAgc3RydWN0IGllZWU4MDJfMTFfZWxlbXMgKmVsZW1zLFxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmM9ODg2PWllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL2lic3MuYy05MDItXHRpZiAoIXNkYXRhLVx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlKVxubmV0L21hYzgwMjExL2lic3MuYzo5MDM6XHRcdGllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaChzZGF0YSwgZWxlbXMsIGZhbHNlKTtcbm5ldC9tYWM4MDIxMS9pYnNzLmMtOTA0LX1cbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jPTEwNzM9c3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTEyOS1cdFx0ICovXG5uZXQvbWFjODAyMTEvaWJzcy5jOjExMzA6XHRcdGllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaChzZGF0YSwgZWxlbXMsIHRydWUpO1xubmV0L21hYzgwMjExL2lic3MuYy0xMTMxLVx0XHRnb3RvIHB1dF9ic3M7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc0NjQKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTt2ZSBnb3QgaGVyZS4KCioqQW5hbHl6aW5nIElCU1MgQ29uZmlndXJhdGlvbiB3aXRoaW4gdGhlIG1hYzgwMjExIEZyYW1ld29yayoqCgpSaWdodCwgc28gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBJQlNTIGFuZCwgYXMgZmFyIGFzIEkgY2FuIHRlbGwsIHRoZSBzdGFydGluZyBwb2ludCBpcyBqdXN0IHRoZSBnZW5lcmFsIGBNQUM4MDIxMWAgY29uZmlnLiBObyBkaXJlY3QsIGV4cGxpY2l0IElCU1Mtc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgYXJlIGltbWVkaWF0ZWx5IGp1bXBpbmcgb3V0IGF0IG1lLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7T2theSwgbGV0JiMzOTtzIGNvbmZpcm0gdGhhdC4mIzM0OyBJJiMzOTtsbCBxdWlja2x5IGNoZWNrIGZvciBhIGRlZGljYXRlZCBgQ09ORklHX01BQzgwMjExX0lCU1NgIG9wdGlvbi4gTm9wZSwgdGhhdCYjMzk7cyBub3QgcHJlc2VudC4gSW50ZXJlc3RpbmcuIEl0IHN1Z2dlc3RzIElCU1Mgc3VwcG9ydCBpcyBsaWtlbHkgaW50ZXJ3b3ZlbiB3aXRoaW4gdGhlIGNvcmUgYG1hYzgwMjExYCBjb25maWd1cmF0aW9uLCB3aGljaCBpc24mIzM5O3QgdW51c3VhbC4KCk5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBJQlNTIGNvZGUgaXMgYnJvdWdodCBpbnRvIHRoZSBidWlsZC4gVGhhdCBtZWFucyBkZWx2aW5nIGludG8gdGhlIGJ1aWxkIHN5c3RlbSBpdHNlbGYuIExldCYjMzk7cyBsb29rIGF0IHRoZSBgbmV0L21hYzgwMjExL01ha2VmaWxlYC4gSSYjMzk7bGwgd2FudCB0byBzZWUgaWYgdGhlIGNvbXBpbGF0aW9uIG9mIHRoZSBgaWJzcy5jYCBmaWxlIOKAkyBvciByZWxhdGVkIElCU1MgbW9kdWxlcyDigJMgaXMgY29uZGl0aW9uYWwgaW4gYW55IHdheS4gQXJlIHRoZXJlIGFueSBzcGVjaWZpYyBmbGFncyBvciBkZXBlbmRlbmNpZXMgdGhhdCBjb250cm9sIGl0cyBpbmNsdXNpb24/IFRoYXQmIzM5O3Mgd2hlcmUgdGhlIHJlYWwgYW5zd2VyIGxpZXMuIEkgbmVlZCB0byB0cmFjZSB0aGUgYnVpbGQgcnVsZXMgdG8gc2VlIGlmIHdlIGhhdmUgSUJTUyBzdXBwb3J0IGNvbXBpbGVkIGludG8gdGhlIGtlcm5lbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDk6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWJzcy5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9NYWtlZmlsZT01PW1hYzgwMjExLXkgOj0gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMTYtXHRzMWcubyBcXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjE3Olx0aWJzcy5vIFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMTgtXHRpZmFjZS5vIFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc5NjMKCQkJCQkJCW91dHB1dDogMTE1CgkJCQkJCQl0aG91Z2h0czogMzg2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIE1BQzgwMjExIElCU1MgRnJhbWUgSGFuZGxpbmcqKgoKT2theSwgc28gdGhpcyBpcyBwYXJ0IG9mIGBtYWM4MDIxMS15YCwgbWVhbmluZyBpdCYjMzk7cyB1bmNvbmRpdGlvbmFsbHkgY29tcGlsZWQsIHdoaWNoIGlzIGdvb2QuIFRoYXQgc2ltcGxpZmllcyB0aGUgY29uZmlnIHJlcXVpcmVtZW50czsgaXQgbG9va3MgbGlrZSBgTUFDODAyMTFgIGlzIHRoZSBrZXkuIE5vIG5lZWQgdG8gd29ycnkgYWJvdXQgYWRkaXRpb25hbCBjb25maWcgb3B0aW9ucywgaXQgc2VlbXMuCgpUaGUgcmVhbCBmb2N1cyBoZXJlIGlzIG9uIHRoZSBmdW5jdGlvbnMgYGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRgIGFuZCBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYC4gSW5pdGlhbGx5LCBJIGNvbnNpZGVyZWQgdGhhdCBwZXJoYXBzIHRoZXNlIGZ1bmN0aW9ucyB3ZXJlIGNvbnNpZGVyZWQgJiMzNDtob3QtcGF0aCYjMzQ7IGZ1bmN0aW9ucy4gSG93ZXZlciwgdGhleSYjMzk7cmUgbm90IHRoZSBzdXBlciBjcml0aWNhbCBkYXRhLWZyYW1lIHByb2Nlc3NpbmcgZnVuY3Rpb25zIGxpa2UgYG1hYzgwMjExX3J4YCBvciBgbWFjODAyMTFfdHhgLiBUaGV5JiMzOTtyZSBzcGVjaWZpY2FsbHkgdGllZCB0byBtYW5hZ2VtZW50IGZyYW1lcywgc3BlY2lmaWNhbGx5IGluIHRoZSBJQlNTIGNvbnRleHQuCgpJIG5lZWQgdG8gY29uZmlybSBpZiBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYCBpcyBhY3R1YWxseSBpbnZva2VkIGZyZXF1ZW50bHkuIEl0JiMzOTtzIGNhbGxlZCBmb3IgZXZlcnkgYmVhY29uIHJlY2VpdmVkIGluIElCU1MgbW9kZSwgd2hpY2ggaXMgcm91Z2hseSBldmVyeSB+MTAwbXMuIFRoYXQmIzM5O3MgZnJlcXVlbnQgZW5vdWdoIHRvIHdhcnJhbnQgYXR0ZW50aW9uLCBidXQgbm90IGFzIGZyZXF1ZW50IGFzIGRhdGEgZnJhbWVzLiBUaGF0IHNhaWQsIGl0JiMzOTtzIHN0aWxsIGEgZ29vZCBjYW5kaWRhdGUuIGBpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210YCwgb24gdGhlIG90aGVyIGhhbmQsIGRlYWxzIHdpdGggc3BlY3RydW0gbWFuYWdlbWVudCBhY3Rpb24gZnJhbWVzLiBUaGF0JiMzOTtzIGRlZmluaXRlbHkgbm90IGhvdC1wYXRoLgoKTGV0JiMzOTtzIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBkZXBlbmRlbmNpZXMuIERvZXMgdGhpcyByZWx5IG9uIGFueSBvdGhlciBjb25maWdzIGxpa2UgYENGRzgwMjExYD8gQWgsIGBNQUM4MDIxMWAgZGVwZW5kcyBvbiBgQ0ZHODAyMTFgLCBzbyBgTUFDODAyMTFgIGlzIHN1ZmZpY2llbnQuCgpJbiBzdW1tYXJ5LCBoZXJlJiMzOTtzIHdoYXQgSSYjMzk7dmUgZ290OgoKKiAgICoqV29ydGhGdXp6aW5nOioqIFRydWUgLSBUaGlzIGlzIGRlZmluaXRlbHkgYSBzcG90IHdvcnRoIGZ1enppbmcgZ2l2ZW4gaXQgaXMgY3JpdGljYWwgY29yZSBrZXJuZWwgbG9naWMuCiogICAqKkZvY3VzU3ltYm9sczoqKiBgaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdGAsIGBpZWVlODAyMTFfcnhfYnNzX2luZm9gIC0gVGhlc2UgYXJlIHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgdG8gdGFyZ2V0LgoqICAgKipFbmFibGVDb25maWdzOioqIGBNQUM4MDIxMWAgLSBUaGlzIGNvbmZpZyBlbnN1cmVzIHRoZSBuZWNlc3NhcnkgY29kZSBpcyBpbmNsdWRlZC4KKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCBpcyBtb2RpZnlpbmcgSUJTUyBtb2RlIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudCBwcm9jZXNzaW5nLiBJdCYjMzk7cyBjb3JlIGtlcm5lbCBsb2dpYywgYW5kIGZ1enppbmcgaXQgaXMgbWFkZSBlYXNpZXIgYmVjYXVzZSBpdCYjMzk7cyByZWFjaGFibGUgdmlhIHZpcnR1YWxpemVkIGhhcmR3YXJlIChtYWM4MDIxMV9od3NpbSkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3J4X2Jzc19pbmZvJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgcHJvY2Vzc2luZyBjaGFubmVsIHN3aXRjaCBhbm5vdW5jZW1lbnRzIGluIG1hYzgwMjExIElCU1MgbW9kZS4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIHJlYWNoYWJsZSB2aWEgdmlydHVhbGl6ZWQgaGFyZHdhcmUgKG1hYzgwMjExX2h3c2ltKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9yeF9ic3NfaW5mbyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIHByb2Nlc3NpbmcgY2hhbm5lbCBzd2l0Y2ggYW5ub3VuY2VtZW50cyBpbiBtYWM4MDIxMSBJQlNTIG1vZGUuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBsb2dpYyByZWFjaGFibGUgdmlhIHZpcnR1YWxpemVkIGhhcmR3YXJlIChtYWM4MDIxMV9od3NpbSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMjo1NC43NzQzMzQ0MzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTEyNTQ0NjE2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRcIixcbiAgICBcImllZWU4MDIxMV9yeF9ic3NfaW5mb1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgcHJvY2Vzc2luZyBjaGFubmVsIHN3aXRjaCBhbm5vdW5jZW1lbnRzIGluIG1hYzgwMjExIElCU1MgbW9kZS4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIHJlYWNoYWJsZSB2aWEgdmlydHVhbGl6ZWQgaGFyZHdhcmUgKG1hYzgwMjExX2h3c2ltKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDk6MjI6NTQuNzc0MzQxNjM2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MTg3ODI5OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1NzRiMjYwYTM4ZDMzMDEyNDc2M2M4N2IwYjVhMjlhNzRiYjI2ZmM4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVuIDIzIDA5OjIyOjUyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9pYnNzLmMgYi9uZXQvbWFjODAyMTEvaWJzcy5jXFxuaW5kZXggOTcyOTJmZjUxNDc1ZmQuLjY0NDBmZDkxNWFhNTZhIDEwMDY0NFxcbi0tLSBhL25ldC9tYWM4MDIxMS9pYnNzLmNcXG4rKysgYi9uZXQvbWFjODAyMTEvaWJzcy5jXFxuQEAgLTg5NSw2ICs4OTUsMTAgQEAgaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4gXFx0aWYgKG1nbXQtXFx1MDAzZXUuYWN0aW9uLmFjdGlvbl9jb2RlICE9IFdMQU5fQUNUSU9OX1NQQ1RfQ0hMX1NXSVRDSClcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXG4rXFx0Lyogb25seSBhY3Qgb24gY2hhbm5lbCBzd2l0Y2ggZnJhbWVzIGNvbWluZyBmcm9tIG91ciBvd24gSUJTUyAqL1xcbitcXHRpZiAoIWV0aGVyX2FkZHJfZXF1YWwobWdtdC1cXHUwMDNlYnNzaWQsIHNkYXRhLVxcdTAwM2V1Lmlic3MuYnNzaWQpKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHRpZiAoIXNkYXRhLVxcdTAwM2V2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSlcXG4gXFx0XFx0aWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgZmFsc2UpO1xcbiB9XFxuQEAgLTExMTEsMTQgKzExMTUsMjEgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbiBcXHRcXHRcXHRcXHRzZGF0YS1cXHUwMDNldS5pYnNzLnNzaWRfbGVuKSlcXG4gXFx0XFx0Z290byBwdXRfYnNzO1xcbiBcXG4tXFx0LyogcHJvY2VzcyBjaGFubmVsIHN3aXRjaCAqL1xcbi1cXHRpZiAoc2RhdGEtXFx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlIHx8XFxuLVxcdCAgICBpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc2RhdGEsIGVsZW1zLCB0cnVlKSlcXG4rXFx0LyogZG9uJ3QgcHJvY2VzcyBiZWFjb25zIHdoaWxlIGEgY2hhbm5lbCBzd2l0Y2ggaXMgaW4gcHJvZ3Jlc3MgKi9cXG4rXFx0aWYgKHNkYXRhLVxcdTAwM2V2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSlcXG4gXFx0XFx0Z290byBwdXRfYnNzO1xcbiBcXG4gXFx0Lyogc2FtZSBCU1NJRCAqL1xcbi1cXHRpZiAoZXRoZXJfYWRkcl9lcXVhbChjYnNzLVxcdTAwM2Vic3NpZCwgc2RhdGEtXFx1MDAzZXUuaWJzcy5ic3NpZCkpXFxuK1xcdGlmIChldGhlcl9hZGRyX2VxdWFsKGNic3MtXFx1MDAzZWJzc2lkLCBzZGF0YS1cXHUwMDNldS5pYnNzLmJzc2lkKSkge1xcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBPbmx5IGFjdCBvbiBhIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudCB0aGF0IGNvbWVzIGZyb21cXG4rXFx0XFx0ICogb3VyIG93biBJQlNTIChpLmUuIG1hdGNoaW5nIEJTU0lEKS4gQWN0aW5nIG9uIGEgQ1NBIGZyb20gYVxcbitcXHRcXHQgKiBmb3JlaWduIEJTU0lEIHRoYXQgbWVyZWx5IHNoYXJlcyBvdXIgU1NJRCB3b3VsZCBsZXQgYW55XFxuK1xcdFxcdCAqIHN0YXRpb24gZm9yY2UgdXMgb2ZmLWNoYW5uZWwgb3IgdGVhciB0aGUgY2VsbCBkb3duLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0aWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgdHJ1ZSk7XFxuIFxcdFxcdGdvdG8gcHV0X2JzcztcXG4rXFx0fVxcbiBcXG4gXFx0Lyogd2UgdXNlIGEgZml4ZWQgQlNTSUQgKi9cXG4gXFx0aWYgKHNkYXRhLVxcdTAwM2V1Lmlic3MuZml4ZWRfYnNzaWQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA5OjIyOjU1LjU5NDE3ODY1OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQzMDU1OTE5NjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210XCIsXG4gICAgXCJpZWVlODAyMTFfcnhfYnNzX2luZm9cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIHByb2Nlc3NpbmcgY2hhbm5lbCBzd2l0Y2ggYW5ub3VuY2VtZW50cyBpbiBtYWM4MDIxMSBJQlNTIG1vZGUuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBsb2dpYyByZWFjaGFibGUgdmlhIHZpcnR1YWxpemVkIGhhcmR3YXJlIChtYWM4MDIxMV9od3NpbSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNTc0YjI2MGEzOGQzMzAxMjQ3NjNjODdiMGI1YTI5YTc0YmIyNmZjOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDA5OjIyOjUyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2lic3MuYyBiL25ldC9tYWM4MDIxMS9pYnNzLmNcbmluZGV4IDk3MjkyZmY1MTQ3NWZkLi42NDQwZmQ5MTVhYTU2YSAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9pYnNzLmNcbisrKyBiL25ldC9tYWM4MDIxMS9pYnNzLmNcbkBAIC04OTUsNiArODk1LDEwIEBAIGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4gXHRpZiAobWdtdC1cdTAwM2V1LmFjdGlvbi5hY3Rpb25fY29kZSAhPSBXTEFOX0FDVElPTl9TUENUX0NITF9TV0lUQ0gpXG4gXHRcdHJldHVybjtcbiBcbitcdC8qIG9ubHkgYWN0IG9uIGNoYW5uZWwgc3dpdGNoIGZyYW1lcyBjb21pbmcgZnJvbSBvdXIgb3duIElCU1MgKi9cbitcdGlmICghZXRoZXJfYWRkcl9lcXVhbChtZ210LVx1MDAzZWJzc2lkLCBzZGF0YS1cdTAwM2V1Lmlic3MuYnNzaWQpKVxuK1x0XHRyZXR1cm47XG4rXG4gXHRpZiAoIXNkYXRhLVx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlKVxuIFx0XHRpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc2RhdGEsIGVsZW1zLCBmYWxzZSk7XG4gfVxuQEAgLTExMTEsMTQgKzExMTUsMjEgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuIFx0XHRcdFx0c2RhdGEtXHUwMDNldS5pYnNzLnNzaWRfbGVuKSlcbiBcdFx0Z290byBwdXRfYnNzO1xuIFxuLVx0LyogcHJvY2VzcyBjaGFubmVsIHN3aXRjaCAqL1xuLVx0aWYgKHNkYXRhLVx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlIHx8XG4tXHQgICAgaWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgdHJ1ZSkpXG4rXHQvKiBkb24ndCBwcm9jZXNzIGJlYWNvbnMgd2hpbGUgYSBjaGFubmVsIHN3aXRjaCBpcyBpbiBwcm9ncmVzcyAqL1xuK1x0aWYgKHNkYXRhLVx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlKVxuIFx0XHRnb3RvIHB1dF9ic3M7XG4gXG4gXHQvKiBzYW1lIEJTU0lEICovXG4tXHRpZiAoZXRoZXJfYWRkcl9lcXVhbChjYnNzLVx1MDAzZWJzc2lkLCBzZGF0YS1cdTAwM2V1Lmlic3MuYnNzaWQpKVxuK1x0aWYgKGV0aGVyX2FkZHJfZXF1YWwoY2Jzcy1cdTAwM2Vic3NpZCwgc2RhdGEtXHUwMDNldS5pYnNzLmJzc2lkKSkge1xuK1x0XHQvKlxuK1x0XHQgKiBPbmx5IGFjdCBvbiBhIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudCB0aGF0IGNvbWVzIGZyb21cbitcdFx0ICogb3VyIG93biBJQlNTIChpLmUuIG1hdGNoaW5nIEJTU0lEKS4gQWN0aW5nIG9uIGEgQ1NBIGZyb20gYVxuK1x0XHQgKiBmb3JlaWduIEJTU0lEIHRoYXQgbWVyZWx5IHNoYXJlcyBvdXIgU1NJRCB3b3VsZCBsZXQgYW55XG4rXHRcdCAqIHN0YXRpb24gZm9yY2UgdXMgb2ZmLWNoYW5uZWwgb3IgdGVhciB0aGUgY2VsbCBkb3duLlxuK1x0XHQgKi9cbitcdFx0aWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgdHJ1ZSk7XG4gXHRcdGdvdG8gcHV0X2JzcztcbitcdH1cbiBcbiBcdC8qIHdlIHVzZSBhIGZpeGVkIEJTU0lEICovXG4gXHRpZiAoc2RhdGEtXHUwMDNldS5pYnNzLmZpeGVkX2Jzc2lkKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDk6MjI6NTUuNTk0MTgwNjA3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM1MzMwNjkyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIG1hYzgwMjExIElCU1MgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L21hYzgwMjExL2lic3MuY2AuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgZnVuY3Rpb25hbGx5IHNwZWFraW5nLiBJdCBzZWVtcyB3ZSdyZSBhZGRpbmcgc29tZSBjcnVjaWFsIGNoZWNrcyB3aXRoaW4gdGhlIElCU1MgY29kZS4gVGhlIGdvYWwgaXMgdG8gbWFrZSBzdXJlIHdlJ3JlIG9ubHkgcmVzcG9uZGluZyB0byBjaGFubmVsIHN3aXRjaCBmcmFtZXMg4oCTIHNwZWNpZmljYWxseSBzcGVjdHJ1bSBtYW5hZ2VtZW50IGFjdGlvbiBmcmFtZXMgYW5kIGFubm91bmNlbWVudHMg4oCTIHRoYXQgb3JpZ2luYXRlIGZyb20gKm91ciogSUJTUy4gVGhlIHBhdGNoIGRvZXMgdGhpcyBieSBtYXRjaGluZyB0aGUgQlNTSUQsIGJvdGggaW4gYGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRgIGFuZCBpbiBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYC5cblxuSXQgYXBwZWFycyB0aGF0IGEga2V5IHBhcnQgb2YgdGhlIHVwZGF0ZSBpcyB0byBhdm9pZCBwcm9jZXNzaW5nIGJlYWNvbnMgZHVyaW5nIGFuIGFjdGl2ZSBjaGFubmVsIHN3aXRjaC4gVGhpcyBtYWtlcyBzZW5zZTsgd2Ugd291bGRuJ3Qgd2FudCB0aG9zZSBpbnRlcnJ1cHRpbmcgdGhlIHByb2Nlc3MuIFRoZSBjb2RlJ3MgY2xlYXJseSBkZXNpZ25lZCB0byBoYW5kbGUgODAyLjExIG1hbmFnZW1lbnQgZnJhbWVzIHdpdGhpbiBhbiBJQlNTIGNvbnRleHQsIHdoaWNoIG1ha2VzIGl0IGltcG9ydGFudCB0byByZXZpZXcgdGhlIGNoYW5nZS5cblxuR2l2ZW4gdGhhdCB0aGlzIGFmZmVjdHMgSUJTUyBtYW5hZ2VtZW50LCBhbmQgaXMgZXhwb3NlZCB0aHJvdWdoIGBtYWM4MDIxMV9od3NpbWAsIEkgbmVlZCB0byBjaGVjayBob3cgaXQgd2lsbCBiZSBlbmFibGVkIGFuZCBpZiBhbnl0aGluZyBpcyBhZmZlY3RlZC5cblxuTm93LCBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGNvbmZpZ3VyYXRpb24uIExldCdzIHN0YXJ0IGJ5IGZpbmRpbmcgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9ucy4gSSBrbm93IGBDT05GSUdfTUFDODAyMTFgIGlzIHRoZSBiaWcgb25lLCBidXQgSSdsbCBuZWVkIHRvIGxvb2sgYXQgYG5ldC9tYWM4MDIxMS9LY29uZmlnYCBvciBzaW1pbGFyIGZpbGVzIHRvIHNlZSB0aGUgZ3JhbnVsYXIgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGlzIHNwZWNpZmljIElCU1MgZnVuY3Rpb25hbGl0eS4gSSBoYXZlIGEgZmVlbGluZyB0aGVyZSBtaWdodCBiZSBhIGZldyBvdGhlciB0aGluZ3MgdGhhdCBuZWVkIHRvIGJlIHJldmlld2VkIHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDksIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzowMC45NDc0OTE2NDVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzU4NDI5NzcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXFxubmV0L21hYzgwMjExL0tjb25maWctMjAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjE6Y29uZmlnIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVxcdGJvb2xcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCIgaWYgRVhQRVJUXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDItXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1MDpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVxcdHN0cmluZ1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNTktXFxubmV0L21hYzgwMjExL0tjb25maWc6NjA6Y29uZmlnIE1BQzgwMjExX0tVTklUX1RFU1RcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cXHR0cmlzdGF0ZSBcXFwiS1VuaXQgdGVzdHMgZm9yIG1hYzgwMjExXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXFxubmV0L21hYzgwMjExL0tjb25maWctODAtXFx0Ym9vbCBcXFwiRW5hYmxlIExFRCB0cmlnZ2Vyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjg4OmNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVxcdGJvb2wgXFxcIlRyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTExLVxcdGJvb2wgXFxcIlNlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE2OmNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cXHRib29sIFxcXCJEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTMxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cXHRib29sIFxcXCJWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTQ6Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cXHRib29sIFxcXCJWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTYyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBIVCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cXHRib29sIFxcXCJWZXJib3NlIElCU1MgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXFx0Ym9vbCBcXFwiVmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjIyOmNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTk6Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5Mzpjb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXFx0Ym9vbCBcXFwiRXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMzA3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXFx0aW50IFxcXCJTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXFxcIiBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA5OjIzOjAxLjMwNTkzMjE5N1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MzA5ODMzMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBtYWM4MDIxMSBJQlNTIFBhdGNoKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIEl0IGxvb2tzIGxpa2UgdGhlIGNoYW5nZXMgYXJlIGZvY3VzZWQgd2l0aGluIGBuZXQvbWFjODAyMTEvaWJzcy5jYC4gTXkgZmlyc3QgbW92ZSBpcyBhbHdheXMgdG8gaWRlbnRpZnkgdGhlIHNwZWNpZmljIGZ1bmN0aW9ucyB0aGF0IGFyZSBiZWluZyB0b3VjaGVkLiBJIHNlZSBgaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdGAgYW5kIGBpZWVlODAyMTFfcnhfYnNzX2luZm9gIGxpc3RlZC4gVGhhdCBnaXZlcyBtZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQg4oCTIHNvbWV0aGluZyByZWxhdGVkIHRvIG1hbmFnZW1lbnQgZnJhbWUgcmVjZXB0aW9uIGFuZCBCU1MgaW5mb3JtYXRpb24uXG5cbk5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgdGhpcyBwYXRjaCBoYXMgYW55IHNwZWNpYWwgY29uc2lkZXJhdGlvbnMgZm9yIElCU1Mgc3BlY2lmaWNhbGx5LiBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGUgY29uZmlncy4gQWgsIEkgc2VlIGBNQUM4MDIxMV9JQlNTX0RFQlVHYCAtIGJ1dCBJIHJlbWVtYmVyIHRoYXQncyBtYWlubHkgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4gU28sIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gaW4gcGxheSBoZXJlIGlzIHRoZSBnZW5lcmFsIGBNQUM4MDIxMWAgb3B0aW9uLCBub3RoaW5nIElCU1Mtc3BlY2lmaWMgcmVhbGx5LlxuXG5Pa2F5LCBsYXN0IHN0ZXAgZm9yIG5vdzogSSdtIGdvaW5nIHRvIHNjYW4gdGhlIGNvZGUgd2l0aGluIGBuZXQvbWFjODAyMTEvaWJzcy5jYCBmb3IgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIChgI2lmZGVmYCkgdGhhdCBtaWdodCBiZSBzdXJyb3VuZGluZyB0aGVzZSBtb2RpZmllZCBmdW5jdGlvbnMuIFRoYXQgd2lsbCB0ZWxsIG1lIGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMgY29tcGlsYXRpb24gcGF0aHMgdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcsIG9yIGlmIGl0IGlzIGFmZmVjdGluZyB0aGUgZGVmYXVsdCBiZWhhdmlvci4gSSdtIGxvb2tpbmcgZm9yIGFueSBjbHVlcyB0aGF0IGNvdWxkIHRlbGwgbWUgd2hhdCB0aGlzIHBhdGNoIHJlYWxseSBkb2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDkzLCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA5OjIzOjA2LjEzNjkyMDA0N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzgxMTMyNzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvaWJzcy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9pYnNzLmM9ODg1PXN0YXRpYyB2b2lkXFxubmV0L21hYzgwMjExL2lic3MuYzo4ODY6aWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTg4Ny1cXHRcXHRcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQsIHNpemVfdCBsZW4sXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jPTE1ODU9dm9pZCBpZWVlODAyMTFfaWJzc19yeF9xdWV1ZWRfbWdtdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTYzMi1cXHRcXHRcXHRpZiAoZWxlbXMgXFx1MDAyNlxcdTAwMjYgIWVsZW1zLVxcdTAwM2VwYXJzZV9lcnJvcilcXG5uZXQvbWFjODAyMTEvaWJzcy5jOjE2MzM6XFx0XFx0XFx0XFx0aWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzZGF0YSwgbWdtdCxcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTE2MzQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0c2tiLVxcdTAwM2VsZW4sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA5OjIzOjA2LjI3NTA0MDQ1NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2NzQ3ODkwNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIHRoZSBtYXR0ZXI6XG5cbioqQW5hbHl6aW5nIGBpZWVlODAyMTFfcnhfYnNzX2luZm9gIGluIGBuZXQvbWFjODAyMTEvaWJzcy5jYCoqXG5cbkFscmlnaHQsIHNvIHRoZSBmaXJzdCB0aGluZyBJIHdhbnQgdG8gZG8gaXMgbmF2aWdhdGUgdG8gdGhlIGBuZXQvbWFjODAyMTEvaWJzcy5jYCBmaWxlLiBUaGlzIGxvb2tzIGxpa2UgdGhlIHBsYWNlIHRvIGJlLCBnaXZlbiB0aGUgZnVuY3Rpb24gbmFtZS4gSSdtIGZvY3VzaW5nIHNwZWNpZmljYWxseSBvbiBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYC4gV2h5PyBXZWxsLCB0aGUgQlNTIGluZm9ybWF0aW9uIGlzIGNyaXRpY2FsIGluIGFuIElCU1MgZW52aXJvbm1lbnQgYmVjYXVzZSBpdCdzIHVzZWQgZm9yIGFzc29jaWF0aW9uLCByZWFzc29jaWF0aW9uLCBhbmQgZ2VuZXJhbGx5IG1haW50YWluaW5nIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIG5vZGVzLiBGcm9tIG15IGV4cGVyaWVuY2Ugd2l0aCB0aGUgODAyLjExIHN0YW5kYXJkcywgSSB3b3VsZCBoYXphcmQgYSBndWVzcyB0aGlzIGlzIGEgaGFuZGxlciBmb3IgQlNTIGluZm9ybWF0aW9uIGluIHRoZSByZWNlaXZlIHBhdGguIEkgZXhwZWN0IHRoZSBjb2RlIGhlcmUgdG8gYmUgY2hlY2tpbmcgZmllbGRzIGluIGJlYWNvbnMgYW5kIHByb2JlIHJlc3BvbnNlcywgdmVyaWZ5aW5nIGNhcGFiaWxpdGllcywgYW5kIHBvdGVudGlhbGx5IG1hbmFnaW5nIGFzc29jaWF0aW9uIHN0YXRlLiBJJ20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGhvdyBpdCdzIGhhbmRsaW5nIHRoZSBkZXRhaWxzIG9mIElCU1Mgc3BlY2lmaWMgZWxlbWVudHMgb3IgZmxhZ3MsIGdpdmVuIHRoZSBsb2NhdGlvbiBvZiB0aGUgc291cmNlIGZpbGUuIEkgbmVlZCB0byBiZSBzdXJlIHRoaXMgZnVuY3Rpb24gaXMgcHJvcGVybHkgaGFuZGxpbmcgdmFyaW91cyBjb3JuZXIgY2FzZXMsIHBlcmhhcHMgZXZlbiBzb21lIG9ic2N1cmUgb3IgaW5mcmVxdWVudGx5IHVzZWQgQlNTIGVsZW1lbnRzLiBUaGF0J3Mgd2hlcmUgSSB3aWxsIGJlZ2luIG15IGFuYWx5c2lzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODY3LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDk6MjM6MDkuOTQ5ODMyODhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM3ODQxNzEyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV9yeF9ic3NfaW5mb1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvaWJzcy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9pYnNzLmM9OTUxPXN0YXRpYyB2b2lkIGllZWU4MDIxMV91cGRhdGVfc3RhX2luZm8oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jLTEwNzItXFxubmV0L21hYzgwMjExL2lic3MuYzoxMDczOnN0YXRpYyB2b2lkIGllZWU4MDIxMV9yeF9ic3NfaW5mbyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTEwNzQtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQsIHNpemVfdCBsZW4sXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jPTE1NTY9dm9pZCBpZWVlODAyMTFfcnhfbWdtdF9wcm9iZV9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jLTE1NzktXFx0aWYgKGVsZW1zKSB7XFxubmV0L21hYzgwMjExL2lic3MuYzoxNTgwOlxcdFxcdGllZWU4MDIxMV9yeF9ic3NfaW5mbyhzZGF0YSwgbWdtdCwgbGVuLCByeF9zdGF0dXMsIGVsZW1zKTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTE1ODEtXFx0XFx0a2ZyZWUoZWxlbXMpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzoxMC4yODc2ODI0MDNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDEwNzUxNjY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSUJTUyBNYW5hZ2VtZW50IEZyYW1lIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQncyBtb2RpZnlpbmcgdGhlIGBpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210YCBhbmQgYGllZWU4MDIxMV9yeF9ic3NfaW5mb2AgZnVuY3Rpb25zLiBIbW0sIHRob3NlIGFyZSBkZWZpbml0ZWx5IGZ1bmN0aW9ucyBjYWxsZWQgd2hlbiB3ZSdyZSBkZWFsaW5nIHdpdGggbWFuYWdlbWVudCBmcmFtZXMgaW4gYW4gSUJTUyAoYWQtaG9jKSBuZXR3b3JrLiBUaGF0IG1ha2VzIHNlbnNlLCBnaXZlbiB0aGUgY29udGV4dC4gQW5kLCBiYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBzeXN0ZW0sIHRoaXMgaXMgYWJzb2x1dGVseSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgdGhyb3VnaCBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBpcyB0aGUgY29ycmVjdCBhcHByb2FjaCB0byB0ZXN0aW5nIHRoZXNlIHNvcnRzIG9mIGNoYW5nZXMuIFRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGlzIGBNQUM4MDIxMWAsIEkgY2FuIHZlcmlmeSB0aGF0IGVhc2lseS5cblxuTm93LCBJIG5lZWQgdG8gY2hlY2sgZm9yIG90aGVyIGNvbmZpZyBkZXBlbmRlbmNpZXMuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgdXNlcyBgc2RhdGEtXHUwMDNldmlmLmJzc19jb25mLmNzYV9hY3RpdmVgIGFuZCBgaWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoYC4gTGV0J3MgZGlnIGludG8gYGllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaGAgYW5kIHNlZSBpZiAqaXQqIGhhcyBhbnkgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIFRoYXQnbGwgYmUgY3JpdGljYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgZnVsbCBzY29wZSBvZiB0aGlzIGNoYW5nZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjU2MywiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzoxNS42OTg0Mzc0M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk5NzgxOTIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvaWJzcy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9pYnNzLmM9NzQzPXN0YXRpYyBib29sXFxubmV0L21hYzgwMjExL2lic3MuYzo3NDQ6aWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtNzQ1LVxcdFxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDJfMTFfZWxlbXMgKmVsZW1zLFxcbi0tXFxubmV0L21hYzgwMjExL2lic3MuYz04ODY9aWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtOTAyLVxcdGlmICghc2RhdGEtXFx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlKVxcbm5ldC9tYWM4MDIxMS9pYnNzLmM6OTAzOlxcdFxcdGllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaChzZGF0YSwgZWxlbXMsIGZhbHNlKTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTkwNC19XFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jPTEwNzM9c3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL2lic3MuYy0xMTI5LVxcdFxcdCAqL1xcbm5ldC9tYWM4MDIxMS9pYnNzLmM6MTEzMDpcXHRcXHRpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc2RhdGEsIGVsZW1zLCB0cnVlKTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTExMzEtXFx0XFx0Z290byBwdXRfYnNzO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzoxNS45OTgyMjYyODNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQ4MDEzODU4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3Mgc2VlIHdoYXQgd2UndmUgZ290IGhlcmUuXG5cbioqQW5hbHl6aW5nIElCU1MgQ29uZmlndXJhdGlvbiB3aXRoaW4gdGhlIG1hYzgwMjExIEZyYW1ld29yayoqXG5cblJpZ2h0LCBzbyB3ZSdyZSBkZWFsaW5nIHdpdGggSUJTUyBhbmQsIGFzIGZhciBhcyBJIGNhbiB0ZWxsLCB0aGUgc3RhcnRpbmcgcG9pbnQgaXMganVzdCB0aGUgZ2VuZXJhbCBgTUFDODAyMTFgIGNvbmZpZy4gTm8gZGlyZWN0LCBleHBsaWNpdCBJQlNTLXNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGFyZSBpbW1lZGlhdGVseSBqdW1waW5nIG91dCBhdCBtZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIk9rYXksIGxldCdzIGNvbmZpcm0gdGhhdC5cIiBJJ2xsIHF1aWNrbHkgY2hlY2sgZm9yIGEgZGVkaWNhdGVkIGBDT05GSUdfTUFDODAyMTFfSUJTU2Agb3B0aW9uLiBOb3BlLCB0aGF0J3Mgbm90IHByZXNlbnQuIEludGVyZXN0aW5nLiBJdCBzdWdnZXN0cyBJQlNTIHN1cHBvcnQgaXMgbGlrZWx5IGludGVyd292ZW4gd2l0aGluIHRoZSBjb3JlIGBtYWM4MDIxMWAgY29uZmlndXJhdGlvbiwgd2hpY2ggaXNuJ3QgdW51c3VhbC5cblxuTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIElCU1MgY29kZSBpcyBicm91Z2h0IGludG8gdGhlIGJ1aWxkLiBUaGF0IG1lYW5zIGRlbHZpbmcgaW50byB0aGUgYnVpbGQgc3lzdGVtIGl0c2VsZi4gTGV0J3MgbG9vayBhdCB0aGUgYG5ldC9tYWM4MDIxMS9NYWtlZmlsZWAuIEknbGwgd2FudCB0byBzZWUgaWYgdGhlIGNvbXBpbGF0aW9uIG9mIHRoZSBgaWJzcy5jYCBmaWxlIOKAkyBvciByZWxhdGVkIElCU1MgbW9kdWxlcyDigJMgaXMgY29uZGl0aW9uYWwgaW4gYW55IHdheS4gQXJlIHRoZXJlIGFueSBzcGVjaWZpYyBmbGFncyBvciBkZXBlbmRlbmNpZXMgdGhhdCBjb250cm9sIGl0cyBpbmNsdXNpb24/IFRoYXQncyB3aGVyZSB0aGUgcmVhbCBhbnN3ZXIgbGllcy4gSSBuZWVkIHRvIHRyYWNlIHRoZSBidWlsZCBydWxlcyB0byBzZWUgaWYgd2UgaGF2ZSBJQlNTIHN1cHBvcnQgY29tcGlsZWQgaW50byB0aGUga2VybmVsLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDY0LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDk6MjM6MjEuNDc4MzY3MTg4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTkyNzA2NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWJzcy5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvTWFrZWZpbGU9NT1tYWM4MDIxMS15IDo9IFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0xNi1cXHRzMWcubyBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjE3OlxcdGlic3MubyBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTE4LVxcdGlmYWNlLm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzoyMS41OTc2NDQwMDVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODE1OTIyNTUzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBNQUM4MDIxMSBJQlNTIEZyYW1lIEhhbmRsaW5nKipcblxuT2theSwgc28gdGhpcyBpcyBwYXJ0IG9mIGBtYWM4MDIxMS15YCwgbWVhbmluZyBpdCdzIHVuY29uZGl0aW9uYWxseSBjb21waWxlZCwgd2hpY2ggaXMgZ29vZC4gVGhhdCBzaW1wbGlmaWVzIHRoZSBjb25maWcgcmVxdWlyZW1lbnRzOyBpdCBsb29rcyBsaWtlIGBNQUM4MDIxMWAgaXMgdGhlIGtleS4gTm8gbmVlZCB0byB3b3JyeSBhYm91dCBhZGRpdGlvbmFsIGNvbmZpZyBvcHRpb25zLCBpdCBzZWVtcy5cblxuVGhlIHJlYWwgZm9jdXMgaGVyZSBpcyBvbiB0aGUgZnVuY3Rpb25zIGBpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210YCBhbmQgYGllZWU4MDIxMV9yeF9ic3NfaW5mb2AuIEluaXRpYWxseSwgSSBjb25zaWRlcmVkIHRoYXQgcGVyaGFwcyB0aGVzZSBmdW5jdGlvbnMgd2VyZSBjb25zaWRlcmVkIFwiaG90LXBhdGhcIiBmdW5jdGlvbnMuIEhvd2V2ZXIsIHRoZXkncmUgbm90IHRoZSBzdXBlciBjcml0aWNhbCBkYXRhLWZyYW1lIHByb2Nlc3NpbmcgZnVuY3Rpb25zIGxpa2UgYG1hYzgwMjExX3J4YCBvciBgbWFjODAyMTFfdHhgLiBUaGV5J3JlIHNwZWNpZmljYWxseSB0aWVkIHRvIG1hbmFnZW1lbnQgZnJhbWVzLCBzcGVjaWZpY2FsbHkgaW4gdGhlIElCU1MgY29udGV4dC5cblxuSSBuZWVkIHRvIGNvbmZpcm0gaWYgYGllZWU4MDIxMV9yeF9ic3NfaW5mb2AgaXMgYWN0dWFsbHkgaW52b2tlZCBmcmVxdWVudGx5LiBJdCdzIGNhbGxlZCBmb3IgZXZlcnkgYmVhY29uIHJlY2VpdmVkIGluIElCU1MgbW9kZSwgd2hpY2ggaXMgcm91Z2hseSBldmVyeSB+MTAwbXMuIFRoYXQncyBmcmVxdWVudCBlbm91Z2ggdG8gd2FycmFudCBhdHRlbnRpb24sIGJ1dCBub3QgYXMgZnJlcXVlbnQgYXMgZGF0YSBmcmFtZXMuIFRoYXQgc2FpZCwgaXQncyBzdGlsbCBhIGdvb2QgY2FuZGlkYXRlLiBgaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdGAsIG9uIHRoZSBvdGhlciBoYW5kLCBkZWFscyB3aXRoIHNwZWN0cnVtIG1hbmFnZW1lbnQgYWN0aW9uIGZyYW1lcy4gVGhhdCdzIGRlZmluaXRlbHkgbm90IGhvdC1wYXRoLlxuXG5MZXQncyBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgZGVwZW5kZW5jaWVzLiBEb2VzIHRoaXMgcmVseSBvbiBhbnkgb3RoZXIgY29uZmlncyBsaWtlIGBDRkc4MDIxMWA/IEFoLCBgTUFDODAyMTFgIGRlcGVuZHMgb24gYENGRzgwMjExYCwgc28gYE1BQzgwMjExYCBpcyBzdWZmaWNpZW50LlxuXG5JbiBzdW1tYXJ5LCBoZXJlJ3Mgd2hhdCBJJ3ZlIGdvdDpcblxuKiAgICoqV29ydGhGdXp6aW5nOioqIFRydWUgLSBUaGlzIGlzIGRlZmluaXRlbHkgYSBzcG90IHdvcnRoIGZ1enppbmcgZ2l2ZW4gaXQgaXMgY3JpdGljYWwgY29yZSBrZXJuZWwgbG9naWMuXG4qICAgKipGb2N1c1N5bWJvbHM6KiogYGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRgLCBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYCAtIFRoZXNlIGFyZSB0aGUgc3BlY2lmaWMgZnVuY3Rpb25zIHRvIHRhcmdldC5cbiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYE1BQzgwMjExYCAtIFRoaXMgY29uZmlnIGVuc3VyZXMgdGhlIG5lY2Vzc2FyeSBjb2RlIGlzIGluY2x1ZGVkLlxuKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCBpcyBtb2RpZnlpbmcgSUJTUyBtb2RlIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudCBwcm9jZXNzaW5nLiBJdCdzIGNvcmUga2VybmVsIGxvZ2ljLCBhbmQgZnV6emluZyBpdCBpcyBtYWRlIGVhc2llciBiZWNhdXNlIGl0J3MgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsaXplZCBoYXJkd2FyZSAobWFjODAyMTFfaHdzaW0pLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTYzLCJPdXRwdXRUb2tlbnMiOjExNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzoyOS43NTY4NzI1NDlaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDI4NjkzODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdFwiLFxuICAgIFwiaWVlZTgwMjExX3J4X2Jzc19pbmZvXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBwcm9jZXNzaW5nIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudHMgaW4gbWFjODAyMTEgSUJTUyBtb2RlLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsaXplZCBoYXJkd2FyZSAobWFjODAyMTFfaHdzaW0pLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdFwiLFxuICAgIFwiaWVlZTgwMjExX3J4X2Jzc19pbmZvXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBwcm9jZXNzaW5nIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudHMgaW4gbWFjODAyMTEgSUJTUyBtb2RlLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsaXplZCBoYXJkd2FyZSAobWFjODAyMTFfaHdzaW0pLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflows7q6d[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-23 09:11:31 +0000 UTC FinishedAt: 2026-06-23 09:23:31 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "803d09a554055aba160a62abd1e4b1260b899dc1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "803d09a554055aba160a62abd1e4b1260b899dc1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "8fe2d2b0-6721-4f67-943d-75f3a97e3f1e" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_rx_mgmt_spectrum_mgmt", "ieee80211_rx_bss_info" ], "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+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfcnhfYnNzX2luZm8mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBwcm9jZXNzaW5nIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudHMgaW4gbWFjODAyMTEgSUJTUyBtb2RlLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsaXplZCBoYXJkd2FyZSAobWFjODAyMTFfaHdzaW0pLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNTc0YjI2MGEzOGQzMzAxMjQ3NjNjODdiMGI1YTI5YTc0YmIyNmZjOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDA5OjIyOjUyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9pYnNzLmMgYi9uZXQvbWFjODAyMTEvaWJzcy5jXG5pbmRleCA5NzI5MmZmNTE0NzVmZC4uNjQ0MGZkOTE1YWE1NmEgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvaWJzcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvaWJzcy5jXG5AQCAtODk1LDYgJiM0Mzs4OTUsMTAgQEAgaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiBcdGlmIChtZ210LVx1MDAzZXUuYWN0aW9uLmFjdGlvbl9jb2RlICE9IFdMQU5fQUNUSU9OX1NQQ1RfQ0hMX1NXSVRDSClcbiBcdFx0cmV0dXJuO1xuIFxuJiM0MztcdC8qIG9ubHkgYWN0IG9uIGNoYW5uZWwgc3dpdGNoIGZyYW1lcyBjb21pbmcgZnJvbSBvdXIgb3duIElCU1MgKi9cbiYjNDM7XHRpZiAoIWV0aGVyX2FkZHJfZXF1YWwobWdtdC1cdTAwM2Vic3NpZCwgc2RhdGEtXHUwMDNldS5pYnNzLmJzc2lkKSlcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4gXHRpZiAoIXNkYXRhLVx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlKVxuIFx0XHRpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc2RhdGEsIGVsZW1zLCBmYWxzZSk7XG4gfVxuQEAgLTExMTEsMTQgJiM0MzsxMTE1LDIxIEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9yeF9ic3NfaW5mbyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiBcdFx0XHRcdHNkYXRhLVx1MDAzZXUuaWJzcy5zc2lkX2xlbikpXG4gXHRcdGdvdG8gcHV0X2JzcztcbiBcbi1cdC8qIHByb2Nlc3MgY2hhbm5lbCBzd2l0Y2ggKi9cbi1cdGlmIChzZGF0YS1cdTAwM2V2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSB8fFxuLVx0ICAgIGllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaChzZGF0YSwgZWxlbXMsIHRydWUpKVxuJiM0MztcdC8qIGRvbiYjMzk7dCBwcm9jZXNzIGJlYWNvbnMgd2hpbGUgYSBjaGFubmVsIHN3aXRjaCBpcyBpbiBwcm9ncmVzcyAqL1xuJiM0MztcdGlmIChzZGF0YS1cdTAwM2V2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSlcbiBcdFx0Z290byBwdXRfYnNzO1xuIFxuIFx0Lyogc2FtZSBCU1NJRCAqL1xuLVx0aWYgKGV0aGVyX2FkZHJfZXF1YWwoY2Jzcy1cdTAwM2Vic3NpZCwgc2RhdGEtXHUwMDNldS5pYnNzLmJzc2lkKSlcbiYjNDM7XHRpZiAoZXRoZXJfYWRkcl9lcXVhbChjYnNzLVx1MDAzZWJzc2lkLCBzZGF0YS1cdTAwM2V1Lmlic3MuYnNzaWQpKSB7XG4mIzQzO1x0XHQvKlxuJiM0MztcdFx0ICogT25seSBhY3Qgb24gYSBjaGFubmVsIHN3aXRjaCBhbm5vdW5jZW1lbnQgdGhhdCBjb21lcyBmcm9tXG4mIzQzO1x0XHQgKiBvdXIgb3duIElCU1MgKGkuZS4gbWF0Y2hpbmcgQlNTSUQpLiBBY3Rpbmcgb24gYSBDU0EgZnJvbSBhXG4mIzQzO1x0XHQgKiBmb3JlaWduIEJTU0lEIHRoYXQgbWVyZWx5IHNoYXJlcyBvdXIgU1NJRCB3b3VsZCBsZXQgYW55XG4mIzQzO1x0XHQgKiBzdGF0aW9uIGZvcmNlIHVzIG9mZi1jaGFubmVsIG9yIHRlYXIgdGhlIGNlbGwgZG93bi5cbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0aWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgdHJ1ZSk7XG4gXHRcdGdvdG8gcHV0X2JzcztcbiYjNDM7XHR9XG4gXG4gXHQvKiB3ZSB1c2UgYSBmaXhlZCBCU1NJRCAqL1xuIFx0aWYgKHNkYXRhLVx1MDAzZXUuaWJzcy5maXhlZF9ic3NpZClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwOToyMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3J4X2Jzc19pbmZvJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgcHJvY2Vzc2luZyBjaGFubmVsIHN3aXRjaCBhbm5vdW5jZW1lbnRzIGluIG1hYzgwMjExIElCU1MgbW9kZS4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIHJlYWNoYWJsZSB2aWEgdmlydHVhbGl6ZWQgaGFyZHdhcmUgKG1hYzgwMjExX2h3c2ltKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNTc0YjI2MGEzOGQzMzAxMjQ3NjNjODdiMGI1YTI5YTc0YmIyNmZjOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgSnVuIDIzIDA5OjIyOjUyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2lic3MuYyBiL25ldC9tYWM4MDIxMS9pYnNzLmMKaW5kZXggOTcyOTJmZjUxNDc1ZmQuLjY0NDBmZDkxNWFhNTZhIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvaWJzcy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9pYnNzLmMKQEAgLTg5NSw2ICYjNDM7ODk1LDEwIEBAIGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsCiAJaWYgKG1nbXQtJmd0O3UuYWN0aW9uLmFjdGlvbl9jb2RlICE9IFdMQU5fQUNUSU9OX1NQQ1RfQ0hMX1NXSVRDSCkKIAkJcmV0dXJuOwogCiYjNDM7CS8qIG9ubHkgYWN0IG9uIGNoYW5uZWwgc3dpdGNoIGZyYW1lcyBjb21pbmcgZnJvbSBvdXIgb3duIElCU1MgKi8KJiM0MzsJaWYgKCFldGhlcl9hZGRyX2VxdWFsKG1nbXQtJmd0O2Jzc2lkLCBzZGF0YS0mZ3Q7dS5pYnNzLmJzc2lkKSkKJiM0MzsJCXJldHVybjsKJiM0MzsKIAlpZiAoIXNkYXRhLSZndDt2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSkKIAkJaWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgZmFsc2UpOwogfQpAQCAtMTExMSwxNCAmIzQzOzExMTUsMjEgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLAogCQkJCXNkYXRhLSZndDt1Lmlic3Muc3NpZF9sZW4pKQogCQlnb3RvIHB1dF9ic3M7CiAKLQkvKiBwcm9jZXNzIGNoYW5uZWwgc3dpdGNoICovCi0JaWYgKHNkYXRhLSZndDt2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSB8fAotCSAgICBpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc2RhdGEsIGVsZW1zLCB0cnVlKSkKJiM0MzsJLyogZG9uJiMzOTt0IHByb2Nlc3MgYmVhY29ucyB3aGlsZSBhIGNoYW5uZWwgc3dpdGNoIGlzIGluIHByb2dyZXNzICovCiYjNDM7CWlmIChzZGF0YS0mZ3Q7dmlmLmJzc19jb25mLmNzYV9hY3RpdmUpCiAJCWdvdG8gcHV0X2JzczsKIAogCS8qIHNhbWUgQlNTSUQgKi8KLQlpZiAoZXRoZXJfYWRkcl9lcXVhbChjYnNzLSZndDtic3NpZCwgc2RhdGEtJmd0O3UuaWJzcy5ic3NpZCkpCiYjNDM7CWlmIChldGhlcl9hZGRyX2VxdWFsKGNic3MtJmd0O2Jzc2lkLCBzZGF0YS0mZ3Q7dS5pYnNzLmJzc2lkKSkgewomIzQzOwkJLyoKJiM0MzsJCSAqIE9ubHkgYWN0IG9uIGEgY2hhbm5lbCBzd2l0Y2ggYW5ub3VuY2VtZW50IHRoYXQgY29tZXMgZnJvbQomIzQzOwkJICogb3VyIG93biBJQlNTIChpLmUuIG1hdGNoaW5nIEJTU0lEKS4gQWN0aW5nIG9uIGEgQ1NBIGZyb20gYQomIzQzOwkJICogZm9yZWlnbiBCU1NJRCB0aGF0IG1lcmVseSBzaGFyZXMgb3VyIFNTSUQgd291bGQgbGV0IGFueQomIzQzOwkJICogc3RhdGlvbiBmb3JjZSB1cyBvZmYtY2hhbm5lbCBvciB0ZWFyIHRoZSBjZWxsIGRvd24uCiYjNDM7CQkgKi8KJiM0MzsJCWllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaChzZGF0YSwgZWxlbXMsIHRydWUpOwogCQlnb3RvIHB1dF9ic3M7CiYjNDM7CX0KIAogCS8qIHdlIHVzZSBhIGZpeGVkIEJTU0lEICovCiAJaWYgKHNkYXRhLSZndDt1Lmlic3MuZml4ZWRfYnNzaWQpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMDkKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBtYWM4MDIxMSBJQlNTIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L21hYzgwMjExL2lic3MuY2AuIEl0JiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGZ1bmN0aW9uYWxseSBzcGVha2luZy4gSXQgc2VlbXMgd2UmIzM5O3JlIGFkZGluZyBzb21lIGNydWNpYWwgY2hlY2tzIHdpdGhpbiB0aGUgSUJTUyBjb2RlLiBUaGUgZ29hbCBpcyB0byBtYWtlIHN1cmUgd2UmIzM5O3JlIG9ubHkgcmVzcG9uZGluZyB0byBjaGFubmVsIHN3aXRjaCBmcmFtZXMg4oCTIHNwZWNpZmljYWxseSBzcGVjdHJ1bSBtYW5hZ2VtZW50IGFjdGlvbiBmcmFtZXMgYW5kIGFubm91bmNlbWVudHMg4oCTIHRoYXQgb3JpZ2luYXRlIGZyb20gKm91ciogSUJTUy4gVGhlIHBhdGNoIGRvZXMgdGhpcyBieSBtYXRjaGluZyB0aGUgQlNTSUQsIGJvdGggaW4gYGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRgIGFuZCBpbiBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYC4KCkl0IGFwcGVhcnMgdGhhdCBhIGtleSBwYXJ0IG9mIHRoZSB1cGRhdGUgaXMgdG8gYXZvaWQgcHJvY2Vzc2luZyBiZWFjb25zIGR1cmluZyBhbiBhY3RpdmUgY2hhbm5lbCBzd2l0Y2guIFRoaXMgbWFrZXMgc2Vuc2U7IHdlIHdvdWxkbiYjMzk7dCB3YW50IHRob3NlIGludGVycnVwdGluZyB0aGUgcHJvY2Vzcy4gVGhlIGNvZGUmIzM5O3MgY2xlYXJseSBkZXNpZ25lZCB0byBoYW5kbGUgODAyLjExIG1hbmFnZW1lbnQgZnJhbWVzIHdpdGhpbiBhbiBJQlNTIGNvbnRleHQsIHdoaWNoIG1ha2VzIGl0IGltcG9ydGFudCB0byByZXZpZXcgdGhlIGNoYW5nZS4KCkdpdmVuIHRoYXQgdGhpcyBhZmZlY3RzIElCU1MgbWFuYWdlbWVudCwgYW5kIGlzIGV4cG9zZWQgdGhyb3VnaCBgbWFjODAyMTFfaHdzaW1gLCBJIG5lZWQgdG8gY2hlY2sgaG93IGl0IHdpbGwgYmUgZW5hYmxlZCBhbmQgaWYgYW55dGhpbmcgaXMgYWZmZWN0ZWQuCgpOb3csIEkgbmVlZCB0byBkaWcgaW50byB0aGUgY29uZmlndXJhdGlvbi4gTGV0JiMzOTtzIHN0YXJ0IGJ5IGZpbmRpbmcgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9ucy4gSSBrbm93IGBDT05GSUdfTUFDODAyMTFgIGlzIHRoZSBiaWcgb25lLCBidXQgSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGBuZXQvbWFjODAyMTEvS2NvbmZpZ2Agb3Igc2ltaWxhciBmaWxlcyB0byBzZWUgdGhlIGdyYW51bGFyIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhpcyBzcGVjaWZpYyBJQlNTIGZ1bmN0aW9uYWxpdHkuIEkgaGF2ZSBhIGZlZWxpbmcgdGhlcmUgbWlnaHQgYmUgYSBmZXcgb3RoZXIgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSByZXZpZXdlZCB0byBiZSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxubmV0L21hYzgwMjExL0tjb25maWctMjAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cdGJvb2xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDsgaWYgRVhQRVJUXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNDAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctNDItXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cdHN0cmluZ1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXCYjMzQ7U29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNTktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7RW5hYmxlIExFRCB0cmlnZ2Vyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVx0Ym9vbCBcJiMzNDtFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVx0Ym9vbCBcJiMzNDtUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXHRib29sIFwmIzM0O1NlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXHRib29sIFwmIzM0O0RvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXHRib29sIFwmIzM0O1ZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXHRib29sIFwmIzM0O1ZlcmJvc2UgSFQgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBPQ0IgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXHRib29sIFwmIzM0O1ZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1ZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjgyLVx0Ym9vbCBcJiMzNDtWZXJib3NlIFRETFMgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL0tjb25maWctMjk0LVx0Ym9vbCBcJiMzNDtFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXHRpbnQgXCYjMzQ7U3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVwmIzM0OyBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDk6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA5MwoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDE0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIG1hYzgwMjExIElCU1MgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIHBhdGNoLiBJdCBsb29rcyBsaWtlIHRoZSBjaGFuZ2VzIGFyZSBmb2N1c2VkIHdpdGhpbiBgbmV0L21hYzgwMjExL2lic3MuY2AuIE15IGZpcnN0IG1vdmUgaXMgYWx3YXlzIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgdGhhdCBhcmUgYmVpbmcgdG91Y2hlZC4gSSBzZWUgYGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRgIGFuZCBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYCBsaXN0ZWQuIFRoYXQgZ2l2ZXMgbWUgYSBnb29kIHN0YXJ0aW5nIHBvaW50IOKAkyBzb21ldGhpbmcgcmVsYXRlZCB0byBtYW5hZ2VtZW50IGZyYW1lIHJlY2VwdGlvbiBhbmQgQlNTIGluZm9ybWF0aW9uLgoKTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIHBhdGNoIGhhcyBhbnkgc3BlY2lhbCBjb25zaWRlcmF0aW9ucyBmb3IgSUJTUyBzcGVjaWZpY2FsbHkuIExldCBtZSBxdWlja2x5IGNoZWNrIHRoZSBjb25maWdzLiBBaCwgSSBzZWUgYE1BQzgwMjExX0lCU1NfREVCVUdgIC0gYnV0IEkgcmVtZW1iZXIgdGhhdCYjMzk7cyBtYWlubHkgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4gU28sIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gaW4gcGxheSBoZXJlIGlzIHRoZSBnZW5lcmFsIGBNQUM4MDIxMWAgb3B0aW9uLCBub3RoaW5nIElCU1Mtc3BlY2lmaWMgcmVhbGx5LgoKT2theSwgbGFzdCBzdGVwIGZvciBub3c6IEkmIzM5O20gZ29pbmcgdG8gc2NhbiB0aGUgY29kZSB3aXRoaW4gYG5ldC9tYWM4MDIxMS9pYnNzLmNgIGZvciBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gKGAjaWZkZWZgKSB0aGF0IG1pZ2h0IGJlIHN1cnJvdW5kaW5nIHRoZXNlIG1vZGlmaWVkIGZ1bmN0aW9ucy4gVGhhdCB3aWxsIHRlbGwgbWUgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBjb21waWxhdGlvbiBwYXRocyB0aGlzIHBhdGNoIGlzIHRhcmdldGluZywgb3IgaWYgaXQgaXMgYWZmZWN0aW5nIHRoZSBkZWZhdWx0IGJlaGF2aW9yLiBJJiMzOTttIGxvb2tpbmcgZm9yIGFueSBjbHVlcyB0aGF0IGNvdWxkIHRlbGwgbWUgd2hhdCB0aGlzIHBhdGNoIHJlYWxseSBkb2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2llZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvaWJzcy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9pYnNzLmM9ODg1PXN0YXRpYyB2b2lkXG5uZXQvbWFjODAyMTEvaWJzcy5jOjg4NjppZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL2lic3MuYy04ODctXHRcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQsIHNpemVfdCBsZW4sXG4tLVxubmV0L21hYzgwMjExL2lic3MuYz0xNTg1PXZvaWQgaWVlZTgwMjExX2lic3NfcnhfcXVldWVkX21nbXQoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL2lic3MuYy0xNjMyLVx0XHRcdGlmIChlbGVtcyBcdTAwMjZcdTAwMjYgIWVsZW1zLVx1MDAzZXBhcnNlX2Vycm9yKVxubmV0L21hYzgwMjExL2lic3MuYzoxNjMzOlx0XHRcdFx0aWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzZGF0YSwgbWdtdCxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTYzNC1cdFx0XHRcdFx0XHRcdFx0c2tiLVx1MDAzZWxlbixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwOToyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODY3CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhlIG1hdHRlcjoKCioqQW5hbHl6aW5nIGBpZWVlODAyMTFfcnhfYnNzX2luZm9gIGluIGBuZXQvbWFjODAyMTEvaWJzcy5jYCoqCgpBbHJpZ2h0LCBzbyB0aGUgZmlyc3QgdGhpbmcgSSB3YW50IHRvIGRvIGlzIG5hdmlnYXRlIHRvIHRoZSBgbmV0L21hYzgwMjExL2lic3MuY2AgZmlsZS4gVGhpcyBsb29rcyBsaWtlIHRoZSBwbGFjZSB0byBiZSwgZ2l2ZW4gdGhlIGZ1bmN0aW9uIG5hbWUuIEkmIzM5O20gZm9jdXNpbmcgc3BlY2lmaWNhbGx5IG9uIGBpZWVlODAyMTFfcnhfYnNzX2luZm9gLiBXaHk/IFdlbGwsIHRoZSBCU1MgaW5mb3JtYXRpb24gaXMgY3JpdGljYWwgaW4gYW4gSUJTUyBlbnZpcm9ubWVudCBiZWNhdXNlIGl0JiMzOTtzIHVzZWQgZm9yIGFzc29jaWF0aW9uLCByZWFzc29jaWF0aW9uLCBhbmQgZ2VuZXJhbGx5IG1haW50YWluaW5nIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIG5vZGVzLiBGcm9tIG15IGV4cGVyaWVuY2Ugd2l0aCB0aGUgODAyLjExIHN0YW5kYXJkcywgSSB3b3VsZCBoYXphcmQgYSBndWVzcyB0aGlzIGlzIGEgaGFuZGxlciBmb3IgQlNTIGluZm9ybWF0aW9uIGluIHRoZSByZWNlaXZlIHBhdGguIEkgZXhwZWN0IHRoZSBjb2RlIGhlcmUgdG8gYmUgY2hlY2tpbmcgZmllbGRzIGluIGJlYWNvbnMgYW5kIHByb2JlIHJlc3BvbnNlcywgdmVyaWZ5aW5nIGNhcGFiaWxpdGllcywgYW5kIHBvdGVudGlhbGx5IG1hbmFnaW5nIGFzc29jaWF0aW9uIHN0YXRlLiBJJiMzOTttIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiBob3cgaXQmIzM5O3MgaGFuZGxpbmcgdGhlIGRldGFpbHMgb2YgSUJTUyBzcGVjaWZpYyBlbGVtZW50cyBvciBmbGFncywgZ2l2ZW4gdGhlIGxvY2F0aW9uIG9mIHRoZSBzb3VyY2UgZmlsZS4gSSBuZWVkIHRvIGJlIHN1cmUgdGhpcyBmdW5jdGlvbiBpcyBwcm9wZXJseSBoYW5kbGluZyB2YXJpb3VzIGNvcm5lciBjYXNlcywgcGVyaGFwcyBldmVuIHNvbWUgb2JzY3VyZSBvciBpbmZyZXF1ZW50bHkgdXNlZCBCU1MgZWxlbWVudHMuIFRoYXQmIzM5O3Mgd2hlcmUgSSB3aWxsIGJlZ2luIG15IGFuYWx5c2lzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2llZWU4MDIxMV9yeF9ic3NfaW5mbyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9pYnNzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2lic3MuYz05NTE9c3RhdGljIHZvaWQgaWVlZTgwMjExX3VwZGF0ZV9zdGFfaW5mbyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jLTEwNzItXG5uZXQvbWFjODAyMTEvaWJzcy5jOjEwNzM6c3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL2lic3MuYy0xMDc0LVx0XHRcdFx0ICBzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQsIHNpemVfdCBsZW4sXG4tLVxubmV0L21hYzgwMjExL2lic3MuYz0xNTU2PXZvaWQgaWVlZTgwMjExX3J4X21nbXRfcHJvYmVfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTU3OS1cdGlmIChlbGVtcykge1xubmV0L21hYzgwMjExL2lic3MuYzoxNTgwOlx0XHRpZWVlODAyMTFfcnhfYnNzX2luZm8oc2RhdGEsIG1nbXQsIGxlbiwgcnhfc3RhdHVzLCBlbGVtcyk7XG5uZXQvbWFjODAyMTEvaWJzcy5jLTE1ODEtXHRcdGtmcmVlKGVsZW1zKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwOToyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NTYzCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTY3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSUJTUyBNYW5hZ2VtZW50IEZyYW1lIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyBtb2RpZnlpbmcgdGhlIGBpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210YCBhbmQgYGllZWU4MDIxMV9yeF9ic3NfaW5mb2AgZnVuY3Rpb25zLiBIbW0sIHRob3NlIGFyZSBkZWZpbml0ZWx5IGZ1bmN0aW9ucyBjYWxsZWQgd2hlbiB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIG1hbmFnZW1lbnQgZnJhbWVzIGluIGFuIElCU1MgKGFkLWhvYykgbmV0d29yay4gVGhhdCBtYWtlcyBzZW5zZSwgZ2l2ZW4gdGhlIGNvbnRleHQuIEFuZCwgYmFzZWQgb24gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgc3lzdGVtLCB0aGlzIGlzIGFic29sdXRlbHkgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIHRocm91Z2ggYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggaXMgdGhlIGNvcnJlY3QgYXBwcm9hY2ggdG8gdGVzdGluZyB0aGVzZSBzb3J0cyBvZiBjaGFuZ2VzLiBUaGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBpcyBgTUFDODAyMTFgLCBJIGNhbiB2ZXJpZnkgdGhhdCBlYXNpbHkuCgpOb3csIEkgbmVlZCB0byBjaGVjayBmb3Igb3RoZXIgY29uZmlnIGRlcGVuZGVuY2llcy4gVGhlIHBhdGNoIHNwZWNpZmljYWxseSB1c2VzIGBzZGF0YS0mZ3Q7dmlmLmJzc19jb25mLmNzYV9hY3RpdmVgIGFuZCBgaWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoYC4gTGV0JiMzOTtzIGRpZyBpbnRvIGBpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2hgIGFuZCBzZWUgaWYgKml0KiBoYXMgYW55IGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLiBUaGF0JiMzOTtsbCBiZSBjcml0aWNhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBmdWxsIHNjb3BlIG9mIHRoaXMgY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwOToyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvaWJzcy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9pYnNzLmM9NzQzPXN0YXRpYyBib29sXG5uZXQvbWFjODAyMTEvaWJzcy5jOjc0NDppZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvaWJzcy5jLTc0NS1cdFx0XHRcdCAgc3RydWN0IGllZWU4MDJfMTFfZWxlbXMgKmVsZW1zLFxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmM9ODg2PWllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL2lic3MuYy05MDItXHRpZiAoIXNkYXRhLVx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlKVxubmV0L21hYzgwMjExL2lic3MuYzo5MDM6XHRcdGllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaChzZGF0YSwgZWxlbXMsIGZhbHNlKTtcbm5ldC9tYWM4MDIxMS9pYnNzLmMtOTA0LX1cbi0tXG5uZXQvbWFjODAyMTEvaWJzcy5jPTEwNzM9c3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTEyOS1cdFx0ICovXG5uZXQvbWFjODAyMTEvaWJzcy5jOjExMzA6XHRcdGllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaChzZGF0YSwgZWxlbXMsIHRydWUpO1xubmV0L21hYzgwMjExL2lic3MuYy0xMTMxLVx0XHRnb3RvIHB1dF9ic3M7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc0NjQKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTt2ZSBnb3QgaGVyZS4KCioqQW5hbHl6aW5nIElCU1MgQ29uZmlndXJhdGlvbiB3aXRoaW4gdGhlIG1hYzgwMjExIEZyYW1ld29yayoqCgpSaWdodCwgc28gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBJQlNTIGFuZCwgYXMgZmFyIGFzIEkgY2FuIHRlbGwsIHRoZSBzdGFydGluZyBwb2ludCBpcyBqdXN0IHRoZSBnZW5lcmFsIGBNQUM4MDIxMWAgY29uZmlnLiBObyBkaXJlY3QsIGV4cGxpY2l0IElCU1Mtc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgYXJlIGltbWVkaWF0ZWx5IGp1bXBpbmcgb3V0IGF0IG1lLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7T2theSwgbGV0JiMzOTtzIGNvbmZpcm0gdGhhdC4mIzM0OyBJJiMzOTtsbCBxdWlja2x5IGNoZWNrIGZvciBhIGRlZGljYXRlZCBgQ09ORklHX01BQzgwMjExX0lCU1NgIG9wdGlvbi4gTm9wZSwgdGhhdCYjMzk7cyBub3QgcHJlc2VudC4gSW50ZXJlc3RpbmcuIEl0IHN1Z2dlc3RzIElCU1Mgc3VwcG9ydCBpcyBsaWtlbHkgaW50ZXJ3b3ZlbiB3aXRoaW4gdGhlIGNvcmUgYG1hYzgwMjExYCBjb25maWd1cmF0aW9uLCB3aGljaCBpc24mIzM5O3QgdW51c3VhbC4KCk5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBJQlNTIGNvZGUgaXMgYnJvdWdodCBpbnRvIHRoZSBidWlsZC4gVGhhdCBtZWFucyBkZWx2aW5nIGludG8gdGhlIGJ1aWxkIHN5c3RlbSBpdHNlbGYuIExldCYjMzk7cyBsb29rIGF0IHRoZSBgbmV0L21hYzgwMjExL01ha2VmaWxlYC4gSSYjMzk7bGwgd2FudCB0byBzZWUgaWYgdGhlIGNvbXBpbGF0aW9uIG9mIHRoZSBgaWJzcy5jYCBmaWxlIOKAkyBvciByZWxhdGVkIElCU1MgbW9kdWxlcyDigJMgaXMgY29uZGl0aW9uYWwgaW4gYW55IHdheS4gQXJlIHRoZXJlIGFueSBzcGVjaWZpYyBmbGFncyBvciBkZXBlbmRlbmNpZXMgdGhhdCBjb250cm9sIGl0cyBpbmNsdXNpb24/IFRoYXQmIzM5O3Mgd2hlcmUgdGhlIHJlYWwgYW5zd2VyIGxpZXMuIEkgbmVlZCB0byB0cmFjZSB0aGUgYnVpbGQgcnVsZXMgdG8gc2VlIGlmIHdlIGhhdmUgSUJTUyBzdXBwb3J0IGNvbXBpbGVkIGludG8gdGhlIGtlcm5lbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDk6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWJzcy5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9NYWtlZmlsZT01PW1hYzgwMjExLXkgOj0gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMTYtXHRzMWcubyBcXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjE3Olx0aWJzcy5vIFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMTgtXHRpZmFjZS5vIFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc5NjMKCQkJCQkJCW91dHB1dDogMTE1CgkJCQkJCQl0aG91Z2h0czogMzg2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIE1BQzgwMjExIElCU1MgRnJhbWUgSGFuZGxpbmcqKgoKT2theSwgc28gdGhpcyBpcyBwYXJ0IG9mIGBtYWM4MDIxMS15YCwgbWVhbmluZyBpdCYjMzk7cyB1bmNvbmRpdGlvbmFsbHkgY29tcGlsZWQsIHdoaWNoIGlzIGdvb2QuIFRoYXQgc2ltcGxpZmllcyB0aGUgY29uZmlnIHJlcXVpcmVtZW50czsgaXQgbG9va3MgbGlrZSBgTUFDODAyMTFgIGlzIHRoZSBrZXkuIE5vIG5lZWQgdG8gd29ycnkgYWJvdXQgYWRkaXRpb25hbCBjb25maWcgb3B0aW9ucywgaXQgc2VlbXMuCgpUaGUgcmVhbCBmb2N1cyBoZXJlIGlzIG9uIHRoZSBmdW5jdGlvbnMgYGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRgIGFuZCBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYC4gSW5pdGlhbGx5LCBJIGNvbnNpZGVyZWQgdGhhdCBwZXJoYXBzIHRoZXNlIGZ1bmN0aW9ucyB3ZXJlIGNvbnNpZGVyZWQgJiMzNDtob3QtcGF0aCYjMzQ7IGZ1bmN0aW9ucy4gSG93ZXZlciwgdGhleSYjMzk7cmUgbm90IHRoZSBzdXBlciBjcml0aWNhbCBkYXRhLWZyYW1lIHByb2Nlc3NpbmcgZnVuY3Rpb25zIGxpa2UgYG1hYzgwMjExX3J4YCBvciBgbWFjODAyMTFfdHhgLiBUaGV5JiMzOTtyZSBzcGVjaWZpY2FsbHkgdGllZCB0byBtYW5hZ2VtZW50IGZyYW1lcywgc3BlY2lmaWNhbGx5IGluIHRoZSBJQlNTIGNvbnRleHQuCgpJIG5lZWQgdG8gY29uZmlybSBpZiBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYCBpcyBhY3R1YWxseSBpbnZva2VkIGZyZXF1ZW50bHkuIEl0JiMzOTtzIGNhbGxlZCBmb3IgZXZlcnkgYmVhY29uIHJlY2VpdmVkIGluIElCU1MgbW9kZSwgd2hpY2ggaXMgcm91Z2hseSBldmVyeSB+MTAwbXMuIFRoYXQmIzM5O3MgZnJlcXVlbnQgZW5vdWdoIHRvIHdhcnJhbnQgYXR0ZW50aW9uLCBidXQgbm90IGFzIGZyZXF1ZW50IGFzIGRhdGEgZnJhbWVzLiBUaGF0IHNhaWQsIGl0JiMzOTtzIHN0aWxsIGEgZ29vZCBjYW5kaWRhdGUuIGBpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210YCwgb24gdGhlIG90aGVyIGhhbmQsIGRlYWxzIHdpdGggc3BlY3RydW0gbWFuYWdlbWVudCBhY3Rpb24gZnJhbWVzLiBUaGF0JiMzOTtzIGRlZmluaXRlbHkgbm90IGhvdC1wYXRoLgoKTGV0JiMzOTtzIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBkZXBlbmRlbmNpZXMuIERvZXMgdGhpcyByZWx5IG9uIGFueSBvdGhlciBjb25maWdzIGxpa2UgYENGRzgwMjExYD8gQWgsIGBNQUM4MDIxMWAgZGVwZW5kcyBvbiBgQ0ZHODAyMTFgLCBzbyBgTUFDODAyMTFgIGlzIHN1ZmZpY2llbnQuCgpJbiBzdW1tYXJ5LCBoZXJlJiMzOTtzIHdoYXQgSSYjMzk7dmUgZ290OgoKKiAgICoqV29ydGhGdXp6aW5nOioqIFRydWUgLSBUaGlzIGlzIGRlZmluaXRlbHkgYSBzcG90IHdvcnRoIGZ1enppbmcgZ2l2ZW4gaXQgaXMgY3JpdGljYWwgY29yZSBrZXJuZWwgbG9naWMuCiogICAqKkZvY3VzU3ltYm9sczoqKiBgaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdGAsIGBpZWVlODAyMTFfcnhfYnNzX2luZm9gIC0gVGhlc2UgYXJlIHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgdG8gdGFyZ2V0LgoqICAgKipFbmFibGVDb25maWdzOioqIGBNQUM4MDIxMWAgLSBUaGlzIGNvbmZpZyBlbnN1cmVzIHRoZSBuZWNlc3NhcnkgY29kZSBpcyBpbmNsdWRlZC4KKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCBpcyBtb2RpZnlpbmcgSUJTUyBtb2RlIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudCBwcm9jZXNzaW5nLiBJdCYjMzk7cyBjb3JlIGtlcm5lbCBsb2dpYywgYW5kIGZ1enppbmcgaXQgaXMgbWFkZSBlYXNpZXIgYmVjYXVzZSBpdCYjMzk7cyByZWFjaGFibGUgdmlhIHZpcnR1YWxpemVkIGhhcmR3YXJlIChtYWM4MDIxMV9od3NpbSkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDA5OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3J4X2Jzc19pbmZvJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgcHJvY2Vzc2luZyBjaGFubmVsIHN3aXRjaCBhbm5vdW5jZW1lbnRzIGluIG1hYzgwMjExIElCU1MgbW9kZS4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIHJlYWNoYWJsZSB2aWEgdmlydHVhbGl6ZWQgaGFyZHdhcmUgKG1hYzgwMjExX2h3c2ltKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9yeF9ic3NfaW5mbyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIHByb2Nlc3NpbmcgY2hhbm5lbCBzd2l0Y2ggYW5ub3VuY2VtZW50cyBpbiBtYWM4MDIxMSBJQlNTIG1vZGUuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBsb2dpYyByZWFjaGFibGUgdmlhIHZpcnR1YWxpemVkIGhhcmR3YXJlIChtYWM4MDIxMV9od3NpbSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMjo1NC43NzQzMzQ0MzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTEyNTQ0NjE2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRcIixcbiAgICBcImllZWU4MDIxMV9yeF9ic3NfaW5mb1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgcHJvY2Vzc2luZyBjaGFubmVsIHN3aXRjaCBhbm5vdW5jZW1lbnRzIGluIG1hYzgwMjExIElCU1MgbW9kZS4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIHJlYWNoYWJsZSB2aWEgdmlydHVhbGl6ZWQgaGFyZHdhcmUgKG1hYzgwMjExX2h3c2ltKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDk6MjI6NTQuNzc0MzQxNjM2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MTg3ODI5OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1NzRiMjYwYTM4ZDMzMDEyNDc2M2M4N2IwYjVhMjlhNzRiYjI2ZmM4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVuIDIzIDA5OjIyOjUyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9pYnNzLmMgYi9uZXQvbWFjODAyMTEvaWJzcy5jXFxuaW5kZXggOTcyOTJmZjUxNDc1ZmQuLjY0NDBmZDkxNWFhNTZhIDEwMDY0NFxcbi0tLSBhL25ldC9tYWM4MDIxMS9pYnNzLmNcXG4rKysgYi9uZXQvbWFjODAyMTEvaWJzcy5jXFxuQEAgLTg5NSw2ICs4OTUsMTAgQEAgaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4gXFx0aWYgKG1nbXQtXFx1MDAzZXUuYWN0aW9uLmFjdGlvbl9jb2RlICE9IFdMQU5fQUNUSU9OX1NQQ1RfQ0hMX1NXSVRDSClcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXG4rXFx0Lyogb25seSBhY3Qgb24gY2hhbm5lbCBzd2l0Y2ggZnJhbWVzIGNvbWluZyBmcm9tIG91ciBvd24gSUJTUyAqL1xcbitcXHRpZiAoIWV0aGVyX2FkZHJfZXF1YWwobWdtdC1cXHUwMDNlYnNzaWQsIHNkYXRhLVxcdTAwM2V1Lmlic3MuYnNzaWQpKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHRpZiAoIXNkYXRhLVxcdTAwM2V2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSlcXG4gXFx0XFx0aWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgZmFsc2UpO1xcbiB9XFxuQEAgLTExMTEsMTQgKzExMTUsMjEgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbiBcXHRcXHRcXHRcXHRzZGF0YS1cXHUwMDNldS5pYnNzLnNzaWRfbGVuKSlcXG4gXFx0XFx0Z290byBwdXRfYnNzO1xcbiBcXG4tXFx0LyogcHJvY2VzcyBjaGFubmVsIHN3aXRjaCAqL1xcbi1cXHRpZiAoc2RhdGEtXFx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlIHx8XFxuLVxcdCAgICBpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc2RhdGEsIGVsZW1zLCB0cnVlKSlcXG4rXFx0LyogZG9uJ3QgcHJvY2VzcyBiZWFjb25zIHdoaWxlIGEgY2hhbm5lbCBzd2l0Y2ggaXMgaW4gcHJvZ3Jlc3MgKi9cXG4rXFx0aWYgKHNkYXRhLVxcdTAwM2V2aWYuYnNzX2NvbmYuY3NhX2FjdGl2ZSlcXG4gXFx0XFx0Z290byBwdXRfYnNzO1xcbiBcXG4gXFx0Lyogc2FtZSBCU1NJRCAqL1xcbi1cXHRpZiAoZXRoZXJfYWRkcl9lcXVhbChjYnNzLVxcdTAwM2Vic3NpZCwgc2RhdGEtXFx1MDAzZXUuaWJzcy5ic3NpZCkpXFxuK1xcdGlmIChldGhlcl9hZGRyX2VxdWFsKGNic3MtXFx1MDAzZWJzc2lkLCBzZGF0YS1cXHUwMDNldS5pYnNzLmJzc2lkKSkge1xcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBPbmx5IGFjdCBvbiBhIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudCB0aGF0IGNvbWVzIGZyb21cXG4rXFx0XFx0ICogb3VyIG93biBJQlNTIChpLmUuIG1hdGNoaW5nIEJTU0lEKS4gQWN0aW5nIG9uIGEgQ1NBIGZyb20gYVxcbitcXHRcXHQgKiBmb3JlaWduIEJTU0lEIHRoYXQgbWVyZWx5IHNoYXJlcyBvdXIgU1NJRCB3b3VsZCBsZXQgYW55XFxuK1xcdFxcdCAqIHN0YXRpb24gZm9yY2UgdXMgb2ZmLWNoYW5uZWwgb3IgdGVhciB0aGUgY2VsbCBkb3duLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0aWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgdHJ1ZSk7XFxuIFxcdFxcdGdvdG8gcHV0X2JzcztcXG4rXFx0fVxcbiBcXG4gXFx0Lyogd2UgdXNlIGEgZml4ZWQgQlNTSUQgKi9cXG4gXFx0aWYgKHNkYXRhLVxcdTAwM2V1Lmlic3MuZml4ZWRfYnNzaWQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA5OjIyOjU1LjU5NDE3ODY1OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQzMDU1OTE5NjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210XCIsXG4gICAgXCJpZWVlODAyMTFfcnhfYnNzX2luZm9cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIHByb2Nlc3NpbmcgY2hhbm5lbCBzd2l0Y2ggYW5ub3VuY2VtZW50cyBpbiBtYWM4MDIxMSBJQlNTIG1vZGUuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBsb2dpYyByZWFjaGFibGUgdmlhIHZpcnR1YWxpemVkIGhhcmR3YXJlIChtYWM4MDIxMV9od3NpbSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNTc0YjI2MGEzOGQzMzAxMjQ3NjNjODdiMGI1YTI5YTc0YmIyNmZjOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDA5OjIyOjUyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2lic3MuYyBiL25ldC9tYWM4MDIxMS9pYnNzLmNcbmluZGV4IDk3MjkyZmY1MTQ3NWZkLi42NDQwZmQ5MTVhYTU2YSAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9pYnNzLmNcbisrKyBiL25ldC9tYWM4MDIxMS9pYnNzLmNcbkBAIC04OTUsNiArODk1LDEwIEBAIGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXQoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4gXHRpZiAobWdtdC1cdTAwM2V1LmFjdGlvbi5hY3Rpb25fY29kZSAhPSBXTEFOX0FDVElPTl9TUENUX0NITF9TV0lUQ0gpXG4gXHRcdHJldHVybjtcbiBcbitcdC8qIG9ubHkgYWN0IG9uIGNoYW5uZWwgc3dpdGNoIGZyYW1lcyBjb21pbmcgZnJvbSBvdXIgb3duIElCU1MgKi9cbitcdGlmICghZXRoZXJfYWRkcl9lcXVhbChtZ210LVx1MDAzZWJzc2lkLCBzZGF0YS1cdTAwM2V1Lmlic3MuYnNzaWQpKVxuK1x0XHRyZXR1cm47XG4rXG4gXHRpZiAoIXNkYXRhLVx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlKVxuIFx0XHRpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc2RhdGEsIGVsZW1zLCBmYWxzZSk7XG4gfVxuQEAgLTExMTEsMTQgKzExMTUsMjEgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuIFx0XHRcdFx0c2RhdGEtXHUwMDNldS5pYnNzLnNzaWRfbGVuKSlcbiBcdFx0Z290byBwdXRfYnNzO1xuIFxuLVx0LyogcHJvY2VzcyBjaGFubmVsIHN3aXRjaCAqL1xuLVx0aWYgKHNkYXRhLVx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlIHx8XG4tXHQgICAgaWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgdHJ1ZSkpXG4rXHQvKiBkb24ndCBwcm9jZXNzIGJlYWNvbnMgd2hpbGUgYSBjaGFubmVsIHN3aXRjaCBpcyBpbiBwcm9ncmVzcyAqL1xuK1x0aWYgKHNkYXRhLVx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlKVxuIFx0XHRnb3RvIHB1dF9ic3M7XG4gXG4gXHQvKiBzYW1lIEJTU0lEICovXG4tXHRpZiAoZXRoZXJfYWRkcl9lcXVhbChjYnNzLVx1MDAzZWJzc2lkLCBzZGF0YS1cdTAwM2V1Lmlic3MuYnNzaWQpKVxuK1x0aWYgKGV0aGVyX2FkZHJfZXF1YWwoY2Jzcy1cdTAwM2Vic3NpZCwgc2RhdGEtXHUwMDNldS5pYnNzLmJzc2lkKSkge1xuK1x0XHQvKlxuK1x0XHQgKiBPbmx5IGFjdCBvbiBhIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudCB0aGF0IGNvbWVzIGZyb21cbitcdFx0ICogb3VyIG93biBJQlNTIChpLmUuIG1hdGNoaW5nIEJTU0lEKS4gQWN0aW5nIG9uIGEgQ1NBIGZyb20gYVxuK1x0XHQgKiBmb3JlaWduIEJTU0lEIHRoYXQgbWVyZWx5IHNoYXJlcyBvdXIgU1NJRCB3b3VsZCBsZXQgYW55XG4rXHRcdCAqIHN0YXRpb24gZm9yY2UgdXMgb2ZmLWNoYW5uZWwgb3IgdGVhciB0aGUgY2VsbCBkb3duLlxuK1x0XHQgKi9cbitcdFx0aWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHNkYXRhLCBlbGVtcywgdHJ1ZSk7XG4gXHRcdGdvdG8gcHV0X2JzcztcbitcdH1cbiBcbiBcdC8qIHdlIHVzZSBhIGZpeGVkIEJTU0lEICovXG4gXHRpZiAoc2RhdGEtXHUwMDNldS5pYnNzLmZpeGVkX2Jzc2lkKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDk6MjI6NTUuNTk0MTgwNjA3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM1MzMwNjkyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIG1hYzgwMjExIElCU1MgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L21hYzgwMjExL2lic3MuY2AuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgZnVuY3Rpb25hbGx5IHNwZWFraW5nLiBJdCBzZWVtcyB3ZSdyZSBhZGRpbmcgc29tZSBjcnVjaWFsIGNoZWNrcyB3aXRoaW4gdGhlIElCU1MgY29kZS4gVGhlIGdvYWwgaXMgdG8gbWFrZSBzdXJlIHdlJ3JlIG9ubHkgcmVzcG9uZGluZyB0byBjaGFubmVsIHN3aXRjaCBmcmFtZXMg4oCTIHNwZWNpZmljYWxseSBzcGVjdHJ1bSBtYW5hZ2VtZW50IGFjdGlvbiBmcmFtZXMgYW5kIGFubm91bmNlbWVudHMg4oCTIHRoYXQgb3JpZ2luYXRlIGZyb20gKm91ciogSUJTUy4gVGhlIHBhdGNoIGRvZXMgdGhpcyBieSBtYXRjaGluZyB0aGUgQlNTSUQsIGJvdGggaW4gYGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRgIGFuZCBpbiBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYC5cblxuSXQgYXBwZWFycyB0aGF0IGEga2V5IHBhcnQgb2YgdGhlIHVwZGF0ZSBpcyB0byBhdm9pZCBwcm9jZXNzaW5nIGJlYWNvbnMgZHVyaW5nIGFuIGFjdGl2ZSBjaGFubmVsIHN3aXRjaC4gVGhpcyBtYWtlcyBzZW5zZTsgd2Ugd291bGRuJ3Qgd2FudCB0aG9zZSBpbnRlcnJ1cHRpbmcgdGhlIHByb2Nlc3MuIFRoZSBjb2RlJ3MgY2xlYXJseSBkZXNpZ25lZCB0byBoYW5kbGUgODAyLjExIG1hbmFnZW1lbnQgZnJhbWVzIHdpdGhpbiBhbiBJQlNTIGNvbnRleHQsIHdoaWNoIG1ha2VzIGl0IGltcG9ydGFudCB0byByZXZpZXcgdGhlIGNoYW5nZS5cblxuR2l2ZW4gdGhhdCB0aGlzIGFmZmVjdHMgSUJTUyBtYW5hZ2VtZW50LCBhbmQgaXMgZXhwb3NlZCB0aHJvdWdoIGBtYWM4MDIxMV9od3NpbWAsIEkgbmVlZCB0byBjaGVjayBob3cgaXQgd2lsbCBiZSBlbmFibGVkIGFuZCBpZiBhbnl0aGluZyBpcyBhZmZlY3RlZC5cblxuTm93LCBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGNvbmZpZ3VyYXRpb24uIExldCdzIHN0YXJ0IGJ5IGZpbmRpbmcgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9ucy4gSSBrbm93IGBDT05GSUdfTUFDODAyMTFgIGlzIHRoZSBiaWcgb25lLCBidXQgSSdsbCBuZWVkIHRvIGxvb2sgYXQgYG5ldC9tYWM4MDIxMS9LY29uZmlnYCBvciBzaW1pbGFyIGZpbGVzIHRvIHNlZSB0aGUgZ3JhbnVsYXIgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGlzIHNwZWNpZmljIElCU1MgZnVuY3Rpb25hbGl0eS4gSSBoYXZlIGEgZmVlbGluZyB0aGVyZSBtaWdodCBiZSBhIGZldyBvdGhlciB0aGluZ3MgdGhhdCBuZWVkIHRvIGJlIHJldmlld2VkIHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDksIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzowMC45NDc0OTE2NDVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzU4NDI5NzcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXFxubmV0L21hYzgwMjExL0tjb25maWctMjAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjE6Y29uZmlnIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVxcdGJvb2xcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCIgaWYgRVhQRVJUXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDItXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1MDpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVxcdHN0cmluZ1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNTktXFxubmV0L21hYzgwMjExL0tjb25maWc6NjA6Y29uZmlnIE1BQzgwMjExX0tVTklUX1RFU1RcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cXHR0cmlzdGF0ZSBcXFwiS1VuaXQgdGVzdHMgZm9yIG1hYzgwMjExXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXFxubmV0L21hYzgwMjExL0tjb25maWctODAtXFx0Ym9vbCBcXFwiRW5hYmxlIExFRCB0cmlnZ2Vyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjg4OmNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVxcdGJvb2wgXFxcIlRyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTExLVxcdGJvb2wgXFxcIlNlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE2OmNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cXHRib29sIFxcXCJEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTMxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cXHRib29sIFxcXCJWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTQ6Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cXHRib29sIFxcXCJWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTYyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBIVCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cXHRib29sIFxcXCJWZXJib3NlIElCU1MgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXFx0Ym9vbCBcXFwiVmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjIyOmNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTk6Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5Mzpjb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXFx0Ym9vbCBcXFwiRXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMzA3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXFx0aW50IFxcXCJTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXFxcIiBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA5OjIzOjAxLjMwNTkzMjE5N1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MzA5ODMzMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBtYWM4MDIxMSBJQlNTIFBhdGNoKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIEl0IGxvb2tzIGxpa2UgdGhlIGNoYW5nZXMgYXJlIGZvY3VzZWQgd2l0aGluIGBuZXQvbWFjODAyMTEvaWJzcy5jYC4gTXkgZmlyc3QgbW92ZSBpcyBhbHdheXMgdG8gaWRlbnRpZnkgdGhlIHNwZWNpZmljIGZ1bmN0aW9ucyB0aGF0IGFyZSBiZWluZyB0b3VjaGVkLiBJIHNlZSBgaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdGAgYW5kIGBpZWVlODAyMTFfcnhfYnNzX2luZm9gIGxpc3RlZC4gVGhhdCBnaXZlcyBtZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQg4oCTIHNvbWV0aGluZyByZWxhdGVkIHRvIG1hbmFnZW1lbnQgZnJhbWUgcmVjZXB0aW9uIGFuZCBCU1MgaW5mb3JtYXRpb24uXG5cbk5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgdGhpcyBwYXRjaCBoYXMgYW55IHNwZWNpYWwgY29uc2lkZXJhdGlvbnMgZm9yIElCU1Mgc3BlY2lmaWNhbGx5LiBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGUgY29uZmlncy4gQWgsIEkgc2VlIGBNQUM4MDIxMV9JQlNTX0RFQlVHYCAtIGJ1dCBJIHJlbWVtYmVyIHRoYXQncyBtYWlubHkgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4gU28sIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gaW4gcGxheSBoZXJlIGlzIHRoZSBnZW5lcmFsIGBNQUM4MDIxMWAgb3B0aW9uLCBub3RoaW5nIElCU1Mtc3BlY2lmaWMgcmVhbGx5LlxuXG5Pa2F5LCBsYXN0IHN0ZXAgZm9yIG5vdzogSSdtIGdvaW5nIHRvIHNjYW4gdGhlIGNvZGUgd2l0aGluIGBuZXQvbWFjODAyMTEvaWJzcy5jYCBmb3IgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIChgI2lmZGVmYCkgdGhhdCBtaWdodCBiZSBzdXJyb3VuZGluZyB0aGVzZSBtb2RpZmllZCBmdW5jdGlvbnMuIFRoYXQgd2lsbCB0ZWxsIG1lIGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMgY29tcGlsYXRpb24gcGF0aHMgdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcsIG9yIGlmIGl0IGlzIGFmZmVjdGluZyB0aGUgZGVmYXVsdCBiZWhhdmlvci4gSSdtIGxvb2tpbmcgZm9yIGFueSBjbHVlcyB0aGF0IGNvdWxkIHRlbGwgbWUgd2hhdCB0aGlzIHBhdGNoIHJlYWxseSBkb2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDkzLCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA5OjIzOjA2LjEzNjkyMDA0N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzgxMTMyNzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvaWJzcy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9pYnNzLmM9ODg1PXN0YXRpYyB2b2lkXFxubmV0L21hYzgwMjExL2lic3MuYzo4ODY6aWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTg4Ny1cXHRcXHRcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQsIHNpemVfdCBsZW4sXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jPTE1ODU9dm9pZCBpZWVlODAyMTFfaWJzc19yeF9xdWV1ZWRfbWdtdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtMTYzMi1cXHRcXHRcXHRpZiAoZWxlbXMgXFx1MDAyNlxcdTAwMjYgIWVsZW1zLVxcdTAwM2VwYXJzZV9lcnJvcilcXG5uZXQvbWFjODAyMTEvaWJzcy5jOjE2MzM6XFx0XFx0XFx0XFx0aWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzZGF0YSwgbWdtdCxcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTE2MzQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0c2tiLVxcdTAwM2VsZW4sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDA5OjIzOjA2LjI3NTA0MDQ1NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2NzQ3ODkwNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIHRoZSBtYXR0ZXI6XG5cbioqQW5hbHl6aW5nIGBpZWVlODAyMTFfcnhfYnNzX2luZm9gIGluIGBuZXQvbWFjODAyMTEvaWJzcy5jYCoqXG5cbkFscmlnaHQsIHNvIHRoZSBmaXJzdCB0aGluZyBJIHdhbnQgdG8gZG8gaXMgbmF2aWdhdGUgdG8gdGhlIGBuZXQvbWFjODAyMTEvaWJzcy5jYCBmaWxlLiBUaGlzIGxvb2tzIGxpa2UgdGhlIHBsYWNlIHRvIGJlLCBnaXZlbiB0aGUgZnVuY3Rpb24gbmFtZS4gSSdtIGZvY3VzaW5nIHNwZWNpZmljYWxseSBvbiBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYC4gV2h5PyBXZWxsLCB0aGUgQlNTIGluZm9ybWF0aW9uIGlzIGNyaXRpY2FsIGluIGFuIElCU1MgZW52aXJvbm1lbnQgYmVjYXVzZSBpdCdzIHVzZWQgZm9yIGFzc29jaWF0aW9uLCByZWFzc29jaWF0aW9uLCBhbmQgZ2VuZXJhbGx5IG1haW50YWluaW5nIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIG5vZGVzLiBGcm9tIG15IGV4cGVyaWVuY2Ugd2l0aCB0aGUgODAyLjExIHN0YW5kYXJkcywgSSB3b3VsZCBoYXphcmQgYSBndWVzcyB0aGlzIGlzIGEgaGFuZGxlciBmb3IgQlNTIGluZm9ybWF0aW9uIGluIHRoZSByZWNlaXZlIHBhdGguIEkgZXhwZWN0IHRoZSBjb2RlIGhlcmUgdG8gYmUgY2hlY2tpbmcgZmllbGRzIGluIGJlYWNvbnMgYW5kIHByb2JlIHJlc3BvbnNlcywgdmVyaWZ5aW5nIGNhcGFiaWxpdGllcywgYW5kIHBvdGVudGlhbGx5IG1hbmFnaW5nIGFzc29jaWF0aW9uIHN0YXRlLiBJJ20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGhvdyBpdCdzIGhhbmRsaW5nIHRoZSBkZXRhaWxzIG9mIElCU1Mgc3BlY2lmaWMgZWxlbWVudHMgb3IgZmxhZ3MsIGdpdmVuIHRoZSBsb2NhdGlvbiBvZiB0aGUgc291cmNlIGZpbGUuIEkgbmVlZCB0byBiZSBzdXJlIHRoaXMgZnVuY3Rpb24gaXMgcHJvcGVybHkgaGFuZGxpbmcgdmFyaW91cyBjb3JuZXIgY2FzZXMsIHBlcmhhcHMgZXZlbiBzb21lIG9ic2N1cmUgb3IgaW5mcmVxdWVudGx5IHVzZWQgQlNTIGVsZW1lbnRzLiBUaGF0J3Mgd2hlcmUgSSB3aWxsIGJlZ2luIG15IGFuYWx5c2lzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODY3LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDk6MjM6MDkuOTQ5ODMyODhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM3ODQxNzEyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV9yeF9ic3NfaW5mb1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvaWJzcy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9pYnNzLmM9OTUxPXN0YXRpYyB2b2lkIGllZWU4MDIxMV91cGRhdGVfc3RhX2luZm8oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jLTEwNzItXFxubmV0L21hYzgwMjExL2lic3MuYzoxMDczOnN0YXRpYyB2b2lkIGllZWU4MDIxMV9yeF9ic3NfaW5mbyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTEwNzQtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQsIHNpemVfdCBsZW4sXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jPTE1NTY9dm9pZCBpZWVlODAyMTFfcnhfbWdtdF9wcm9iZV9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jLTE1NzktXFx0aWYgKGVsZW1zKSB7XFxubmV0L21hYzgwMjExL2lic3MuYzoxNTgwOlxcdFxcdGllZWU4MDIxMV9yeF9ic3NfaW5mbyhzZGF0YSwgbWdtdCwgbGVuLCByeF9zdGF0dXMsIGVsZW1zKTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTE1ODEtXFx0XFx0a2ZyZWUoZWxlbXMpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzoxMC4yODc2ODI0MDNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDEwNzUxNjY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSUJTUyBNYW5hZ2VtZW50IEZyYW1lIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQncyBtb2RpZnlpbmcgdGhlIGBpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210YCBhbmQgYGllZWU4MDIxMV9yeF9ic3NfaW5mb2AgZnVuY3Rpb25zLiBIbW0sIHRob3NlIGFyZSBkZWZpbml0ZWx5IGZ1bmN0aW9ucyBjYWxsZWQgd2hlbiB3ZSdyZSBkZWFsaW5nIHdpdGggbWFuYWdlbWVudCBmcmFtZXMgaW4gYW4gSUJTUyAoYWQtaG9jKSBuZXR3b3JrLiBUaGF0IG1ha2VzIHNlbnNlLCBnaXZlbiB0aGUgY29udGV4dC4gQW5kLCBiYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBzeXN0ZW0sIHRoaXMgaXMgYWJzb2x1dGVseSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgdGhyb3VnaCBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBpcyB0aGUgY29ycmVjdCBhcHByb2FjaCB0byB0ZXN0aW5nIHRoZXNlIHNvcnRzIG9mIGNoYW5nZXMuIFRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGlzIGBNQUM4MDIxMWAsIEkgY2FuIHZlcmlmeSB0aGF0IGVhc2lseS5cblxuTm93LCBJIG5lZWQgdG8gY2hlY2sgZm9yIG90aGVyIGNvbmZpZyBkZXBlbmRlbmNpZXMuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgdXNlcyBgc2RhdGEtXHUwMDNldmlmLmJzc19jb25mLmNzYV9hY3RpdmVgIGFuZCBgaWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoYC4gTGV0J3MgZGlnIGludG8gYGllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaGAgYW5kIHNlZSBpZiAqaXQqIGhhcyBhbnkgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIFRoYXQnbGwgYmUgY3JpdGljYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgZnVsbCBzY29wZSBvZiB0aGlzIGNoYW5nZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjU2MywiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzoxNS42OTg0Mzc0M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk5NzgxOTIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvaWJzcy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9pYnNzLmM9NzQzPXN0YXRpYyBib29sXFxubmV0L21hYzgwMjExL2lic3MuYzo3NDQ6aWVlZTgwMjExX2lic3NfcHJvY2Vzc19jaGFuc3dpdGNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtNzQ1LVxcdFxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDJfMTFfZWxlbXMgKmVsZW1zLFxcbi0tXFxubmV0L21hYzgwMjExL2lic3MuYz04ODY9aWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pYnNzLmMtOTAyLVxcdGlmICghc2RhdGEtXFx1MDAzZXZpZi5ic3NfY29uZi5jc2FfYWN0aXZlKVxcbm5ldC9tYWM4MDIxMS9pYnNzLmM6OTAzOlxcdFxcdGllZWU4MDIxMV9pYnNzX3Byb2Nlc3NfY2hhbnN3aXRjaChzZGF0YSwgZWxlbXMsIGZhbHNlKTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTkwNC19XFxuLS1cXG5uZXQvbWFjODAyMTEvaWJzcy5jPTEwNzM9c3RhdGljIHZvaWQgaWVlZTgwMjExX3J4X2Jzc19pbmZvKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL2lic3MuYy0xMTI5LVxcdFxcdCAqL1xcbm5ldC9tYWM4MDIxMS9pYnNzLmM6MTEzMDpcXHRcXHRpZWVlODAyMTFfaWJzc19wcm9jZXNzX2NoYW5zd2l0Y2goc2RhdGEsIGVsZW1zLCB0cnVlKTtcXG5uZXQvbWFjODAyMTEvaWJzcy5jLTExMzEtXFx0XFx0Z290byBwdXRfYnNzO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzoxNS45OTgyMjYyODNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQ4MDEzODU4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3Mgc2VlIHdoYXQgd2UndmUgZ290IGhlcmUuXG5cbioqQW5hbHl6aW5nIElCU1MgQ29uZmlndXJhdGlvbiB3aXRoaW4gdGhlIG1hYzgwMjExIEZyYW1ld29yayoqXG5cblJpZ2h0LCBzbyB3ZSdyZSBkZWFsaW5nIHdpdGggSUJTUyBhbmQsIGFzIGZhciBhcyBJIGNhbiB0ZWxsLCB0aGUgc3RhcnRpbmcgcG9pbnQgaXMganVzdCB0aGUgZ2VuZXJhbCBgTUFDODAyMTFgIGNvbmZpZy4gTm8gZGlyZWN0LCBleHBsaWNpdCBJQlNTLXNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGFyZSBpbW1lZGlhdGVseSBqdW1waW5nIG91dCBhdCBtZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIk9rYXksIGxldCdzIGNvbmZpcm0gdGhhdC5cIiBJJ2xsIHF1aWNrbHkgY2hlY2sgZm9yIGEgZGVkaWNhdGVkIGBDT05GSUdfTUFDODAyMTFfSUJTU2Agb3B0aW9uLiBOb3BlLCB0aGF0J3Mgbm90IHByZXNlbnQuIEludGVyZXN0aW5nLiBJdCBzdWdnZXN0cyBJQlNTIHN1cHBvcnQgaXMgbGlrZWx5IGludGVyd292ZW4gd2l0aGluIHRoZSBjb3JlIGBtYWM4MDIxMWAgY29uZmlndXJhdGlvbiwgd2hpY2ggaXNuJ3QgdW51c3VhbC5cblxuTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIElCU1MgY29kZSBpcyBicm91Z2h0IGludG8gdGhlIGJ1aWxkLiBUaGF0IG1lYW5zIGRlbHZpbmcgaW50byB0aGUgYnVpbGQgc3lzdGVtIGl0c2VsZi4gTGV0J3MgbG9vayBhdCB0aGUgYG5ldC9tYWM4MDIxMS9NYWtlZmlsZWAuIEknbGwgd2FudCB0byBzZWUgaWYgdGhlIGNvbXBpbGF0aW9uIG9mIHRoZSBgaWJzcy5jYCBmaWxlIOKAkyBvciByZWxhdGVkIElCU1MgbW9kdWxlcyDigJMgaXMgY29uZGl0aW9uYWwgaW4gYW55IHdheS4gQXJlIHRoZXJlIGFueSBzcGVjaWZpYyBmbGFncyBvciBkZXBlbmRlbmNpZXMgdGhhdCBjb250cm9sIGl0cyBpbmNsdXNpb24/IFRoYXQncyB3aGVyZSB0aGUgcmVhbCBhbnN3ZXIgbGllcy4gSSBuZWVkIHRvIHRyYWNlIHRoZSBidWlsZCBydWxlcyB0byBzZWUgaWYgd2UgaGF2ZSBJQlNTIHN1cHBvcnQgY29tcGlsZWQgaW50byB0aGUga2VybmVsLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDY0LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDk6MjM6MjEuNDc4MzY3MTg4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTkyNzA2NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWJzcy5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvTWFrZWZpbGU9NT1tYWM4MDIxMS15IDo9IFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0xNi1cXHRzMWcubyBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjE3OlxcdGlic3MubyBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTE4LVxcdGlmYWNlLm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzoyMS41OTc2NDQwMDVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODE1OTIyNTUzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBNQUM4MDIxMSBJQlNTIEZyYW1lIEhhbmRsaW5nKipcblxuT2theSwgc28gdGhpcyBpcyBwYXJ0IG9mIGBtYWM4MDIxMS15YCwgbWVhbmluZyBpdCdzIHVuY29uZGl0aW9uYWxseSBjb21waWxlZCwgd2hpY2ggaXMgZ29vZC4gVGhhdCBzaW1wbGlmaWVzIHRoZSBjb25maWcgcmVxdWlyZW1lbnRzOyBpdCBsb29rcyBsaWtlIGBNQUM4MDIxMWAgaXMgdGhlIGtleS4gTm8gbmVlZCB0byB3b3JyeSBhYm91dCBhZGRpdGlvbmFsIGNvbmZpZyBvcHRpb25zLCBpdCBzZWVtcy5cblxuVGhlIHJlYWwgZm9jdXMgaGVyZSBpcyBvbiB0aGUgZnVuY3Rpb25zIGBpZWVlODAyMTFfcnhfbWdtdF9zcGVjdHJ1bV9tZ210YCBhbmQgYGllZWU4MDIxMV9yeF9ic3NfaW5mb2AuIEluaXRpYWxseSwgSSBjb25zaWRlcmVkIHRoYXQgcGVyaGFwcyB0aGVzZSBmdW5jdGlvbnMgd2VyZSBjb25zaWRlcmVkIFwiaG90LXBhdGhcIiBmdW5jdGlvbnMuIEhvd2V2ZXIsIHRoZXkncmUgbm90IHRoZSBzdXBlciBjcml0aWNhbCBkYXRhLWZyYW1lIHByb2Nlc3NpbmcgZnVuY3Rpb25zIGxpa2UgYG1hYzgwMjExX3J4YCBvciBgbWFjODAyMTFfdHhgLiBUaGV5J3JlIHNwZWNpZmljYWxseSB0aWVkIHRvIG1hbmFnZW1lbnQgZnJhbWVzLCBzcGVjaWZpY2FsbHkgaW4gdGhlIElCU1MgY29udGV4dC5cblxuSSBuZWVkIHRvIGNvbmZpcm0gaWYgYGllZWU4MDIxMV9yeF9ic3NfaW5mb2AgaXMgYWN0dWFsbHkgaW52b2tlZCBmcmVxdWVudGx5LiBJdCdzIGNhbGxlZCBmb3IgZXZlcnkgYmVhY29uIHJlY2VpdmVkIGluIElCU1MgbW9kZSwgd2hpY2ggaXMgcm91Z2hseSBldmVyeSB+MTAwbXMuIFRoYXQncyBmcmVxdWVudCBlbm91Z2ggdG8gd2FycmFudCBhdHRlbnRpb24sIGJ1dCBub3QgYXMgZnJlcXVlbnQgYXMgZGF0YSBmcmFtZXMuIFRoYXQgc2FpZCwgaXQncyBzdGlsbCBhIGdvb2QgY2FuZGlkYXRlLiBgaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdGAsIG9uIHRoZSBvdGhlciBoYW5kLCBkZWFscyB3aXRoIHNwZWN0cnVtIG1hbmFnZW1lbnQgYWN0aW9uIGZyYW1lcy4gVGhhdCdzIGRlZmluaXRlbHkgbm90IGhvdC1wYXRoLlxuXG5MZXQncyBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgZGVwZW5kZW5jaWVzLiBEb2VzIHRoaXMgcmVseSBvbiBhbnkgb3RoZXIgY29uZmlncyBsaWtlIGBDRkc4MDIxMWA/IEFoLCBgTUFDODAyMTFgIGRlcGVuZHMgb24gYENGRzgwMjExYCwgc28gYE1BQzgwMjExYCBpcyBzdWZmaWNpZW50LlxuXG5JbiBzdW1tYXJ5LCBoZXJlJ3Mgd2hhdCBJJ3ZlIGdvdDpcblxuKiAgICoqV29ydGhGdXp6aW5nOioqIFRydWUgLSBUaGlzIGlzIGRlZmluaXRlbHkgYSBzcG90IHdvcnRoIGZ1enppbmcgZ2l2ZW4gaXQgaXMgY3JpdGljYWwgY29yZSBrZXJuZWwgbG9naWMuXG4qICAgKipGb2N1c1N5bWJvbHM6KiogYGllZWU4MDIxMV9yeF9tZ210X3NwZWN0cnVtX21nbXRgLCBgaWVlZTgwMjExX3J4X2Jzc19pbmZvYCAtIFRoZXNlIGFyZSB0aGUgc3BlY2lmaWMgZnVuY3Rpb25zIHRvIHRhcmdldC5cbiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYE1BQzgwMjExYCAtIFRoaXMgY29uZmlnIGVuc3VyZXMgdGhlIG5lY2Vzc2FyeSBjb2RlIGlzIGluY2x1ZGVkLlxuKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCBpcyBtb2RpZnlpbmcgSUJTUyBtb2RlIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudCBwcm9jZXNzaW5nLiBJdCdzIGNvcmUga2VybmVsIGxvZ2ljLCBhbmQgZnV6emluZyBpdCBpcyBtYWRlIGVhc2llciBiZWNhdXNlIGl0J3MgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsaXplZCBoYXJkd2FyZSAobWFjODAyMTFfaHdzaW0pLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTYzLCJPdXRwdXRUb2tlbnMiOjExNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwOToyMzoyOS43NTY4NzI1NDlaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDI4NjkzODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdFwiLFxuICAgIFwiaWVlZTgwMjExX3J4X2Jzc19pbmZvXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBwcm9jZXNzaW5nIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudHMgaW4gbWFjODAyMTEgSUJTUyBtb2RlLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsaXplZCBoYXJkd2FyZSAobWFjODAyMTFfaHdzaW0pLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3J4X21nbXRfc3BlY3RydW1fbWdtdFwiLFxuICAgIFwiaWVlZTgwMjExX3J4X2Jzc19pbmZvXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBwcm9jZXNzaW5nIGNoYW5uZWwgc3dpdGNoIGFubm91bmNlbWVudHMgaW4gbWFjODAyMTEgSUJTUyBtb2RlLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsaXplZCBoYXJkd2FyZSAobWFjODAyMTFfaHdzaW0pLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflows7q6d[1] Phase: Succeeded StartedAt: 2026-06-23 09:25:29 +0000 UTC FinishedAt: 2026-06-23 09:25:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-23 09:25:29 +0000 UTC FinishedAt: 2026-06-23 09:25:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2] Phase: Succeeded StartedAt: 2026-06-23 09:25:29 +0000 UTC FinishedAt: 2026-06-23 13:22:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-23 09:25:29 +0000 UTC FinishedAt: 2026-06-23 13:22:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-23 09:25:29 +0000 UTC FinishedAt: 2026-06-23 09:26:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-23 09:25:29 +0000 UTC FinishedAt: 2026-06-23 09:25:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflows7q6d/series-workflows7q6d-convert-artifact-2479007614/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-23 09:26:01 +0000 UTC FinishedAt: 2026-06-23 09:49:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-23 09:26:01 +0000 UTC FinishedAt: 2026-06-23 09:49:54 +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:*a18b4e71-6825-4643-93e6-d7cbf767522b,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-workflows7q6d/series-workflows7q6d-convert-artifact-2479007614/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": "b12938b7-28cb-4ef5-9c6f-74d54a936a6c", "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-workflows7q6d/series-workflows7q6d-build-action-1748078436/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-23 09:26:01 +0000 UTC FinishedAt: 2026-06-23 09:49:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*a18b4e71-6825-4643-93e6-d7cbf767522b,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-workflows7q6d/series-workflows7q6d-convert-artifact-2479007614/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": "b12938b7-28cb-4ef5-9c6f-74d54a936a6c", "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-workflows7q6d/series-workflows7q6d-build-action-1748078436/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-23 09:49:54 +0000 UTC FinishedAt: 2026-06-23 09:49:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-23 09:49:54 +0000 UTC FinishedAt: 2026-06-23 09:49:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-23 09:49:54 +0000 UTC FinishedAt: 2026-06-23 09:50:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-23 09:49:54 +0000 UTC FinishedAt: 2026-06-23 09:50:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflows7q6d/series-workflows7q6d-convert-artifact-609476017/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-23 09:50:07 +0000 UTC FinishedAt: 2026-06-23 09:51:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-23 09:50:07 +0000 UTC FinishedAt: 2026-06-23 09:51:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b12938b7-28cb-4ef5-9c6f-74d54a936a6c,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-workflows7q6d/series-workflows7q6d-build-action-1748078436/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-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-23 09:51:55 +0000 UTC FinishedAt: 2026-06-23 09:51:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-23 09:51:55 +0000 UTC FinishedAt: 2026-06-23 09:51:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-23 09:51:55 +0000 UTC FinishedAt: 2026-06-23 10:18:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-23 09:51:55 +0000 UTC FinishedAt: 2026-06-23 10:18:01 +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:*a18b4e71-6825-4643-93e6-d7cbf767522b,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-workflows7q6d/series-workflows7q6d-convert-artifact-609476017/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": "2fee087c-0ac7-4ed1-857a-c9119e198d22", "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-workflows7q6d/series-workflows7q6d-build-action-2744589181/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-23 09:51:55 +0000 UTC FinishedAt: 2026-06-23 10:17:09 +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:*a18b4e71-6825-4643-93e6-d7cbf767522b,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-workflows7q6d/series-workflows7q6d-convert-artifact-609476017/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": "2fee087c-0ac7-4ed1-857a-c9119e198d22", "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-workflows7q6d/series-workflows7q6d-build-action-2744589181/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-23 10:18:01 +0000 UTC FinishedAt: 2026-06-23 10:18:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-23 10:18:01 +0000 UTC FinishedAt: 2026-06-23 10:18:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-23 10:18:01 +0000 UTC FinishedAt: 2026-06-23 10:20:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-23 10:18:01 +0000 UTC FinishedAt: 2026-06-23 10:19:53 +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:*2fee087c-0ac7-4ed1-857a-c9119e198d22,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-workflows7q6d/series-workflows7q6d-build-action-2744589181/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-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-23 10:20:03 +0000 UTC FinishedAt: 2026-06-23 13:22:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-23 10:20:03 +0000 UTC FinishedAt: 2026-06-23 13:22:19 +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":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"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:*b12938b7-28cb-4ef5-9c6f-74d54a936a6c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2fee087c-0ac7-4ed1-857a-c9119e198d22,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-workflows7q6d/series-workflows7q6d-build-action-1748078436/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-workflows7q6d/series-workflows7q6d-build-action-2744589181/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-23 10:20:03 +0000 UTC FinishedAt: 2026-06-23 10:21:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-23 10:20:03 +0000 UTC FinishedAt: 2026-06-23 10:20:49 +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":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"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-workflows7q6d/series-workflows7q6d-convert-artifact-2465632614/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-23 10:20:03 +0000 UTC FinishedAt: 2026-06-23 10:20:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-23 10:20:03 +0000 UTC FinishedAt: 2026-06-23 10:20:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-23 10:20:03 +0000 UTC FinishedAt: 2026-06-23 10:20:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-23 10:21:02 +0000 UTC FinishedAt: 2026-06-23 13:22:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7q6d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_rx_mgmt_spectrum_mgmt","ieee80211_rx_bss_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"803d09a554055aba160a62abd1e4b1260b899dc1","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"8fe2d2b0-6721-4f67-943d-75f3a97e3f1e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-23 10:21:02 +0000 UTC FinishedAt: 2026-06-23 13:22:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b12938b7-28cb-4ef5-9c6f-74d54a936a6c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2fee087c-0ac7-4ed1-857a-c9119e198d22,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-workflows7q6d/series-workflows7q6d-build-action-1748078436/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-workflows7q6d/series-workflows7q6d-build-action-2744589181/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-workflows7q6d/series-workflows7q6d-convert-artifact-2465632614/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,}