Name: series-workflow99svx Phase: Succeeded StartedAt: 2026-07-13 11:25:30 +0000 UTC FinishedAt: 2026-07-13 13:50:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[0] Phase: Succeeded StartedAt: 2026-07-13 11:25:30 +0000 UTC FinishedAt: 2026-07-13 11:47:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[0].run-triage Phase: Succeeded StartedAt: 2026-07-13 11:25:30 +0000 UTC FinishedAt: 2026-07-13 11:47:39 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "ddbddbf8aee54bee038149187270c93a45478473", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MLX5_CORE", "MLX5_CORE_EN", "MLX5_ESWITCH", "MLX5_SW_STEERING", "MLX5_HW_STEERING" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "ddbddbf8aee54bee038149187270c93a45478473", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MLX5_CORE", "MLX5_CORE_EN", "MLX5_ESWITCH", "MLX5_SW_STEERING", "MLX5_HW_STEERING" ], "series_id": "ff2152f5-864c-4d11-a1d4-b963ddafca46" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mlx5_add_flow_rules", "mlx5hws_cmd_query_caps", "mlx5dr_fw_create_md_tbl" ], "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+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+N208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01MWDVfQ09SRSYjMzQ7LAogICAgJiMzNDtNTFg1X0NPUkVfRU4mIzM0OywKICAgICYjMzQ7TUxYNV9FU1dJVENIJiMzNDssCiAgICAmIzM0O01MWDVfU1dfU1RFRVJJTkcmIzM0OywKICAgICYjMzQ7TUxYNV9IV19TVEVFUklORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21seDVfYWRkX2Zsb3dfcnVsZXMmIzM0OywKICAgICYjMzQ7bWx4NWh3c19jbWRfcXVlcnlfY2FwcyYjMzQ7LAogICAgJiMzNDttbHg1ZHJfZndfY3JlYXRlX21kX3RibCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCB1c2VkIGluIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNybywgd2hpY2ggYWZmZWN0cyB0aGUgc2l6ZSBvZiBgZnNfZnRlYCBhbmQgYG1seDVfZmxvd19ncm91cF9tYXNrYCBzdHJ1Y3RzIGFuZCB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gYGNoZWNrX3ZhbGlkX3NwZWNgLiBJdCBhbHNvIG1vZGlmaWVzIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCB0byByZWFkIGZyb20gYGVfc3dpdGNoX2NhcGAgaW5zdGVhZCBvZiBgZXN3X2NhcGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG1seDUgZHJpdmVyJiMzOTtzIGZsb3cgc3RlZXJpbmcgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwMmJkZmViOWM0ZTg1MzIzNzFiNzVlN2NjMDU4NzMyMzI2MzI4OTRjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMTMgMTE6Mzk6NDYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbmluZGV4IGRiYWYzM2I1MzdmNzExLi45MDY1ODQzNDVhMDIyZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbkBAIC0yMTQsMTcgJiM0MzsyMTQsNyBAQCBzdHJ1Y3QgbWx4NV9mdF91bmRlcmxheV9xcCB7XG4gXHR1MzIgcXBuO1xuIH07XG4gXG4tI2RlZmluZSBNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRFx0cmVzZXJ2ZWRfYXRfZTAwXG4tLyogQ2FsY3VsYXRlIHRoZSBmdGVfbWF0Y2hfcGFyYW0gbGVuZ3RoIGFuZCB3aXRob3V0IHRoZSByZXNlcnZlZCBsZW5ndGguXG4tICogTWFrZSBzdXJlIHRoZSByZXNlcnZlZCBmaWVsZCBpcyB0aGUgbGFzdC5cbi0gKi9cbi0jZGVmaW5lIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1cdFx0XHRcdFx0ICAgIFxcXG4tXHQoKE1MWDVfQllURV9PRkYoZnRlX21hdGNoX3BhcmFtLCBNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRCkgLyBzaXplb2YodTMyKSkgJiM0MzsgXFxcbi1cdCBCVUlMRF9CVUdfT05fWkVSTyhNTFg1X1NUX1NaX0JZVEVTKGZ0ZV9tYXRjaF9wYXJhbSkgIT1cdFx0ICAgICBcXFxuLVx0XHRcdCAgIE1MWDVfRkxEX1NaX0JZVEVTKGZ0ZV9tYXRjaF9wYXJhbSxcdFx0ICAgICBcXFxuLVx0XHRcdFx0XHQgICAgIE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSAmIzQzO1xcXG4tXHRcdFx0ICAgTUxYNV9CWVRFX09GRihmdGVfbWF0Y2hfcGFyYW0sXHRcdCAgICAgXFxcbi1cdFx0XHRcdFx0IE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSkpXG4mIzQzOyNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTSBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlcbiBcbiBzdHJ1Y3QgZnNfZnRlX2FjdGlvbiB7XG4gXHRpbnRcdFx0XHRcdG1vZGlmeV9tYXNrO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jXG5pbmRleCBlNjI0ZjVkYTk2YzgxYi4uOGZhZTkwMTAxNjUzZjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jXG5AQCAtMTE3MiwxMyAmIzQzOzExNzIsMTMgQEAgaW50IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXG4gXHRcdH1cbiBcbiBcdFx0aWYgKE1MWDVfR0VUKHF1ZXJ5X2hjYV9jYXBfb3V0LCBvdXQsXG4tXHRcdFx0ICAgICBjYXBhYmlsaXR5LmVzd19jYXAuZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkKSlcbiYjNDM7XHRcdFx0ICAgICBjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWQpKVxuIFx0XHRcdGNhcHMtXHUwMDNlZXN3aXRjaF9tYW5hZ2VyX3Zwb3J0X251bWJlciA9XG4gXHRcdFx0XHRNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxuLVx0XHRcdFx0XHQgY2FwYWJpbGl0eS5lc3dfY2FwLmVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcik7XG4mIzQzO1x0XHRcdFx0XHQgY2FwYWJpbGl0eS5lX3N3aXRjaF9jYXAuZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyKTtcbiBcbiBcdFx0Y2Fwcy1cdTAwM2VtZXJnZWRfZXN3aXRjaCA9IE1MWDVfR0VUKHF1ZXJ5X2hjYV9jYXBfb3V0LCBvdXQsXG4tXHRcdFx0XHRcdFx0Y2FwYWJpbGl0eS5lc3dfY2FwLm1lcmdlZF9lc3dpdGNoKTtcbiYjNDM7XHRcdFx0XHRcdFx0Y2FwYWJpbGl0eS5lX3N3aXRjaF9jYXAubWVyZ2VkX2Vzd2l0Y2gpO1xuIFx0fVxuIFxuIFx0cmV0ID0gbWx4NV9jbWRfZXhlYyhtZGV2LCBpbiwgc2l6ZW9mKGluKSwgb3V0LCBvdXRfc2l6ZSk7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oIGIvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oXG5pbmRleCAwN2EyNWYyNjQyOTIxMy4uOGNiMzIxYTlmYjNkMWQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaFxuQEAgLTExNzEsNiAmIzQzOzExNzEsNyBAQCBlbnVtIHtcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzNcdD0gMSBcdTAwM2NcdTAwM2MgNCxcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzRcdD0gMSBcdTAwM2NcdTAwM2MgNSxcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzVcdD0gMSBcdTAwM2NcdTAwM2MgNixcbiYjNDM7XHRNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU182XHQ9IDEgXHUwMDNjXHUwMDNjIDcsXG4gfTtcbiBcbiBlbnVtIHtcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oXG5pbmRleCA0ZjU5YjdlOGEzZDVkNi4uY2YwMTkyMmNmNjlmZGIgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhcbkBAIC01MDgsNyAmIzQzOzUwOCw4IEBAIHN0cnVjdCBtbHg1X2lmY19mbG93X3RhYmxlX3Byb3BfbGF5b3V0X2JpdHMge1xuIFx0dTggICAgICAgICByZWZvcm1hdF9sMl90b19sM19hdWRwX3R1bm5lbFsweDFdO1xuIFx0dTggICAgICAgICByZWZvcm1hdF9sM19hdWRwX3R1bm5lbF90b19sMlsweDFdO1xuIFx0dTggICAgICAgICBpZ25vcmVfZmxvd19sZXZlbF9ydGNfdmFsaWRbMHgxXTtcbi1cdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNzBbMHg4XTtcbiYjNDM7XHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzcwWzB4N107XG4mIzQzO1x0dTggICAgICAgICByZWZvcm1hdF9kZWxfcHNwX3RyYW5zcG9ydFsweDFdO1xuIFx0dTggICAgICAgICBsb2dfbWF4X2Z0X251bVsweDhdO1xuIFxuIFx0dTggICAgICAgICByZXNlcnZlZF9hdF84MFsweDEwXTtcbkBAIC03OTgsNiAmIzQzOzc5OSwxNSBAQCBzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNV9iaXRzIHtcbiBcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMTAwWzB4MTAwXTtcbiB9O1xuIFxuJiM0MztzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNl9iaXRzIHtcbiYjNDM7XHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzBbMHgxYV07XG4mIzQzO1x0dTggICAgICAgICBwc3BfdmVyc2lvblsweDRdO1xuJiM0MztcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWVbMHgyXTtcbiYjNDM7XG4mIzQzO1x0dTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDFlMF07XG4mIzQzO307XG4mIzQzO1xuJiM0MztcbiBzdHJ1Y3QgbWx4NV9pZmNfY21kX3Bhc19iaXRzIHtcbiBcdHU4ICAgICAgICAgcGFfaFsweDIwXTtcbiBcbkBAIC0xMDQyLDIwICYjNDM7MTA1Miw2IEBAIHN0cnVjdCBtbHg1X2lmY193cWVfYmFzZWRfZmxvd190YWJsZV9jYXBfYml0cyB7XG4gXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzFjMVsweDFmXTtcbiB9O1xuIFxuLXN0cnVjdCBtbHg1X2lmY19lc3dfY2FwX2JpdHMge1xuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8wWzB4MWRdO1xuLVx0dTggICAgICAgICBtZXJnZWRfZXN3aXRjaFsweDFdO1xuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8xZVsweDJdO1xuLVxuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDQwXTtcbi1cbi1cdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XG4tXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07XG4tXHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlclsweDEwXTtcbi1cbi1cdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfODBbMHg3ODBdO1xuLX07XG4tXG4gZW51bSB7XG4gXHRNTFg1X0NPVU5URVJfU09VUkNFX0VTV0lUQ0ggPSAweDAsXG4gXHRNTFg1X0NPVU5URVJfRkxPV19FU1dJVENIICAgPSAweDEsXG5AQCAtMTA5Niw3ICYjNDM7MTA5MiwxMSBAQCBzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMge1xuIFx0dTggICAgICAgICBsb2dfbWF4X2Vzd19zZlsweDVdO1xuIFx0dTggICAgICAgICBlc3dfc2ZfYmFzZV9pZFsweDEwXTtcbiBcbi1cdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNjBbMHg3YTBdO1xuJiM0MztcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XG4mIzQzO1x0dTggICAgICAgICByZXNlcnZlZF9hdF82MVsweGZdO1xuJiM0MztcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyWzB4MTBdO1xuJiM0MztcbiYjNDM7XHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzgwWzB4NzgwXTtcbiBcbiB9O1xuIFxuQEAgLTIzNDksNyAmIzQzOzIzNDksNyBAQCBzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3BhcmFtX2JpdHMge1xuIFxuIFx0c3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzVfYml0cyBtaXNjX3BhcmFtZXRlcnNfNTtcbiBcbi1cdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfZTAwWzB4MjAwXTtcbiYjNDM7XHRzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNl9iaXRzIG1pc2NfcGFyYW1ldGVyc182O1xuIH07XG4gXG4gZW51bSB7XG5AQCAtMzg1NSw3ICYjNDM7Mzg1NSw2IEBAIHVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0cyB7XG4gXHRzdHJ1Y3QgbWx4NV9pZmNfZmxvd190YWJsZV9uaWNfY2FwX2JpdHMgZmxvd190YWJsZV9uaWNfY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfZXN3aXRjaF9jYXBfYml0cyBmbG93X3RhYmxlX2Vzd2l0Y2hfY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX3dxZV9iYXNlZF9mbG93X3RhYmxlX2NhcF9iaXRzIHdxZV9iYXNlZF9mbG93X3RhYmxlX2NhcDtcbi1cdHN0cnVjdCBtbHg1X2lmY19lc3dfY2FwX2JpdHMgZXN3X2NhcDtcbiBcdHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyBlX3N3aXRjaF9jYXA7XG4gXHRzdHJ1Y3QgbWx4NV9pZmNfcG9ydF9zZWxlY3Rpb25fY2FwX2JpdHMgcG9ydF9zZWxlY3Rpb25fY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX3Fvc19jYXBfYml0cyBxb3NfY2FwO1xuQEAgLTY5OTUsNiAmIzQzOzY5OTQsNyBAQCBlbnVtIHtcbiBcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzMgPSAweDQsXG4gXHRNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU180ID0gMHg1LFxuIFx0TUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfNSA9IDB4NixcbiYjNDM7XHRNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU182ID0gMHg3LFxuIH07XG4gXG4gc3RydWN0IG1seDVfaWZjX3F1ZXJ5X2Zsb3dfZ3JvdXBfb3V0X2JpdHMge1xuQEAgLTcyNTYsNiAmIzQzOzcyNTYsNyBAQCBlbnVtIG1seDVfcmVmb3JtYXRfY3R4X3R5cGUge1xuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX1JFTU9WRV9IRFIgPSAweDEwLFxuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX0FERF9NQUNTRUMgPSAweDExLFxuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX0RFTF9NQUNTRUMgPSAweDEyLFxuJiM0MztcdE1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCA9IDB4MTYsXG4gfTtcbiBcbiBzdHJ1Y3QgbWx4NV9pZmNfYWxsb2NfcGFja2V0X3JlZm9ybWF0X2NvbnRleHRfaW5fYml0cyB7XG5AQCAtNzM3OSw2ICYjNDM7NzM4MCw3IEBAIGVudW0ge1xuIFx0TUxYNV9BQ1RJT05fSU5fRklFTERfT1VUX0VNRF80N18zMiAgICAgPSAweDZGLFxuIFx0TUxYNV9BQ1RJT05fSU5fRklFTERfT1VUX0VNRF8zMV8wICAgICAgPSAweDcwLFxuIFx0TUxYNV9BQ1RJT05fSU5fRklFTERfUFNQX1NZTkRST01FICAgICAgPSAweDcxLFxuJiM0MztcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX1BTUF9IRUFERVJfMSAgICAgID0gMHg3OCxcbiB9O1xuIFxuIHN0cnVjdCBtbHg1X2lmY19hbGxvY19tb2RpZnlfaGVhZGVyX2NvbnRleHRfb3V0X2JpdHMge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjM5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjdtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01MWDVfQ09SRSYjMzQ7LAogICAgJiMzNDtNTFg1X0NPUkVfRU4mIzM0OywKICAgICYjMzQ7TUxYNV9FU1dJVENIJiMzNDssCiAgICAmIzM0O01MWDVfU1dfU1RFRVJJTkcmIzM0OywKICAgICYjMzQ7TUxYNV9IV19TVEVFUklORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21seDVfYWRkX2Zsb3dfcnVsZXMmIzM0OywKICAgICYjMzQ7bWx4NWh3c19jbWRfcXVlcnlfY2FwcyYjMzQ7LAogICAgJiMzNDttbHg1ZHJfZndfY3JlYXRlX21kX3RibCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCB1c2VkIGluIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNybywgd2hpY2ggYWZmZWN0cyB0aGUgc2l6ZSBvZiBgZnNfZnRlYCBhbmQgYG1seDVfZmxvd19ncm91cF9tYXNrYCBzdHJ1Y3RzIGFuZCB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gYGNoZWNrX3ZhbGlkX3NwZWNgLiBJdCBhbHNvIG1vZGlmaWVzIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCB0byByZWFkIGZyb20gYGVfc3dpdGNoX2NhcGAgaW5zdGVhZCBvZiBgZXN3X2NhcGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG1seDUgZHJpdmVyJiMzOTtzIGZsb3cgc3RlZXJpbmcgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDAyYmRmZWI5YzRlODUzMjM3MWI3NWU3Y2MwNTg3MzIzMjYzMjg5NGMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAxMyAxMTozOTo0NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oCmluZGV4IGRiYWYzM2I1MzdmNzExLi45MDY1ODQzNDVhMDIyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oCkBAIC0yMTQsMTcgJiM0MzsyMTQsNyBAQCBzdHJ1Y3QgbWx4NV9mdF91bmRlcmxheV9xcCB7CiAJdTMyIHFwbjsKIH07CiAKLSNkZWZpbmUgTUxYNV9GVEVfTUFUQ0hfUEFSQU1fUkVTRVJWRUQJcmVzZXJ2ZWRfYXRfZTAwCi0vKiBDYWxjdWxhdGUgdGhlIGZ0ZV9tYXRjaF9wYXJhbSBsZW5ndGggYW5kIHdpdGhvdXQgdGhlIHJlc2VydmVkIGxlbmd0aC4KLSAqIE1ha2Ugc3VyZSB0aGUgcmVzZXJ2ZWQgZmllbGQgaXMgdGhlIGxhc3QuCi0gKi8KLSNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTQkJCQkJICAgIFwKLQkoKE1MWDVfQllURV9PRkYoZnRlX21hdGNoX3BhcmFtLCBNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRCkgLyBzaXplb2YodTMyKSkgJiM0MzsgXAotCSBCVUlMRF9CVUdfT05fWkVSTyhNTFg1X1NUX1NaX0JZVEVTKGZ0ZV9tYXRjaF9wYXJhbSkgIT0JCSAgICAgXAotCQkJICAgTUxYNV9GTERfU1pfQllURVMoZnRlX21hdGNoX3BhcmFtLAkJICAgICBcCi0JCQkJCSAgICAgTUxYNV9GVEVfTUFUQ0hfUEFSQU1fUkVTRVJWRUQpICYjNDM7XAotCQkJICAgTUxYNV9CWVRFX09GRihmdGVfbWF0Y2hfcGFyYW0sCQkgICAgIFwKLQkJCQkJIE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSkpCiYjNDM7I2RlZmluZSBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNIE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKQogCiBzdHJ1Y3QgZnNfZnRlX2FjdGlvbiB7CiAJaW50CQkJCW1vZGlmeV9tYXNrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmMKaW5kZXggZTYyNGY1ZGE5NmM4MWIuLjhmYWU5MDEwMTY1M2Y4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmMKQEAgLTExNzIsMTMgJiM0MzsxMTcyLDEzIEBAIGludCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAogCQl9CiAKIAkJaWYgKE1MWDVfR0VUKHF1ZXJ5X2hjYV9jYXBfb3V0LCBvdXQsCi0JCQkgICAgIGNhcGFiaWxpdHkuZXN3X2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWQpKQomIzQzOwkJCSAgICAgY2FwYWJpbGl0eS5lX3N3aXRjaF9jYXAuZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkKSkKIAkJCWNhcHMtJmd0O2Vzd2l0Y2hfbWFuYWdlcl92cG9ydF9udW1iZXIgPQogCQkJCU1MWDVfR0VUKHF1ZXJ5X2hjYV9jYXBfb3V0LCBvdXQsCi0JCQkJCSBjYXBhYmlsaXR5LmVzd19jYXAuZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyKTsKJiM0MzsJCQkJCSBjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXIpOwogCiAJCWNhcHMtJmd0O21lcmdlZF9lc3dpdGNoID0gTUxYNV9HRVQocXVlcnlfaGNhX2NhcF9vdXQsIG91dCwKLQkJCQkJCWNhcGFiaWxpdHkuZXN3X2NhcC5tZXJnZWRfZXN3aXRjaCk7CiYjNDM7CQkJCQkJY2FwYWJpbGl0eS5lX3N3aXRjaF9jYXAubWVyZ2VkX2Vzd2l0Y2gpOwogCX0KIAogCXJldCA9IG1seDVfY21kX2V4ZWMobWRldiwgaW4sIHNpemVvZihpbiksIG91dCwgb3V0X3NpemUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oIGIvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oCmluZGV4IDA3YTI1ZjI2NDI5MjEzLi44Y2IzMjFhOWZiM2QxZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaApAQCAtMTE3MSw2ICYjNDM7MTE3MSw3IEBAIGVudW0gewogCU1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzMJPSAxICZsdDsmbHQ7IDQsCiAJTUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNAk9IDEgJmx0OyZsdDsgNSwKIAlNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU181CT0gMSAmbHQ7Jmx0OyA2LAomIzQzOwlNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU182CT0gMSAmbHQ7Jmx0OyA3LAogfTsKIAogZW51bSB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oCmluZGV4IDRmNTliN2U4YTNkNWQ2Li5jZjAxOTIyY2Y2OWZkYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgKQEAgLTUwOCw3ICYjNDM7NTA4LDggQEAgc3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfcHJvcF9sYXlvdXRfYml0cyB7CiAJdTggICAgICAgICByZWZvcm1hdF9sMl90b19sM19hdWRwX3R1bm5lbFsweDFdOwogCXU4ICAgICAgICAgcmVmb3JtYXRfbDNfYXVkcF90dW5uZWxfdG9fbDJbMHgxXTsKIAl1OCAgICAgICAgIGlnbm9yZV9mbG93X2xldmVsX3J0Y192YWxpZFsweDFdOwotCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNzBbMHg4XTsKJiM0MzsJdTggICAgICAgICByZXNlcnZlZF9hdF83MFsweDddOwomIzQzOwl1OCAgICAgICAgIHJlZm9ybWF0X2RlbF9wc3BfdHJhbnNwb3J0WzB4MV07CiAJdTggICAgICAgICBsb2dfbWF4X2Z0X251bVsweDhdOwogCiAJdTggICAgICAgICByZXNlcnZlZF9hdF84MFsweDEwXTsKQEAgLTc5OCw2ICYjNDM7Nzk5LDE1IEBAIHN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfc2V0X21pc2M1X2JpdHMgewogCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMTAwWzB4MTAwXTsKIH07CiAKJiM0MztzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNl9iaXRzIHsKJiM0MzsJdTggICAgICAgICByZXNlcnZlZF9hdF8wWzB4MWFdOwomIzQzOwl1OCAgICAgICAgIHBzcF92ZXJzaW9uWzB4NF07CiYjNDM7CXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWVbMHgyXTsKJiM0MzsKJiM0MzsJdTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDFlMF07CiYjNDM7fTsKJiM0MzsKJiM0MzsKIHN0cnVjdCBtbHg1X2lmY19jbWRfcGFzX2JpdHMgewogCXU4ICAgICAgICAgcGFfaFsweDIwXTsKIApAQCAtMTA0MiwyMCAmIzQzOzEwNTIsNiBAQCBzdHJ1Y3QgbWx4NV9pZmNfd3FlX2Jhc2VkX2Zsb3dfdGFibGVfY2FwX2JpdHMgewogCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWMxWzB4MWZdOwogfTsKIAotc3RydWN0IG1seDVfaWZjX2Vzd19jYXBfYml0cyB7Ci0JdTggICAgICAgICByZXNlcnZlZF9hdF8wWzB4MWRdOwotCXU4ICAgICAgICAgbWVyZ2VkX2Vzd2l0Y2hbMHgxXTsKLQl1OCAgICAgICAgIHJlc2VydmVkX2F0XzFlWzB4Ml07Ci0KLQl1OCAgICAgICAgIHJlc2VydmVkX2F0XzIwWzB4NDBdOwotCi0JdTggICAgICAgICBlc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWRbMHgxXTsKLQl1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07Ci0JdTggICAgICAgICBlc3dfbWFuYWdlcl92cG9ydF9udW1iZXJbMHgxMF07Ci0KLQl1OCAgICAgICAgIHJlc2VydmVkX2F0XzgwWzB4NzgwXTsKLX07Ci0KIGVudW0gewogCU1MWDVfQ09VTlRFUl9TT1VSQ0VfRVNXSVRDSCA9IDB4MCwKIAlNTFg1X0NPVU5URVJfRkxPV19FU1dJVENIICAgPSAweDEsCkBAIC0xMDk2LDcgJiM0MzsxMDkyLDExIEBAIHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7CiAJdTggICAgICAgICBsb2dfbWF4X2Vzd19zZlsweDVdOwogCXU4ICAgICAgICAgZXN3X3NmX2Jhc2VfaWRbMHgxMF07CiAKLQl1OCAgICAgICAgIHJlc2VydmVkX2F0XzYwWzB4N2EwXTsKJiM0MzsJdTggICAgICAgICBlc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWRbMHgxXTsKJiM0MzsJdTggICAgICAgICByZXNlcnZlZF9hdF82MVsweGZdOwomIzQzOwl1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlclsweDEwXTsKJiM0MzsKJiM0MzsJdTggICAgICAgICByZXNlcnZlZF9hdF84MFsweDc4MF07CiAKIH07CiAKQEAgLTIzNDksNyAmIzQzOzIzNDksNyBAQCBzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3BhcmFtX2JpdHMgewogCiAJc3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzVfYml0cyBtaXNjX3BhcmFtZXRlcnNfNTsKIAotCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfZTAwWzB4MjAwXTsKJiM0MzsJc3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzZfYml0cyBtaXNjX3BhcmFtZXRlcnNfNjsKIH07CiAKIGVudW0gewpAQCAtMzg1NSw3ICYjNDM7Mzg1NSw2IEBAIHVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0cyB7CiAJc3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfbmljX2NhcF9iaXRzIGZsb3dfdGFibGVfbmljX2NhcDsKIAlzdHJ1Y3QgbWx4NV9pZmNfZmxvd190YWJsZV9lc3dpdGNoX2NhcF9iaXRzIGZsb3dfdGFibGVfZXN3aXRjaF9jYXA7CiAJc3RydWN0IG1seDVfaWZjX3dxZV9iYXNlZF9mbG93X3RhYmxlX2NhcF9iaXRzIHdxZV9iYXNlZF9mbG93X3RhYmxlX2NhcDsKLQlzdHJ1Y3QgbWx4NV9pZmNfZXN3X2NhcF9iaXRzIGVzd19jYXA7CiAJc3RydWN0IG1seDVfaWZjX2Vfc3dpdGNoX2NhcF9iaXRzIGVfc3dpdGNoX2NhcDsKIAlzdHJ1Y3QgbWx4NV9pZmNfcG9ydF9zZWxlY3Rpb25fY2FwX2JpdHMgcG9ydF9zZWxlY3Rpb25fY2FwOwogCXN0cnVjdCBtbHg1X2lmY19xb3NfY2FwX2JpdHMgcW9zX2NhcDsKQEAgLTY5OTUsNiAmIzQzOzY5OTQsNyBAQCBlbnVtIHsKIAlNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU18zID0gMHg0LAogCU1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzQgPSAweDUsCiAJTUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfNSA9IDB4NiwKJiM0MzsJTUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfNiA9IDB4NywKIH07CiAKIHN0cnVjdCBtbHg1X2lmY19xdWVyeV9mbG93X2dyb3VwX291dF9iaXRzIHsKQEAgLTcyNTYsNiAmIzQzOzcyNTYsNyBAQCBlbnVtIG1seDVfcmVmb3JtYXRfY3R4X3R5cGUgewogCU1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfSERSID0gMHgxMCwKIAlNTFg1X1JFRk9STUFUX1RZUEVfQUREX01BQ1NFQyA9IDB4MTEsCiAJTUxYNV9SRUZPUk1BVF9UWVBFX0RFTF9NQUNTRUMgPSAweDEyLAomIzQzOwlNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlQgPSAweDE2LAogfTsKIAogc3RydWN0IG1seDVfaWZjX2FsbG9jX3BhY2tldF9yZWZvcm1hdF9jb250ZXh0X2luX2JpdHMgewpAQCAtNzM3OSw2ICYjNDM7NzM4MCw3IEBAIGVudW0gewogCU1MWDVfQUNUSU9OX0lOX0ZJRUxEX09VVF9FTURfNDdfMzIgICAgID0gMHg2RiwKIAlNTFg1X0FDVElPTl9JTl9GSUVMRF9PVVRfRU1EXzMxXzAgICAgICA9IDB4NzAsCiAJTUxYNV9BQ1RJT05fSU5fRklFTERfUFNQX1NZTkRST01FICAgICAgPSAweDcxLAomIzQzOwlNTFg1X0FDVElPTl9JTl9GSUVMRF9QU1BfSEVBREVSXzEgICAgICA9IDB4NzgsCiB9OwogCiBzdHJ1Y3QgbWx4NV9pZmNfYWxsb2NfbW9kaWZ5X2hlYWRlcl9jb250ZXh0X291dF9iaXRzIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUwNQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDgwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1lbGxhbm94IG1seDUgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciB0aGUgTWVsbGFub3ggbWx4NSBkcml2ZXIsIGFuZCBpdCBzZWVtcyBsaWtlIGEgdGFyZ2V0ZWQgbW9kaWZpY2F0aW9uLiBQcmltYXJpbHksIGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBzb21lIGhlYWRlciBmaWxlIHVwZGF0ZXMgYW5kIGEgbWlub3IgY29kZSBhZGp1c3RtZW50LiBJJiMzOTttIHNlZWluZyBjaGFuZ2VzIGluIGBmc19jb3JlLmhgLCBgY21kLmNgLCBgZGV2aWNlLmhgLCBhbmQgYG1seDVfaWZjLmhgLiBUaGUgY2hhbmdlcyBpbiBgZnNfY29yZS5oYCBpbnZvbHZlIGFsdGVyaW5nIHRoZSBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgbWFjcm8uIEluIGBjbWQuY2AsIHRoZXJlJiMzOTtzIGEgc3RyYWlnaHRmb3J3YXJkIHJlbmFtZTogYGVzd19jYXBgIGlzIG5vdyBgZV9zd2l0Y2hfY2FwYCB3aXRoaW4gYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgLiBJJiMzOTt2ZSBub3RpY2VkIG5ldyBhZGRpdGlvbnMgb2YgYE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzZgIGluIGBkZXZpY2UuaGAgYW5kIGEgc2VyaWVzIG9mIGFkZGl0aW9ucywgcmVtb3ZhbHMsIGFuZCByZS1vcmdzIGluIGBtbHg1X2lmYy5oYCwgaW5jbHVkaW5nIG5ldyBmdW5jdGlvbnMgbGlrZSBgcmVmb3JtYXRfZGVsX3BzcF90cmFuc3BvcnRgIGFuZCB1cGRhdGVzIHJlbGF0ZWQgdG8gYGVzd19jYXBgIGFuZCBgZV9zd2l0Y2hfY2FwYCBhcyB3ZWxsIGFzIGFkZGl0aW9ucyByZWxhdGVkIHRvIGBtaXNjX3BhcmFtZXRlcnNfNmAuCgpUaGUgZ2lzdCBvZiBpdCBzZWVtcyB0byBiZSBhcm91bmQgaW50cm9kdWNpbmcgbmV3IGhhcmR3YXJlIGNhcGFiaWxpdGllcyBvciBmaWVsZHMgcmVsYXRlZCB0byBQU1AsIGxpa2VseSBJUHNlYy4gUGx1cywgaXQgYXBwZWFycyB0aGV5JiMzOTtyZSByZW9yZ2FuaXppbmcgc29tZSBmaWVsZHMsIHNwZWNpZmljYWxseSBtb3ZpbmcgZnJvbSBgZXN3X2NhcGAgdG8gYGVfc3dpdGNoX2NhcGAuIFRoZSBvbmx5IGFjdHVhbCBjb2RlIGNoYW5nZSBJJiMzOTt2ZSBzcG90dGVkIHNvIGZhciBpcyBpbiBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AsIHdoZXJlIGl0JiMzOTtzIG5vdyByZWFkaW5nIGZyb20gYGNhcGFiaWxpdHkuZV9zd2l0Y2hfY2FwYCBpbnN0ZWFkIG9mIHRoZSBvbGQgYGNhcGFiaWxpdHkuZXN3X2NhcGAuIFRoYXQmIzM5O3MgZXNzZW50aWFsbHkgYSBuYW1lIGNoYW5nZSwgYnV0IGl0IG5lZWRzIHZlcmlmaWNhdGlvbi4KCkFscmlnaHQsIGxldCYjMzk7cyB6b29tIGluIG9uIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYC4gTG9va3MgbGlrZSB0aGUgcGF0Y2ggZXNzZW50aWFsbHkgcmVuYW1lcyB0aGUgZmllbGRzIGluIHRoZSBzdHJ1Y3QgYW5kIHVwZGF0ZXMgdGhlIG1hY3Jvcy9jb2RlIHRvIHVzZSB0aGUgbmV3IG5hbWVzLiBBbmQsIGFkZHMgc29tZSBuZXcgZW51bXMgYW5kIHN0cnVjdHMgdGhhdCBhcmVuJiMzOTt0IGFjdHVhbGx5IHVzZWQgYnkgdGhpcyBwYXRjaC4gU28sIHRoZSBxdWVzdGlvbiBiZWNvbWVzLCBpcyB0aGVyZSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGhhcHBlbmluZyBoZXJlPwoKTGV0JiMzOTtzIGRyaWxsIGRvd24gaW50byB0aGF0IGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNyby4gUHJldmlvdXNseSwgaXQgaGFkIHRoaXMgY29tcGxleCBjYWxjdWxhdGlvbiwgYW5kIG5vdyBpdCYjMzk7cyBzaW1wbGlmaWVkIHRvIGBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlgLiBOb3csIHRoYXQmIzM5O3MganVzdCB0aGUgc2l6ZSBpbiBkd29yZHMgb2YgYGZ0ZV9tYXRjaF9wYXJhbWAuIFByZXZpb3VzbHksIHRoZSBtYWNybyBleGNsdWRlZCBhIHJlc2VydmVkIHBvcnRpb24gYXQgdGhlIGVuZCBvZiB0aGUgYGZ0ZV9tYXRjaF9wYXJhbWAgc3RydWN0LiBOb3csIHRoYXQgcmVzZXJ2ZWQgcG9ydGlvbiAoYHJlc2VydmVkX2F0X2UwMGApIGlzIHJlcGxhY2VkIGJ5IGBtaXNjX3BhcmFtZXRlcnNfNmAuIFNvIHdoaWxlIHRoZSBzaXplIG9mIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdCBpdHNlbGYgbWlnaHQgYmUgdGhlIHNhbWUsIHRoZSB3aG9sZSBzdHJ1Y3QgaXMgbm93IGJlaW5nIHVzZWQsIGluY2x1ZGluZyBgbWlzY19wYXJhbWV0ZXJzXzZgLgoKU28sIHdoYXQgYmVoYXZpb3IgY2hhbmdlcyBhcmUgaW1wbGllZCBieSB0aGlzPyBMb29raW5nIGF0IHRoZSBzaXplcywgdGhlIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdCBpcyAweDEwMDAgYnl0ZXMuIFByZXZpb3VzbHksIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCB3YXMgY2FsY3VsYXRlZCBhcyAweGUwMCAvIDQsIHJlc3VsdGluZyBpbiAweDM4MC4gTm93LCBpdCYjMzk7cyAweDEwMDAgLyA0LCB3aGljaCBpcyAweDQwMC4gRWZmZWN0aXZlbHksIHRoaXMgaW5jcmVhc2VzIHRoZSBzaXplIG9mIGBmdGVfbWF0Y2hfcGFyYW1gIGJlaW5nIHVzZWQgaW4gdGhlIGNvZGUuIEkgbmVlZCB0byB0cmFjZSB3aGVyZSBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgaXMgdXNlZCB0byBnZXQgYSBmdWxsZXIgcGljdHVyZSBvZiB0aGUgaW1wYWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYz01MTA9c3RhdGljIGJvb2wgY2hlY2tfdmFsaWRfc3BlYyhjb25zdCBzdHJ1Y3QgbWx4NV9mbG93X3NwZWMgKnNwZWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy01MTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjUxNDpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU07IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy01MTUtXHRcdGlmIChzcGVjLVx1MDAzZW1hdGNoX3ZhbHVlW2ldIFx1MDAyNiB+c3BlYy1cdTAwM2VtYXRjaF9jcml0ZXJpYVtpXSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjEyPXN0cnVjdCBtbHg1X2Z0X3VuZGVybGF5X3FwIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTIxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjE3OiNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTSBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjE4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjMzPXN0cnVjdCBmc19mdGUge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjM4LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjM5Olx0dTMyXHRcdFx0XHR2YWxbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTI0MC1cdHN0cnVjdCBmc19mdGVfYWN0aW9uXHRcdGFjdF9kZXN0cztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oPTI2Mz1zdHJ1Y3QgbWx4NV9mbG93X2dyb3VwX21hc2sge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjQtXHR1OFx0bWF0Y2hfY3JpdGVyaWFfZW5hYmxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyNjU6XHR1MzJcdG1hdGNoX2NyaXRlcmlhW01MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1dO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjYtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jPTc3MT1pbnQgbWx4NWRyX2NtZF9zZXRfZnRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9jbWQuYy04NTMtXHRcdFx0XHQgICAgICBtYXRjaF92YWx1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jOjg1NDpcdG1lbWNweShpbl9tYXRjaF92YWx1ZSwgZnRlLVx1MDAzZXZhbCwgc2l6ZW9mKHUzMikgKiBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYz0xMDE9aW50IG1seDVkcl9md19jcmVhdGVfbWRfdGJsKHN0cnVjdCBtbHg1ZHJfZG9tYWluICpkbW4sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTExMS1cdHN0cnVjdCBtbHg1ZHJfY21kX2Z0ZV9pbmZvIGZ0ZV9pbmZvID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTEyOlx0dTMyIHZhbFtNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNXSA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTExMy1cdHN0cnVjdCBtbHg1ZHJfY21kX2Z0X2luZm8gZnRfaW5mbyA9IHt9O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xOS0jZGVmaW5lIERSX1NURV9DVkxBTiAweDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaDoyMDojZGVmaW5lIERSX1NaX01BVENIX1BBUkFNIChNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNICogNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0yMS0jZGVmaW5lIERSX05VTV9PRl9GTEVYX1BBUlNFUlMgOFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDczMDEKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVc2Ugb2YgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIGlzIHV0aWxpemVkIHdpdGhpbiB0aGlzIGNvZGViYXNlLiBJdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhhdCBpdCYjMzk7cyBjcnVjaWFsIGZvciBkZXRlcm1pbmluZyBhcnJheSBzaXplcyB3aXRoaW4gc2V2ZXJhbCBrZXkgc3RydWN0dXJlczogYGZzX2Z0ZWAsIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2AsIGFuZCB2YXJpb3VzIGxvY2FsIGFycmF5cy4gVGhhdCYjMzk7cyBhIGNvbW1vbiBwYXR0ZXJuLCB1c2luZyBhIG1hY3JvIGZvciB0aGVzZSBraW5kcyBvZiBzaXppbmcgb3BlcmF0aW9ucy4gQnV0IHRoZW4gaXQgcG9wcyB1cCBhZ2FpbiBpbiBgY2hlY2tfdmFsaWRfc3BlY2AuIEFoLCByaWdodCwgdGhhdCYjMzk7cyB3aGVyZSB3ZSBpdGVyYXRlIHRocm91Z2ggdGhlIGBtYXRjaF92YWx1ZWAgYW5kIGBtYXRjaF9jcml0ZXJpYWAgZmllbGRzLiBJIHJlY2FsbCB0aG9zZSBhcmUgcGFydCBvZiBgc3RydWN0IG1seDVfZmxvd19zcGVjYC4gSSBzaG91bGQgcHJvYmFibHkgZG91YmxlIGNoZWNrIHRoZSBkZWZpbml0aW9uIG9mIHRoYXQgc3RydWN0OyBpdCYjMzk7cyBpbiBgaW5jbHVkZS9saW51eC9tbHg1L2ZzLmhgLCBhcyBJIHJlY2FsbC4gSXQgd291bGQgYmUgZ29vZCB0byBjb25maXJtIGl0cyBvdmVyYWxsIHNpemUgd2hpbGUgSSYjMzk7bSBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0cnVjdCBtbHg1X2Zsb3dfc3BlYyBcXHsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9tbHg1L2ZzLmg9MTY0PXN0cnVjdCBtbHg1X2Zsb3dfY29udGV4dCB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L2ZzLmgtMTY5LVxuaW5jbHVkZS9saW51eC9tbHg1L2ZzLmg6MTcwOnN0cnVjdCBtbHg1X2Zsb3dfc3BlYyB7XG5pbmNsdWRlL2xpbnV4L21seDUvZnMuaC0xNzEtXHR1OCAgIG1hdGNoX2NyaXRlcmlhX2VuYWJsZTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NzU4CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byB0aGUgbWx4NSBGaWxlc3lzdGVtIEhlYWRlcioqCgpPa2F5LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkmIzM5O20gZ29pbmcgdG8gdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBgaW5jbHVkZS9saW51eC9tbHg1L2ZzLmhgIGZpbGUuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGZvY3VzIG15IGF0dGVudGlvbiBhcm91bmQgbGluZSAxNzAuIEtub3dpbmcgdGhlIGludHJpY2FjaWVzIG9mIHRoaXMgZmlsZSwgdGhlIE1lbGxhbm94IGRyaXZlciYjMzk7cyBmaWxlc3lzdGVtIGludGVyYWN0aW9ucywgYW5kIGxpa2VseSB0aGUgY29udGV4dCBzdXJyb3VuZGluZyB0aGF0IGxpbmUgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGN1cnJlbnQgaXNzdWUgYXQgaGFuZC4gTGluZSAxNzAgbWlnaHQgaG9sZCB0aGUga2V5IGRlZmluaXRpb24sIGRhdGEgc3RydWN0dXJlLCBvciBmdW5jdGlvbiBjYWxsIHRoYXQgd2lsbCBpbGx1bWluYXRlIHRoZSByZWxldmFudCBhc3BlY3RzIG9mIHRoaXMgc2VjdGlvbi4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9tbHg1L2ZzLmgmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNjUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDE2NTpcdFx0dTMyIGZsYWdzO1xuIDE2NjpcdFx0dTMyIGZsb3dfdGFnO1xuIDE2NzpcdFx0dTMyIGZsb3dfc291cmNlO1xuIDE2ODpcdH07XG4gMTY5Olx0XG4gMTcwOlx0c3RydWN0IG1seDVfZmxvd19zcGVjIHtcbiAxNzE6XHRcdHU4ICAgbWF0Y2hfY3JpdGVyaWFfZW5hYmxlO1xuIDE3MjpcdFx0dTMyICBtYXRjaF9jcml0ZXJpYVtNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSldO1xuIDE3MzpcdFx0dTMyICBtYXRjaF92YWx1ZVtNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSldO1xuIDE3NDpcdFx0c3RydWN0IG1seDVfZmxvd19jb250ZXh0IGZsb3dfY29udGV4dDtcbiAxNzU6XHR9O1xuIDE3NjpcdFxuIDE3NzpcdGVudW0ge1xuIDE3ODpcdFx0TUxYNV9GTE9XX0RFU1RfVlBPUlRfVkhDQV9JRCAgICAgID0gQklUKDApLFxuIDE3OTpcdFx0TUxYNV9GTE9XX0RFU1RfVlBPUlRfUkVGT1JNQVRfSUQgID0gQklUKDEpLFxuIDE4MDpcdH07XG4gMTgxOlx0XG4gMTgyOlx0ZW51bSBtbHg1X2Zsb3dfZGVzdF9yYW5nZV9maWVsZCB7XG4gMTgzOlx0XHRNTFg1X0ZMT1dfREVTVF9SQU5HRV9GSUVMRF9QS1RfTEVOID0gMCxcbiAxODQ6XHR9O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgzMDAKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIENoYW5nZXMgaW4gbWx4NSBGbG93IFNwZWNpZmljYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHN0cnVjdCBtbHg1X2Zsb3dfc3BlY2AsIGFuZCBpdCYjMzk7cyB1c2luZyBgTUxYNV9TVF9TWl9EVyhmdGVfbWF0Y2hfcGFyYW0pYC4gSSByZWNhbGwgdGhhdCBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgdXNlZCB0byBiZSBzbWFsbGVyIHRoYW4gdGhhdCwgYnV0IG5vdyB0aGV5JiMzOTtyZSBpZGVudGljYWwuIEludGVyZXN0aW5nLiBXaGF0IGRvZXMgdGhpcyBtZWFuIGluIHByYWN0aWNlPyBJdCBtZWFucyB0aGF0IHRoZSBgY2hlY2tfdmFsaWRfc3BlY2AgZnVuY3Rpb24gaXMgZ29pbmcgdG8gc3RhcnQgdmFsaWRhdGluZyB0aGUgKmVudGlyZSogYXJyYXkgbm93LCBpbnN0ZWFkIG9mIHNraXBwaW5nIG92ZXIgdGhhdCByZXNlcnZlZCBwb3J0aW9uLiBNYWtlcyBzZW5zZSwgdGhhdCYjMzk7cyBhIGRpcmVjdCBjb25zZXF1ZW5jZSBvZiB0aGUgc2l6ZSBjaGFuZ2UuCgpBbmQsIG9mIGNvdXJzZSwgdGhhdCBzaXplIGNoYW5nZSByaXBwbGVzIG91dHdhcmQuIGBmc19mdGVgIGFuZCBgbWx4NV9mbG93X2dyb3VwX21hc2tgIGFyZSBub3cgYmlnZ2VyLCB3aGljaCBpc24mIzM5O3QgZW50aXJlbHkgc3VycHJpc2luZy4gVGhlIHF1ZXN0aW9uIGlzLCBpcyB0aGlzIGEgKmZ1bmN0aW9uYWwqIGNoYW5nZT8gWWVzLCBhYnNvbHV0ZWx5LiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhbHRlcmF0aW9ucyB0byBzdHJ1Y3Qgc2l6ZXMsIHdoaWNoIHdpbGwgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGFuZCBob3cgdGhlIGRhdGEgaXMgbGFpZCBvdXQsIGFuZCBjaGFuZ2luZyB0aGUgbG9vcCBpdGVyYXRpb25zLiBUaGlzIGlzIGEgYmVoYXZpb3JhbCBtb2RpZmljYXRpb24uCgpBbmQsIGFzIGEgc2lkZSBub3RlLCBJJiMzOTttIGFsc28gbm90aWNpbmcgdGhhdCBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2Agbm93IHJlYWRzIGZyb20gYGVfc3dpdGNoX2NhcGAgcmF0aGVyIHRoYW4gYGVzd19jYXBgLiBJIG5lZWQgdG8gdmVyaWZ5IGlmIHRoZXNlIGFyZSBsb2NhdGVkIGF0IHRoZSBzYW1lIG9mZnNldCB3aXRoaW4gYHVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0c2AgdG8gZnVsbHkgZ3Jhc3AgdGhlIGltcGxpY2F0aW9uLCBidXQgdGhpcyBjb3VsZCBiZSBhbm90aGVyIGltcG9ydGFudCBjbHVlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMgZV9zd2l0Y2hfY2FwOyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD0zODQ4PXVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0cyB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtMzg1Ny1cdHN0cnVjdCBtbHg1X2lmY193cWVfYmFzZWRfZmxvd190YWJsZV9jYXBfYml0cyB3cWVfYmFzZWRfZmxvd190YWJsZV9jYXA7XG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaDozODU4Olx0c3RydWN0IG1seDVfaWZjX2Vfc3dpdGNoX2NhcF9iaXRzIGVfc3dpdGNoX2NhcDtcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTM4NTktXHRzdHJ1Y3QgbWx4NV9pZmNfcG9ydF9zZWxlY3Rpb25fY2FwX2JpdHMgcG9ydF9zZWxlY3Rpb25fY2FwO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3OTA1CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmg9MTE2Nj1lbnVtIHtcbi0tXG5pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgtMTE3My1cdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzVcdD0gMSBcdTAwM2NcdTAwM2MgNixcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaDoxMTc0Olx0TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNlx0PSAxIFx1MDAzY1x1MDAzYyA3LFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oLTExNzUtfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODA1OAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD03MjM5PWVudW0gbWx4NV9yZWZvcm1hdF9jdHhfdHlwZSB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI1OC1cdE1MWDVfUkVGT1JNQVRfVFlQRV9ERUxfTUFDU0VDID0gMHgxMixcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oOjcyNTk6XHRNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlQgPSAweDE2LFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI2MC19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NDA0CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogOTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQXNzZXNzaW5nIHRoZSBJbXBhY3Qgb2YgUmVjZW50IENvZGUgQ2hhbmdlcyoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIHNlZW1zIHByaW1hcmlseSBmb2N1c2VkIG9uIGFkZGluZyBzb21lIG5ldyBmaWVsZHMgYW5kIHR3ZWFraW5nIHRoZSBzaXplIG9mIGEgc3RydWN0dXJlLiBUaGUgaW5pdGlhbCBxdWVzdGlvbiBJIGhhdmUgaXMsICYjMzQ7SXMgdGhpcyBldmVuIHdvcnRoIGRlZGljYXRpbmcgZnV6emluZyByZXNvdXJjZXMgdG8/JiMzNDsgVGhlIHN0cnVjdCBzaXplIG1vZGlmaWNhdGlvbiBpcyB0aGUga2V5IHBvaW50IGhlcmUuIEl0IGFmZmVjdHMgYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O1doZXJlIGlzIGBmc19mdGVgIGFsbG9jYXRlZD8gVGhhdCYjMzk7cyB0aGUgY3JpdGljYWwgcGllY2UuJiMzNDsgSSBrbm93IGBmc19mdGVgIGlzIGFsbG9jYXRlZCB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmNgLiBUaGVyZWZvcmUsIG15IG5leHQgc3RlcCBpcyBjbGVhci4gSSBuZWVkIHRvIGRpdmUgaW50byBgZnNfY29yZS5jYCBhbmQgc3BlY2lmaWNhbGx5IGV4YW1pbmUgdGhlIGFsbG9jYXRpb24gYW5kIHVzYWdlIG9mIGBmc19mdGVgIHRvIHVuZGVyc3RhbmQgdGhlIHBvdGVudGlhbCBpbXBsaWNhdGlvbnMgb2YgdGhpcyBzdHJ1Y3Qgc2l6ZSBjaGFuZ2UgYW5kIGhvdyBpdCBtYXkgaW1wYWN0IGZ1enppbmcgc3RyYXRlZ2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthbGxvYy4qZnNfZnRlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTcxNgoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a21hbGxvYy4qZnNfZnRlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTc1MAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3phbGxvYy4qZnNfZnRlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODUyNwoJCQkJCQkJb3V0cHV0OiAxNwoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FsbG9jX2Z0ZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jPTgyMD1zdGF0aWMgaW50IGluc2VydF9mdGUoc3RydWN0IG1seDVfZmxvd19ncm91cCAqZmcsIHN0cnVjdCBmc19mdGUgKmZ0ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTg1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmM6ODUxOnN0YXRpYyBzdHJ1Y3QgZnNfZnRlICphbGxvY19mdGUoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTg1Mi1cdFx0XHRcdGNvbnN0IHN0cnVjdCBtbHg1X2Zsb3dfc3BlYyAqc3BlYyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jPTIyMTc9dHJ5X2FkZF90b19leGlzdGluZ19mZyhzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTIyMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjIyMzY6XHRmdGUgPSBhbGxvY19mdGUoZnQsIHNwZWMsIGZsb3dfYWN0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtMjIzNy1cdGlmIChJU19FUlIoZnRlKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jPTIzMjY9X21seDVfYWRkX2Zsb3dfcnVsZXMoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy0yMzk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYzoyMzk5Olx0ZnRlID0gYWxsb2NfZnRlKGZ0LCBzcGVjLCBmbG93X2FjdCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTI0MDAtXHRpZiAoSVNfRVJSKGZ0ZSkpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTI0MDItXHRcdGVyciA9IFBUUl9FUlIoZnRlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmM6MjQwMzpcdFx0Z290byBlcnJfYWxsb2NfZnRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy0yNDA0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtMjQyOC1cdGttZW1fY2FjaGVfZnJlZShzdGVlcmluZy1cdTAwM2VmdGVzX2NhY2hlLCBmdGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYzoyNDI5OmVycl9hbGxvY19mdGU6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTI0MzAtXHR0cmVlX3B1dF9ub2RlKFx1MDAyNmctXHUwMDNlbm9kZSwgZmFsc2UpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDUzMQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDIyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUmVjZW50IENoYW5nZXMgaW4gdGhlIGBtbHg1YCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhlc2UgcmVjZW50IG1vZGlmaWNhdGlvbnMsIHNwZWNpZmljYWxseSBhcm91bmQgdGhlIGBmc19mdGVgIHN0cnVjdHVyZS4gSXQgbG9va3MgbGlrZSBgZnNfZnRlYCBpcyBub3cgYmVpbmcgYWxsb2NhdGVkIGZyb20gYSBga21lbV9jYWNoZWAgY2FsbGVkIGBmdGVzX2NhY2hlYC4gVGhlIHNpemUgaGFzIGJlZW4gYnVtcGVkIHVwIGJ5IDUxMiBieXRlcyDigJMgdGhhdCYjMzk7cyBhIHNpZ25pZmljYW50IGNoYW5nZSwgMTI4IHUzMnMuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzdWJzdGFudGlhbCBvbmUgYXQgdGhhdC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5LgoKVGhlbiB0aGVyZSYjMzk7cyB0aGlzIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCBmdW5jdGlvbi4gSXQgc2VlbXMgdG8gYmUgcmVhZGluZyBmcm9tIGBlX3N3aXRjaF9jYXBgIG5vdywgaW5zdGVhZCBvZiBgZXN3X2NhcGAuIFRoYXQgaW1tZWRpYXRlbHkgbWFrZXMgbWUgd29uZGVyIGlmIHRoZXNlIGFyZSBhdCB0aGUgc2FtZSBvZmZzZXQuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0Li4uIHdhaXQgYSBzZWNvbmQuLi4gbG9va3MgbGlrZSBgZXN3X2NhcGAgd2FzIHJlbW92ZWQgZnJvbSB0aGF0IGB1bmlvbiBtbHg1X2lmY19oY2FfY2FwX3VuaW9uX2JpdHNgIGluIGBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaGAuIEFuZCBgZV9zd2l0Y2hfY2FwYCB3YXMgYWxyZWFkeSBwcmVzZW50LiBPa2F5LCBzbyB0aGF0IGV4cGxhaW5zIHRoYXQgY2hhbmdlLiBUbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSBnbyBiYWNrIHRvIGBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaGAgYW5kIGp1c3QgZG8gYSBxdWljayBzY2FuIGZvciBib3RoIGBlc3dfY2FwYCBhbmQgYGVfc3dpdGNoX2NhcGAuIEkgbmVlZCB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIG90aGVyIHBsYWNlcyB3aGVyZSB0aGlzIHNoaWZ0IG1pZ2h0IGNhdXNlIGEgcHJvYmxlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IG1seDVfaWZjX2Vfc3dpdGNoX2NhcF9iaXRzIFxceyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD0xMDU1PWVudW0ge1xuLS1cbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTEwNTktXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaDoxMDYwOnN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7XG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC0xMDYxLVx0dTggICAgICAgICB2cG9ydF9zdmxhbl9zdHJpcFsweDFdO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTIyNQoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMDUwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzEwNTA6XHRcbjEwNTE6XHRcdHU4ICAgICAgICAgZmRiX2p1bXBfdG9fdGlyX3N0Y1sweDFdO1xuMTA1MjpcdFx0dTggICAgICAgICByZXNlcnZlZF9hdF8xYzFbMHgxZl07XG4xMDUzOlx0fTtcbjEwNTQ6XHRcbjEwNTU6XHRlbnVtIHtcbjEwNTY6XHRcdE1MWDVfQ09VTlRFUl9TT1VSQ0VfRVNXSVRDSCA9IDB4MCxcbjEwNTc6XHRcdE1MWDVfQ09VTlRFUl9GTE9XX0VTV0lUQ0ggICA9IDB4MSxcbjEwNTg6XHR9O1xuMTA1OTpcdFxuMTA2MDpcdHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7XG4xMDYxOlx0XHR1OCAgICAgICAgIHZwb3J0X3N2bGFuX3N0cmlwWzB4MV07XG4xMDYyOlx0XHR1OCAgICAgICAgIHZwb3J0X2N2bGFuX3N0cmlwWzB4MV07XG4xMDYzOlx0XHR1OCAgICAgICAgIHZwb3J0X3N2bGFuX2luc2VydFsweDFdO1xuMTA2NDpcdFx0dTggICAgICAgICB2cG9ydF9jdmxhbl9pbnNlcnRfaWZfbm90X2V4aXN0WzB4MV07XG4xMDY1Olx0XHR1OCAgICAgICAgIHZwb3J0X2N2bGFuX2luc2VydF9vdmVyd3JpdGVbMHgxXTtcbjEwNjY6XHRcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNVsweDFdO1xuMTA2NzpcdFx0dTggICAgICAgICB2cG9ydF9jdmxhbl9pbnNlcnRfYWx3YXlzWzB4MV07XG4xMDY4Olx0XHR1OCAgICAgICAgIGVzd19zaGFyZWRfaW5ncmVzc19hY2xbMHgxXTtcbjEwNjk6XHRcdHU4ICAgICAgICAgZXN3X3VwbGlua19pbmdyZXNzX2FjbFsweDFdO1xuMTA3MDpcdFx0dTggICAgICAgICByb290X2Z0X29uX290aGVyX2Vzd1sweDFdO1xuMTA3MTpcdFx0dTggICAgICAgICByZXNlcnZlZF9hdF9hWzB4MV07XG4xMDcyOlx0XHR1OCAgICAgICAgIGVzd192cG9ydF9zdGF0ZV9tYXhfdHhfc3BlZWRbMHgxXTtcbjEwNzM6XHRcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfY1sweGRdO1xuMTA3NDpcdFx0dTggICAgICAgICBlc3dfZnVuY3Rpb25zX2NoYW5nZWRbMHgxXTtcbjEwNzU6XHRcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWFbMHgxXTtcbjEwNzY6XHRcdHU4ICAgICAgICAgZWNwZl92cG9ydF9leGlzdHNbMHgxXTtcbjEwNzc6XHRcdHU4ICAgICAgICAgY291bnRlcl9lc3dpdGNoX2FmZmluaXR5WzB4MV07XG4xMDc4Olx0XHR1OCAgICAgICAgIG1lcmdlZF9lc3dpdGNoWzB4MV07XG4xMDc5Olx0XHR1OCAgICAgICAgIG5pY192cG9ydF9ub2RlX2d1aWRfbW9kaWZ5WzB4MV07XG4xMDgwOlx0XHR1OCAgICAgICAgIG5pY192cG9ydF9wb3J0X2d1aWRfbW9kaWZ5WzB4MV07XG4xMDgxOlx0XG4xMDgyOlx0XHR1OCAgICAgICAgIHZ4bGFuX2VuY2FwX2RlY2FwWzB4MV07XG4xMDgzOlx0XHR1OCAgICAgICAgIG52Z3JlX2VuY2FwX2RlY2FwWzB4MV07XG4xMDg0Olx0XHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzIyWzB4MV07XG4xMDg1Olx0XHR1OCAgICAgICAgIGxvZ19tYXhfZmRiX2VuY2FwX3VwbGlua1sweDVdO1xuMTA4NjpcdFx0dTggICAgICAgICByZXNlcnZlZF9hdF8yMVsweDNdO1xuMTA4NzpcdFx0dTggICAgICAgICBsb2dfbWF4X3BhY2tldF9yZWZvcm1hdF9jb250ZXh0WzB4NV07XG4xMDg4Olx0XHR1OCAgICAgICAgIHJlc2VydmVkXzJiWzB4Nl07XG4xMDg5Olx0XHR1OCAgICAgICAgIG1heF9lbmNhcF9oZWFkZXJfc2l6ZVsweGFdO1xuMTA5MDpcdFxuMTA5MTpcdFx0dTggICAgICAgICByZXNlcnZlZF9hdF80MFsweGJdO1xuMTA5MjpcdFx0dTggICAgICAgICBsb2dfbWF4X2Vzd19zZlsweDVdO1xuMTA5MzpcdFx0dTggICAgICAgICBlc3dfc2ZfYmFzZV9pZFsweDEwXTtcbjEwOTQ6XHRcbjEwOTU6XHRcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XG4xMDk2Olx0XHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07XG4xMDk3Olx0XHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlclsweDEwXTtcbjEwOTg6XHRcbjEwOTk6XHRcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfODBbMHg3ODBdO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDc5NgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD03MjM5PWVudW0gbWx4NV9yZWZvcm1hdF9jdHhfdHlwZSB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI1OC1cdE1MWDVfUkVGT1JNQVRfVFlQRV9ERUxfTUFDU0VDID0gMHgxMixcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oOjcyNTk6XHRNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlQgPSAweDE2LFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI2MC19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDk3OAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUxYNV9GVEVfTUFUQ0hfUEFSQU1fUkVTRVJWRUQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTAyMAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYz01MTA9c3RhdGljIGJvb2wgY2hlY2tfdmFsaWRfc3BlYyhjb25zdCBzdHJ1Y3QgbWx4NV9mbG93X3NwZWMgKnNwZWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy01MTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjUxNDpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU07IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy01MTUtXHRcdGlmIChzcGVjLVx1MDAzZW1hdGNoX3ZhbHVlW2ldIFx1MDAyNiB+c3BlYy1cdTAwM2VtYXRjaF9jcml0ZXJpYVtpXSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjEyPXN0cnVjdCBtbHg1X2Z0X3VuZGVybGF5X3FwIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTIxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjE3OiNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTSBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjE4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjMzPXN0cnVjdCBmc19mdGUge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjM4LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjM5Olx0dTMyXHRcdFx0XHR2YWxbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTI0MC1cdHN0cnVjdCBmc19mdGVfYWN0aW9uXHRcdGFjdF9kZXN0cztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oPTI2Mz1zdHJ1Y3QgbWx4NV9mbG93X2dyb3VwX21hc2sge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjQtXHR1OFx0bWF0Y2hfY3JpdGVyaWFfZW5hYmxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyNjU6XHR1MzJcdG1hdGNoX2NyaXRlcmlhW01MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1dO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjYtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jPTc3MT1pbnQgbWx4NWRyX2NtZF9zZXRfZnRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9jbWQuYy04NTMtXHRcdFx0XHQgICAgICBtYXRjaF92YWx1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jOjg1NDpcdG1lbWNweShpbl9tYXRjaF92YWx1ZSwgZnRlLVx1MDAzZXZhbCwgc2l6ZW9mKHUzMikgKiBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYz0xMDE9aW50IG1seDVkcl9md19jcmVhdGVfbWRfdGJsKHN0cnVjdCBtbHg1ZHJfZG9tYWluICpkbW4sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTExMS1cdHN0cnVjdCBtbHg1ZHJfY21kX2Z0ZV9pbmZvIGZ0ZV9pbmZvID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTEyOlx0dTMyIHZhbFtNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNXSA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTExMy1cdHN0cnVjdCBtbHg1ZHJfY21kX2Z0X2luZm8gZnRfaW5mbyA9IHt9O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xOS0jZGVmaW5lIERSX1NURV9DVkxBTiAweDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaDoyMDojZGVmaW5lIERSX1NaX01BVENIX1BBUkFNIChNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNICogNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0yMS0jZGVmaW5lIERSX05VTV9PRl9GTEVYX1BBUlNFUlMgOFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzczMgoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDY0NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBTaWduaWZpY2FudCBNTFg1IERyaXZlciBDaGFuZ2UqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5IHNlZSBhIHByZXR0eSBzaWduaWZpY2FudCBjaGFuZ2UuIFRoZXkmIzM5O3ZlIHVwZGF0ZWQgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIGZyb20gc29tZXRoaW5nIHRoYXQgd2FzIGNhbGN1bGF0ZWQgdG8gYmVpbmcgZXhwbGljaXRseSBzZXQgdmlhIHRoZSBtYWNybyBgTUxYNV9TVF9TWl9EVyhmdGVfbWF0Y2hfcGFyYW0pYC4gIExldCYjMzk7cyBzZWUuLi4gUHJldmlvdXNseSwgdGhpcyB3YXMgZGVyaXZlZCBieSB0YWtpbmcgdGhlIG9mZnNldCBvZiBgcmVzZXJ2ZWRfYXRfZTAwYCB3aXRoaW4gdGhlIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdHVyZSAod2hpY2ggd2FzIDB4ZTAwLCBvciAzNTg0IGluIGRlY2ltYWwpLCBkaXZpZGluZyBpdCBieSB0aGUgc2l6ZSBvZiBhIGB1MzJgICh3aGljaCBpcyA0IGJ5dGVzKS4gIFNvLCBlc3NlbnRpYWxseSwgaXQgd2FzIDB4ZTAwIC8gNCwgcmVzdWx0aW5nIGluIDB4MzgwLiBOb3csIHRoZXkmIzM5O3ZlIG1hZGUgaXQgYE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKWAuIEdpdmVuIHRoYXQgdGhlIHRvdGFsIHNpemUgb2YgYGZ0ZV9tYXRjaF9wYXJhbWAgaXMgMHgxMDAwIGJ5dGVzICgweGUwMCAmIzQzOyAweDIwMCksIGRpdmlkaW5nIHRoaXMgYnkgNCBnaXZlcyB1cyAweDQwMC4gVGhhdCYjMzk7cyBhIG5vdGljZWFibGUgaW5jcmVhc2UuCgpUaGlzIGhhcyBkaXJlY3QgaW1wbGljYXRpb25zIGZvciB0aGUgc2l6ZXMgb2Ygc3RydWN0dXJlcyBsaWtlIGBmc19mdGVgIGFuZCBgbWx4NV9mbG93X2dyb3VwX21hc2tgLiBJdCBhbHNvIGFmZmVjdHMgaXRlcmF0aW9uIGNvdW50cyBpbiB0aGUgYGNoZWNrX3ZhbGlkX3NwZWNgIGZ1bmN0aW9uLiBJdCBzZWVtcyB0aGlzIGNoYW5nZXMgdGhlIHNpemUgb2YgdGhlIGB2YWxgIGFycmF5IGluIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAgYW5kIHRoZSBgbWVtY3B5YCBvcGVyYXRpb25zIHdpdGhpbiBgbWx4NWRyX2NtZF9zZXRfZnRlYC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBjaGFuZ2UgaW4gdGhlIG1seDUgZHJpdmVyJiMzOTtzIGhhbmRsaW5nIG9mIHRoZXNlIG1hdGNoIHBhcmFtZXRlcnMsIHNvIHdlICphYnNvbHV0ZWx5KiBuZWVkIHRvIGZ1enogdGhpcyB0aG9yb3VnaGx5LgoKTm93LCBsZXQmIzM5O3MgemVybyBpbiBvbiB0aGUga2V5IHN5bWJvbHMgaW52b2x2ZWQuIFRoZSBwYXRjaCBjbGVhcmx5IHRvdWNoZXMgYGNoZWNrX3ZhbGlkX3NwZWNgLCBgYWxsb2NfZnRlYCwgYG1seDVkcl9jbWRfc2V0X2Z0ZWAsIGFuZCBgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxgLiBXZSBzaG91bGQgY2hlY2sgaG93IGVhc2lseSB0aGVzZSBjYW4gYmUgcmVhY2hlZC4gYGNoZWNrX3ZhbGlkX3NwZWNgIGlzIHJlYWNoZWQgdmlhIGBfbWx4NV9hZGRfZmxvd19ydWxlc2AsIHdoaWNoIGlzIGluIHR1cm4gY2FsbGVkIGJ5IGBtbHg1X2FkZF9mbG93X3J1bGVzYC4gYG1seDVkcl9jbWRfc2V0X2Z0ZWAgaXMgaW52b2x2ZWQgd2l0aCB0aGUgU1RFIGFycmF5LiBJdCYjMzk7cyB0aW1lIHRvIGRpZyBpbnRvIHRoZSBjYWxsZXJzIG9mIGBtbHg1ZHJfY21kX3NldF9mdGVgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1ZHJfY21kX3NldF9mdGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9jbWQuYz0yNzk9aW50IG1seDVkcl9jbWRfc3luY19zdGVlcmluZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jLTI5NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM6Mjk1OmludCBtbHg1ZHJfY21kX3NldF9mdGVfbW9kaWZ5X2FuZF92cG9ydChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtMjk2LVx0XHRcdFx0XHR1MzIgdGFibGVfdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jPTczMj1zdGF0aWMgaW50IG1seDVkcl9jbWRfc2V0X2V4dGVuZGVkX2Rlc3Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jLTc3MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM6NzcxOmludCBtbHg1ZHJfY21kX3NldF9mdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtNzcyLVx0XHQgICAgICAgaW50IG9wbW9kLCBpbnQgbW9kaWZ5X21hc2ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jPTg9bWx4NWRyX2Z3X2NyZWF0ZV9yZWNhbGNfY3NfZnQoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbiwgdTE2IHZwb3J0X251bSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmMtNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6NTQ6XHRyZXQgPSBtbHg1ZHJfY21kX3NldF9mdGVfbW9kaWZ5X2FuZF92cG9ydChkbW4tXHUwMDNlbWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy01NS1cdFx0XHRcdFx0XHQgIE1MWDVfRkxPV19UQUJMRV9UWVBFX0ZEQixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM9MTAxPWludCBtbHg1ZHJfZndfY3JlYXRlX21kX3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTQ1Olx0cmV0ID0gbWx4NWRyX2NtZF9zZXRfZnRlKGRtbi1cdTAwM2VtZGV2LCAwLCAwLCBcdTAwMjZmdF9pbmZvLCAqZ3JvdXBfaWQsIFx1MDAyNmZ0ZV9pbmZvKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xNDYtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oPTEzMTM9aW50IG1seDVkcl9jbWRfc3luY19zdGVlcmluZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX3R5cGVzLmg6MTMxNDppbnQgbWx4NWRyX2NtZF9zZXRfZnRlX21vZGlmeV9hbmRfdnBvcnQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX3R5cGVzLmgtMTMxNS1cdFx0XHRcdFx0dTMyIHRhYmxlX3R5cGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oPTE1MjY9c3RydWN0IG1seDVkcl9jbWRfZnRlX2luZm8ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xNTM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oOjE1MzY6aW50IG1seDVkcl9jbWRfc2V0X2Z0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE1MzctXHRcdCAgICAgICBpbnQgb3Btb2QsIGludCBtb2RpZnlfbWFzayxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTYwNjMKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiA0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSYjMzk7bSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczoKCioqVHJhY2luZyB0aGUgT3JpZ2lucyBvZiB0aGUgRFIgRlQgRW50cnkgU2V0dXAqKgoKT2theSwgc28gYG1seDVkcl9jbWRfc2V0X2Z0ZWAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQmIzM5O3MgdWx0aW1hdGVseSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB1cCB0aGUgRm9yd2FyZGluZyBUYWJsZSBFbnRyeSBpbiB0aGUgRGF0YSBQYXRoIFJ1bGUuIE5vdywgd2hlcmUgaXMgdGhpcyBjcml0aWNhbCBmdW5jdGlvbiBiZWluZyBjYWxsZWQgZnJvbT8gVGhlIHRleHQgbWVudGlvbnMgaXQmIzM5O3MgY2FsbGVkIGJ5IGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAsIHdoaWNoIG1ha2VzIHNlbnNlOyB0aGUgTWV0YWRhdGEgVGFibGUgaXMgdGhlIGNvbnRhaW5lciB3aGVyZSB0aGVzZSBGVEVzIGxpdmUsIEkmIzM5O2QgZXhwZWN0IHNldHVwIHRvIG9jY3VyIHRoZXJlLgoKTXkgbmV4dCBzdGVwIGlzIHRvIHVuZGVyc3RhbmQgKndoeSogYG1seDVkcl9md19jcmVhdGVfbWRfdGJsYCBpcyBiZWluZyBpbnZva2VkLiBJIG5lZWQgdG8ga25vdyB0aGUgY2FsbGluZyBjb250ZXh0LiBMZXQgbWUgdHJhY2UgdGhlIGNhbGxzIHRvIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAgdG8gc2VlIHdoYXQmIzM5O3MgdHJpZ2dlcmluZyBpdHMgZXhlY3V0aW9uLiBGcm9tIHRoZXJlLCBJIHNob3VsZCBiZSBhYmxlIHRvIGdyYXNwIHRoZSBiaWdnZXIgcGljdHVyZSBvZiB3aGVyZSBhbmQgd2hlbiB0aGVzZSBGVEVzIGFyZSBnZXR0aW5nIHBvcHVsYXRlZCwgYW5kIHRoYXQgd2lsbCBnaXZlIG1lIHNvbWUgaW5zaWdodCBvbiB3aGVyZSB0byBsb29rIGZvciBhbiBpc3N1ZS4gVGhpcyB3aWxsIGhlbHAgbWUgdHJhY2UgdGhlIGRhdGEtZmxvdyB0aHJvdWdoIHRoZSBkZXZpY2UgZHJpdmVycyBpbiByZWxhdGlvbiB0byB0aGUgZGF0YXBsYW5lIGltcGxlbWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1ZHJfZndfY3JlYXRlX21kX3RibCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2FjdGlvbi5jPTExNzQ9bWx4NWRyX2FjdGlvbl9jcmVhdGVfbXVsdF9kZXN0X3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmMtMTI2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmM6MTI2NTpcdHJldCA9IG1seDVkcl9md19jcmVhdGVfbWRfdGJsKGRtbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmMtMTI2Ni1cdFx0XHRcdCAgICAgIGh3X2Rlc3RzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYz04Mz12b2lkIG1seDVkcl9md19kZXN0cm95X3JlY2FsY19jc19mdChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xMDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTAxOmludCBtbHg1ZHJfZndfY3JlYXRlX21kX3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTEwMi1cdFx0XHQgICAgc3RydWN0IG1seDVkcl9jbWRfZmxvd19kZXN0aW5hdGlvbl9od19pbmZvICpkZXN0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaD0xNTU1PWludCBtbHg1ZHJfZG9tYWluX2dldF9yZWNhbGNfY3NfZnRfYWRkcihzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xNTU3LVx0XHRcdFx0XHR1NjQgKnJ4X2ljbV9hZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaDoxNTU4OmludCBtbHg1ZHJfZndfY3JlYXRlX21kX3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE1NTktXHRcdFx0ICAgIHN0cnVjdCBtbHg1ZHJfY21kX2Zsb3dfZGVzdGluYXRpb25faHdfaW5mbyAqZGVzdCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ4MjgKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1ZHJfYWN0aW9uX2NyZWF0ZV9tdWx0X2Rlc3RfdGJsJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmM9MTE3Mz1zdHJ1Y3QgbWx4NWRyX2FjdGlvbiAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2FjdGlvbi5jOjExNzQ6bWx4NWRyX2FjdGlvbl9jcmVhdGVfbXVsdF9kZXN0X3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9hY3Rpb24uYy0xMTc1LVx0XHRcdFx0ICAgc3RydWN0IG1seDVkcl9hY3Rpb25fZGVzdCAqZGVzdHMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jPTI1Mj1zdGF0aWMgaW50IG1seDVfY21kX2RyX2NyZWF0ZV9mdGUoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTU4My1cdFx0fVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jOjU4NDpcdFx0dG1wX2FjdGlvbiA9IG1seDVkcl9hY3Rpb25fY3JlYXRlX211bHRfZGVzdF90YmwoZG9tYWluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTU4NS1cdFx0XHRcdFx0XHRcdFx0dGVybV9hY3Rpb25zLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvbWx4NWRyLmg9OTg9c3RydWN0IG1seDVkcl9hY3Rpb24gKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9tbHg1ZHIuaDo5OTptbHg1ZHJfYWN0aW9uX2NyZWF0ZV9tdWx0X2Rlc3RfdGJsKHN0cnVjdCBtbHg1ZHJfZG9tYWluICpkbW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL21seDVkci5oLTEwMC1cdFx0XHRcdCAgIHN0cnVjdCBtbHg1ZHJfYWN0aW9uX2Rlc3QgKmRlc3RzLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNTM0NAoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21seDVfY21kX2RyX2NyZWF0ZV9mdGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jPTI0MD1zdGF0aWMgYm9vbCBjb250YWluX3Zwb3J0X3JlZm9ybWF0X2FjdGlvbihzdHJ1Y3QgbWx4NV9mbG93X3J1bGUgKmRzdClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmMtMjUxLSNkZWZpbmUgTUxYNV9GTE9XX0NPTlRFWFRfQUNUSU9OX01BWCAgMzRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYzoyNTI6c3RhdGljIGludCBtbHg1X2NtZF9kcl9jcmVhdGVfZnRlKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTI1My1cdFx0XHRcdCAgc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jPTc1Nj1zdGF0aWMgaW50IG1seDVfY21kX2RyX3VwZGF0ZV9mdGUoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTc3Mi1cdC8qIEZpcnN0IGFkZCB0aGUgbmV3IHVwZGF0ZWQgcnVsZSwgdGhlbiBkZWxldGUgdGhlIG9sZCBydWxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmM6NzczOlx0cmV0ID0gbWx4NV9jbWRfZHJfY3JlYXRlX2Z0ZShucywgZnQsIGdyb3VwLCBmdGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTc3NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jPTg1OD1zdGF0aWMgY29uc3Qgc3RydWN0IG1seDVfZmxvd19jbWRzIG1seDVfZmxvd19jbWRzX2RyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYy04NjMtXHQuZGVzdHJveV9mbG93X2dyb3VwID0gbWx4NV9jbWRfZHJfZGVzdHJveV9mbG93X2dyb3VwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jOjg2NDpcdC5jcmVhdGVfZnRlID0gbWx4NV9jbWRfZHJfY3JlYXRlX2Z0ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYy04NjUtXHQudXBkYXRlX2Z0ZSA9IG1seDVfY21kX2RyX3VwZGF0ZV9mdGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MTcyCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMjQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgRmxvdyBSdWxlIENyZWF0aW9uIGluIG1seDUqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkmIzM5O20gc2VlaW5nLCBgbWx4NV9jbWRfZHJfY3JlYXRlX2Z0ZWAgaXMgYSBjYWxsYmFjayBzcGVjaWZpY2FsbHkgdXNlZCBmb3IgY3JlYXRpbmcgRnVuY3Rpb25hbCBUcmFmZmljIEVuZ2luZSAoRlRFKSBlbnRyaWVzLCBhbmQgaXQmIzM5O3MgY2FsbGVkIHRocm91Z2ggYGNyZWF0ZV9mdGVgIHdpdGhpbiBgbWx4NV9mbG93X2NtZHNfZHJgLiBJdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhhdCB0aGlzIHBhdGggaXMgYWN0aXZlbHkgaGl0IHdoZW4gZmxvdyBydWxlcyBhcmUgYmVpbmcgY3JlYXRlZC4gV2UgYWxzbyBzZWUgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIGJlaW5nIHVzZWQgZm9yIGBmc19mdGVgIGFsbG9jYXRpb24gaW4gYGZzX2NvcmUuY2AuIFRoZSBgZnNfZnRlYCBhbGxvY2F0aW9uIGl0c2VsZiBpcyBoYXBwZW5pbmcgd2l0aGluIGBhbGxvY19mdGVgLCB3aGljaCBpcywgaW4gdHVybiwgY2FsbGVkIGJ5IGBfbWx4NV9hZGRfZmxvd19ydWxlc2AuIFRoaXMgdGhlbiBnZXRzIGNhbGxlZCBieSBgbWx4NV9hZGRfZmxvd19ydWxlc2AsIHdoaWNoIEkga25vdyBpcyB0aGUgY29yZSBBUEkgaW4gbWx4NSBmb3IgYWRkaW5nIGZsb3cgcnVsZXMuCgpTbywgbG9naWNhbGx5LCB0aGlzIGVudGlyZSBzZXF1ZW5jZSBpcyBoaWdobHkgZnVuY3Rpb25hbCBhbmQgZGVmaW5pdGVseSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlLiBOb3csIGxldCYjMzk7cyBuYXJyb3cgZG93biBvdXIgZm9jdXMuCgpJJiMzOTttIHRoaW5raW5nIG9mIGZvY3VzaW5nIG91ciBpbnZlc3RpZ2F0aW9uIG9uIHN5bWJvbHMuIGBhbGxvY19mdGVgIGxvb2tzIGxpa2UgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBidXQgaXQmIzM5O3Mgc3RhdGljLCBzbyB3ZSBtaWdodCBoYXZlIHRvIHVzZSBgX21seDVfYWRkX2Zsb3dfcnVsZXNgIG9yIGBtbHg1X2FkZF9mbG93X3J1bGVzYCBzaW5jZSB0aG9zZSBhcmUgbm90LgoKSW4gYWRkaXRpb24sIGl0IGxvb2tzIGxpa2UgYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIGhhcyBiZWVuIG1vZGlmaWVkLCBzbyBsZXQmIzM5O3MgdmVyaWZ5IGlmIHRoYXQgaXMgcmVhY2hhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1aHdzX2NtZF9xdWVyeV9jYXBzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NzMzPWh3c19id2NfbWF0Y2hlcl9zaXplX21heGVkX291dChzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy03MzUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo3MzY6XHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyA9IGJ3Y19tYXRjaGVyLVx1MDAzZW1hdGNoZXItXHUwMDNldGJsLVx1MDAzZWN0eC1cdTAwM2VjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy03MzctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz04MTA9aHdzX2J3Y19tYXRjaGVyX2V4dGVuZF9zaXplKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTgxMy1cdHN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKmN0eCA9IGJ3Y19tYXRjaGVyLVx1MDAzZW1hdGNoZXItXHUwMDNldGJsLVx1MDAzZWN0eDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6ODE0Olx0c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMgPSBjdHgtXHUwMDNlY2FwcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtODE1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmM9ODkyPWludCBtbHg1aHdzX2NtZF9nZW5lcmF0ZV93cWUoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuYy05MzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jOjkzNzppbnQgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmM6OTM4Olx0XHRcdCAgIHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuYy05Mzkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmg9MTkxPXN0cnVjdCBtbHg1aHdzX2NtZF9nZW5lcmF0ZV93cWVfYXR0ciB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaC0xOTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oOjE5OTpzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oLTIwMC1cdHUzMiBmbGV4X3Byb3RvY29scztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oPTMzND1pbnQgbWx4NWh3c19jbWRfc3FfbW9kaWZ5X3JkeShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdTMyIHNxbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oLTMzNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmg6MzM2OmludCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaDozMzc6XHRcdFx0ICAgc3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaC0zMzgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM9ODk9c3RhdGljIHZvaWQgaHdzX2NvbnRleHRfY2hlY2tfaHdzX3N1cHAoc3RydWN0IG1seDVod3NfY29udGV4dCAqY3R4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtOTAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM6OTE6XHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyA9IGN0eC1cdTAwM2VjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtOTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM9MTg5PXN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKm1seDVod3NfY29udGV4dF9vcGVuKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jLTIwNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jOjIwODpcdHJldCA9IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMobWRldiwgY3R4LVx1MDAzZWNhcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtMjA5LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaD0zNz1zdHJ1Y3QgbWx4NWh3c19jb250ZXh0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5oLTM4LVx0c3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaDozOTpcdHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmgtNDAtXHR1MzIgcGRfbnVtO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVidWcuYz0yNzA9c3RhdGljIGludCBod3NfZGVidWdfZHVtcF9jb250ZXh0X2NhcHMoc3RydWN0IHNlcV9maWxlICpmLCBzdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICpjdHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlYnVnLmMtMjcxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVidWcuYzoyNzI6XHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyA9IGN0eC1cdTAwM2VjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWJ1Zy5jLTI3My1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYz0xMDc5PWh3c19kZWZpbmVyX2NvbnZfbWlzYyhzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2NvbnZfZGF0YSAqY2QsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTA4MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDgyOlx0c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMgPSBjZC1cdTAwM2VjdHgtXHUwMDNlY2FwcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEwODMtXHRzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2ZjICpmYyA9IGNkLVx1MDAzZWZjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jPTEyNzY9aHdzX2RlZmluZXJfY29udl9taXNjMihzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2NvbnZfZGF0YSAqY2QsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTI3OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMjc5Olx0c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMgPSBjZC1cdTAwM2VjdHgtXHUwMDNlY2FwcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEyODAtXHRzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2ZjICpmYyA9IGNkLVx1MDAzZWZjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jPTEzNTA9aHdzX2RlZmluZXJfY29udl9taXNjMyhzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2NvbnZfZGF0YSAqY2QsIHUzMiAqbWF0Y2hfcGFyYW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMzUxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEzNTI6XHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyA9IGNkLVx1MDAzZWN0eC1cdTAwM2VjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTM1My1cdHN0cnVjdCBtbHg1aHdzX2RlZmluZXJfZmMgKmZjID0gY2QtXHUwMDNlZmM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmM9NTY5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jOjU3MDpod3NfbWF0Y2hlcl9jaGVja19hdHRyX3N6KHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmMtNTcxLVx0XHRcdCAgc3RydWN0IG1seDVod3NfbWF0Y2hlciAqbWF0Y2hlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYz03NTI9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmM6NzUzOmh3c19tYXRjaGVyX3ZhbGlkYXRlX2luc2VydF9tb2RlKHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmMtNzU0LVx0XHRcdFx0IHN0cnVjdCBtbHg1aHdzX21hdGNoZXIgKm1hdGNoZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmM9ODE0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jOjgxNTpod3NfbWF0Y2hlcl9wcm9jZXNzX2F0dHIoc3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYy04MTYtXHRcdFx0IHN0cnVjdCBtbHg1aHdzX21hdGNoZXIgKm1hdGNoZXIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5MDQwCgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUxYNV9SRUZPUk1BVF9UWVBFX1JFTU9WRV9QU1BfVFJBTlNQT1JUJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oPTcyMzk9ZW51bSBtbHg1X3JlZm9ybWF0X2N0eF90eXBlIHtcbi0tXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC03MjU4LVx0TUxYNV9SRUZPUk1BVF9UWVBFX0RFTF9NQUNTRUMgPSAweDEyLFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6NzI1OTpcdE1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCA9IDB4MTYsXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC03MjYwLX07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5MjIyCgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUxYNV9BQ1RJT05fSU5fRklFTERfUFNQX0hFQURFUl8xJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oPTczNDI9ZW51bSB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzM4Mi1cdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX1BTUF9TWU5EUk9NRSAgICAgID0gMHg3MSxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oOjczODM6XHRNTFg1X0FDVElPTl9JTl9GSUVMRF9QU1BfSEVBREVSXzEgICAgICA9IDB4NzgsXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC03Mzg0LX07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NDAwCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmg9MTE2Nj1lbnVtIHtcbi0tXG5pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgtMTE3My1cdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzVcdD0gMSBcdTAwM2NcdTAwM2MgNixcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaDoxMTc0Olx0TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNlx0PSAxIFx1MDAzY1x1MDAzYyA3LFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oLTExNzUtfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk1NTMKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU182JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oPTY5ODk9ZW51bSB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNjk5Ni1cdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzUgPSAweDYsXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaDo2OTk3Olx0TUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfNiA9IDB4NyxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTY5OTgtfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk3NjAKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttaXNjX3BhcmFtZXRlcnNfNiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD0yMzM3PXN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfcGFyYW1fYml0cyB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtMjM1MS1cbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oOjIzNTI6XHRzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNl9iaXRzIG1pc2NfcGFyYW1ldGVyc182O1xuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtMjM1My19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjMzNAoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDE1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDdXJyZW50IFRoaW5raW5nIG9uIEZ1enppbmcgUHJpb3JpdGllcyoqCgpPa2F5LCB0aGUgcGF0Y2ggaXMgY29uZmlybWVkIGZ1bmN0aW9uYWwsIHRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBOb3csIGxldCYjMzk7cyBicmVhayBkb3duIHRoZSBpbXBsaWNhdGlvbnMgZm9yIGZ1enppbmcuIFRoZSBjaGFuZ2VzIHRvIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBkaXJlY3RseSBpbXBhY3QgdHdvIGNyaXRpY2FsIGZ1bmN0aW9uczogYGFsbG9jX2Z0ZWAgYW5kIGBjaGVja192YWxpZF9zcGVjYC4gVGhvc2UgYXJlIGRlZmluaXRlbHkgaGlnaC1wcmlvcml0eSBhcmVhcywgc2luY2UgdGhleSBhcmUgZGVhbGluZyB3aXRoIHRoZSBhbGxvY2F0aW9uIGFuZCB2YWxpZGF0aW9uIG9mIGZsb3cgdGFibGUgZW50cmllcy4gVGhlbiwgdGhlIG1vZGlmaWNhdGlvbnMgdG8gYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIGhhdmUgcmFtaWZpY2F0aW9ucyBmb3IgYG1seDVod3NfY29udGV4dF9vcGVuYC4KCk15IHByaW1hcnkgZnV6emluZyB0YXJnZXRzIHNob3VsZCBiZSBgbWx4NV9hZGRfZmxvd19ydWxlc2AsIGBtbHg1aHdzX2NvbnRleHRfb3BlbmAsIGFuZCBgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxgLiBJIG5lZWQgdG8gZW5zdXJlIHJvYnVzdCBjb3ZlcmFnZSBmb3IgcnVsZSBhZGRpdGlvbiBhbmQgdGhlIGNyZWF0aW9uIG9mIG1ldGFkYXRhIHRhYmxlcywgYXMgd2VsbCBhcyBjb250ZXh0IG9wZW5pbmcuIEFoLCB3YWl0LCBgbWx4NWh3c19jb250ZXh0X29wZW5gIGlzIHNwZWNpZmljYWxseSB0aWVkIHRvIGBtbHg1aHdzYCwgbWVhbmluZyBpdCYjMzk7cyBpbnZvbHZlZCBpbiBoYXJkd2FyZSBzdGVlcmluZy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgY2FsbCBncmFwaCB0byB2ZXJpZnkgdGhhdCBgbWx4NWh3c19jb250ZXh0X29wZW5gIGlzIGFjdHVhbGx5IGJlaW5nIGNhbGxlZCB3aXRoaW4gdGhlIHN5c3RlbS4gV2Ugd2FudCB0byBiZSBzdXJlIGl0JiMzOTtzIGhpdCBkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NWh3c19jb250ZXh0X29wZW4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM9MTc4PXN0YXRpYyB2b2lkIGh3c19jb250ZXh0X3VuaW5pdF9od3Moc3RydWN0IG1seDVod3NfY29udGV4dCAqY3R4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jLTE4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jOjE4OTpzdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICptbHg1aHdzX2NvbnRleHRfb3BlbihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jLTE5MC1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgbWx4NWh3c19jb250ZXh0X2F0dHIgKmF0dHIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9mc19od3MuYz0xMzA9c3RhdGljIGludCBtbHg1X2NtZF9od3NfY3JlYXRlX25zKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZnNfaHdzLmMtMTM5LVx0bnMtXHUwMDNlZnNfaHdzX2NvbnRleHQuaHdzX2N0eCA9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2ZzX2h3cy5jOjE0MDpcdFx0bWx4NWh3c19jb250ZXh0X29wZW4obnMtXHUwMDNlZGV2LCBcdTAwMjZod3NfY3R4X2F0dHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9mc19od3MuYy0xNDEtXHRpZiAoIW5zLVx1MDAzZWZzX2h3c19jb250ZXh0Lmh3c19jdHgpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21seDVod3MuaD0yMzU9c3RhdGljIGlubGluZSBib29sIG1seDVod3NfaXNfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oLTI0OS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oOjI1MDogKiBtbHg1aHdzX2NvbnRleHRfb3BlbiAtIE9wZW4gYSBjb250ZXh0IHVzZWQgZm9yIGRpcmVjdCBydWxlIGluc2VydGlvblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tbHg1aHdzLmgtMjUxLSAqIHVzaW5nIGhhcmR3YXJlIHN0ZWVyaW5nLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oPTI1OD1zdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oOjI1OTptbHg1aHdzX2NvbnRleHRfb3BlbihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oLTI2MC1cdFx0ICAgICBzdHJ1Y3QgbWx4NWh3c19jb250ZXh0X2F0dHIgKmF0dHIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzUzMQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTmFtZXNwYWNlIENyZWF0aW9uIFByb2Nlc3MqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gaG93IGZsb3cgc3RlZXJpbmcgbmFtZXNwYWNlcyBhcmUgY3JlYXRlZCBpbiB0aGUgTWVsbGFub3ggZHJpdmVyLiBUaGUgZmlyc3QgdGhpbmcgdGhhdCBqdW1wcyBvdXQgaXMgdGhhdCBgbWx4NV9jbWRfaHdzX2NyZWF0ZV9uc2AgaXMgdGhlIGtleSBmdW5jdGlvbiBiZWluZyBjYWxsZWQgZHVyaW5nIHRoZSBwcm9jZXNzLiBUaGF0IGdpdmVzIG1lIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgZm9yIHRyYWNpbmcgdGhlIGV4ZWN1dGlvbiBwYXRoLiBUaGVyZWZvcmUsIGBtbHg1X2FkZF9mbG93X3J1bGVzYCBhbmQgYG1seDVod3NfY29udGV4dF9vcGVuYCBsb29rIGxpa2UgZXNzZW50aWFsIHN5bWJvbHMgdG8ga2VlcCBhbiBleWUgb24sIGFzIHRoZXkmIzM5O2xsIGxpa2VseSBiZSBjbG9zZWx5IHJlbGF0ZWQuIFRoZW4gdGhlcmUgaXMgdGhlIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAsIHRoaXMgaXMgYW5vdGhlciBnb29kIG9uZS4gTm93LCB0aGUgYmlnIHF1ZXN0aW9uIGlzLCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgaW52b2x2ZWQ/IFRvIGZpZ3VyZSB0aGF0IG91dCwgSSYjMzk7bGwgZ28gc3RyYWlnaHQgdG8gdGhlIHNvdXJjZTogdGhlIGBLY29uZmlnYCBmaWxlIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZ2AuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSByZWxldmFudCBidWlsZC10aW1lIHNldHRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUxYNV9DT1JFJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2OmNvbmZpZyBNTFg1X0NPUkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIGNvcmUgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTk9Y29uZmlnIE1MWDVfRlBHQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6Mjk6Y29uZmlnIE1MWDVfQ09SRV9FTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMzAtXHRib29sIFwmIzM0O01lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgRXRoZXJuZXQgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTExMj1jb25maWcgTUxYNV9UQ19TQU1QTEVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMjU6Y29uZmlnIE1MWDVfQ09SRV9FTl9EQ0JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEyNi1cdGJvb2wgXCYjMzQ7RGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgU3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjEzNzpjb25maWcgTUxYNV9DT1JFX0lQT0lCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMzgtXHRib29sIFwmIzM0O01lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKGNvbm5lY3RYIHNlcmllcykgSVBvSUIgb2ZmbG9hZHMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDMzMwoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duLCBhcyBhIHN5c3RlbXMgZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIE1MWDUgQ29uZmlndXJhdGlvbiBmb3IgSFcvU1cgU3Vic3lzdGVtcyoqCgpSaWdodCwgbGV0IG1lIHN0YXJ0IGJ5IGZvY3VzaW5nIG9uIGBNTFg1X0NPUkVgLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZSwgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBlbnRpcmUgc3lzdGVtLCBJIGtub3cgdGhhdC4gQnV0IG5vdyBJJiMzOTttIGRpZ2dpbmcgZGVlcGVyIGludG8gaG93IHRoYXQgY29yZSBjb25maWcgcGxheXMgb3V0IGZvciBzcGVjaWZpYyBzdWJzeXN0ZW1zLgoKV2hhdCBJIHJlYWxseSBuZWVkIHRvIGtub3cgaXM6IGFyZSB0aGVyZSBhbnkgKnNwZWNpZmljKiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMsIHByb2ZpbGVzLCBvciBzcGVjaWFsIHNldHRpbmdzIHRoYXQgYXJlIHVuaXF1ZSB0byB0aGUgJiMzNDtod3MmIzM0OyBhbmQgJiMzNDtzd3MmIzM0OyBjb21wb25lbnRzPyBJdCYjMzk7cyBub3QgZW5vdWdoIHRvIGp1c3QgdW5kZXJzdGFuZCBgTUxYNV9DT1JFYCBnZW5lcmljYWxseS4gSSBoYXZlIHRvIGRyaWxsIGRvd24uIEFyZSB0aGVyZSBzZXBhcmF0ZSwgc3BlY2lhbGl6ZWQgdHdlYWtzIG9yIG92ZXJyaWRlcyBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBhbmQgc29mdHdhcmUtc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIHRoYXQgaW50ZXJhY3Qgd2l0aCBgTUxYNV9DT1JFYD8gVW5kZXJzdGFuZGluZyB0aGF0IG51YW5jZSBpcyBjcnVjaWFsIHRvIG9wdGltaXphdGlvbiBhbmQgdHJvdWJsZXNob290aW5nLiBNeSBuZXh0IHN0ZXAgaW52b2x2ZXMgZmluZGluZyBkb2N1bWVudGF0aW9uIGFuZCBjcm9zcy1yZWZlcmVuY2luZyBjb25maWd1cmF0aW9ucyB0byBmaW5kIHRoZSBkaWZmZXJlbmNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RlZXJpbmcvaHdzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT0xMjE9bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICYjNDM7PSBzdGVlcmluZy9zd3MvZHJfZG9tYWluLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTQ1LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfSFdfU1RFRVJJTkcpICYjNDM7PSBzdGVlcmluZy9od3MvY21kLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDc6XHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9jb250ZXh0Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDg6XHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9wYXRfYXJnLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDk6XHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9idWRkeS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTUwOlx0XHRcdFx0XHRzdGVlcmluZy9od3MvcG9vbC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTUxOlx0XHRcdFx0XHRzdGVlcmluZy9od3MvdGFibGUubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE1MjpcdFx0XHRcdFx0c3RlZXJpbmcvaHdzL2FjdGlvbi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTUzOlx0XHRcdFx0XHRzdGVlcmluZy9od3MvcnVsZS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU0Olx0XHRcdFx0XHRzdGVlcmluZy9od3MvbWF0Y2hlci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU1Olx0XHRcdFx0XHRzdGVlcmluZy9od3Mvc2VuZC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU2Olx0XHRcdFx0XHRzdGVlcmluZy9od3MvZGVmaW5lci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU3Olx0XHRcdFx0XHRzdGVlcmluZy9od3MvYndjLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTg6XHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9kZWJ1Zy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU5Olx0XHRcdFx0XHRzdGVlcmluZy9od3MvdnBvcnQubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE2MDpcdFx0XHRcdFx0c3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNjE6XHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9mc19od3NfcG9vbHMubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE2MjpcdFx0XHRcdFx0c3RlZXJpbmcvaHdzL2ZzX2h3cy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTYzOlx0XHRcdFx0XHRzdGVlcmluZy9od3MvYWN0aW9uX3N0ZV9wb29sLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYy04LSNpbmNsdWRlIFwmIzM0O2ZzX2NvcmUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYzo5OiNpbmNsdWRlIFwmIzM0O3N0ZWVyaW5nL2h3cy9mc19od3NfcG9vbHMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYzoxMDojaW5jbHVkZSBcJiMzNDtzdGVlcmluZy9od3MvbWx4NWh3cy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnNfaG1mcy5jOjExOiNpbmNsdWRlIFwmIzM0O3N0ZWVyaW5nL2h3cy90YWJsZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnNfaG1mcy5jLTEyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtNDAtI2luY2x1ZGUgXHUwMDNjc3RlZXJpbmcvc3dzL2ZzX2RyLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6NDE6I2luY2x1ZGUgXHUwMDNjc3RlZXJpbmcvaHdzL2ZzX2h3cy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTQyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjk2MQoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTFg1X0hXX1NURUVSSU5HJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTE2Nz1jb25maWcgTUxYNV9TV19TVEVFUklOR1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE3NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjE3NTpjb25maWcgTUxYNV9IV19TVEVFUklOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgaGFyZHdhcmUtbWFuYWdlZCBzdGVlcmluZ1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzEyNAoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTFg1X1NXX1NURUVSSU5HJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTE1OT1jb25maWcgTUxYNV9FTl9UTFNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNjc6Y29uZmlnIE1MWDVfU1dfU1RFRVJJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE2OC1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIHNvZnR3YXJlLW1hbmFnZWQgc3RlZXJpbmdcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU5NzkKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA1MDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBNTFg1IERyaXZlciBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIHdoYXQgSSBzZWUsIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBwYXRjaCB0aGF0IHRvdWNoZXMgc2V2ZXJhbCBhc3BlY3RzIG9mIHRoZSBNTFg1IGRyaXZlciYjMzk7cyBmbG93IHN0ZWVyaW5nIGNhcGFiaWxpdGllcy4gU3BlY2lmaWNhbGx5LCB0aGUgY29uZmlncyB0aGF0IGFyZSByZWxldmFudCBzZWVtIHRvIGJlIGBNTFg1X0NPUkVgLCBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBgTUxYNV9TV19TVEVFUklOR2AuIFRoZSBjaGFuZ2VzIGFyZSBoaXR0aW5nIGBmc19jb3JlLmhgLCB3aGljaCBpcyBhIGNvbW1vbiBoZWFkZXIgdXNlZCBieSBib3RoIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBzdGVlcmluZyBwYXRocywgYW5kIGBzdGVlcmluZy9od3MvY21kLmNgLCB3aGljaCBpcyBzcGVjaWZpYyB0byBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBhbHNvIGBzdGVlcmluZy9zd3MvZHJfY21kLmNgIGFuZCBgc3RlZXJpbmcvc3dzL2RyX2Z3LmNgIHdoaWNoIGFyZSB1c2VkIGJ5IGBNTFg1X1NXX1NURUVSSU5HYC4KCk5vdywgdGhlIGluaXRpYWwgZGlmZiBJIHdhcyBnaXZlbiBvbmx5IHNob3dlZCBtb2RpZmljYXRpb25zIHRvIGBmc19jb3JlLmhgLCBgc3RlZXJpbmcvaHdzL2NtZC5jYCwgYW5kIGEgY291cGxlIG9mIGhlYWRlciBmaWxlcywgbmFtZWx5IGBpbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmhgIGFuZCBgaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhgLiBCdXQgdGhhdCYjMzk7cyBub3QgdGhlIHdob2xlIHN0b3J5LiBJIG5lZWRlZCB0byBpbnZlc3RpZ2F0ZSB0aGUgaW1wYWN0IG9uIHNvZnR3YXJlIHN0ZWVyaW5nLiBBZnRlciBkb2luZyBhIGBncmVwYCBmb3IgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gLCBkZWZpbmVkIGluIGBmc19jb3JlLmhgLCBJIGZvdW5kIHRoYXQgaXQmIzM5O3MgYWxzbyB1dGlsaXplZCBpbiBib3RoIGBzdGVlcmluZy9zd3MvZHJfY21kLmNgIGFuZCBgc3RlZXJpbmcvc3dzL2RyX2Z3LmNgLiBUaGlzIGNvbmZpcm1zIHRoYXQgdGhlIGNoYW5nZXMgaW4gYGZzX2NvcmUuaGAgaW5mbHVlbmNlIGJvdGggdGhlIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBzdGVlcmluZyBwYXRocy4KCkdpdmVuIHRoaXMsIEkgaGF2ZSB0byBlbnN1cmUgSSYjMzk7bSBjb3ZlcmluZyBib3RoIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBhc3BlY3RzLiBUaGUgY2hhbmdlcyBpbiBgZnNfY29yZS5oYCBzaG91bGQgYmUgY29uc2lkZXJlZCBmb3IgYm90aCBzdGVlcmluZyBvcHRpb25zLiBUaGF0IG1lYW5zIEkgbmVlZCB0byBpbmNsdWRlIGFsbCB0aHJlZSBjb25maWd1cmF0aW9ucyB0byBlbnN1cmUgdGhlIGZ1enppbmcgaXMgdGhvcm91Z2ggYW5kIGNvbXBsZXRlLgoKU28sIGhlcmUmIzM5O3MgbXkgc3VtbWFyaXplZCBhcHByb2FjaDoKCiogICAqKldvcnRoRnV6emluZzoqKiBZZXMKKiAgICoqRm9jdXMgU3ltYm9sczoqKiBJIHNob3VsZCBjb25jZW50cmF0ZSBvbiB0aGVzZSBmdW5jdGlvbnM6IGBtbHg1X2FkZF9mbG93X3J1bGVzYCwgYG1seDVod3NfY29udGV4dF9vcGVuYCwgYW5kIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAuCiogICAqKkVuYWJsZWQgQ29uZmlndXJhdGlvbnM6KiogRGVmaW5pdGVseSBpbmNsdWRlIGBNTFg1X0NPUkVgLCBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBgTUxYNV9TV19TVEVFUklOR2AuCgpBIHF1ZXN0aW9uIHRoYXQgYXJvc2UgZHVyaW5nIHRoaXMgYW5hbHlzaXMgaXMgd2hldGhlciBgTUxYNV9DT1JFYCBpcyBzdWZmaWNpZW50LCBvciBpZiBgTUxYNV9DT1JFX0VOYCB3b3VsZCBiZSBuZWVkZWQgYXMgd2VsbC4gV2hpbGUgYE1MWDVfSFdfU1RFRVJJTkdgIGFuZCBgTUxYNV9TV19TVEVFUklOR2AgZGVwZW5kIG9uIGBNTFg1X0NPUkVgLCBhbmQgYE1MWDVfQ09SRWAgaXMgdXN1YWxseSBlbm91Z2gsIGl0JiMzOTtzIHdvcnRoIGRvdWJsZS1jaGVja2luZyB3aGF0IGBNTFg1X0hXX1NURUVSSU5HYCBkZXBlbmRzIG9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUxYNV9IV19TVEVFUklORyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz0xNjc9Y29uZmlnIE1MWDVfU1dfU1RFRVJJTkdcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNzU6Y29uZmlnIE1MWDVfSFdfU1RFRVJJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIGhhcmR3YXJlLW1hbmFnZWQgc3RlZXJpbmdcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcyNjQKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTY1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxNjU6XHRcdEJ1aWxkIHN1cHBvcnQgZm9yIFRMUyBjcnlwdG9ncmFwaHktb2ZmbG9hZCBhY2NlbGVyYXRpb24gaW4gdGhlIE5JQy5cbiAxNjY6XHRcbiAxNjc6XHRjb25maWcgTUxYNV9TV19TVEVFUklOR1xuIDE2ODpcdFx0Ym9vbCBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgc29mdHdhcmUtbWFuYWdlZCBzdGVlcmluZ1wmIzM0O1xuIDE2OTpcdFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU4gXHUwMDI2XHUwMDI2IE1MWDVfRVNXSVRDSFxuIDE3MDpcdFx0c2VsZWN0IENSQzMyXG4gMTcxOlx0XHRkZWZhdWx0IHlcbiAxNzI6XHRcdGhlbHBcbiAxNzM6XHRcdEJ1aWxkIHN1cHBvcnQgZm9yIHNvZnR3YXJlLW1hbmFnZWQgc3RlZXJpbmcgaW4gdGhlIE5JQy5cbiAxNzQ6XHRcbiAxNzU6XHRjb25maWcgTUxYNV9IV19TVEVFUklOR1xuIDE3NjpcdFx0Ym9vbCBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgaGFyZHdhcmUtbWFuYWdlZCBzdGVlcmluZ1wmIzM0O1xuIDE3NzpcdFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU4gXHUwMDI2XHUwMDI2IE1MWDVfRVNXSVRDSFxuIDE3ODpcdFx0ZGVmYXVsdCB5XG4gMTc5Olx0XHRoZWxwXG4gMTgwOlx0XHRCdWlsZCBzdXBwb3J0IGZvciBIYXJkd2FyZS1NYW5hZ2VkIEZsb3cgU3RlZXJpbmcgKEhNRlMpIGluIHRoZSBOSUMuXG4gMTgxOlx0XHRITUZTIGlzIGEgbmV3IGFwcHJvYWNoIHRvIG1hbmFnaW5nIHN0ZWVyaW5nIHJ1bGVzIHdoZXJlIFNURXMgYXJlXG4gMTgyOlx0XHR3cml0dGVuIHRvIElDTSBieSBIVyAoYXMgb3Bwb3NlZCB0byBTVyBpbiBzb2Z0d2FyZS1tYW5hZ2VkIHN0ZWVyaW5nKSxcbiAxODM6XHRcdHdoaWNoIGFsbG93cyBoaWdoZXIgcmF0ZSBvZiBydWxlIGluc2VydGlvbi5cbiAxODQ6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc2MjUKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiA4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB1bmRlcnN0YW5kaW5nLCBmcmFtZWQgYXMgbXkgaW50ZXJuYWwgdGhvdWdodCBwcm9jZXNzOgoKKipEZXBlbmRlbmNpZXMgYW5kIFNjb3BlIGZvciBUaGlzIFNlY3Rpb24qKgoKUmlnaHQsIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWZpYyBzZXQgb2YgZnVuY3Rpb25hbGl0aWVzIGhlcmUsIGFuZCB0aGV5JiMzOTtyZSBpbnRyaW5zaWNhbGx5IGxpbmtlZCB0byB0aGUgcHJlc2VuY2Ugb2YgYE1MWDVfQ09SRV9FTmAgYW5kIGBNTFg1X0VTV0lUQ0hgLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIGEgZGVwZW5kZW5jeSB0cmVlIEkgbmVlZCB0byBzb2xpZGlmeSBpbiBteSBtaW5kLiBUbyBiZSBjb21wcmVoZW5zaXZlLCBJIG5lZWQgdG8gaW5jbHVkZSBjb25zaWRlcmF0aW9ucyBmb3IgdGhlIGNvcmUgY29tcG9uZW50cywgdGhlaXIgZW5hYmxlZCBzdGF0ZXMsIGFuZCBhbnkgaW52b2x2ZWQgc3dpdGNoIGZ1bmN0aW9uYWxpdHkuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIG1ha2UgYWJzb2x1dGVseSBzdXJlIHRvIGV4cGxpY2l0bHkgYWNjb3VudCBmb3IgYE1MWDVfQ09SRWAgKHRoZSBmb3VuZGF0aW9uYWwgZWxlbWVudCksIHRoZW4gYE1MWDVfQ09SRV9FTmAsIGBNTFg1X0VTV0lUQ0hgIChzaW5jZSB0aGF0JiMzOTtzIHRoZSBwcmltYXJ5IGRlcGVuZGVuY3kpLiBJIHNob3VsZCBhbHNvIHByb2JhYmx5IGluY2x1ZGUgYm90aCB0aGUgc29mdHdhcmUgYW5kIGhhcmR3YXJlIHN0ZWVyaW5nIGNvbXBvbmVudHMgYXMgdGhlc2UgbWlnaHQgaW5mbHVlbmNlIHRoZSBiZWhhdmlvci4gVGhlcmVmb3JlIEkmIzM5O2xsIGluY29ycG9yYXRlIGBNTFg1X1NXX1NURUVSSU5HYCBhbmQgYE1MWDVfSFdfU1RFRVJJTkdgIHRvby4gSSB3YW50IHRvIG1ha2Ugc3VyZSBJIGdldCB0aGlzIGFic29sdXRlbHkgcmlnaHQuCgpOb3csIGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayBteSB1bmRlcnN0YW5kaW5nIG9mIGBNTFg1X0VTV0lUQ0hgLiBJIG5lZWQgdG8gZW5zdXJlIG15IG1lbnRhbCBtb2RlbCBvZiB0aGF0IHNwZWNpZmljIGFzcGVjdCBpcyBhY2N1cmF0ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1MWDVfRVNXSVRDSCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz01Nj1jb25maWcgTUxYNV9NUEZTXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2Njpjb25maWcgTUxYNV9FU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy02Ny1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgU1JJT1YgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODEyNQoJCQkJCQkJb3V0cHV0OiAyMzMKCQkJCQkJCXRob3VnaHRzOiAyMDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQ3VycmVudCBUaGlua2luZyoqCgpBbHJpZ2h0LCBJJiMzOTttIHRyeWluZyB0byBtYXAgb3V0IHRoZSBrZXkgYXJlYXMgaW4gdGhpcyBjb2RlLiBJIG5lZWQgdG8gZXN0YWJsaXNoIGEgZ29vZCBzZXQgb2YgZm9jdXMgc3ltYm9scyB0byBndWlkZSBteSBhbmFseXNpcy4gSW5pdGlhbGx5LCBJIHdhcyB0aGlua2luZyBhYm91dCBpbmNvcnBvcmF0aW5nIHNldmVyYWwgY29tcG9uZW50cywgc3BlY2lmaWNhbGx5IGBNTFg1X0NPUkVgLCBgTUxYNV9DT1JFX0VOYCwgYE1MWDVfRVNXSVRDSGAsIGBNTFg1X1NXX1NURUVSSU5HYCwgYW5kIGBNTFg1X0hXX1NURUVSSU5HYC4gQnV0LCBJIG5lZWQgbW9yZSBwcmVjaXNlIGVudHJ5IHBvaW50cy4KCkkgY29uc2lkZXJlZCBgbWx4NV9hZGRfZmxvd19ydWxlc2AgYXMgYSBnb29kIGZvY2FsIHBvaW50LCBzaW5jZSBpdCBkZWFscyB3aXRoIGZsb3cgcnVsZXMsIGJ1dCB0aGVuIEkgc3RhcnRlZCB0aGlua2luZyBhYm91dCByZWxhdGVkIGZ1bmN0aW9ucyBhbmQgZGlzY292ZXJlZCBgbWx4NWh3c19jb250ZXh0X29wZW5gLCB3aGljaCBnZXRzIGNhbGxlZCB3aGVuIGEgbmFtZXNwYWNlIGlzIGNyZWF0ZWQuIEkgbmVlZGVkIHRvIHNlZSBpZiB0aGVyZSB3ZXJlIGFueSBvdGhlciBnb29kIGNhbmRpZGF0ZXMuCgpBZnRlciBmdXJ0aGVyIHJldmlldywgSSBmb3VuZCB0aGF0IGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCBpcyBkaXJlY3RseSBtb2RpZmllZCwgc28gSSYjMzk7bGwgaW5jbHVkZSB0aGF0LiBJJiMzOTttIHNldHRsaW5nIG9uIHRoZXNlIHRocmVlOiBgbWx4NV9hZGRfZmxvd19ydWxlc2AsIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCwgYW5kIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAuIEkgdGhpbmsgdGhlc2Ugc2hvdWxkIG9mZmVyIGEgZ29vZCBmb3VuZGF0aW9uIGZvciBhbmFseXNpcy4KCkkmIzM5O20gcmVhZHkgdG8gbW92ZSBvbiB0byB0aGUgbmV4dCBzdGVwLCBsZXQmIzM5O3MgY2FsbCBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01MWDVfQ09SRSYjMzQ7LAogICAgJiMzNDtNTFg1X0NPUkVfRU4mIzM0OywKICAgICYjMzQ7TUxYNV9FU1dJVENIJiMzNDssCiAgICAmIzM0O01MWDVfU1dfU1RFRVJJTkcmIzM0OywKICAgICYjMzQ7TUxYNV9IV19TVEVFUklORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21seDVfYWRkX2Zsb3dfcnVsZXMmIzM0OywKICAgICYjMzQ7bWx4NWh3c19jbWRfcXVlcnlfY2FwcyYjMzQ7LAogICAgJiMzNDttbHg1ZHJfZndfY3JlYXRlX21kX3RibCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCB1c2VkIGluIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNybywgd2hpY2ggYWZmZWN0cyB0aGUgc2l6ZSBvZiBgZnNfZnRlYCBhbmQgYG1seDVfZmxvd19ncm91cF9tYXNrYCBzdHJ1Y3RzIGFuZCB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gYGNoZWNrX3ZhbGlkX3NwZWNgLiBJdCBhbHNvIG1vZGlmaWVzIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCB0byByZWFkIGZyb20gYGVfc3dpdGNoX2NhcGAgaW5zdGVhZCBvZiBgZXN3X2NhcGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG1seDUgZHJpdmVyJiMzOTtzIGZsb3cgc3RlZXJpbmcgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01MWDVfQ09SRSYjMzQ7LAogICAgJiMzNDtNTFg1X0NPUkVfRU4mIzM0OywKICAgICYjMzQ7TUxYNV9FU1dJVENIJiMzNDssCiAgICAmIzM0O01MWDVfU1dfU1RFRVJJTkcmIzM0OywKICAgICYjMzQ7TUxYNV9IV19TVEVFUklORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21seDVfYWRkX2Zsb3dfcnVsZXMmIzM0OywKICAgICYjMzQ7bWx4NWh3c19jbWRfcXVlcnlfY2FwcyYjMzQ7LAogICAgJiMzNDttbHg1ZHJfZndfY3JlYXRlX21kX3RibCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCB1c2VkIGluIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNybywgd2hpY2ggYWZmZWN0cyB0aGUgc2l6ZSBvZiBgZnNfZnRlYCBhbmQgYG1seDVfZmxvd19ncm91cF9tYXNrYCBzdHJ1Y3RzIGFuZCB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gYGNoZWNrX3ZhbGlkX3NwZWNgLiBJdCBhbHNvIG1vZGlmaWVzIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCB0byByZWFkIGZyb20gYGVfc3dpdGNoX2NhcGAgaW5zdGVhZCBvZiBgZXN3X2NhcGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG1seDUgZHJpdmVyJiMzOTtzIGZsb3cgc3RlZXJpbmcgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTozOTo0OC4zMjk0MzgxNjdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTc5MTk4OTgzODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUxYNV9DT1JFXCIsXG4gICAgXCJNTFg1X0NPUkVfRU5cIixcbiAgICBcIk1MWDVfRVNXSVRDSFwiLFxuICAgIFwiTUxYNV9TV19TVEVFUklOR1wiLFxuICAgIFwiTUxYNV9IV19TVEVFUklOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1seDVfYWRkX2Zsb3dfcnVsZXNcIixcbiAgICBcIm1seDVod3NfY21kX3F1ZXJ5X2NhcHNcIixcbiAgICBcIm1seDVkcl9md19jcmVhdGVfbWRfdGJsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHNpemUgb2YgYGZ0ZV9tYXRjaF9wYXJhbWAgdXNlZCBpbiBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgbWFjcm8sIHdoaWNoIGFmZmVjdHMgdGhlIHNpemUgb2YgYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2Agc3RydWN0cyBhbmQgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIGluIGBjaGVja192YWxpZF9zcGVjYC4gSXQgYWxzbyBtb2RpZmllcyBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AgdG8gcmVhZCBmcm9tIGBlX3N3aXRjaF9jYXBgIGluc3RlYWQgb2YgYGVzd19jYXBgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBtbHg1IGRyaXZlcidzIGZsb3cgc3RlZXJpbmcgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjM5OjQ4LjMyOTQ0Njk1OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMyMDE2MjAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMDJiZGZlYjljNGU4NTMyMzcxYjc1ZTdjYzA1ODczMjMyNjMyODk0Y1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAxMyAxMTozOTo0NiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaFxcbmluZGV4IGRiYWYzM2I1MzdmNzExLi45MDY1ODQzNDVhMDIyZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaFxcbkBAIC0yMTQsMTcgKzIxNCw3IEBAIHN0cnVjdCBtbHg1X2Z0X3VuZGVybGF5X3FwIHtcXG4gXFx0dTMyIHFwbjtcXG4gfTtcXG4gXFxuLSNkZWZpbmUgTUxYNV9GVEVfTUFUQ0hfUEFSQU1fUkVTRVJWRURcXHRyZXNlcnZlZF9hdF9lMDBcXG4tLyogQ2FsY3VsYXRlIHRoZSBmdGVfbWF0Y2hfcGFyYW0gbGVuZ3RoIGFuZCB3aXRob3V0IHRoZSByZXNlcnZlZCBsZW5ndGguXFxuLSAqIE1ha2Ugc3VyZSB0aGUgcmVzZXJ2ZWQgZmllbGQgaXMgdGhlIGxhc3QuXFxuLSAqL1xcbi0jZGVmaW5lIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1cXHRcXHRcXHRcXHRcXHQgICAgXFxcXFxcbi1cXHQoKE1MWDVfQllURV9PRkYoZnRlX21hdGNoX3BhcmFtLCBNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRCkgLyBzaXplb2YodTMyKSkgKyBcXFxcXFxuLVxcdCBCVUlMRF9CVUdfT05fWkVSTyhNTFg1X1NUX1NaX0JZVEVTKGZ0ZV9tYXRjaF9wYXJhbSkgIT1cXHRcXHQgICAgIFxcXFxcXG4tXFx0XFx0XFx0ICAgTUxYNV9GTERfU1pfQllURVMoZnRlX21hdGNoX3BhcmFtLFxcdFxcdCAgICAgXFxcXFxcbi1cXHRcXHRcXHRcXHRcXHQgICAgIE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSArXFxcXFxcbi1cXHRcXHRcXHQgICBNTFg1X0JZVEVfT0ZGKGZ0ZV9tYXRjaF9wYXJhbSxcXHRcXHQgICAgIFxcXFxcXG4tXFx0XFx0XFx0XFx0XFx0IE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSkpXFxuKyNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTSBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlcXG4gXFxuIHN0cnVjdCBmc19mdGVfYWN0aW9uIHtcXG4gXFx0aW50XFx0XFx0XFx0XFx0bW9kaWZ5X21hc2s7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jXFxuaW5kZXggZTYyNGY1ZGE5NmM4MWIuLjhmYWU5MDEwMTY1M2Y4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jXFxuQEAgLTExNzIsMTMgKzExNzIsMTMgQEAgaW50IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXFxuIFxcdFxcdH1cXG4gXFxuIFxcdFxcdGlmIChNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxcbi1cXHRcXHRcXHQgICAgIGNhcGFiaWxpdHkuZXN3X2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWQpKVxcbitcXHRcXHRcXHQgICAgIGNhcGFiaWxpdHkuZV9zd2l0Y2hfY2FwLmVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcl92YWxpZCkpXFxuIFxcdFxcdFxcdGNhcHMtXFx1MDAzZWVzd2l0Y2hfbWFuYWdlcl92cG9ydF9udW1iZXIgPVxcbiBcXHRcXHRcXHRcXHRNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxcbi1cXHRcXHRcXHRcXHRcXHQgY2FwYWJpbGl0eS5lc3dfY2FwLmVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcik7XFxuK1xcdFxcdFxcdFxcdFxcdCBjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXIpO1xcbiBcXG4gXFx0XFx0Y2Fwcy1cXHUwMDNlbWVyZ2VkX2Vzd2l0Y2ggPSBNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxcbi1cXHRcXHRcXHRcXHRcXHRcXHRjYXBhYmlsaXR5LmVzd19jYXAubWVyZ2VkX2Vzd2l0Y2gpO1xcbitcXHRcXHRcXHRcXHRcXHRcXHRjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5tZXJnZWRfZXN3aXRjaCk7XFxuIFxcdH1cXG4gXFxuIFxcdHJldCA9IG1seDVfY21kX2V4ZWMobWRldiwgaW4sIHNpemVvZihpbiksIG91dCwgb3V0X3NpemUpO1xcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmhcXG5pbmRleCAwN2EyNWYyNjQyOTIxMy4uOGNiMzIxYTlmYjNkMWQgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oXFxuKysrIGIvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oXFxuQEAgLTExNzEsNiArMTE3MSw3IEBAIGVudW0ge1xcbiBcXHRNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU18zXFx0PSAxIFxcdTAwM2NcXHUwMDNjIDQsXFxuIFxcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzRcXHQ9IDEgXFx1MDAzY1xcdTAwM2MgNSxcXG4gXFx0TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNVxcdD0gMSBcXHUwMDNjXFx1MDAzYyA2LFxcbitcXHRNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU182XFx0PSAxIFxcdTAwM2NcXHUwMDNjIDcsXFxuIH07XFxuIFxcbiBlbnVtIHtcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmggYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaFxcbmluZGV4IDRmNTliN2U4YTNkNWQ2Li5jZjAxOTIyY2Y2OWZkYiAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oXFxuQEAgLTUwOCw3ICs1MDgsOCBAQCBzdHJ1Y3QgbWx4NV9pZmNfZmxvd190YWJsZV9wcm9wX2xheW91dF9iaXRzIHtcXG4gXFx0dTggICAgICAgICByZWZvcm1hdF9sMl90b19sM19hdWRwX3R1bm5lbFsweDFdO1xcbiBcXHR1OCAgICAgICAgIHJlZm9ybWF0X2wzX2F1ZHBfdHVubmVsX3RvX2wyWzB4MV07XFxuIFxcdHU4ICAgICAgICAgaWdub3JlX2Zsb3dfbGV2ZWxfcnRjX3ZhbGlkWzB4MV07XFxuLVxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNzBbMHg4XTtcXG4rXFx0dTggICAgICAgICByZXNlcnZlZF9hdF83MFsweDddO1xcbitcXHR1OCAgICAgICAgIHJlZm9ybWF0X2RlbF9wc3BfdHJhbnNwb3J0WzB4MV07XFxuIFxcdHU4ICAgICAgICAgbG9nX21heF9mdF9udW1bMHg4XTtcXG4gXFxuIFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfODBbMHgxMF07XFxuQEAgLTc5OCw2ICs3OTksMTUgQEAgc3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzVfYml0cyB7XFxuIFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMTAwWzB4MTAwXTtcXG4gfTtcXG4gXFxuK3N0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfc2V0X21pc2M2X2JpdHMge1xcbitcXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzBbMHgxYV07XFxuK1xcdHU4ICAgICAgICAgcHNwX3ZlcnNpb25bMHg0XTtcXG4rXFx0dTggICAgICAgICByZXNlcnZlZF9hdF8xZVsweDJdO1xcbitcXG4rXFx0dTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDFlMF07XFxuK307XFxuK1xcbitcXG4gc3RydWN0IG1seDVfaWZjX2NtZF9wYXNfYml0cyB7XFxuIFxcdHU4ICAgICAgICAgcGFfaFsweDIwXTtcXG4gXFxuQEAgLTEwNDIsMjAgKzEwNTIsNiBAQCBzdHJ1Y3QgbWx4NV9pZmNfd3FlX2Jhc2VkX2Zsb3dfdGFibGVfY2FwX2JpdHMge1xcbiBcXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzFjMVsweDFmXTtcXG4gfTtcXG4gXFxuLXN0cnVjdCBtbHg1X2lmY19lc3dfY2FwX2JpdHMge1xcbi1cXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzBbMHgxZF07XFxuLVxcdHU4ICAgICAgICAgbWVyZ2VkX2Vzd2l0Y2hbMHgxXTtcXG4tXFx0dTggICAgICAgICByZXNlcnZlZF9hdF8xZVsweDJdO1xcbi1cXG4tXFx0dTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDQwXTtcXG4tXFxuLVxcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XFxuLVxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNjFbMHhmXTtcXG4tXFx0dTggICAgICAgICBlc3dfbWFuYWdlcl92cG9ydF9udW1iZXJbMHgxMF07XFxuLVxcbi1cXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzgwWzB4NzgwXTtcXG4tfTtcXG4tXFxuIGVudW0ge1xcbiBcXHRNTFg1X0NPVU5URVJfU09VUkNFX0VTV0lUQ0ggPSAweDAsXFxuIFxcdE1MWDVfQ09VTlRFUl9GTE9XX0VTV0lUQ0ggICA9IDB4MSxcXG5AQCAtMTA5Niw3ICsxMDkyLDExIEBAIHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7XFxuIFxcdHU4ICAgICAgICAgbG9nX21heF9lc3dfc2ZbMHg1XTtcXG4gXFx0dTggICAgICAgICBlc3dfc2ZfYmFzZV9pZFsweDEwXTtcXG4gXFxuLVxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNjBbMHg3YTBdO1xcbitcXHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcl92YWxpZFsweDFdO1xcbitcXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07XFxuK1xcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyWzB4MTBdO1xcbitcXG4rXFx0dTggICAgICAgICByZXNlcnZlZF9hdF84MFsweDc4MF07XFxuIFxcbiB9O1xcbiBcXG5AQCAtMjM0OSw3ICsyMzQ5LDcgQEAgc3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9wYXJhbV9iaXRzIHtcXG4gXFxuIFxcdHN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfc2V0X21pc2M1X2JpdHMgbWlzY19wYXJhbWV0ZXJzXzU7XFxuIFxcbi1cXHR1OCAgICAgICAgIHJlc2VydmVkX2F0X2UwMFsweDIwMF07XFxuK1xcdHN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfc2V0X21pc2M2X2JpdHMgbWlzY19wYXJhbWV0ZXJzXzY7XFxuIH07XFxuIFxcbiBlbnVtIHtcXG5AQCAtMzg1NSw3ICszODU1LDYgQEAgdW5pb24gbWx4NV9pZmNfaGNhX2NhcF91bmlvbl9iaXRzIHtcXG4gXFx0c3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfbmljX2NhcF9iaXRzIGZsb3dfdGFibGVfbmljX2NhcDtcXG4gXFx0c3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfZXN3aXRjaF9jYXBfYml0cyBmbG93X3RhYmxlX2Vzd2l0Y2hfY2FwO1xcbiBcXHRzdHJ1Y3QgbWx4NV9pZmNfd3FlX2Jhc2VkX2Zsb3dfdGFibGVfY2FwX2JpdHMgd3FlX2Jhc2VkX2Zsb3dfdGFibGVfY2FwO1xcbi1cXHRzdHJ1Y3QgbWx4NV9pZmNfZXN3X2NhcF9iaXRzIGVzd19jYXA7XFxuIFxcdHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyBlX3N3aXRjaF9jYXA7XFxuIFxcdHN0cnVjdCBtbHg1X2lmY19wb3J0X3NlbGVjdGlvbl9jYXBfYml0cyBwb3J0X3NlbGVjdGlvbl9jYXA7XFxuIFxcdHN0cnVjdCBtbHg1X2lmY19xb3NfY2FwX2JpdHMgcW9zX2NhcDtcXG5AQCAtNjk5NSw2ICs2OTk0LDcgQEAgZW51bSB7XFxuIFxcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzMgPSAweDQsXFxuIFxcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzQgPSAweDUsXFxuIFxcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzUgPSAweDYsXFxuK1xcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzYgPSAweDcsXFxuIH07XFxuIFxcbiBzdHJ1Y3QgbWx4NV9pZmNfcXVlcnlfZmxvd19ncm91cF9vdXRfYml0cyB7XFxuQEAgLTcyNTYsNiArNzI1Niw3IEBAIGVudW0gbWx4NV9yZWZvcm1hdF9jdHhfdHlwZSB7XFxuIFxcdE1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfSERSID0gMHgxMCxcXG4gXFx0TUxYNV9SRUZPUk1BVF9UWVBFX0FERF9NQUNTRUMgPSAweDExLFxcbiBcXHRNTFg1X1JFRk9STUFUX1RZUEVfREVMX01BQ1NFQyA9IDB4MTIsXFxuK1xcdE1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCA9IDB4MTYsXFxuIH07XFxuIFxcbiBzdHJ1Y3QgbWx4NV9pZmNfYWxsb2NfcGFja2V0X3JlZm9ybWF0X2NvbnRleHRfaW5fYml0cyB7XFxuQEAgLTczNzksNiArNzM4MCw3IEBAIGVudW0ge1xcbiBcXHRNTFg1X0FDVElPTl9JTl9GSUVMRF9PVVRfRU1EXzQ3XzMyICAgICA9IDB4NkYsXFxuIFxcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX09VVF9FTURfMzFfMCAgICAgID0gMHg3MCxcXG4gXFx0TUxYNV9BQ1RJT05fSU5fRklFTERfUFNQX1NZTkRST01FICAgICAgPSAweDcxLFxcbitcXHRNTFg1X0FDVElPTl9JTl9GSUVMRF9QU1BfSEVBREVSXzEgICAgICA9IDB4NzgsXFxuIH07XFxuIFxcbiBzdHJ1Y3QgbWx4NV9pZmNfYWxsb2NfbW9kaWZ5X2hlYWRlcl9jb250ZXh0X291dF9iaXRzIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6Mzk6NDguODYyMzIwODA4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTczODcwMDI4NzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUxYNV9DT1JFXCIsXG4gICAgXCJNTFg1X0NPUkVfRU5cIixcbiAgICBcIk1MWDVfRVNXSVRDSFwiLFxuICAgIFwiTUxYNV9TV19TVEVFUklOR1wiLFxuICAgIFwiTUxYNV9IV19TVEVFUklOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1seDVfYWRkX2Zsb3dfcnVsZXNcIixcbiAgICBcIm1seDVod3NfY21kX3F1ZXJ5X2NhcHNcIixcbiAgICBcIm1seDVkcl9md19jcmVhdGVfbWRfdGJsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHNpemUgb2YgYGZ0ZV9tYXRjaF9wYXJhbWAgdXNlZCBpbiBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgbWFjcm8sIHdoaWNoIGFmZmVjdHMgdGhlIHNpemUgb2YgYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2Agc3RydWN0cyBhbmQgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIGluIGBjaGVja192YWxpZF9zcGVjYC4gSXQgYWxzbyBtb2RpZmllcyBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AgdG8gcmVhZCBmcm9tIGBlX3N3aXRjaF9jYXBgIGluc3RlYWQgb2YgYGVzd19jYXBgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBtbHg1IGRyaXZlcidzIGZsb3cgc3RlZXJpbmcgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMDJiZGZlYjljNGU4NTMyMzcxYjc1ZTdjYzA1ODczMjMyNjMyODk0Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDEzIDExOjM5OjQ2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbmluZGV4IGRiYWYzM2I1MzdmNzExLi45MDY1ODQzNDVhMDIyZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbkBAIC0yMTQsMTcgKzIxNCw3IEBAIHN0cnVjdCBtbHg1X2Z0X3VuZGVybGF5X3FwIHtcbiBcdHUzMiBxcG47XG4gfTtcbiBcbi0jZGVmaW5lIE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEXHRyZXNlcnZlZF9hdF9lMDBcbi0vKiBDYWxjdWxhdGUgdGhlIGZ0ZV9tYXRjaF9wYXJhbSBsZW5ndGggYW5kIHdpdGhvdXQgdGhlIHJlc2VydmVkIGxlbmd0aC5cbi0gKiBNYWtlIHN1cmUgdGhlIHJlc2VydmVkIGZpZWxkIGlzIHRoZSBsYXN0LlxuLSAqL1xuLSNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTVx0XHRcdFx0XHQgICAgXFxcbi1cdCgoTUxYNV9CWVRFX09GRihmdGVfbWF0Y2hfcGFyYW0sIE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSAvIHNpemVvZih1MzIpKSArIFxcXG4tXHQgQlVJTERfQlVHX09OX1pFUk8oTUxYNV9TVF9TWl9CWVRFUyhmdGVfbWF0Y2hfcGFyYW0pICE9XHRcdCAgICAgXFxcbi1cdFx0XHQgICBNTFg1X0ZMRF9TWl9CWVRFUyhmdGVfbWF0Y2hfcGFyYW0sXHRcdCAgICAgXFxcbi1cdFx0XHRcdFx0ICAgICBNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRCkgK1xcXG4tXHRcdFx0ICAgTUxYNV9CWVRFX09GRihmdGVfbWF0Y2hfcGFyYW0sXHRcdCAgICAgXFxcbi1cdFx0XHRcdFx0IE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSkpXG4rI2RlZmluZSBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNIE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKVxuIFxuIHN0cnVjdCBmc19mdGVfYWN0aW9uIHtcbiBcdGludFx0XHRcdFx0bW9kaWZ5X21hc2s7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmNcbmluZGV4IGU2MjRmNWRhOTZjODFiLi44ZmFlOTAxMDE2NTNmOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmNcbkBAIC0xMTcyLDEzICsxMTcyLDEzIEBAIGludCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxuIFx0XHR9XG4gXG4gXHRcdGlmIChNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxuLVx0XHRcdCAgICAgY2FwYWJpbGl0eS5lc3dfY2FwLmVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcl92YWxpZCkpXG4rXHRcdFx0ICAgICBjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWQpKVxuIFx0XHRcdGNhcHMtXHUwMDNlZXN3aXRjaF9tYW5hZ2VyX3Zwb3J0X251bWJlciA9XG4gXHRcdFx0XHRNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxuLVx0XHRcdFx0XHQgY2FwYWJpbGl0eS5lc3dfY2FwLmVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcik7XG4rXHRcdFx0XHRcdCBjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXIpO1xuIFxuIFx0XHRjYXBzLVx1MDAzZW1lcmdlZF9lc3dpdGNoID0gTUxYNV9HRVQocXVlcnlfaGNhX2NhcF9vdXQsIG91dCxcbi1cdFx0XHRcdFx0XHRjYXBhYmlsaXR5LmVzd19jYXAubWVyZ2VkX2Vzd2l0Y2gpO1xuK1x0XHRcdFx0XHRcdGNhcGFiaWxpdHkuZV9zd2l0Y2hfY2FwLm1lcmdlZF9lc3dpdGNoKTtcbiBcdH1cbiBcbiBcdHJldCA9IG1seDVfY21kX2V4ZWMobWRldiwgaW4sIHNpemVvZihpbiksIG91dCwgb3V0X3NpemUpO1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaFxuaW5kZXggMDdhMjVmMjY0MjkyMTMuLjhjYjMyMWE5ZmIzZDFkIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmhcbkBAIC0xMTcxLDYgKzExNzEsNyBAQCBlbnVtIHtcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzNcdD0gMSBcdTAwM2NcdTAwM2MgNCxcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzRcdD0gMSBcdTAwM2NcdTAwM2MgNSxcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzVcdD0gMSBcdTAwM2NcdTAwM2MgNixcbitcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzZcdD0gMSBcdTAwM2NcdTAwM2MgNyxcbiB9O1xuIFxuIGVudW0ge1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oIGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhcbmluZGV4IDRmNTliN2U4YTNkNWQ2Li5jZjAxOTIyY2Y2OWZkYiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaFxuQEAgLTUwOCw3ICs1MDgsOCBAQCBzdHJ1Y3QgbWx4NV9pZmNfZmxvd190YWJsZV9wcm9wX2xheW91dF9iaXRzIHtcbiBcdHU4ICAgICAgICAgcmVmb3JtYXRfbDJfdG9fbDNfYXVkcF90dW5uZWxbMHgxXTtcbiBcdHU4ICAgICAgICAgcmVmb3JtYXRfbDNfYXVkcF90dW5uZWxfdG9fbDJbMHgxXTtcbiBcdHU4ICAgICAgICAgaWdub3JlX2Zsb3dfbGV2ZWxfcnRjX3ZhbGlkWzB4MV07XG4tXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzcwWzB4OF07XG4rXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzcwWzB4N107XG4rXHR1OCAgICAgICAgIHJlZm9ybWF0X2RlbF9wc3BfdHJhbnNwb3J0WzB4MV07XG4gXHR1OCAgICAgICAgIGxvZ19tYXhfZnRfbnVtWzB4OF07XG4gXG4gXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzgwWzB4MTBdO1xuQEAgLTc5OCw2ICs3OTksMTUgQEAgc3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzVfYml0cyB7XG4gXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzEwMFsweDEwMF07XG4gfTtcbiBcbitzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNl9iaXRzIHtcbitcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMFsweDFhXTtcbitcdHU4ICAgICAgICAgcHNwX3ZlcnNpb25bMHg0XTtcbitcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWVbMHgyXTtcbitcbitcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMjBbMHgxZTBdO1xuK307XG4rXG4rXG4gc3RydWN0IG1seDVfaWZjX2NtZF9wYXNfYml0cyB7XG4gXHR1OCAgICAgICAgIHBhX2hbMHgyMF07XG4gXG5AQCAtMTA0MiwyMCArMTA1Miw2IEBAIHN0cnVjdCBtbHg1X2lmY193cWVfYmFzZWRfZmxvd190YWJsZV9jYXBfYml0cyB7XG4gXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzFjMVsweDFmXTtcbiB9O1xuIFxuLXN0cnVjdCBtbHg1X2lmY19lc3dfY2FwX2JpdHMge1xuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8wWzB4MWRdO1xuLVx0dTggICAgICAgICBtZXJnZWRfZXN3aXRjaFsweDFdO1xuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8xZVsweDJdO1xuLVxuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDQwXTtcbi1cbi1cdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XG4tXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07XG4tXHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlclsweDEwXTtcbi1cbi1cdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfODBbMHg3ODBdO1xuLX07XG4tXG4gZW51bSB7XG4gXHRNTFg1X0NPVU5URVJfU09VUkNFX0VTV0lUQ0ggPSAweDAsXG4gXHRNTFg1X0NPVU5URVJfRkxPV19FU1dJVENIICAgPSAweDEsXG5AQCAtMTA5Niw3ICsxMDkyLDExIEBAIHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7XG4gXHR1OCAgICAgICAgIGxvZ19tYXhfZXN3X3NmWzB4NV07XG4gXHR1OCAgICAgICAgIGVzd19zZl9iYXNlX2lkWzB4MTBdO1xuIFxuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF82MFsweDdhMF07XG4rXHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcl92YWxpZFsweDFdO1xuK1x0dTggICAgICAgICByZXNlcnZlZF9hdF82MVsweGZdO1xuK1x0dTggICAgICAgICBlc3dfbWFuYWdlcl92cG9ydF9udW1iZXJbMHgxMF07XG4rXG4rXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzgwWzB4NzgwXTtcbiBcbiB9O1xuIFxuQEAgLTIzNDksNyArMjM0OSw3IEBAIHN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfcGFyYW1fYml0cyB7XG4gXG4gXHRzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNV9iaXRzIG1pc2NfcGFyYW1ldGVyc181O1xuIFxuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF9lMDBbMHgyMDBdO1xuK1x0c3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzZfYml0cyBtaXNjX3BhcmFtZXRlcnNfNjtcbiB9O1xuIFxuIGVudW0ge1xuQEAgLTM4NTUsNyArMzg1NSw2IEBAIHVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0cyB7XG4gXHRzdHJ1Y3QgbWx4NV9pZmNfZmxvd190YWJsZV9uaWNfY2FwX2JpdHMgZmxvd190YWJsZV9uaWNfY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfZXN3aXRjaF9jYXBfYml0cyBmbG93X3RhYmxlX2Vzd2l0Y2hfY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX3dxZV9iYXNlZF9mbG93X3RhYmxlX2NhcF9iaXRzIHdxZV9iYXNlZF9mbG93X3RhYmxlX2NhcDtcbi1cdHN0cnVjdCBtbHg1X2lmY19lc3dfY2FwX2JpdHMgZXN3X2NhcDtcbiBcdHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyBlX3N3aXRjaF9jYXA7XG4gXHRzdHJ1Y3QgbWx4NV9pZmNfcG9ydF9zZWxlY3Rpb25fY2FwX2JpdHMgcG9ydF9zZWxlY3Rpb25fY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX3Fvc19jYXBfYml0cyBxb3NfY2FwO1xuQEAgLTY5OTUsNiArNjk5NCw3IEBAIGVudW0ge1xuIFx0TUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfMyA9IDB4NCxcbiBcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzQgPSAweDUsXG4gXHRNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU181ID0gMHg2LFxuK1x0TUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfNiA9IDB4NyxcbiB9O1xuIFxuIHN0cnVjdCBtbHg1X2lmY19xdWVyeV9mbG93X2dyb3VwX291dF9iaXRzIHtcbkBAIC03MjU2LDYgKzcyNTYsNyBAQCBlbnVtIG1seDVfcmVmb3JtYXRfY3R4X3R5cGUge1xuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX1JFTU9WRV9IRFIgPSAweDEwLFxuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX0FERF9NQUNTRUMgPSAweDExLFxuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX0RFTF9NQUNTRUMgPSAweDEyLFxuK1x0TUxYNV9SRUZPUk1BVF9UWVBFX1JFTU9WRV9QU1BfVFJBTlNQT1JUID0gMHgxNixcbiB9O1xuIFxuIHN0cnVjdCBtbHg1X2lmY19hbGxvY19wYWNrZXRfcmVmb3JtYXRfY29udGV4dF9pbl9iaXRzIHtcbkBAIC03Mzc5LDYgKzczODAsNyBAQCBlbnVtIHtcbiBcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX09VVF9FTURfNDdfMzIgICAgID0gMHg2RixcbiBcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX09VVF9FTURfMzFfMCAgICAgID0gMHg3MCxcbiBcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX1BTUF9TWU5EUk9NRSAgICAgID0gMHg3MSxcbitcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX1BTUF9IRUFERVJfMSAgICAgID0gMHg3OCxcbiB9O1xuIFxuIHN0cnVjdCBtbHg1X2lmY19hbGxvY19tb2RpZnlfaGVhZGVyX2NvbnRleHRfb3V0X2JpdHMge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6Mzk6NDguODYyMzIyNjM4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA4MDg1ODIwOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBtbHg1IERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBNZWxsYW5veCBtbHg1IGRyaXZlciwgYW5kIGl0IHNlZW1zIGxpa2UgYSB0YXJnZXRlZCBtb2RpZmljYXRpb24uIFByaW1hcmlseSwgaXQncyBkZWFsaW5nIHdpdGggc29tZSBoZWFkZXIgZmlsZSB1cGRhdGVzIGFuZCBhIG1pbm9yIGNvZGUgYWRqdXN0bWVudC4gSSdtIHNlZWluZyBjaGFuZ2VzIGluIGBmc19jb3JlLmhgLCBgY21kLmNgLCBgZGV2aWNlLmhgLCBhbmQgYG1seDVfaWZjLmhgLiBUaGUgY2hhbmdlcyBpbiBgZnNfY29yZS5oYCBpbnZvbHZlIGFsdGVyaW5nIHRoZSBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgbWFjcm8uIEluIGBjbWQuY2AsIHRoZXJlJ3MgYSBzdHJhaWdodGZvcndhcmQgcmVuYW1lOiBgZXN3X2NhcGAgaXMgbm93IGBlX3N3aXRjaF9jYXBgIHdpdGhpbiBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AuIEkndmUgbm90aWNlZCBuZXcgYWRkaXRpb25zIG9mIGBNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU182YCBpbiBgZGV2aWNlLmhgIGFuZCBhIHNlcmllcyBvZiBhZGRpdGlvbnMsIHJlbW92YWxzLCBhbmQgcmUtb3JncyBpbiBgbWx4NV9pZmMuaGAsIGluY2x1ZGluZyBuZXcgZnVuY3Rpb25zIGxpa2UgYHJlZm9ybWF0X2RlbF9wc3BfdHJhbnNwb3J0YCBhbmQgdXBkYXRlcyByZWxhdGVkIHRvIGBlc3dfY2FwYCBhbmQgYGVfc3dpdGNoX2NhcGAgYXMgd2VsbCBhcyBhZGRpdGlvbnMgcmVsYXRlZCB0byBgbWlzY19wYXJhbWV0ZXJzXzZgLlxuXG5UaGUgZ2lzdCBvZiBpdCBzZWVtcyB0byBiZSBhcm91bmQgaW50cm9kdWNpbmcgbmV3IGhhcmR3YXJlIGNhcGFiaWxpdGllcyBvciBmaWVsZHMgcmVsYXRlZCB0byBQU1AsIGxpa2VseSBJUHNlYy4gUGx1cywgaXQgYXBwZWFycyB0aGV5J3JlIHJlb3JnYW5pemluZyBzb21lIGZpZWxkcywgc3BlY2lmaWNhbGx5IG1vdmluZyBmcm9tIGBlc3dfY2FwYCB0byBgZV9zd2l0Y2hfY2FwYC4gVGhlIG9ubHkgYWN0dWFsIGNvZGUgY2hhbmdlIEkndmUgc3BvdHRlZCBzbyBmYXIgaXMgaW4gYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgLCB3aGVyZSBpdCdzIG5vdyByZWFkaW5nIGZyb20gYGNhcGFiaWxpdHkuZV9zd2l0Y2hfY2FwYCBpbnN0ZWFkIG9mIHRoZSBvbGQgYGNhcGFiaWxpdHkuZXN3X2NhcGAuIFRoYXQncyBlc3NlbnRpYWxseSBhIG5hbWUgY2hhbmdlLCBidXQgaXQgbmVlZHMgdmVyaWZpY2F0aW9uLlxuXG5BbHJpZ2h0LCBsZXQncyB6b29tIGluIG9uIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYC4gTG9va3MgbGlrZSB0aGUgcGF0Y2ggZXNzZW50aWFsbHkgcmVuYW1lcyB0aGUgZmllbGRzIGluIHRoZSBzdHJ1Y3QgYW5kIHVwZGF0ZXMgdGhlIG1hY3Jvcy9jb2RlIHRvIHVzZSB0aGUgbmV3IG5hbWVzLiBBbmQsIGFkZHMgc29tZSBuZXcgZW51bXMgYW5kIHN0cnVjdHMgdGhhdCBhcmVuJ3QgYWN0dWFsbHkgdXNlZCBieSB0aGlzIHBhdGNoLiBTbywgdGhlIHF1ZXN0aW9uIGJlY29tZXMsIGlzIHRoZXJlIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaGFwcGVuaW5nIGhlcmU/XG5cbkxldCdzIGRyaWxsIGRvd24gaW50byB0aGF0IGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNyby4gUHJldmlvdXNseSwgaXQgaGFkIHRoaXMgY29tcGxleCBjYWxjdWxhdGlvbiwgYW5kIG5vdyBpdCdzIHNpbXBsaWZpZWQgdG8gYE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKWAuIE5vdywgdGhhdCdzIGp1c3QgdGhlIHNpemUgaW4gZHdvcmRzIG9mIGBmdGVfbWF0Y2hfcGFyYW1gLiBQcmV2aW91c2x5LCB0aGUgbWFjcm8gZXhjbHVkZWQgYSByZXNlcnZlZCBwb3J0aW9uIGF0IHRoZSBlbmQgb2YgdGhlIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdC4gTm93LCB0aGF0IHJlc2VydmVkIHBvcnRpb24gKGByZXNlcnZlZF9hdF9lMDBgKSBpcyByZXBsYWNlZCBieSBgbWlzY19wYXJhbWV0ZXJzXzZgLiBTbyB3aGlsZSB0aGUgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCBzdHJ1Y3QgaXRzZWxmIG1pZ2h0IGJlIHRoZSBzYW1lLCB0aGUgd2hvbGUgc3RydWN0IGlzIG5vdyBiZWluZyB1c2VkLCBpbmNsdWRpbmcgYG1pc2NfcGFyYW1ldGVyc182YC5cblxuU28sIHdoYXQgYmVoYXZpb3IgY2hhbmdlcyBhcmUgaW1wbGllZCBieSB0aGlzPyBMb29raW5nIGF0IHRoZSBzaXplcywgdGhlIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdCBpcyAweDEwMDAgYnl0ZXMuIFByZXZpb3VzbHksIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCB3YXMgY2FsY3VsYXRlZCBhcyAweGUwMCAvIDQsIHJlc3VsdGluZyBpbiAweDM4MC4gTm93LCBpdCdzIDB4MTAwMCAvIDQsIHdoaWNoIGlzIDB4NDAwLiBFZmZlY3RpdmVseSwgdGhpcyBpbmNyZWFzZXMgdGhlIHNpemUgb2YgYGZ0ZV9tYXRjaF9wYXJhbWAgYmVpbmcgdXNlZCBpbiB0aGUgY29kZS4gSSBuZWVkIHRvIHRyYWNlIHdoZXJlIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBpcyB1c2VkIHRvIGdldCBhIGZ1bGxlciBwaWN0dXJlIG9mIHRoZSBpbXBhY3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1MDUsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MDAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTozOTo1OS42NzA5MDYyNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODE2MDYxMTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYz01MTA9c3RhdGljIGJvb2wgY2hlY2tfdmFsaWRfc3BlYyhjb25zdCBzdHJ1Y3QgbWx4NV9mbG93X3NwZWMgKnNwZWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTUxMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjUxNDpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTTsgaSsrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtNTE1LVxcdFxcdGlmIChzcGVjLVxcdTAwM2VtYXRjaF92YWx1ZVtpXSBcXHUwMDI2IH5zcGVjLVxcdTAwM2VtYXRjaF9jcml0ZXJpYVtpXSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaD0yMTI9c3RydWN0IG1seDVfZnRfdW5kZXJsYXlfcXAge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyMTc6I2RlZmluZSBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNIE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjE4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaD0yMzM9c3RydWN0IGZzX2Z0ZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTIzOC1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjM5OlxcdHUzMlxcdFxcdFxcdFxcdHZhbFtNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTI0MC1cXHRzdHJ1Y3QgZnNfZnRlX2FjdGlvblxcdFxcdGFjdF9kZXN0cztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjYzPXN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXBfbWFzayB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjQtXFx0dThcXHRtYXRjaF9jcml0ZXJpYV9lbmFibGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyNjU6XFx0dTMyXFx0bWF0Y2hfY3JpdGVyaWFbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM9NzcxPWludCBtbHg1ZHJfY21kX3NldF9mdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODUzLVxcdFxcdFxcdFxcdCAgICAgIG1hdGNoX3ZhbHVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jOjg1NDpcXHRtZW1jcHkoaW5fbWF0Y2hfdmFsdWUsIGZ0ZS1cXHUwMDNldmFsLCBzaXplb2YodTMyKSAqIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jPTEwMT1pbnQgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90Ymwoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xMTEtXFx0c3RydWN0IG1seDVkcl9jbWRfZnRlX2luZm8gZnRlX2luZm8gPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTEyOlxcdHUzMiB2YWxbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV0gPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmMtMTEzLVxcdHN0cnVjdCBtbHg1ZHJfY21kX2Z0X2luZm8gZnRfaW5mbyA9IHt9O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE5LSNkZWZpbmUgRFJfU1RFX0NWTEFOIDB4MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaDoyMDojZGVmaW5lIERSX1NaX01BVENIX1BBUkFNIChNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNICogNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX3R5cGVzLmgtMjEtI2RlZmluZSBEUl9OVU1fT0ZfRkxFWF9QQVJTRVJTIDhcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDA6MDIuNDg2OTcyNjMyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTg5NDg5MTI2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFVzZSBvZiBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIGlzIHV0aWxpemVkIHdpdGhpbiB0aGlzIGNvZGViYXNlLiBJdCdzIHByZXR0eSBjbGVhciB0aGF0IGl0J3MgY3J1Y2lhbCBmb3IgZGV0ZXJtaW5pbmcgYXJyYXkgc2l6ZXMgd2l0aGluIHNldmVyYWwga2V5IHN0cnVjdHVyZXM6IGBmc19mdGVgLCBgbWx4NV9mbG93X2dyb3VwX21hc2tgLCBhbmQgdmFyaW91cyBsb2NhbCBhcnJheXMuIFRoYXQncyBhIGNvbW1vbiBwYXR0ZXJuLCB1c2luZyBhIG1hY3JvIGZvciB0aGVzZSBraW5kcyBvZiBzaXppbmcgb3BlcmF0aW9ucy4gQnV0IHRoZW4gaXQgcG9wcyB1cCBhZ2FpbiBpbiBgY2hlY2tfdmFsaWRfc3BlY2AuIEFoLCByaWdodCwgdGhhdCdzIHdoZXJlIHdlIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYG1hdGNoX3ZhbHVlYCBhbmQgYG1hdGNoX2NyaXRlcmlhYCBmaWVsZHMuIEkgcmVjYWxsIHRob3NlIGFyZSBwYXJ0IG9mIGBzdHJ1Y3QgbWx4NV9mbG93X3NwZWNgLiBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUgY2hlY2sgdGhlIGRlZmluaXRpb24gb2YgdGhhdCBzdHJ1Y3Q7IGl0J3MgaW4gYGluY2x1ZGUvbGludXgvbWx4NS9mcy5oYCwgYXMgSSByZWNhbGwuIEl0IHdvdWxkIGJlIGdvb2QgdG8gY29uZmlybSBpdHMgb3ZlcmFsbCBzaXplIHdoaWxlIEknbSBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MzAxLCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQwOjEyLjM4MTg2NTQ1MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDkwNDQ2NTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBtbHg1X2Zsb3dfc3BlYyBcXFxce1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvZnMuaD0xNjQ9c3RydWN0IG1seDVfZmxvd19jb250ZXh0IHtcXG4tLVxcbmluY2x1ZGUvbGludXgvbWx4NS9mcy5oLTE2OS1cXG5pbmNsdWRlL2xpbnV4L21seDUvZnMuaDoxNzA6c3RydWN0IG1seDVfZmxvd19zcGVjIHtcXG5pbmNsdWRlL2xpbnV4L21seDUvZnMuaC0xNzEtXFx0dTggICBtYXRjaF9jcml0ZXJpYV9lbmFibGU7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQwOjE1LjQ3MjMxNzAwNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk1MjcyNzMwMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIGludG8gdGhlIG1seDUgRmlsZXN5c3RlbSBIZWFkZXIqKlxuXG5Pa2F5LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSdtIGdvaW5nIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYGluY2x1ZGUvbGludXgvbWx4NS9mcy5oYCBmaWxlLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24gYXJvdW5kIGxpbmUgMTcwLiBLbm93aW5nIHRoZSBpbnRyaWNhY2llcyBvZiB0aGlzIGZpbGUsIHRoZSBNZWxsYW5veCBkcml2ZXIncyBmaWxlc3lzdGVtIGludGVyYWN0aW9ucywgYW5kIGxpa2VseSB0aGUgY29udGV4dCBzdXJyb3VuZGluZyB0aGF0IGxpbmUgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGN1cnJlbnQgaXNzdWUgYXQgaGFuZC4gTGluZSAxNzAgbWlnaHQgaG9sZCB0aGUga2V5IGRlZmluaXRpb24sIGRhdGEgc3RydWN0dXJlLCBvciBmdW5jdGlvbiBjYWxsIHRoYXQgd2lsbCBpbGx1bWluYXRlIHRoZSByZWxldmFudCBhc3BlY3RzIG9mIHRoaXMgc2VjdGlvbi4gTGV0J3Mgc2VlIHdoYXQgd2UgY2FuIGZpbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc3NTgsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MDoyNC45OTk1OTI1NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1OTE5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvZnMuaFwiLFxuICBcIkZpcnN0TGluZVwiOiAxNjUsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxNjU6XFx0XFx0dTMyIGZsYWdzO1xcbiAxNjY6XFx0XFx0dTMyIGZsb3dfdGFnO1xcbiAxNjc6XFx0XFx0dTMyIGZsb3dfc291cmNlO1xcbiAxNjg6XFx0fTtcXG4gMTY5OlxcdFxcbiAxNzA6XFx0c3RydWN0IG1seDVfZmxvd19zcGVjIHtcXG4gMTcxOlxcdFxcdHU4ICAgbWF0Y2hfY3JpdGVyaWFfZW5hYmxlO1xcbiAxNzI6XFx0XFx0dTMyICBtYXRjaF9jcml0ZXJpYVtNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSldO1xcbiAxNzM6XFx0XFx0dTMyICBtYXRjaF92YWx1ZVtNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSldO1xcbiAxNzQ6XFx0XFx0c3RydWN0IG1seDVfZmxvd19jb250ZXh0IGZsb3dfY29udGV4dDtcXG4gMTc1OlxcdH07XFxuIDE3NjpcXHRcXG4gMTc3OlxcdGVudW0ge1xcbiAxNzg6XFx0XFx0TUxYNV9GTE9XX0RFU1RfVlBPUlRfVkhDQV9JRCAgICAgID0gQklUKDApLFxcbiAxNzk6XFx0XFx0TUxYNV9GTE9XX0RFU1RfVlBPUlRfUkVGT1JNQVRfSUQgID0gQklUKDEpLFxcbiAxODA6XFx0fTtcXG4gMTgxOlxcdFxcbiAxODI6XFx0ZW51bSBtbHg1X2Zsb3dfZGVzdF9yYW5nZV9maWVsZCB7XFxuIDE4MzpcXHRcXHRNTFg1X0ZMT1dfREVTVF9SQU5HRV9GSUVMRF9QS1RfTEVOID0gMCxcXG4gMTg0OlxcdH07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQwOjI1LjAwMDA1NTY3WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM1MDM3MDI4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgQ2hhbmdlcyBpbiBtbHg1IEZsb3cgU3BlY2lmaWNhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHN0cnVjdCBtbHg1X2Zsb3dfc3BlY2AsIGFuZCBpdCdzIHVzaW5nIGBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlgLiBJIHJlY2FsbCB0aGF0IGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCB1c2VkIHRvIGJlIHNtYWxsZXIgdGhhbiB0aGF0LCBidXQgbm93IHRoZXkncmUgaWRlbnRpY2FsLiBJbnRlcmVzdGluZy4gV2hhdCBkb2VzIHRoaXMgbWVhbiBpbiBwcmFjdGljZT8gSXQgbWVhbnMgdGhhdCB0aGUgYGNoZWNrX3ZhbGlkX3NwZWNgIGZ1bmN0aW9uIGlzIGdvaW5nIHRvIHN0YXJ0IHZhbGlkYXRpbmcgdGhlICplbnRpcmUqIGFycmF5IG5vdywgaW5zdGVhZCBvZiBza2lwcGluZyBvdmVyIHRoYXQgcmVzZXJ2ZWQgcG9ydGlvbi4gTWFrZXMgc2Vuc2UsIHRoYXQncyBhIGRpcmVjdCBjb25zZXF1ZW5jZSBvZiB0aGUgc2l6ZSBjaGFuZ2UuXG5cbkFuZCwgb2YgY291cnNlLCB0aGF0IHNpemUgY2hhbmdlIHJpcHBsZXMgb3V0d2FyZC4gYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2AgYXJlIG5vdyBiaWdnZXIsIHdoaWNoIGlzbid0IGVudGlyZWx5IHN1cnByaXNpbmcuIFRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBhICpmdW5jdGlvbmFsKiBjaGFuZ2U/IFllcywgYWJzb2x1dGVseS4gV2UncmUgdGFsa2luZyBhYm91dCBhbHRlcmF0aW9ucyB0byBzdHJ1Y3Qgc2l6ZXMsIHdoaWNoIHdpbGwgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGFuZCBob3cgdGhlIGRhdGEgaXMgbGFpZCBvdXQsIGFuZCBjaGFuZ2luZyB0aGUgbG9vcCBpdGVyYXRpb25zLiBUaGlzIGlzIGEgYmVoYXZpb3JhbCBtb2RpZmljYXRpb24uXG5cbkFuZCwgYXMgYSBzaWRlIG5vdGUsIEknbSBhbHNvIG5vdGljaW5nIHRoYXQgYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIG5vdyByZWFkcyBmcm9tIGBlX3N3aXRjaF9jYXBgIHJhdGhlciB0aGFuIGBlc3dfY2FwYC4gSSBuZWVkIHRvIHZlcmlmeSBpZiB0aGVzZSBhcmUgbG9jYXRlZCBhdCB0aGUgc2FtZSBvZmZzZXQgd2l0aGluIGB1bmlvbiBtbHg1X2lmY19oY2FfY2FwX3VuaW9uX2JpdHNgIHRvIGZ1bGx5IGdyYXNwIHRoZSBpbXBsaWNhdGlvbiwgYnV0IHRoaXMgY291bGQgYmUgYW5vdGhlciBpbXBvcnRhbnQgY2x1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODMwMCwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQwOjMwLjM1MDQyOTAwNVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU2MDg5ODIxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMgZV9zd2l0Y2hfY2FwO1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD0zODQ4PXVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0cyB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC0zODU3LVxcdHN0cnVjdCBtbHg1X2lmY193cWVfYmFzZWRfZmxvd190YWJsZV9jYXBfYml0cyB3cWVfYmFzZWRfZmxvd190YWJsZV9jYXA7XFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6Mzg1ODpcXHRzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMgZV9zd2l0Y2hfY2FwO1xcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTM4NTktXFx0c3RydWN0IG1seDVfaWZjX3BvcnRfc2VsZWN0aW9uX2NhcF9iaXRzIHBvcnRfc2VsZWN0aW9uX2NhcDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDA6MzIuOTExMzM4Njc2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMTQyMjIxMDU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6NzkwNSwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDA6NDQuMDUzNTYyNjg0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTQ1NzgyOTc4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oPTExNjY9ZW51bSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgtMTE3My1cXHRNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU181XFx0PSAxIFxcdTAwM2NcXHUwMDNjIDYsXFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oOjExNzQ6XFx0TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNlxcdD0gMSBcXHUwMDNjXFx1MDAzYyA3LFxcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaC0xMTc1LX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQwOjQ3Ljk5OTM1NjYwMloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjE2MjUwOTk0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjgwNTgsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQxOjAwLjE2MTg2OTE5M1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjc1NzQyNjk5NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg9NzIzOT1lbnVtIG1seDVfcmVmb3JtYXRfY3R4X3R5cGUge1xcbi0tXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI1OC1cXHRNTFg1X1JFRk9STUFUX1RZUEVfREVMX01BQ1NFQyA9IDB4MTIsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6NzI1OTpcXHRNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlQgPSAweDE2LFxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTcyNjAtfTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDE6MDIuOTE5MzA2NloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDc4ODEzOTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgSW1wYWN0IG9mIFJlY2VudCBDb2RlIENoYW5nZXMqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIHNlZW1zIHByaW1hcmlseSBmb2N1c2VkIG9uIGFkZGluZyBzb21lIG5ldyBmaWVsZHMgYW5kIHR3ZWFraW5nIHRoZSBzaXplIG9mIGEgc3RydWN0dXJlLiBUaGUgaW5pdGlhbCBxdWVzdGlvbiBJIGhhdmUgaXMsIFwiSXMgdGhpcyBldmVuIHdvcnRoIGRlZGljYXRpbmcgZnV6emluZyByZXNvdXJjZXMgdG8/XCIgVGhlIHN0cnVjdCBzaXplIG1vZGlmaWNhdGlvbiBpcyB0aGUga2V5IHBvaW50IGhlcmUuIEl0IGFmZmVjdHMgYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoZXJlIGlzIGBmc19mdGVgIGFsbG9jYXRlZD8gVGhhdCdzIHRoZSBjcml0aWNhbCBwaWVjZS5cIiBJIGtub3cgYGZzX2Z0ZWAgaXMgYWxsb2NhdGVkIHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuY2AuIFRoZXJlZm9yZSwgbXkgbmV4dCBzdGVwIGlzIGNsZWFyLiBJIG5lZWQgdG8gZGl2ZSBpbnRvIGBmc19jb3JlLmNgIGFuZCBzcGVjaWZpY2FsbHkgZXhhbWluZSB0aGUgYWxsb2NhdGlvbiBhbmQgdXNhZ2Ugb2YgYGZzX2Z0ZWAgdG8gdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiB0aGlzIHN0cnVjdCBzaXplIGNoYW5nZSBhbmQgaG93IGl0IG1heSBpbXBhY3QgZnV6emluZyBzdHJhdGVnaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NDA0LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDE6MDkuOTk4MTIzMjM2WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTAwMjc3OTk2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhbGxvYy4qZnNfZnRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MToxMi44OTg0MTE2MTJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjU2MDEwMzg3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjk3MTYsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQxOjE5LjQ1ODUxODcwN1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgzMDQ0MDkzMCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia21hbGxvYy4qZnNfZnRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MToyMi4yODg5NjcyMDdaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA3ODAxMzU0MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjo5NzUwLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MTozMy4wNjkxMDQ3MDlaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MTY3NjQ2NDYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt6YWxsb2MuKmZzX2Z0ZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDE6MzUuNzg1ODc3MTE1WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMzM3MDMwODAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6ODUyNywiT3V0cHV0VG9rZW5zIjoxNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDE6NDcuMTIyOTEwODg2WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzQ5NDY5NTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFsbG9jX2Z0ZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jPTgyMD1zdGF0aWMgaW50IGluc2VydF9mdGUoc3RydWN0IG1seDVfZmxvd19ncm91cCAqZmcsIHN0cnVjdCBmc19mdGUgKmZ0ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtODUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmM6ODUxOnN0YXRpYyBzdHJ1Y3QgZnNfZnRlICphbGxvY19mdGUoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy04NTItXFx0XFx0XFx0XFx0Y29uc3Qgc3RydWN0IG1seDVfZmxvd19zcGVjICpzcGVjLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYz0yMjE3PXRyeV9hZGRfdG9fZXhpc3RpbmdfZmcoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTIyMzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYzoyMjM2OlxcdGZ0ZSA9IGFsbG9jX2Z0ZShmdCwgc3BlYywgZmxvd19hY3QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtMjIzNy1cXHRpZiAoSVNfRVJSKGZ0ZSkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jPTIzMjY9X21seDVfYWRkX2Zsb3dfcnVsZXMoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTIzOTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYzoyMzk5OlxcdGZ0ZSA9IGFsbG9jX2Z0ZShmdCwgc3BlYywgZmxvd19hY3QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtMjQwMC1cXHRpZiAoSVNfRVJSKGZ0ZSkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtMjQwMi1cXHRcXHRlcnIgPSBQVFJfRVJSKGZ0ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYzoyNDAzOlxcdFxcdGdvdG8gZXJyX2FsbG9jX2Z0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTI0MDQtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy0yNDI4LVxcdGttZW1fY2FjaGVfZnJlZShzdGVlcmluZy1cXHUwMDNlZnRlc19jYWNoZSwgZnRlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjI0Mjk6ZXJyX2FsbG9jX2Z0ZTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTI0MzAtXFx0dHJlZV9wdXRfbm9kZShcXHUwMDI2Zy1cXHUwMDNlbm9kZSwgZmFsc2UpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MTo0OS44NzIzODU5MjNaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTQxOTAwMDQ4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUmVjZW50IENoYW5nZXMgaW4gdGhlIGBtbHg1YCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoZXNlIHJlY2VudCBtb2RpZmljYXRpb25zLCBzcGVjaWZpY2FsbHkgYXJvdW5kIHRoZSBgZnNfZnRlYCBzdHJ1Y3R1cmUuIEl0IGxvb2tzIGxpa2UgYGZzX2Z0ZWAgaXMgbm93IGJlaW5nIGFsbG9jYXRlZCBmcm9tIGEgYGttZW1fY2FjaGVgIGNhbGxlZCBgZnRlc19jYWNoZWAuIFRoZSBzaXplIGhhcyBiZWVuIGJ1bXBlZCB1cCBieSA1MTIgYnl0ZXMg4oCTIHRoYXQncyBhIHNpZ25pZmljYW50IGNoYW5nZSwgMTI4IHUzMnMuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzdWJzdGFudGlhbCBvbmUgYXQgdGhhdC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5LlxuXG5UaGVuIHRoZXJlJ3MgdGhpcyBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AgZnVuY3Rpb24uIEl0IHNlZW1zIHRvIGJlIHJlYWRpbmcgZnJvbSBgZV9zd2l0Y2hfY2FwYCBub3csIGluc3RlYWQgb2YgYGVzd19jYXBgLiBUaGF0IGltbWVkaWF0ZWx5IG1ha2VzIG1lIHdvbmRlciBpZiB0aGVzZSBhcmUgYXQgdGhlIHNhbWUgb2Zmc2V0LiBMZXQgbWUgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhhdC4uLiB3YWl0IGEgc2Vjb25kLi4uIGxvb2tzIGxpa2UgYGVzd19jYXBgIHdhcyByZW1vdmVkIGZyb20gdGhhdCBgdW5pb24gbWx4NV9pZmNfaGNhX2NhcF91bmlvbl9iaXRzYCBpbiBgaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhgLiBBbmQgYGVfc3dpdGNoX2NhcGAgd2FzIGFscmVhZHkgcHJlc2VudC4gT2theSwgc28gdGhhdCBleHBsYWlucyB0aGF0IGNoYW5nZS4gVG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgZ28gYmFjayB0byBgaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhgIGFuZCBqdXN0IGRvIGEgcXVpY2sgc2NhbiBmb3IgYm90aCBgZXN3X2NhcGAgYW5kIGBlX3N3aXRjaF9jYXBgLiBJIG5lZWQgdG8gZW5zdXJlIHRoZXJlIGFyZSBubyBvdGhlciBwbGFjZXMgd2hlcmUgdGhpcyBzaGlmdCBtaWdodCBjYXVzZSBhIHByb2JsZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwNTMxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQxOjU5LjI5MTM4ODYxN1oiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgxODk0NDU2MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMgXFxcXHtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg9MTA1NT1lbnVtIHtcXG4tLVxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTEwNTktXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6MTA2MDpzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMge1xcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTEwNjEtXFx0dTggICAgICAgICB2cG9ydF9zdmxhbl9zdHJpcFsweDFdO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MjowMi4xMTAzMzk4NzlaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ1OTQ5MDM4MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjoxMTIyNSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDI6MTYuNzA1MjQ3MDgyWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMjYzMTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhcIixcbiAgXCJGaXJzdExpbmVcIjogMTA1MCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTA1MDpcXHRcXG4xMDUxOlxcdFxcdHU4ICAgICAgICAgZmRiX2p1bXBfdG9fdGlyX3N0Y1sweDFdO1xcbjEwNTI6XFx0XFx0dTggICAgICAgICByZXNlcnZlZF9hdF8xYzFbMHgxZl07XFxuMTA1MzpcXHR9O1xcbjEwNTQ6XFx0XFxuMTA1NTpcXHRlbnVtIHtcXG4xMDU2OlxcdFxcdE1MWDVfQ09VTlRFUl9TT1VSQ0VfRVNXSVRDSCA9IDB4MCxcXG4xMDU3OlxcdFxcdE1MWDVfQ09VTlRFUl9GTE9XX0VTV0lUQ0ggICA9IDB4MSxcXG4xMDU4OlxcdH07XFxuMTA1OTpcXHRcXG4xMDYwOlxcdHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7XFxuMTA2MTpcXHRcXHR1OCAgICAgICAgIHZwb3J0X3N2bGFuX3N0cmlwWzB4MV07XFxuMTA2MjpcXHRcXHR1OCAgICAgICAgIHZwb3J0X2N2bGFuX3N0cmlwWzB4MV07XFxuMTA2MzpcXHRcXHR1OCAgICAgICAgIHZwb3J0X3N2bGFuX2luc2VydFsweDFdO1xcbjEwNjQ6XFx0XFx0dTggICAgICAgICB2cG9ydF9jdmxhbl9pbnNlcnRfaWZfbm90X2V4aXN0WzB4MV07XFxuMTA2NTpcXHRcXHR1OCAgICAgICAgIHZwb3J0X2N2bGFuX2luc2VydF9vdmVyd3JpdGVbMHgxXTtcXG4xMDY2OlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNVsweDFdO1xcbjEwNjc6XFx0XFx0dTggICAgICAgICB2cG9ydF9jdmxhbl9pbnNlcnRfYWx3YXlzWzB4MV07XFxuMTA2ODpcXHRcXHR1OCAgICAgICAgIGVzd19zaGFyZWRfaW5ncmVzc19hY2xbMHgxXTtcXG4xMDY5OlxcdFxcdHU4ICAgICAgICAgZXN3X3VwbGlua19pbmdyZXNzX2FjbFsweDFdO1xcbjEwNzA6XFx0XFx0dTggICAgICAgICByb290X2Z0X29uX290aGVyX2Vzd1sweDFdO1xcbjEwNzE6XFx0XFx0dTggICAgICAgICByZXNlcnZlZF9hdF9hWzB4MV07XFxuMTA3MjpcXHRcXHR1OCAgICAgICAgIGVzd192cG9ydF9zdGF0ZV9tYXhfdHhfc3BlZWRbMHgxXTtcXG4xMDczOlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfY1sweGRdO1xcbjEwNzQ6XFx0XFx0dTggICAgICAgICBlc3dfZnVuY3Rpb25zX2NoYW5nZWRbMHgxXTtcXG4xMDc1OlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWFbMHgxXTtcXG4xMDc2OlxcdFxcdHU4ICAgICAgICAgZWNwZl92cG9ydF9leGlzdHNbMHgxXTtcXG4xMDc3OlxcdFxcdHU4ICAgICAgICAgY291bnRlcl9lc3dpdGNoX2FmZmluaXR5WzB4MV07XFxuMTA3ODpcXHRcXHR1OCAgICAgICAgIG1lcmdlZF9lc3dpdGNoWzB4MV07XFxuMTA3OTpcXHRcXHR1OCAgICAgICAgIG5pY192cG9ydF9ub2RlX2d1aWRfbW9kaWZ5WzB4MV07XFxuMTA4MDpcXHRcXHR1OCAgICAgICAgIG5pY192cG9ydF9wb3J0X2d1aWRfbW9kaWZ5WzB4MV07XFxuMTA4MTpcXHRcXG4xMDgyOlxcdFxcdHU4ICAgICAgICAgdnhsYW5fZW5jYXBfZGVjYXBbMHgxXTtcXG4xMDgzOlxcdFxcdHU4ICAgICAgICAgbnZncmVfZW5jYXBfZGVjYXBbMHgxXTtcXG4xMDg0OlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMjJbMHgxXTtcXG4xMDg1OlxcdFxcdHU4ICAgICAgICAgbG9nX21heF9mZGJfZW5jYXBfdXBsaW5rWzB4NV07XFxuMTA4NjpcXHRcXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzIxWzB4M107XFxuMTA4NzpcXHRcXHR1OCAgICAgICAgIGxvZ19tYXhfcGFja2V0X3JlZm9ybWF0X2NvbnRleHRbMHg1XTtcXG4xMDg4OlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfMmJbMHg2XTtcXG4xMDg5OlxcdFxcdHU4ICAgICAgICAgbWF4X2VuY2FwX2hlYWRlcl9zaXplWzB4YV07XFxuMTA5MDpcXHRcXG4xMDkxOlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNDBbMHhiXTtcXG4xMDkyOlxcdFxcdHU4ICAgICAgICAgbG9nX21heF9lc3dfc2ZbMHg1XTtcXG4xMDkzOlxcdFxcdHU4ICAgICAgICAgZXN3X3NmX2Jhc2VfaWRbMHgxMF07XFxuMTA5NDpcXHRcXG4xMDk1OlxcdFxcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XFxuMTA5NjpcXHRcXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07XFxuMTA5NzpcXHRcXHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlclsweDEwXTtcXG4xMDk4OlxcdFxcbjEwOTk6XFx0XFx0dTggICAgICAgICByZXNlcnZlZF9hdF84MFsweDc4MF07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQyOjE2LjcwNjU3NzAzMVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjAxMDAzNDM0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjEwNzk2LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQyOjI4LjcxNjYxNDkzNVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQzMDUwMTg1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg9NzIzOT1lbnVtIG1seDVfcmVmb3JtYXRfY3R4X3R5cGUge1xcbi0tXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI1OC1cXHRNTFg1X1JFRk9STUFUX1RZUEVfREVMX01BQ1NFQyA9IDB4MTIsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6NzI1OTpcXHRNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlQgPSAweDE2LFxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTcyNjAtfTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDI6MzEuMTQ3MTIyNTM1WiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyMTI4NzgxOTI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTA5NzgsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQyOjQzLjI3NTkwNjM2WiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDYxNDM5ODA4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDI6NDUuNzM3MzUzNTc4WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMzQ1ODI2NzUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTEwMjAsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQyOjU3LjA4MzIwMDgzWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDg0Njc4Mzc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYz01MTA9c3RhdGljIGJvb2wgY2hlY2tfdmFsaWRfc3BlYyhjb25zdCBzdHJ1Y3QgbWx4NV9mbG93X3NwZWMgKnNwZWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTUxMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjUxNDpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTTsgaSsrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtNTE1LVxcdFxcdGlmIChzcGVjLVxcdTAwM2VtYXRjaF92YWx1ZVtpXSBcXHUwMDI2IH5zcGVjLVxcdTAwM2VtYXRjaF9jcml0ZXJpYVtpXSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaD0yMTI9c3RydWN0IG1seDVfZnRfdW5kZXJsYXlfcXAge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyMTc6I2RlZmluZSBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNIE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjE4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaD0yMzM9c3RydWN0IGZzX2Z0ZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTIzOC1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjM5OlxcdHUzMlxcdFxcdFxcdFxcdHZhbFtNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTI0MC1cXHRzdHJ1Y3QgZnNfZnRlX2FjdGlvblxcdFxcdGFjdF9kZXN0cztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjYzPXN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXBfbWFzayB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjQtXFx0dThcXHRtYXRjaF9jcml0ZXJpYV9lbmFibGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyNjU6XFx0dTMyXFx0bWF0Y2hfY3JpdGVyaWFbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM9NzcxPWludCBtbHg1ZHJfY21kX3NldF9mdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODUzLVxcdFxcdFxcdFxcdCAgICAgIG1hdGNoX3ZhbHVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jOjg1NDpcXHRtZW1jcHkoaW5fbWF0Y2hfdmFsdWUsIGZ0ZS1cXHUwMDNldmFsLCBzaXplb2YodTMyKSAqIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jPTEwMT1pbnQgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90Ymwoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xMTEtXFx0c3RydWN0IG1seDVkcl9jbWRfZnRlX2luZm8gZnRlX2luZm8gPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTEyOlxcdHUzMiB2YWxbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV0gPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmMtMTEzLVxcdHN0cnVjdCBtbHg1ZHJfY21kX2Z0X2luZm8gZnRfaW5mbyA9IHt9O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE5LSNkZWZpbmUgRFJfU1RFX0NWTEFOIDB4MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaDoyMDojZGVmaW5lIERSX1NaX01BVENIX1BBUkFNIChNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNICogNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX3R5cGVzLmgtMjEtI2RlZmluZSBEUl9OVU1fT0ZfRkxFWF9QQVJTRVJTIDhcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDI6NTkuNTY3ODg0MzY3WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg2MTgwOTYwMzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgU2lnbmlmaWNhbnQgTUxYNSBEcml2ZXIgQ2hhbmdlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHkgc2VlIGEgcHJldHR5IHNpZ25pZmljYW50IGNoYW5nZS4gVGhleSd2ZSB1cGRhdGVkIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBmcm9tIHNvbWV0aGluZyB0aGF0IHdhcyBjYWxjdWxhdGVkIHRvIGJlaW5nIGV4cGxpY2l0bHkgc2V0IHZpYSB0aGUgbWFjcm8gYE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKWAuICBMZXQncyBzZWUuLi4gUHJldmlvdXNseSwgdGhpcyB3YXMgZGVyaXZlZCBieSB0YWtpbmcgdGhlIG9mZnNldCBvZiBgcmVzZXJ2ZWRfYXRfZTAwYCB3aXRoaW4gdGhlIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdHVyZSAod2hpY2ggd2FzIDB4ZTAwLCBvciAzNTg0IGluIGRlY2ltYWwpLCBkaXZpZGluZyBpdCBieSB0aGUgc2l6ZSBvZiBhIGB1MzJgICh3aGljaCBpcyA0IGJ5dGVzKS4gIFNvLCBlc3NlbnRpYWxseSwgaXQgd2FzIDB4ZTAwIC8gNCwgcmVzdWx0aW5nIGluIDB4MzgwLiBOb3csIHRoZXkndmUgbWFkZSBpdCBgTUxYNV9TVF9TWl9EVyhmdGVfbWF0Y2hfcGFyYW0pYC4gR2l2ZW4gdGhhdCB0aGUgdG90YWwgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCBpcyAweDEwMDAgYnl0ZXMgKDB4ZTAwICsgMHgyMDApLCBkaXZpZGluZyB0aGlzIGJ5IDQgZ2l2ZXMgdXMgMHg0MDAuIFRoYXQncyBhIG5vdGljZWFibGUgaW5jcmVhc2UuXG5cblRoaXMgaGFzIGRpcmVjdCBpbXBsaWNhdGlvbnMgZm9yIHRoZSBzaXplcyBvZiBzdHJ1Y3R1cmVzIGxpa2UgYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2AuIEl0IGFsc28gYWZmZWN0cyBpdGVyYXRpb24gY291bnRzIGluIHRoZSBgY2hlY2tfdmFsaWRfc3BlY2AgZnVuY3Rpb24uIEl0IHNlZW1zIHRoaXMgY2hhbmdlcyB0aGUgc2l6ZSBvZiB0aGUgYHZhbGAgYXJyYXkgaW4gYG1seDVkcl9md19jcmVhdGVfbWRfdGJsYCBhbmQgdGhlIGBtZW1jcHlgIG9wZXJhdGlvbnMgd2l0aGluIGBtbHg1ZHJfY21kX3NldF9mdGVgLiBJdCdzIGEgZnVuZGFtZW50YWwgY2hhbmdlIGluIHRoZSBtbHg1IGRyaXZlcidzIGhhbmRsaW5nIG9mIHRoZXNlIG1hdGNoIHBhcmFtZXRlcnMsIHNvIHdlICphYnNvbHV0ZWx5KiBuZWVkIHRvIGZ1enogdGhpcyB0aG9yb3VnaGx5LlxuXG5Ob3csIGxldCdzIHplcm8gaW4gb24gdGhlIGtleSBzeW1ib2xzIGludm9sdmVkLiBUaGUgcGF0Y2ggY2xlYXJseSB0b3VjaGVzIGBjaGVja192YWxpZF9zcGVjYCwgYGFsbG9jX2Z0ZWAsIGBtbHg1ZHJfY21kX3NldF9mdGVgLCBhbmQgYG1seDVkcl9md19jcmVhdGVfbWRfdGJsYC4gV2Ugc2hvdWxkIGNoZWNrIGhvdyBlYXNpbHkgdGhlc2UgY2FuIGJlIHJlYWNoZWQuIGBjaGVja192YWxpZF9zcGVjYCBpcyByZWFjaGVkIHZpYSBgX21seDVfYWRkX2Zsb3dfcnVsZXNgLCB3aGljaCBpcyBpbiB0dXJuIGNhbGxlZCBieSBgbWx4NV9hZGRfZmxvd19ydWxlc2AuIGBtbHg1ZHJfY21kX3NldF9mdGVgIGlzIGludm9sdmVkIHdpdGggdGhlIFNURSBhcnJheS4gSXQncyB0aW1lIHRvIGRpZyBpbnRvIHRoZSBjYWxsZXJzIG9mIGBtbHg1ZHJfY21kX3NldF9mdGVgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzczMiwiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY0NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MzowOC4xODU5ODI4MTFaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MDA3NjQ3ODIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWRyX2NtZF9zZXRfZnRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM9Mjc5PWludCBtbHg1ZHJfY21kX3N5bmNfc3RlZXJpbmcoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jLTI5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jOjI5NTppbnQgbWx4NWRyX2NtZF9zZXRfZnRlX21vZGlmeV9hbmRfdnBvcnQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9jbWQuYy0yOTYtXFx0XFx0XFx0XFx0XFx0dTMyIHRhYmxlX3R5cGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jPTczMj1zdGF0aWMgaW50IG1seDVkcl9jbWRfc2V0X2V4dGVuZGVkX2Rlc3Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtNzcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM6NzcxOmludCBtbHg1ZHJfY21kX3NldF9mdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jLTc3Mi1cXHRcXHQgICAgICAgaW50IG9wbW9kLCBpbnQgbW9kaWZ5X21hc2ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM9OD1tbHg1ZHJfZndfY3JlYXRlX3JlY2FsY19jc19mdChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLCB1MTYgdnBvcnRfbnVtKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYzo1NDpcXHRyZXQgPSBtbHg1ZHJfY21kX3NldF9mdGVfbW9kaWZ5X2FuZF92cG9ydChkbW4tXFx1MDAzZW1kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTU1LVxcdFxcdFxcdFxcdFxcdFxcdCAgTUxYNV9GTE9XX1RBQkxFX1RZUEVfRkRCLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jPTEwMT1pbnQgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90Ymwoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jOjE0NTpcXHRyZXQgPSBtbHg1ZHJfY21kX3NldF9mdGUoZG1uLVxcdTAwM2VtZGV2LCAwLCAwLCBcXHUwMDI2ZnRfaW5mbywgKmdyb3VwX2lkLCBcXHUwMDI2ZnRlX2luZm8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xNDYtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oPTEzMTM9aW50IG1seDVkcl9jbWRfc3luY19zdGVlcmluZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oOjEzMTQ6aW50IG1seDVkcl9jbWRfc2V0X2Z0ZV9tb2RpZnlfYW5kX3Zwb3J0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xMzE1LVxcdFxcdFxcdFxcdFxcdHUzMiB0YWJsZV90eXBlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oPTE1MjY9c3RydWN0IG1seDVkcl9jbWRfZnRlX2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE1MzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oOjE1MzY6aW50IG1seDVkcl9jbWRfc2V0X2Z0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xNTM3LVxcdFxcdCAgICAgICBpbnQgb3Btb2QsIGludCBtb2RpZnlfbWFzayxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDM6MTAuNTg2NzU1NjczWiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4NTUxMDMzODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSdtIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOlxuXG4qKlRyYWNpbmcgdGhlIE9yaWdpbnMgb2YgdGhlIERSIEZUIEVudHJ5IFNldHVwKipcblxuT2theSwgc28gYG1seDVkcl9jbWRfc2V0X2Z0ZWAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQncyB1bHRpbWF0ZWx5IHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHVwIHRoZSBGb3J3YXJkaW5nIFRhYmxlIEVudHJ5IGluIHRoZSBEYXRhIFBhdGggUnVsZS4gTm93LCB3aGVyZSBpcyB0aGlzIGNyaXRpY2FsIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCBmcm9tPyBUaGUgdGV4dCBtZW50aW9ucyBpdCdzIGNhbGxlZCBieSBgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxgLCB3aGljaCBtYWtlcyBzZW5zZTsgdGhlIE1ldGFkYXRhIFRhYmxlIGlzIHRoZSBjb250YWluZXIgd2hlcmUgdGhlc2UgRlRFcyBsaXZlLCBJJ2QgZXhwZWN0IHNldHVwIHRvIG9jY3VyIHRoZXJlLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gdW5kZXJzdGFuZCAqd2h5KiBgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxgIGlzIGJlaW5nIGludm9rZWQuIEkgbmVlZCB0byBrbm93IHRoZSBjYWxsaW5nIGNvbnRleHQuIExldCBtZSB0cmFjZSB0aGUgY2FsbHMgdG8gYG1seDVkcl9md19jcmVhdGVfbWRfdGJsYCB0byBzZWUgd2hhdCdzIHRyaWdnZXJpbmcgaXRzIGV4ZWN1dGlvbi4gRnJvbSB0aGVyZSwgSSBzaG91bGQgYmUgYWJsZSB0byBncmFzcCB0aGUgYmlnZ2VyIHBpY3R1cmUgb2Ygd2hlcmUgYW5kIHdoZW4gdGhlc2UgRlRFcyBhcmUgZ2V0dGluZyBwb3B1bGF0ZWQsIGFuZCB0aGF0IHdpbGwgZ2l2ZSBtZSBzb21lIGluc2lnaHQgb24gd2hlcmUgdG8gbG9vayBmb3IgYW4gaXNzdWUuIFRoaXMgd2lsbCBoZWxwIG1lIHRyYWNlIHRoZSBkYXRhLWZsb3cgdGhyb3VnaCB0aGUgZGV2aWNlIGRyaXZlcnMgaW4gcmVsYXRpb24gdG8gdGhlIGRhdGFwbGFuZSBpbXBsZW1lbnRhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTYwNjMsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MzoxNC40NDE4NjE5MjlaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0Nzc0Nzg4MzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9hY3Rpb24uYz0xMTc0PW1seDVkcl9hY3Rpb25fY3JlYXRlX211bHRfZGVzdF90Ymwoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmMtMTI2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2FjdGlvbi5jOjEyNjU6XFx0cmV0ID0gbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmwoZG1uLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmMtMTI2Ni1cXHRcXHRcXHRcXHQgICAgICBod19kZXN0cyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYz04Mz12b2lkIG1seDVkcl9md19kZXN0cm95X3JlY2FsY19jc19mdChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTEwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTAxOmludCBtbHg1ZHJfZndfY3JlYXRlX21kX3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xMDItXFx0XFx0XFx0ICAgIHN0cnVjdCBtbHg1ZHJfY21kX2Zsb3dfZGVzdGluYXRpb25faHdfaW5mbyAqZGVzdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaD0xNTU1PWludCBtbHg1ZHJfZG9tYWluX2dldF9yZWNhbGNfY3NfZnRfYWRkcihzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE1NTctXFx0XFx0XFx0XFx0XFx0dTY0ICpyeF9pY21fYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oOjE1NTg6aW50IG1seDVkcl9md19jcmVhdGVfbWRfdGJsKHN0cnVjdCBtbHg1ZHJfZG9tYWluICpkbW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE1NTktXFx0XFx0XFx0ICAgIHN0cnVjdCBtbHg1ZHJfY21kX2Zsb3dfZGVzdGluYXRpb25faHdfaW5mbyAqZGVzdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDM6MTYuOTE5MzQ3NDE2WiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNTQzODMwMDA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTQ4MjgsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQzOjI5LjQ2MzE4MDU2WiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzIwMjAyOTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVkcl9hY3Rpb25fY3JlYXRlX211bHRfZGVzdF90YmxcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9hY3Rpb24uYz0xMTczPXN0cnVjdCBtbHg1ZHJfYWN0aW9uICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2FjdGlvbi5jOjExNzQ6bWx4NWRyX2FjdGlvbl9jcmVhdGVfbXVsdF9kZXN0X3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmMtMTE3NS1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbWx4NWRyX2FjdGlvbl9kZXN0ICpkZXN0cyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYz0yNTI9c3RhdGljIGludCBtbHg1X2NtZF9kcl9jcmVhdGVfZnRlKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTU4My1cXHRcXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jOjU4NDpcXHRcXHR0bXBfYWN0aW9uID0gbWx4NWRyX2FjdGlvbl9jcmVhdGVfbXVsdF9kZXN0X3RibChkb21haW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTU4NS1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHR0ZXJtX2FjdGlvbnMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL21seDVkci5oPTk4PXN0cnVjdCBtbHg1ZHJfYWN0aW9uICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL21seDVkci5oOjk5Om1seDVkcl9hY3Rpb25fY3JlYXRlX211bHRfZGVzdF90Ymwoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL21seDVkci5oLTEwMC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbWx4NWRyX2FjdGlvbl9kZXN0ICpkZXN0cyxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDM6MzEuNzgzMzg4MDk5WiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyOTM2OTQ0NTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTUzNDQsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQzOjQ0LjcyMDMzNTA5M1oiLCJTZXEiOjQwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU0NzMzMTA1MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtbHg1X2NtZF9kcl9jcmVhdGVfZnRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYz0yNDA9c3RhdGljIGJvb2wgY29udGFpbl92cG9ydF9yZWZvcm1hdF9hY3Rpb24oc3RydWN0IG1seDVfZmxvd19ydWxlICpkc3QpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmMtMjUxLSNkZWZpbmUgTUxYNV9GTE9XX0NPTlRFWFRfQUNUSU9OX01BWCAgMzRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmM6MjUyOnN0YXRpYyBpbnQgbWx4NV9jbWRfZHJfY3JlYXRlX2Z0ZShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmMtMjUzLVxcdFxcdFxcdFxcdCAgc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmM9NzU2PXN0YXRpYyBpbnQgbWx4NV9jbWRfZHJfdXBkYXRlX2Z0ZShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYy03NzItXFx0LyogRmlyc3QgYWRkIHRoZSBuZXcgdXBkYXRlZCBydWxlLCB0aGVuIGRlbGV0ZSB0aGUgb2xkIHJ1bGUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmM6NzczOlxcdHJldCA9IG1seDVfY21kX2RyX2NyZWF0ZV9mdGUobnMsIGZ0LCBncm91cCwgZnRlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmMtNzc0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmM9ODU4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbWx4NV9mbG93X2NtZHMgbWx4NV9mbG93X2NtZHNfZHIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmMtODYzLVxcdC5kZXN0cm95X2Zsb3dfZ3JvdXAgPSBtbHg1X2NtZF9kcl9kZXN0cm95X2Zsb3dfZ3JvdXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jOjg2NDpcXHQuY3JlYXRlX2Z0ZSA9IG1seDVfY21kX2RyX2NyZWF0ZV9mdGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTg2NS1cXHQudXBkYXRlX2Z0ZSA9IG1seDVfY21kX2RyX3VwZGF0ZV9mdGUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQzOjQ3LjI2NzY3MTIzNVoiLCJTZXEiOjQxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTA0ODI3MTg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgRmxvdyBSdWxlIENyZWF0aW9uIGluIG1seDUqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJJ20gc2VlaW5nLCBgbWx4NV9jbWRfZHJfY3JlYXRlX2Z0ZWAgaXMgYSBjYWxsYmFjayBzcGVjaWZpY2FsbHkgdXNlZCBmb3IgY3JlYXRpbmcgRnVuY3Rpb25hbCBUcmFmZmljIEVuZ2luZSAoRlRFKSBlbnRyaWVzLCBhbmQgaXQncyBjYWxsZWQgdGhyb3VnaCBgY3JlYXRlX2Z0ZWAgd2l0aGluIGBtbHg1X2Zsb3dfY21kc19kcmAuIEl0J3MgcHJldHR5IGNsZWFyIHRoYXQgdGhpcyBwYXRoIGlzIGFjdGl2ZWx5IGhpdCB3aGVuIGZsb3cgcnVsZXMgYXJlIGJlaW5nIGNyZWF0ZWQuIFdlIGFsc28gc2VlIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBiZWluZyB1c2VkIGZvciBgZnNfZnRlYCBhbGxvY2F0aW9uIGluIGBmc19jb3JlLmNgLiBUaGUgYGZzX2Z0ZWAgYWxsb2NhdGlvbiBpdHNlbGYgaXMgaGFwcGVuaW5nIHdpdGhpbiBgYWxsb2NfZnRlYCwgd2hpY2ggaXMsIGluIHR1cm4sIGNhbGxlZCBieSBgX21seDVfYWRkX2Zsb3dfcnVsZXNgLiBUaGlzIHRoZW4gZ2V0cyBjYWxsZWQgYnkgYG1seDVfYWRkX2Zsb3dfcnVsZXNgLCB3aGljaCBJIGtub3cgaXMgdGhlIGNvcmUgQVBJIGluIG1seDUgZm9yIGFkZGluZyBmbG93IHJ1bGVzLlxuXG5TbywgbG9naWNhbGx5LCB0aGlzIGVudGlyZSBzZXF1ZW5jZSBpcyBoaWdobHkgZnVuY3Rpb25hbCBhbmQgZGVmaW5pdGVseSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlLiBOb3csIGxldCdzIG5hcnJvdyBkb3duIG91ciBmb2N1cy5cblxuSSdtIHRoaW5raW5nIG9mIGZvY3VzaW5nIG91ciBpbnZlc3RpZ2F0aW9uIG9uIHN5bWJvbHMuIGBhbGxvY19mdGVgIGxvb2tzIGxpa2UgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBidXQgaXQncyBzdGF0aWMsIHNvIHdlIG1pZ2h0IGhhdmUgdG8gdXNlIGBfbWx4NV9hZGRfZmxvd19ydWxlc2Agb3IgYG1seDVfYWRkX2Zsb3dfcnVsZXNgIHNpbmNlIHRob3NlIGFyZSBub3QuXG5cbkluIGFkZGl0aW9uLCBpdCBsb29rcyBsaWtlIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCBoYXMgYmVlbiBtb2RpZmllZCwgc28gbGV0J3MgdmVyaWZ5IGlmIHRoYXQgaXMgcmVhY2hhYmxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODE3MiwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0Mzo1Mi4xNzI1MDA4MzNaIiwiU2VxIjo0MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0NTA5NDMyODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWh3c19jbWRfcXVlcnlfY2Fwc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTczMz1od3NfYndjX21hdGNoZXJfc2l6ZV9tYXhlZF9vdXQoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy03MzUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6NzM2OlxcdHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzID0gYndjX21hdGNoZXItXFx1MDAzZW1hdGNoZXItXFx1MDAzZXRibC1cXHUwMDNlY3R4LVxcdTAwM2VjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNzM3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz04MTA9aHdzX2J3Y19tYXRjaGVyX2V4dGVuZF9zaXplKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtODEzLVxcdHN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKmN0eCA9IGJ3Y19tYXRjaGVyLVxcdTAwM2VtYXRjaGVyLVxcdTAwM2V0YmwtXFx1MDAzZWN0eDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjgxNDpcXHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyA9IGN0eC1cXHUwMDNlY2FwcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTgxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmM9ODkyPWludCBtbHg1aHdzX2NtZF9nZW5lcmF0ZV93cWUoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jLTkzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jOjkzNzppbnQgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jOjkzODpcXHRcXHRcXHQgICBzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jLTkzOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oPTE5MT1zdHJ1Y3QgbWx4NWh3c19jbWRfZ2VuZXJhdGVfd3FlX2F0dHIge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaC0xOTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaDoxOTk6c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmgtMjAwLVxcdHUzMiBmbGV4X3Byb3RvY29scztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmg9MzM0PWludCBtbHg1aHdzX2NtZF9zcV9tb2RpZnlfcmR5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1MzIgc3FuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oLTMzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oOjMzNjppbnQgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oOjMzNzpcXHRcXHRcXHQgICBzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2Fwcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaC0zMzgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuYz04OT1zdGF0aWMgdm9pZCBod3NfY29udGV4dF9jaGVja19od3Nfc3VwcChzdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICpjdHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtOTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jOjkxOlxcdHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzID0gY3R4LVxcdTAwM2VjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jLTkyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM9MTg5PXN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKm1seDVod3NfY29udGV4dF9vcGVuKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtMjA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jOjIwODpcXHRyZXQgPSBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzKG1kZXYsIGN0eC1cXHUwMDNlY2Fwcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtMjA5LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaD0zNz1zdHJ1Y3QgbWx4NWh3c19jb250ZXh0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaC0zOC1cXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaDozOTpcXHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaC00MC1cXHR1MzIgcGRfbnVtO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWJ1Zy5jPTI3MD1zdGF0aWMgaW50IGh3c19kZWJ1Z19kdW1wX2NvbnRleHRfY2FwcyhzdHJ1Y3Qgc2VxX2ZpbGUgKmYsIHN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKmN0eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlYnVnLmMtMjcxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlYnVnLmM6MjcyOlxcdHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzID0gY3R4LVxcdTAwM2VjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVidWcuYy0yNzMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYz0xMDc5PWh3c19kZWZpbmVyX2NvbnZfbWlzYyhzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2NvbnZfZGF0YSAqY2QsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDgxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDgyOlxcdHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzID0gY2QtXFx1MDAzZWN0eC1cXHUwMDNlY2FwcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDgzLVxcdHN0cnVjdCBtbHg1aHdzX2RlZmluZXJfZmMgKmZjID0gY2QtXFx1MDAzZWZjO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM9MTI3Nj1od3NfZGVmaW5lcl9jb252X21pc2MyKHN0cnVjdCBtbHg1aHdzX2RlZmluZXJfY29udl9kYXRhICpjZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEyNzgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEyNzk6XFx0c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMgPSBjZC1cXHUwMDNlY3R4LVxcdTAwM2VjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEyODAtXFx0c3RydWN0IG1seDVod3NfZGVmaW5lcl9mYyAqZmMgPSBjZC1cXHUwMDNlZmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYz0xMzUwPWh3c19kZWZpbmVyX2NvbnZfbWlzYzMoc3RydWN0IG1seDVod3NfZGVmaW5lcl9jb252X2RhdGEgKmNkLCB1MzIgKm1hdGNoX3BhcmFtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEzNTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEzNTI6XFx0c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMgPSBjZC1cXHUwMDNlY3R4LVxcdTAwM2VjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEzNTMtXFx0c3RydWN0IG1seDVod3NfZGVmaW5lcl9mYyAqZmMgPSBjZC1cXHUwMDNlZmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYz01Njk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jOjU3MDpod3NfbWF0Y2hlcl9jaGVja19hdHRyX3N6KHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jLTU3MS1cXHRcXHRcXHQgIHN0cnVjdCBtbHg1aHdzX21hdGNoZXIgKm1hdGNoZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYz03NTI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jOjc1Mzpod3NfbWF0Y2hlcl92YWxpZGF0ZV9pbnNlcnRfbW9kZShzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYy03NTQtXFx0XFx0XFx0XFx0IHN0cnVjdCBtbHg1aHdzX21hdGNoZXIgKm1hdGNoZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYz04MTQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jOjgxNTpod3NfbWF0Y2hlcl9wcm9jZXNzX2F0dHIoc3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmMtODE2LVxcdFxcdFxcdCBzdHJ1Y3QgbWx4NWh3c19tYXRjaGVyICptYXRjaGVyKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0Mzo1NC42MjM0NTAyMzJaIiwiU2VxIjo0MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTIwNzQyMTY3MDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjoxOTA0MCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDQ6MDYuNjk3NjcwMzIxWiIsIlNlcSI6NDQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDkzMDAxNDg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD03MjM5PWVudW0gbWx4NV9yZWZvcm1hdF9jdHhfdHlwZSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC03MjU4LVxcdE1MWDVfUkVGT1JNQVRfVFlQRV9ERUxfTUFDU0VDID0gMHgxMixcXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaDo3MjU5OlxcdE1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCA9IDB4MTYsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI2MC19O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NDowOS4xOTA2NzU4NDdaIiwiU2VxIjo0NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTU2NTAwNDczMTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjoxOTIyMiwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDQ6MjQuODQwNzI1NTgxWiIsIlNlcSI6NDYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTQwMDExNDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfQUNUSU9OX0lOX0ZJRUxEX1BTUF9IRUFERVJfMVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD03MzQyPWVudW0ge1xcbi0tXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzM4Mi1cXHRNTFg1X0FDVElPTl9JTl9GSUVMRF9QU1BfU1lORFJPTUUgICAgICA9IDB4NzEsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6NzM4MzpcXHRNTFg1X0FDVElPTl9JTl9GSUVMRF9QU1BfSEVBREVSXzEgICAgICA9IDB4NzgsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzM4NC19O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NDoyNy4zODA3NDE5MjRaIiwiU2VxIjo0NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQ2MzIwNzE5MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjoxOTQwMCwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDQ6NTIuMDEyODE4MTU2WiIsIlNlcSI6NDgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjgxNTA3MDgyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oPTExNjY9ZW51bSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgtMTE3My1cXHRNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU181XFx0PSAxIFxcdTAwM2NcXHUwMDNjIDYsXFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oOjExNzQ6XFx0TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNlxcdD0gMSBcXHUwMDNjXFx1MDAzYyA3LFxcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaC0xMTc1LX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ0OjU0LjY5NDMzMDkyOFoiLCJTZXEiOjQ5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTYyMDU2MDUxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjE5NTUzLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NTowNi4zMTQ4OTU4N1oiLCJTZXEiOjUwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI2NTA1ODI2MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU182XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oPTY5ODk9ZW51bSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC02OTk2LVxcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzUgPSAweDYsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6Njk5NzpcXHRNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU182ID0gMHg3LFxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTY5OTgtfTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDU6MDguNTc5OTU4NjEzWiIsIlNlcSI6NTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExNzcxNTMxOTcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTk3NjAsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ1OjIwLjM1MTQ5NDMyNFoiLCJTZXEiOjUyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ2OTg1MDAzNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtaXNjX3BhcmFtZXRlcnNfNlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD0yMzM3PXN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfcGFyYW1fYml0cyB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC0yMzUxLVxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oOjIzNTI6XFx0c3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzZfYml0cyBtaXNjX3BhcmFtZXRlcnNfNjtcXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC0yMzUzLX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ1OjIyLjgyMTM1NjAxMVoiLCJTZXEiOjUzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDU5MDcyMDYzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBDdXJyZW50IFRoaW5raW5nIG9uIEZ1enppbmcgUHJpb3JpdGllcyoqXG5cbk9rYXksIHRoZSBwYXRjaCBpcyBjb25maXJtZWQgZnVuY3Rpb25hbCwgdGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gTm93LCBsZXQncyBicmVhayBkb3duIHRoZSBpbXBsaWNhdGlvbnMgZm9yIGZ1enppbmcuIFRoZSBjaGFuZ2VzIHRvIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBkaXJlY3RseSBpbXBhY3QgdHdvIGNyaXRpY2FsIGZ1bmN0aW9uczogYGFsbG9jX2Z0ZWAgYW5kIGBjaGVja192YWxpZF9zcGVjYC4gVGhvc2UgYXJlIGRlZmluaXRlbHkgaGlnaC1wcmlvcml0eSBhcmVhcywgc2luY2UgdGhleSBhcmUgZGVhbGluZyB3aXRoIHRoZSBhbGxvY2F0aW9uIGFuZCB2YWxpZGF0aW9uIG9mIGZsb3cgdGFibGUgZW50cmllcy4gVGhlbiwgdGhlIG1vZGlmaWNhdGlvbnMgdG8gYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIGhhdmUgcmFtaWZpY2F0aW9ucyBmb3IgYG1seDVod3NfY29udGV4dF9vcGVuYC5cblxuTXkgcHJpbWFyeSBmdXp6aW5nIHRhcmdldHMgc2hvdWxkIGJlIGBtbHg1X2FkZF9mbG93X3J1bGVzYCwgYG1seDVod3NfY29udGV4dF9vcGVuYCwgYW5kIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAuIEkgbmVlZCB0byBlbnN1cmUgcm9idXN0IGNvdmVyYWdlIGZvciBydWxlIGFkZGl0aW9uIGFuZCB0aGUgY3JlYXRpb24gb2YgbWV0YWRhdGEgdGFibGVzLCBhcyB3ZWxsIGFzIGNvbnRleHQgb3BlbmluZy4gQWgsIHdhaXQsIGBtbHg1aHdzX2NvbnRleHRfb3BlbmAgaXMgc3BlY2lmaWNhbGx5IHRpZWQgdG8gYG1seDVod3NgLCBtZWFuaW5nIGl0J3MgaW52b2x2ZWQgaW4gaGFyZHdhcmUgc3RlZXJpbmcuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY2FsbCBncmFwaCB0byB2ZXJpZnkgdGhhdCBgbWx4NWh3c19jb250ZXh0X29wZW5gIGlzIGFjdHVhbGx5IGJlaW5nIGNhbGxlZCB3aXRoaW4gdGhlIHN5c3RlbS4gV2Ugd2FudCB0byBiZSBzdXJlIGl0J3MgaGl0IGR1cmluZyBub3JtYWwgb3BlcmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjMzNCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NTozMy40MTIwODAzODlaIiwiU2VxIjo1NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0ODc0Mjg4NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWh3c19jb250ZXh0X29wZW5cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM9MTc4PXN0YXRpYyB2b2lkIGh3c19jb250ZXh0X3VuaW5pdF9od3Moc3RydWN0IG1seDVod3NfY29udGV4dCAqY3R4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtMTg4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jOjE4OTpzdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICptbHg1aHdzX2NvbnRleHRfb3BlbihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuYy0xOTAtXFx0XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWx4NWh3c19jb250ZXh0X2F0dHIgKmF0dHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2ZzX2h3cy5jPTEzMD1zdGF0aWMgaW50IG1seDVfY21kX2h3c19jcmVhdGVfbnMoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2ZzX2h3cy5jLTEzOS1cXHRucy1cXHUwMDNlZnNfaHdzX2NvbnRleHQuaHdzX2N0eCA9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9mc19od3MuYzoxNDA6XFx0XFx0bWx4NWh3c19jb250ZXh0X29wZW4obnMtXFx1MDAzZWRldiwgXFx1MDAyNmh3c19jdHhfYXR0cik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9mc19od3MuYy0xNDEtXFx0aWYgKCFucy1cXHUwMDNlZnNfaHdzX2NvbnRleHQuaHdzX2N0eCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tbHg1aHdzLmg9MjM1PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1aHdzX2lzX3N1cHBvcnRlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oLTI0OS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21seDVod3MuaDoyNTA6ICogbWx4NWh3c19jb250ZXh0X29wZW4gLSBPcGVuIGEgY29udGV4dCB1c2VkIGZvciBkaXJlY3QgcnVsZSBpbnNlcnRpb25cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21seDVod3MuaC0yNTEtICogdXNpbmcgaGFyZHdhcmUgc3RlZXJpbmcuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21seDVod3MuaD0yNTg9c3RydWN0IG1seDVod3NfY29udGV4dCAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tbHg1aHdzLmg6MjU5Om1seDVod3NfY29udGV4dF9vcGVuKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oLTI2MC1cXHRcXHQgICAgIHN0cnVjdCBtbHg1aHdzX2NvbnRleHRfYXR0ciAqYXR0cik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ1OjM1Ljg5OTUxNjE4NloiLCJTZXEiOjU1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MjUxMTc2NDE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTmFtZXNwYWNlIENyZWF0aW9uIFByb2Nlc3MqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIGhvdyBmbG93IHN0ZWVyaW5nIG5hbWVzcGFjZXMgYXJlIGNyZWF0ZWQgaW4gdGhlIE1lbGxhbm94IGRyaXZlci4gVGhlIGZpcnN0IHRoaW5nIHRoYXQganVtcHMgb3V0IGlzIHRoYXQgYG1seDVfY21kX2h3c19jcmVhdGVfbnNgIGlzIHRoZSBrZXkgZnVuY3Rpb24gYmVpbmcgY2FsbGVkIGR1cmluZyB0aGUgcHJvY2Vzcy4gVGhhdCBnaXZlcyBtZSBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50IGZvciB0cmFjaW5nIHRoZSBleGVjdXRpb24gcGF0aC4gVGhlcmVmb3JlLCBgbWx4NV9hZGRfZmxvd19ydWxlc2AgYW5kIGBtbHg1aHdzX2NvbnRleHRfb3BlbmAgbG9vayBsaWtlIGVzc2VudGlhbCBzeW1ib2xzIHRvIGtlZXAgYW4gZXllIG9uLCBhcyB0aGV5J2xsIGxpa2VseSBiZSBjbG9zZWx5IHJlbGF0ZWQuIFRoZW4gdGhlcmUgaXMgdGhlIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAsIHRoaXMgaXMgYW5vdGhlciBnb29kIG9uZS4gTm93LCB0aGUgYmlnIHF1ZXN0aW9uIGlzLCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgaW52b2x2ZWQ/IFRvIGZpZ3VyZSB0aGF0IG91dCwgSSdsbCBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlOiB0aGUgYEtjb25maWdgIGZpbGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIGdvb2Qgb3ZlcnZpZXcgb2YgdGhlIHJlbGV2YW50IGJ1aWxkLXRpbWUgc2V0dGluZ3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzNTMxLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDU6NDUuMTUwNjk1ODAzWiIsIlNlcSI6NTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTE2NjEyMzU0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNTFg1X0NPUkVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2OmNvbmZpZyBNTFg1X0NPUkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIGNvcmUgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTk9Y29uZmlnIE1MWDVfRlBHQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6Mjk6Y29uZmlnIE1MWDVfQ09SRV9FTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTMwLVxcdGJvb2wgXFxcIk1lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTExMj1jb25maWcgTUxYNV9UQ19TQU1QTEVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEyNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMjU6Y29uZmlnIE1MWDVfQ09SRV9FTl9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMjYtXFx0Ym9vbCBcXFwiRGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgU3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMzc6Y29uZmlnIE1MWDVfQ09SRV9JUE9JQlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEzOC1cXHRib29sIFxcXCJNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChjb25uZWN0WCBzZXJpZXMpIElQb0lCIG9mZmxvYWRzIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ1OjQ3LjY2NzMxMjIwN1oiLCJTZXEiOjU3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDc5MTAwMDY3MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duLCBhcyBhIHN5c3RlbXMgZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgTUxYNSBDb25maWd1cmF0aW9uIGZvciBIVy9TVyBTdWJzeXN0ZW1zKipcblxuUmlnaHQsIGxldCBtZSBzdGFydCBieSBmb2N1c2luZyBvbiBgTUxYNV9DT1JFYC4gVGhhdCdzIHRoZSBiYXNlbGluZSwgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBlbnRpcmUgc3lzdGVtLCBJIGtub3cgdGhhdC4gQnV0IG5vdyBJJ20gZGlnZ2luZyBkZWVwZXIgaW50byBob3cgdGhhdCBjb3JlIGNvbmZpZyBwbGF5cyBvdXQgZm9yIHNwZWNpZmljIHN1YnN5c3RlbXMuXG5cbldoYXQgSSByZWFsbHkgbmVlZCB0byBrbm93IGlzOiBhcmUgdGhlcmUgYW55ICpzcGVjaWZpYyogY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLCBwcm9maWxlcywgb3Igc3BlY2lhbCBzZXR0aW5ncyB0aGF0IGFyZSB1bmlxdWUgdG8gdGhlIFwiaHdzXCIgYW5kIFwic3dzXCIgY29tcG9uZW50cz8gSXQncyBub3QgZW5vdWdoIHRvIGp1c3QgdW5kZXJzdGFuZCBgTUxYNV9DT1JFYCBnZW5lcmljYWxseS4gSSBoYXZlIHRvIGRyaWxsIGRvd24uIEFyZSB0aGVyZSBzZXBhcmF0ZSwgc3BlY2lhbGl6ZWQgdHdlYWtzIG9yIG92ZXJyaWRlcyBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBhbmQgc29mdHdhcmUtc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIHRoYXQgaW50ZXJhY3Qgd2l0aCBgTUxYNV9DT1JFYD8gVW5kZXJzdGFuZGluZyB0aGF0IG51YW5jZSBpcyBjcnVjaWFsIHRvIG9wdGltaXphdGlvbiBhbmQgdHJvdWJsZXNob290aW5nLiBNeSBuZXh0IHN0ZXAgaW52b2x2ZXMgZmluZGluZyBkb2N1bWVudGF0aW9uIGFuZCBjcm9zcy1yZWZlcmVuY2luZyBjb25maWd1cmF0aW9ucyB0byBmaW5kIHRoZSBkaWZmZXJlbmNlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQzMzMsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NTo1OC40NTgzMTY3M1oiLCJTZXEiOjU4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcxMjY5ODY5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdGVlcmluZy9od3NcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlPTEyMT1tbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKz0gc3RlZXJpbmcvc3dzL2RyX2RvbWFpbi5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDUtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfSFdfU1RFRVJJTkcpICs9IHN0ZWVyaW5nL2h3cy9jbWQubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE0NzpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvY29udGV4dC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ4OlxcdFxcdFxcdFxcdFxcdHN0ZWVyaW5nL2h3cy9wYXRfYXJnLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDk6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2J1ZGR5Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTA6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL3Bvb2wubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE1MTpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvdGFibGUubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE1MjpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvYWN0aW9uLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTM6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL3J1bGUubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE1NDpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvbWF0Y2hlci5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU1OlxcdFxcdFxcdFxcdFxcdHN0ZWVyaW5nL2h3cy9zZW5kLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTY6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2RlZmluZXIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE1NzpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvYndjLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTg6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2RlYnVnLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTk6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL3Zwb3J0Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNjA6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNjE6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2ZzX2h3c19wb29scy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTYyOlxcdFxcdFxcdFxcdFxcdHN0ZWVyaW5nL2h3cy9mc19od3MubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE2MzpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvYWN0aW9uX3N0ZV9wb29sLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTY0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYy04LSNpbmNsdWRlIFxcXCJmc19jb3JlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYzo5OiNpbmNsdWRlIFxcXCJzdGVlcmluZy9od3MvZnNfaHdzX3Bvb2xzLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYzoxMDojaW5jbHVkZSBcXFwic3RlZXJpbmcvaHdzL21seDVod3MuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnNfaG1mcy5jOjExOiNpbmNsdWRlIFxcXCJzdGVlcmluZy9od3MvdGFibGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnNfaG1mcy5jLTEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC00MC0jaW5jbHVkZSBcXHUwMDNjc3RlZXJpbmcvc3dzL2ZzX2RyLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDo0MTojaW5jbHVkZSBcXHUwMDNjc3RlZXJpbmcvaHdzL2ZzX2h3cy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtNDItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ2OjAxLjE3MTAxOTgxWiIsIlNlcSI6NTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMTg2MjkwOTk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MjI5NjEsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ2OjE0LjM1NzMxNDQ1N1oiLCJTZXEiOjYwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ0ODYwNzIzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUxYNV9IV19TVEVFUklOR1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz0xNjc9Y29uZmlnIE1MWDVfU1dfU1RFRVJJTkdcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE3NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNzU6Y29uZmlnIE1MWDVfSFdfU1RFRVJJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIGhhcmR3YXJlLW1hbmFnZWQgc3RlZXJpbmdcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ2OjE2LjgwNTkyODAwNVoiLCJTZXEiOjYxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzU3NTUxMDM3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjIzMTI0LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NjozMC4zODE0NDA5MzRaIiwiU2VxIjo2MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2MTI4OTk0OTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1MWDVfU1dfU1RFRVJJTkdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTU5PWNvbmZpZyBNTFg1X0VOX1RMU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjE2Nzpjb25maWcgTUxYNV9TV19TVEVFUklOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE2OC1cXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgc29mdHdhcmUtbWFuYWdlZCBzdGVlcmluZ1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDY6MzMuOTk0MzQ3OTk3WiIsIlNlcSI6NjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyMjczMzAyMTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTWVsbGFub3ggTUxYNSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgd2UncmUgZGVhbGluZyB3aXRoIGEgcGF0Y2ggdGhhdCB0b3VjaGVzIHNldmVyYWwgYXNwZWN0cyBvZiB0aGUgTUxYNSBkcml2ZXIncyBmbG93IHN0ZWVyaW5nIGNhcGFiaWxpdGllcy4gU3BlY2lmaWNhbGx5LCB0aGUgY29uZmlncyB0aGF0IGFyZSByZWxldmFudCBzZWVtIHRvIGJlIGBNTFg1X0NPUkVgLCBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBgTUxYNV9TV19TVEVFUklOR2AuIFRoZSBjaGFuZ2VzIGFyZSBoaXR0aW5nIGBmc19jb3JlLmhgLCB3aGljaCBpcyBhIGNvbW1vbiBoZWFkZXIgdXNlZCBieSBib3RoIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBzdGVlcmluZyBwYXRocywgYW5kIGBzdGVlcmluZy9od3MvY21kLmNgLCB3aGljaCBpcyBzcGVjaWZpYyB0byBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBhbHNvIGBzdGVlcmluZy9zd3MvZHJfY21kLmNgIGFuZCBgc3RlZXJpbmcvc3dzL2RyX2Z3LmNgIHdoaWNoIGFyZSB1c2VkIGJ5IGBNTFg1X1NXX1NURUVSSU5HYC5cblxuTm93LCB0aGUgaW5pdGlhbCBkaWZmIEkgd2FzIGdpdmVuIG9ubHkgc2hvd2VkIG1vZGlmaWNhdGlvbnMgdG8gYGZzX2NvcmUuaGAsIGBzdGVlcmluZy9od3MvY21kLmNgLCBhbmQgYSBjb3VwbGUgb2YgaGVhZGVyIGZpbGVzLCBuYW1lbHkgYGluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaGAgYW5kIGBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaGAuIEJ1dCB0aGF0J3Mgbm90IHRoZSB3aG9sZSBzdG9yeS4gSSBuZWVkZWQgdG8gaW52ZXN0aWdhdGUgdGhlIGltcGFjdCBvbiBzb2Z0d2FyZSBzdGVlcmluZy4gQWZ0ZXIgZG9pbmcgYSBgZ3JlcGAgZm9yIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCwgZGVmaW5lZCBpbiBgZnNfY29yZS5oYCwgSSBmb3VuZCB0aGF0IGl0J3MgYWxzbyB1dGlsaXplZCBpbiBib3RoIGBzdGVlcmluZy9zd3MvZHJfY21kLmNgIGFuZCBgc3RlZXJpbmcvc3dzL2RyX2Z3LmNgLiBUaGlzIGNvbmZpcm1zIHRoYXQgdGhlIGNoYW5nZXMgaW4gYGZzX2NvcmUuaGAgaW5mbHVlbmNlIGJvdGggdGhlIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBzdGVlcmluZyBwYXRocy5cblxuR2l2ZW4gdGhpcywgSSBoYXZlIHRvIGVuc3VyZSBJJ20gY292ZXJpbmcgYm90aCBoYXJkd2FyZSBhbmQgc29mdHdhcmUgYXNwZWN0cy4gVGhlIGNoYW5nZXMgaW4gYGZzX2NvcmUuaGAgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZm9yIGJvdGggc3RlZXJpbmcgb3B0aW9ucy4gVGhhdCBtZWFucyBJIG5lZWQgdG8gaW5jbHVkZSBhbGwgdGhyZWUgY29uZmlndXJhdGlvbnMgdG8gZW5zdXJlIHRoZSBmdXp6aW5nIGlzIHRob3JvdWdoIGFuZCBjb21wbGV0ZS5cblxuU28sIGhlcmUncyBteSBzdW1tYXJpemVkIGFwcHJvYWNoOlxuXG4qICAgKipXb3J0aEZ1enppbmc6KiogWWVzXG4qICAgKipGb2N1cyBTeW1ib2xzOioqIEkgc2hvdWxkIGNvbmNlbnRyYXRlIG9uIHRoZXNlIGZ1bmN0aW9uczogYG1seDVfYWRkX2Zsb3dfcnVsZXNgLCBgbWx4NWh3c19jb250ZXh0X29wZW5gLCBhbmQgYG1seDVkcl9md19jcmVhdGVfbWRfdGJsYC5cbiogICAqKkVuYWJsZWQgQ29uZmlndXJhdGlvbnM6KiogRGVmaW5pdGVseSBpbmNsdWRlIGBNTFg1X0NPUkVgLCBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBgTUxYNV9TV19TVEVFUklOR2AuXG5cbkEgcXVlc3Rpb24gdGhhdCBhcm9zZSBkdXJpbmcgdGhpcyBhbmFseXNpcyBpcyB3aGV0aGVyIGBNTFg1X0NPUkVgIGlzIHN1ZmZpY2llbnQsIG9yIGlmIGBNTFg1X0NPUkVfRU5gIHdvdWxkIGJlIG5lZWRlZCBhcyB3ZWxsLiBXaGlsZSBgTUxYNV9IV19TVEVFUklOR2AgYW5kIGBNTFg1X1NXX1NURUVSSU5HYCBkZXBlbmQgb24gYE1MWDVfQ09SRWAsIGFuZCBgTUxYNV9DT1JFYCBpcyB1c3VhbGx5IGVub3VnaCwgaXQncyB3b3J0aCBkb3VibGUtY2hlY2tpbmcgd2hhdCBgTUxYNV9IV19TVEVFUklOR2AgZGVwZW5kcyBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU5NzksIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDY6NDYuMjY3NjUyNjVaIiwiU2VxIjo2NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2OTYyMDIyNTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1MWDVfSFdfU1RFRVJJTkdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTY3PWNvbmZpZyBNTFg1X1NXX1NURUVSSU5HXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTc1OmNvbmZpZyBNTFg1X0hXX1NURUVSSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTc2LVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBoYXJkd2FyZS1tYW5hZ2VkIHN0ZWVyaW5nXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0Njo0OC45NjM4NjE4OTFaIiwiU2VxIjo2NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTY4MTQ2MTUyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjI3MjY0LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0Njo1OC42NDUzMjg2ODdaIiwiU2VxIjo2NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ0NTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE2NSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDE2NTpcXHRcXHRCdWlsZCBzdXBwb3J0IGZvciBUTFMgY3J5cHRvZ3JhcGh5LW9mZmxvYWQgYWNjZWxlcmF0aW9uIGluIHRoZSBOSUMuXFxuIDE2NjpcXHRcXG4gMTY3OlxcdGNvbmZpZyBNTFg1X1NXX1NURUVSSU5HXFxuIDE2ODpcXHRcXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgc29mdHdhcmUtbWFuYWdlZCBzdGVlcmluZ1xcXCJcXG4gMTY5OlxcdFxcdGRlcGVuZHMgb24gTUxYNV9DT1JFX0VOIFxcdTAwMjZcXHUwMDI2IE1MWDVfRVNXSVRDSFxcbiAxNzA6XFx0XFx0c2VsZWN0IENSQzMyXFxuIDE3MTpcXHRcXHRkZWZhdWx0IHlcXG4gMTcyOlxcdFxcdGhlbHBcXG4gMTczOlxcdFxcdEJ1aWxkIHN1cHBvcnQgZm9yIHNvZnR3YXJlLW1hbmFnZWQgc3RlZXJpbmcgaW4gdGhlIE5JQy5cXG4gMTc0OlxcdFxcbiAxNzU6XFx0Y29uZmlnIE1MWDVfSFdfU1RFRVJJTkdcXG4gMTc2OlxcdFxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBoYXJkd2FyZS1tYW5hZ2VkIHN0ZWVyaW5nXFxcIlxcbiAxNzc6XFx0XFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU4gXFx1MDAyNlxcdTAwMjYgTUxYNV9FU1dJVENIXFxuIDE3ODpcXHRcXHRkZWZhdWx0IHlcXG4gMTc5OlxcdFxcdGhlbHBcXG4gMTgwOlxcdFxcdEJ1aWxkIHN1cHBvcnQgZm9yIEhhcmR3YXJlLU1hbmFnZWQgRmxvdyBTdGVlcmluZyAoSE1GUykgaW4gdGhlIE5JQy5cXG4gMTgxOlxcdFxcdEhNRlMgaXMgYSBuZXcgYXBwcm9hY2ggdG8gbWFuYWdpbmcgc3RlZXJpbmcgcnVsZXMgd2hlcmUgU1RFcyBhcmVcXG4gMTgyOlxcdFxcdHdyaXR0ZW4gdG8gSUNNIGJ5IEhXIChhcyBvcHBvc2VkIHRvIFNXIGluIHNvZnR3YXJlLW1hbmFnZWQgc3RlZXJpbmcpLFxcbiAxODM6XFx0XFx0d2hpY2ggYWxsb3dzIGhpZ2hlciByYXRlIG9mIHJ1bGUgaW5zZXJ0aW9uLlxcbiAxODQ6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ2OjU4LjY0NTQ3ODY4N1oiLCJTZXEiOjY3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTUzNjczOTAzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHVuZGVyc3RhbmRpbmcsIGZyYW1lZCBhcyBteSBpbnRlcm5hbCB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGVwZW5kZW5jaWVzIGFuZCBTY29wZSBmb3IgVGhpcyBTZWN0aW9uKipcblxuUmlnaHQsIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHNwZWNpZmljIHNldCBvZiBmdW5jdGlvbmFsaXRpZXMgaGVyZSwgYW5kIHRoZXkncmUgaW50cmluc2ljYWxseSBsaW5rZWQgdG8gdGhlIHByZXNlbmNlIG9mIGBNTFg1X0NPUkVfRU5gIGFuZCBgTUxYNV9FU1dJVENIYC4gVGhhdCBpbW1lZGlhdGVseSBmbGFncyBhIGRlcGVuZGVuY3kgdHJlZSBJIG5lZWQgdG8gc29saWRpZnkgaW4gbXkgbWluZC4gVG8gYmUgY29tcHJlaGVuc2l2ZSwgSSBuZWVkIHRvIGluY2x1ZGUgY29uc2lkZXJhdGlvbnMgZm9yIHRoZSBjb3JlIGNvbXBvbmVudHMsIHRoZWlyIGVuYWJsZWQgc3RhdGVzLCBhbmQgYW55IGludm9sdmVkIHN3aXRjaCBmdW5jdGlvbmFsaXR5LiBUaGVyZWZvcmUsIEkgbmVlZCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSB0byBleHBsaWNpdGx5IGFjY291bnQgZm9yIGBNTFg1X0NPUkVgICh0aGUgZm91bmRhdGlvbmFsIGVsZW1lbnQpLCB0aGVuIGBNTFg1X0NPUkVfRU5gLCBgTUxYNV9FU1dJVENIYCAoc2luY2UgdGhhdCdzIHRoZSBwcmltYXJ5IGRlcGVuZGVuY3kpLiBJIHNob3VsZCBhbHNvIHByb2JhYmx5IGluY2x1ZGUgYm90aCB0aGUgc29mdHdhcmUgYW5kIGhhcmR3YXJlIHN0ZWVyaW5nIGNvbXBvbmVudHMgYXMgdGhlc2UgbWlnaHQgaW5mbHVlbmNlIHRoZSBiZWhhdmlvci4gVGhlcmVmb3JlIEknbGwgaW5jb3Jwb3JhdGUgYE1MWDVfU1dfU1RFRVJJTkdgIGFuZCBgTUxYNV9IV19TVEVFUklOR2AgdG9vLiBJIHdhbnQgdG8gbWFrZSBzdXJlIEkgZ2V0IHRoaXMgYWJzb2x1dGVseSByaWdodC5cblxuTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgbXkgdW5kZXJzdGFuZGluZyBvZiBgTUxYNV9FU1dJVENIYC4gSSBuZWVkIHRvIGVuc3VyZSBteSBtZW50YWwgbW9kZWwgb2YgdGhhdCBzcGVjaWZpYyBhc3BlY3QgaXMgYWNjdXJhdGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NjI1LCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NzoxMC4xODIyMTk4NjVaIiwiU2VxIjo2OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0OTQ3ODY5MjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1MWDVfRVNXSVRDSFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz01Nj1jb25maWcgTUxYNV9NUEZTXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy02NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2Njpjb25maWcgTUxYNV9FU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNjctXFx0Ym9vbCBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgU1JJT1YgRS1Td2l0Y2ggc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDc6MTIuNjc3MDEyMDIxWiIsIlNlcSI6NjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzNDA3MDc2MDQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEN1cnJlbnQgVGhpbmtpbmcqKlxuXG5BbHJpZ2h0LCBJJ20gdHJ5aW5nIHRvIG1hcCBvdXQgdGhlIGtleSBhcmVhcyBpbiB0aGlzIGNvZGUuIEkgbmVlZCB0byBlc3RhYmxpc2ggYSBnb29kIHNldCBvZiBmb2N1cyBzeW1ib2xzIHRvIGd1aWRlIG15IGFuYWx5c2lzLiBJbml0aWFsbHksIEkgd2FzIHRoaW5raW5nIGFib3V0IGluY29ycG9yYXRpbmcgc2V2ZXJhbCBjb21wb25lbnRzLCBzcGVjaWZpY2FsbHkgYE1MWDVfQ09SRWAsIGBNTFg1X0NPUkVfRU5gLCBgTUxYNV9FU1dJVENIYCwgYE1MWDVfU1dfU1RFRVJJTkdgLCBhbmQgYE1MWDVfSFdfU1RFRVJJTkdgLiBCdXQsIEkgbmVlZCBtb3JlIHByZWNpc2UgZW50cnkgcG9pbnRzLlxuXG5JIGNvbnNpZGVyZWQgYG1seDVfYWRkX2Zsb3dfcnVsZXNgIGFzIGEgZ29vZCBmb2NhbCBwb2ludCwgc2luY2UgaXQgZGVhbHMgd2l0aCBmbG93IHJ1bGVzLCBidXQgdGhlbiBJIHN0YXJ0ZWQgdGhpbmtpbmcgYWJvdXQgcmVsYXRlZCBmdW5jdGlvbnMgYW5kIGRpc2NvdmVyZWQgYG1seDVod3NfY29udGV4dF9vcGVuYCwgd2hpY2ggZ2V0cyBjYWxsZWQgd2hlbiBhIG5hbWVzcGFjZSBpcyBjcmVhdGVkLiBJIG5lZWRlZCB0byBzZWUgaWYgdGhlcmUgd2VyZSBhbnkgb3RoZXIgZ29vZCBjYW5kaWRhdGVzLlxuXG5BZnRlciBmdXJ0aGVyIHJldmlldywgSSBmb3VuZCB0aGF0IGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCBpcyBkaXJlY3RseSBtb2RpZmllZCwgc28gSSdsbCBpbmNsdWRlIHRoYXQuIEknbSBzZXR0bGluZyBvbiB0aGVzZSB0aHJlZTogYG1seDVfYWRkX2Zsb3dfcnVsZXNgLCBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AsIGFuZCBgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxgLiBJIHRoaW5rIHRoZXNlIHNob3VsZCBvZmZlciBhIGdvb2QgZm91bmRhdGlvbiBmb3IgYW5hbHlzaXMuXG5cbkknbSByZWFkeSB0byBtb3ZlIG9uIHRvIHRoZSBuZXh0IHN0ZXAsIGxldCdzIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4MTI1LCJPdXRwdXRUb2tlbnMiOjIzMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NzoyNi4wODQwOTA0MjFaIiwiU2VxIjo3MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjUyMjQ3NTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1MWDVfQ09SRVwiLFxuICAgIFwiTUxYNV9DT1JFX0VOXCIsXG4gICAgXCJNTFg1X0VTV0lUQ0hcIixcbiAgICBcIk1MWDVfU1dfU1RFRVJJTkdcIixcbiAgICBcIk1MWDVfSFdfU1RFRVJJTkdcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtbHg1X2FkZF9mbG93X3J1bGVzXCIsXG4gICAgXCJtbHg1aHdzX2NtZF9xdWVyeV9jYXBzXCIsXG4gICAgXCJtbHg1ZHJfZndfY3JlYXRlX21kX3RibFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzaXplIG9mIGBmdGVfbWF0Y2hfcGFyYW1gIHVzZWQgaW4gYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIG1hY3JvLCB3aGljaCBhZmZlY3RzIHRoZSBzaXplIG9mIGBmc19mdGVgIGFuZCBgbWx4NV9mbG93X2dyb3VwX21hc2tgIHN0cnVjdHMgYW5kIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBpbiBgY2hlY2tfdmFsaWRfc3BlY2AuIEl0IGFsc28gbW9kaWZpZXMgYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIHRvIHJlYWQgZnJvbSBgZV9zd2l0Y2hfY2FwYCBpbnN0ZWFkIG9mIGBlc3dfY2FwYC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgbWx4NSBkcml2ZXIncyBmbG93IHN0ZWVyaW5nIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1MWDVfQ09SRVwiLFxuICAgIFwiTUxYNV9DT1JFX0VOXCIsXG4gICAgXCJNTFg1X0VTV0lUQ0hcIixcbiAgICBcIk1MWDVfU1dfU1RFRVJJTkdcIixcbiAgICBcIk1MWDVfSFdfU1RFRVJJTkdcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtbHg1X2FkZF9mbG93X3J1bGVzXCIsXG4gICAgXCJtbHg1aHdzX2NtZF9xdWVyeV9jYXBzXCIsXG4gICAgXCJtbHg1ZHJfZndfY3JlYXRlX21kX3RibFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzaXplIG9mIGBmdGVfbWF0Y2hfcGFyYW1gIHVzZWQgaW4gYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIG1hY3JvLCB3aGljaCBhZmZlY3RzIHRoZSBzaXplIG9mIGBmc19mdGVgIGFuZCBgbWx4NV9mbG93X2dyb3VwX21hc2tgIHN0cnVjdHMgYW5kIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBpbiBgY2hlY2tfdmFsaWRfc3BlY2AuIEl0IGFsc28gbW9kaWZpZXMgYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIHRvIHJlYWQgZnJvbSBgZV9zd2l0Y2hfY2FwYCBpbnN0ZWFkIG9mIGBlc3dfY2FwYC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgbWx4NSBkcml2ZXIncyBmbG93IHN0ZWVyaW5nIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow99svx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-13 11:25:30 +0000 UTC FinishedAt: 2026-07-13 11:47:28 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "ddbddbf8aee54bee038149187270c93a45478473", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MLX5_CORE", "MLX5_CORE_EN", "MLX5_ESWITCH", "MLX5_SW_STEERING", "MLX5_HW_STEERING" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "ddbddbf8aee54bee038149187270c93a45478473", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MLX5_CORE", "MLX5_CORE_EN", "MLX5_ESWITCH", "MLX5_SW_STEERING", "MLX5_HW_STEERING" ], "series_id": "ff2152f5-864c-4d11-a1d4-b963ddafca46" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mlx5_add_flow_rules", "mlx5hws_cmd_query_caps", "mlx5dr_fw_create_md_tbl" ], "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+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+N208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01MWDVfQ09SRSYjMzQ7LAogICAgJiMzNDtNTFg1X0NPUkVfRU4mIzM0OywKICAgICYjMzQ7TUxYNV9FU1dJVENIJiMzNDssCiAgICAmIzM0O01MWDVfU1dfU1RFRVJJTkcmIzM0OywKICAgICYjMzQ7TUxYNV9IV19TVEVFUklORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21seDVfYWRkX2Zsb3dfcnVsZXMmIzM0OywKICAgICYjMzQ7bWx4NWh3c19jbWRfcXVlcnlfY2FwcyYjMzQ7LAogICAgJiMzNDttbHg1ZHJfZndfY3JlYXRlX21kX3RibCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCB1c2VkIGluIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNybywgd2hpY2ggYWZmZWN0cyB0aGUgc2l6ZSBvZiBgZnNfZnRlYCBhbmQgYG1seDVfZmxvd19ncm91cF9tYXNrYCBzdHJ1Y3RzIGFuZCB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gYGNoZWNrX3ZhbGlkX3NwZWNgLiBJdCBhbHNvIG1vZGlmaWVzIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCB0byByZWFkIGZyb20gYGVfc3dpdGNoX2NhcGAgaW5zdGVhZCBvZiBgZXN3X2NhcGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG1seDUgZHJpdmVyJiMzOTtzIGZsb3cgc3RlZXJpbmcgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwMmJkZmViOWM0ZTg1MzIzNzFiNzVlN2NjMDU4NzMyMzI2MzI4OTRjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMTMgMTE6Mzk6NDYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbmluZGV4IGRiYWYzM2I1MzdmNzExLi45MDY1ODQzNDVhMDIyZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbkBAIC0yMTQsMTcgJiM0MzsyMTQsNyBAQCBzdHJ1Y3QgbWx4NV9mdF91bmRlcmxheV9xcCB7XG4gXHR1MzIgcXBuO1xuIH07XG4gXG4tI2RlZmluZSBNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRFx0cmVzZXJ2ZWRfYXRfZTAwXG4tLyogQ2FsY3VsYXRlIHRoZSBmdGVfbWF0Y2hfcGFyYW0gbGVuZ3RoIGFuZCB3aXRob3V0IHRoZSByZXNlcnZlZCBsZW5ndGguXG4tICogTWFrZSBzdXJlIHRoZSByZXNlcnZlZCBmaWVsZCBpcyB0aGUgbGFzdC5cbi0gKi9cbi0jZGVmaW5lIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1cdFx0XHRcdFx0ICAgIFxcXG4tXHQoKE1MWDVfQllURV9PRkYoZnRlX21hdGNoX3BhcmFtLCBNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRCkgLyBzaXplb2YodTMyKSkgJiM0MzsgXFxcbi1cdCBCVUlMRF9CVUdfT05fWkVSTyhNTFg1X1NUX1NaX0JZVEVTKGZ0ZV9tYXRjaF9wYXJhbSkgIT1cdFx0ICAgICBcXFxuLVx0XHRcdCAgIE1MWDVfRkxEX1NaX0JZVEVTKGZ0ZV9tYXRjaF9wYXJhbSxcdFx0ICAgICBcXFxuLVx0XHRcdFx0XHQgICAgIE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSAmIzQzO1xcXG4tXHRcdFx0ICAgTUxYNV9CWVRFX09GRihmdGVfbWF0Y2hfcGFyYW0sXHRcdCAgICAgXFxcbi1cdFx0XHRcdFx0IE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSkpXG4mIzQzOyNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTSBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlcbiBcbiBzdHJ1Y3QgZnNfZnRlX2FjdGlvbiB7XG4gXHRpbnRcdFx0XHRcdG1vZGlmeV9tYXNrO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jXG5pbmRleCBlNjI0ZjVkYTk2YzgxYi4uOGZhZTkwMTAxNjUzZjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jXG5AQCAtMTE3MiwxMyAmIzQzOzExNzIsMTMgQEAgaW50IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXG4gXHRcdH1cbiBcbiBcdFx0aWYgKE1MWDVfR0VUKHF1ZXJ5X2hjYV9jYXBfb3V0LCBvdXQsXG4tXHRcdFx0ICAgICBjYXBhYmlsaXR5LmVzd19jYXAuZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkKSlcbiYjNDM7XHRcdFx0ICAgICBjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWQpKVxuIFx0XHRcdGNhcHMtXHUwMDNlZXN3aXRjaF9tYW5hZ2VyX3Zwb3J0X251bWJlciA9XG4gXHRcdFx0XHRNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxuLVx0XHRcdFx0XHQgY2FwYWJpbGl0eS5lc3dfY2FwLmVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcik7XG4mIzQzO1x0XHRcdFx0XHQgY2FwYWJpbGl0eS5lX3N3aXRjaF9jYXAuZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyKTtcbiBcbiBcdFx0Y2Fwcy1cdTAwM2VtZXJnZWRfZXN3aXRjaCA9IE1MWDVfR0VUKHF1ZXJ5X2hjYV9jYXBfb3V0LCBvdXQsXG4tXHRcdFx0XHRcdFx0Y2FwYWJpbGl0eS5lc3dfY2FwLm1lcmdlZF9lc3dpdGNoKTtcbiYjNDM7XHRcdFx0XHRcdFx0Y2FwYWJpbGl0eS5lX3N3aXRjaF9jYXAubWVyZ2VkX2Vzd2l0Y2gpO1xuIFx0fVxuIFxuIFx0cmV0ID0gbWx4NV9jbWRfZXhlYyhtZGV2LCBpbiwgc2l6ZW9mKGluKSwgb3V0LCBvdXRfc2l6ZSk7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oIGIvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oXG5pbmRleCAwN2EyNWYyNjQyOTIxMy4uOGNiMzIxYTlmYjNkMWQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaFxuQEAgLTExNzEsNiAmIzQzOzExNzEsNyBAQCBlbnVtIHtcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzNcdD0gMSBcdTAwM2NcdTAwM2MgNCxcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzRcdD0gMSBcdTAwM2NcdTAwM2MgNSxcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzVcdD0gMSBcdTAwM2NcdTAwM2MgNixcbiYjNDM7XHRNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU182XHQ9IDEgXHUwMDNjXHUwMDNjIDcsXG4gfTtcbiBcbiBlbnVtIHtcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oXG5pbmRleCA0ZjU5YjdlOGEzZDVkNi4uY2YwMTkyMmNmNjlmZGIgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhcbkBAIC01MDgsNyAmIzQzOzUwOCw4IEBAIHN0cnVjdCBtbHg1X2lmY19mbG93X3RhYmxlX3Byb3BfbGF5b3V0X2JpdHMge1xuIFx0dTggICAgICAgICByZWZvcm1hdF9sMl90b19sM19hdWRwX3R1bm5lbFsweDFdO1xuIFx0dTggICAgICAgICByZWZvcm1hdF9sM19hdWRwX3R1bm5lbF90b19sMlsweDFdO1xuIFx0dTggICAgICAgICBpZ25vcmVfZmxvd19sZXZlbF9ydGNfdmFsaWRbMHgxXTtcbi1cdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNzBbMHg4XTtcbiYjNDM7XHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzcwWzB4N107XG4mIzQzO1x0dTggICAgICAgICByZWZvcm1hdF9kZWxfcHNwX3RyYW5zcG9ydFsweDFdO1xuIFx0dTggICAgICAgICBsb2dfbWF4X2Z0X251bVsweDhdO1xuIFxuIFx0dTggICAgICAgICByZXNlcnZlZF9hdF84MFsweDEwXTtcbkBAIC03OTgsNiAmIzQzOzc5OSwxNSBAQCBzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNV9iaXRzIHtcbiBcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMTAwWzB4MTAwXTtcbiB9O1xuIFxuJiM0MztzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNl9iaXRzIHtcbiYjNDM7XHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzBbMHgxYV07XG4mIzQzO1x0dTggICAgICAgICBwc3BfdmVyc2lvblsweDRdO1xuJiM0MztcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWVbMHgyXTtcbiYjNDM7XG4mIzQzO1x0dTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDFlMF07XG4mIzQzO307XG4mIzQzO1xuJiM0MztcbiBzdHJ1Y3QgbWx4NV9pZmNfY21kX3Bhc19iaXRzIHtcbiBcdHU4ICAgICAgICAgcGFfaFsweDIwXTtcbiBcbkBAIC0xMDQyLDIwICYjNDM7MTA1Miw2IEBAIHN0cnVjdCBtbHg1X2lmY193cWVfYmFzZWRfZmxvd190YWJsZV9jYXBfYml0cyB7XG4gXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzFjMVsweDFmXTtcbiB9O1xuIFxuLXN0cnVjdCBtbHg1X2lmY19lc3dfY2FwX2JpdHMge1xuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8wWzB4MWRdO1xuLVx0dTggICAgICAgICBtZXJnZWRfZXN3aXRjaFsweDFdO1xuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8xZVsweDJdO1xuLVxuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDQwXTtcbi1cbi1cdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XG4tXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07XG4tXHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlclsweDEwXTtcbi1cbi1cdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfODBbMHg3ODBdO1xuLX07XG4tXG4gZW51bSB7XG4gXHRNTFg1X0NPVU5URVJfU09VUkNFX0VTV0lUQ0ggPSAweDAsXG4gXHRNTFg1X0NPVU5URVJfRkxPV19FU1dJVENIICAgPSAweDEsXG5AQCAtMTA5Niw3ICYjNDM7MTA5MiwxMSBAQCBzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMge1xuIFx0dTggICAgICAgICBsb2dfbWF4X2Vzd19zZlsweDVdO1xuIFx0dTggICAgICAgICBlc3dfc2ZfYmFzZV9pZFsweDEwXTtcbiBcbi1cdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNjBbMHg3YTBdO1xuJiM0MztcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XG4mIzQzO1x0dTggICAgICAgICByZXNlcnZlZF9hdF82MVsweGZdO1xuJiM0MztcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyWzB4MTBdO1xuJiM0MztcbiYjNDM7XHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzgwWzB4NzgwXTtcbiBcbiB9O1xuIFxuQEAgLTIzNDksNyAmIzQzOzIzNDksNyBAQCBzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3BhcmFtX2JpdHMge1xuIFxuIFx0c3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzVfYml0cyBtaXNjX3BhcmFtZXRlcnNfNTtcbiBcbi1cdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfZTAwWzB4MjAwXTtcbiYjNDM7XHRzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNl9iaXRzIG1pc2NfcGFyYW1ldGVyc182O1xuIH07XG4gXG4gZW51bSB7XG5AQCAtMzg1NSw3ICYjNDM7Mzg1NSw2IEBAIHVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0cyB7XG4gXHRzdHJ1Y3QgbWx4NV9pZmNfZmxvd190YWJsZV9uaWNfY2FwX2JpdHMgZmxvd190YWJsZV9uaWNfY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfZXN3aXRjaF9jYXBfYml0cyBmbG93X3RhYmxlX2Vzd2l0Y2hfY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX3dxZV9iYXNlZF9mbG93X3RhYmxlX2NhcF9iaXRzIHdxZV9iYXNlZF9mbG93X3RhYmxlX2NhcDtcbi1cdHN0cnVjdCBtbHg1X2lmY19lc3dfY2FwX2JpdHMgZXN3X2NhcDtcbiBcdHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyBlX3N3aXRjaF9jYXA7XG4gXHRzdHJ1Y3QgbWx4NV9pZmNfcG9ydF9zZWxlY3Rpb25fY2FwX2JpdHMgcG9ydF9zZWxlY3Rpb25fY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX3Fvc19jYXBfYml0cyBxb3NfY2FwO1xuQEAgLTY5OTUsNiAmIzQzOzY5OTQsNyBAQCBlbnVtIHtcbiBcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzMgPSAweDQsXG4gXHRNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU180ID0gMHg1LFxuIFx0TUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfNSA9IDB4NixcbiYjNDM7XHRNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU182ID0gMHg3LFxuIH07XG4gXG4gc3RydWN0IG1seDVfaWZjX3F1ZXJ5X2Zsb3dfZ3JvdXBfb3V0X2JpdHMge1xuQEAgLTcyNTYsNiAmIzQzOzcyNTYsNyBAQCBlbnVtIG1seDVfcmVmb3JtYXRfY3R4X3R5cGUge1xuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX1JFTU9WRV9IRFIgPSAweDEwLFxuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX0FERF9NQUNTRUMgPSAweDExLFxuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX0RFTF9NQUNTRUMgPSAweDEyLFxuJiM0MztcdE1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCA9IDB4MTYsXG4gfTtcbiBcbiBzdHJ1Y3QgbWx4NV9pZmNfYWxsb2NfcGFja2V0X3JlZm9ybWF0X2NvbnRleHRfaW5fYml0cyB7XG5AQCAtNzM3OSw2ICYjNDM7NzM4MCw3IEBAIGVudW0ge1xuIFx0TUxYNV9BQ1RJT05fSU5fRklFTERfT1VUX0VNRF80N18zMiAgICAgPSAweDZGLFxuIFx0TUxYNV9BQ1RJT05fSU5fRklFTERfT1VUX0VNRF8zMV8wICAgICAgPSAweDcwLFxuIFx0TUxYNV9BQ1RJT05fSU5fRklFTERfUFNQX1NZTkRST01FICAgICAgPSAweDcxLFxuJiM0MztcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX1BTUF9IRUFERVJfMSAgICAgID0gMHg3OCxcbiB9O1xuIFxuIHN0cnVjdCBtbHg1X2lmY19hbGxvY19tb2RpZnlfaGVhZGVyX2NvbnRleHRfb3V0X2JpdHMge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjM5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjdtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01MWDVfQ09SRSYjMzQ7LAogICAgJiMzNDtNTFg1X0NPUkVfRU4mIzM0OywKICAgICYjMzQ7TUxYNV9FU1dJVENIJiMzNDssCiAgICAmIzM0O01MWDVfU1dfU1RFRVJJTkcmIzM0OywKICAgICYjMzQ7TUxYNV9IV19TVEVFUklORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21seDVfYWRkX2Zsb3dfcnVsZXMmIzM0OywKICAgICYjMzQ7bWx4NWh3c19jbWRfcXVlcnlfY2FwcyYjMzQ7LAogICAgJiMzNDttbHg1ZHJfZndfY3JlYXRlX21kX3RibCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCB1c2VkIGluIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNybywgd2hpY2ggYWZmZWN0cyB0aGUgc2l6ZSBvZiBgZnNfZnRlYCBhbmQgYG1seDVfZmxvd19ncm91cF9tYXNrYCBzdHJ1Y3RzIGFuZCB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gYGNoZWNrX3ZhbGlkX3NwZWNgLiBJdCBhbHNvIG1vZGlmaWVzIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCB0byByZWFkIGZyb20gYGVfc3dpdGNoX2NhcGAgaW5zdGVhZCBvZiBgZXN3X2NhcGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG1seDUgZHJpdmVyJiMzOTtzIGZsb3cgc3RlZXJpbmcgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDAyYmRmZWI5YzRlODUzMjM3MWI3NWU3Y2MwNTg3MzIzMjYzMjg5NGMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAxMyAxMTozOTo0NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oCmluZGV4IGRiYWYzM2I1MzdmNzExLi45MDY1ODQzNDVhMDIyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oCkBAIC0yMTQsMTcgJiM0MzsyMTQsNyBAQCBzdHJ1Y3QgbWx4NV9mdF91bmRlcmxheV9xcCB7CiAJdTMyIHFwbjsKIH07CiAKLSNkZWZpbmUgTUxYNV9GVEVfTUFUQ0hfUEFSQU1fUkVTRVJWRUQJcmVzZXJ2ZWRfYXRfZTAwCi0vKiBDYWxjdWxhdGUgdGhlIGZ0ZV9tYXRjaF9wYXJhbSBsZW5ndGggYW5kIHdpdGhvdXQgdGhlIHJlc2VydmVkIGxlbmd0aC4KLSAqIE1ha2Ugc3VyZSB0aGUgcmVzZXJ2ZWQgZmllbGQgaXMgdGhlIGxhc3QuCi0gKi8KLSNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTQkJCQkJICAgIFwKLQkoKE1MWDVfQllURV9PRkYoZnRlX21hdGNoX3BhcmFtLCBNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRCkgLyBzaXplb2YodTMyKSkgJiM0MzsgXAotCSBCVUlMRF9CVUdfT05fWkVSTyhNTFg1X1NUX1NaX0JZVEVTKGZ0ZV9tYXRjaF9wYXJhbSkgIT0JCSAgICAgXAotCQkJICAgTUxYNV9GTERfU1pfQllURVMoZnRlX21hdGNoX3BhcmFtLAkJICAgICBcCi0JCQkJCSAgICAgTUxYNV9GVEVfTUFUQ0hfUEFSQU1fUkVTRVJWRUQpICYjNDM7XAotCQkJICAgTUxYNV9CWVRFX09GRihmdGVfbWF0Y2hfcGFyYW0sCQkgICAgIFwKLQkJCQkJIE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSkpCiYjNDM7I2RlZmluZSBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNIE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKQogCiBzdHJ1Y3QgZnNfZnRlX2FjdGlvbiB7CiAJaW50CQkJCW1vZGlmeV9tYXNrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmMKaW5kZXggZTYyNGY1ZGE5NmM4MWIuLjhmYWU5MDEwMTY1M2Y4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmMKQEAgLTExNzIsMTMgJiM0MzsxMTcyLDEzIEBAIGludCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAogCQl9CiAKIAkJaWYgKE1MWDVfR0VUKHF1ZXJ5X2hjYV9jYXBfb3V0LCBvdXQsCi0JCQkgICAgIGNhcGFiaWxpdHkuZXN3X2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWQpKQomIzQzOwkJCSAgICAgY2FwYWJpbGl0eS5lX3N3aXRjaF9jYXAuZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkKSkKIAkJCWNhcHMtJmd0O2Vzd2l0Y2hfbWFuYWdlcl92cG9ydF9udW1iZXIgPQogCQkJCU1MWDVfR0VUKHF1ZXJ5X2hjYV9jYXBfb3V0LCBvdXQsCi0JCQkJCSBjYXBhYmlsaXR5LmVzd19jYXAuZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyKTsKJiM0MzsJCQkJCSBjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXIpOwogCiAJCWNhcHMtJmd0O21lcmdlZF9lc3dpdGNoID0gTUxYNV9HRVQocXVlcnlfaGNhX2NhcF9vdXQsIG91dCwKLQkJCQkJCWNhcGFiaWxpdHkuZXN3X2NhcC5tZXJnZWRfZXN3aXRjaCk7CiYjNDM7CQkJCQkJY2FwYWJpbGl0eS5lX3N3aXRjaF9jYXAubWVyZ2VkX2Vzd2l0Y2gpOwogCX0KIAogCXJldCA9IG1seDVfY21kX2V4ZWMobWRldiwgaW4sIHNpemVvZihpbiksIG91dCwgb3V0X3NpemUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oIGIvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oCmluZGV4IDA3YTI1ZjI2NDI5MjEzLi44Y2IzMjFhOWZiM2QxZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaApAQCAtMTE3MSw2ICYjNDM7MTE3MSw3IEBAIGVudW0gewogCU1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzMJPSAxICZsdDsmbHQ7IDQsCiAJTUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNAk9IDEgJmx0OyZsdDsgNSwKIAlNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU181CT0gMSAmbHQ7Jmx0OyA2LAomIzQzOwlNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU182CT0gMSAmbHQ7Jmx0OyA3LAogfTsKIAogZW51bSB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oCmluZGV4IDRmNTliN2U4YTNkNWQ2Li5jZjAxOTIyY2Y2OWZkYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgKQEAgLTUwOCw3ICYjNDM7NTA4LDggQEAgc3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfcHJvcF9sYXlvdXRfYml0cyB7CiAJdTggICAgICAgICByZWZvcm1hdF9sMl90b19sM19hdWRwX3R1bm5lbFsweDFdOwogCXU4ICAgICAgICAgcmVmb3JtYXRfbDNfYXVkcF90dW5uZWxfdG9fbDJbMHgxXTsKIAl1OCAgICAgICAgIGlnbm9yZV9mbG93X2xldmVsX3J0Y192YWxpZFsweDFdOwotCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNzBbMHg4XTsKJiM0MzsJdTggICAgICAgICByZXNlcnZlZF9hdF83MFsweDddOwomIzQzOwl1OCAgICAgICAgIHJlZm9ybWF0X2RlbF9wc3BfdHJhbnNwb3J0WzB4MV07CiAJdTggICAgICAgICBsb2dfbWF4X2Z0X251bVsweDhdOwogCiAJdTggICAgICAgICByZXNlcnZlZF9hdF84MFsweDEwXTsKQEAgLTc5OCw2ICYjNDM7Nzk5LDE1IEBAIHN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfc2V0X21pc2M1X2JpdHMgewogCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMTAwWzB4MTAwXTsKIH07CiAKJiM0MztzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNl9iaXRzIHsKJiM0MzsJdTggICAgICAgICByZXNlcnZlZF9hdF8wWzB4MWFdOwomIzQzOwl1OCAgICAgICAgIHBzcF92ZXJzaW9uWzB4NF07CiYjNDM7CXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWVbMHgyXTsKJiM0MzsKJiM0MzsJdTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDFlMF07CiYjNDM7fTsKJiM0MzsKJiM0MzsKIHN0cnVjdCBtbHg1X2lmY19jbWRfcGFzX2JpdHMgewogCXU4ICAgICAgICAgcGFfaFsweDIwXTsKIApAQCAtMTA0MiwyMCAmIzQzOzEwNTIsNiBAQCBzdHJ1Y3QgbWx4NV9pZmNfd3FlX2Jhc2VkX2Zsb3dfdGFibGVfY2FwX2JpdHMgewogCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWMxWzB4MWZdOwogfTsKIAotc3RydWN0IG1seDVfaWZjX2Vzd19jYXBfYml0cyB7Ci0JdTggICAgICAgICByZXNlcnZlZF9hdF8wWzB4MWRdOwotCXU4ICAgICAgICAgbWVyZ2VkX2Vzd2l0Y2hbMHgxXTsKLQl1OCAgICAgICAgIHJlc2VydmVkX2F0XzFlWzB4Ml07Ci0KLQl1OCAgICAgICAgIHJlc2VydmVkX2F0XzIwWzB4NDBdOwotCi0JdTggICAgICAgICBlc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWRbMHgxXTsKLQl1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07Ci0JdTggICAgICAgICBlc3dfbWFuYWdlcl92cG9ydF9udW1iZXJbMHgxMF07Ci0KLQl1OCAgICAgICAgIHJlc2VydmVkX2F0XzgwWzB4NzgwXTsKLX07Ci0KIGVudW0gewogCU1MWDVfQ09VTlRFUl9TT1VSQ0VfRVNXSVRDSCA9IDB4MCwKIAlNTFg1X0NPVU5URVJfRkxPV19FU1dJVENIICAgPSAweDEsCkBAIC0xMDk2LDcgJiM0MzsxMDkyLDExIEBAIHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7CiAJdTggICAgICAgICBsb2dfbWF4X2Vzd19zZlsweDVdOwogCXU4ICAgICAgICAgZXN3X3NmX2Jhc2VfaWRbMHgxMF07CiAKLQl1OCAgICAgICAgIHJlc2VydmVkX2F0XzYwWzB4N2EwXTsKJiM0MzsJdTggICAgICAgICBlc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWRbMHgxXTsKJiM0MzsJdTggICAgICAgICByZXNlcnZlZF9hdF82MVsweGZdOwomIzQzOwl1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlclsweDEwXTsKJiM0MzsKJiM0MzsJdTggICAgICAgICByZXNlcnZlZF9hdF84MFsweDc4MF07CiAKIH07CiAKQEAgLTIzNDksNyAmIzQzOzIzNDksNyBAQCBzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3BhcmFtX2JpdHMgewogCiAJc3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzVfYml0cyBtaXNjX3BhcmFtZXRlcnNfNTsKIAotCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfZTAwWzB4MjAwXTsKJiM0MzsJc3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzZfYml0cyBtaXNjX3BhcmFtZXRlcnNfNjsKIH07CiAKIGVudW0gewpAQCAtMzg1NSw3ICYjNDM7Mzg1NSw2IEBAIHVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0cyB7CiAJc3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfbmljX2NhcF9iaXRzIGZsb3dfdGFibGVfbmljX2NhcDsKIAlzdHJ1Y3QgbWx4NV9pZmNfZmxvd190YWJsZV9lc3dpdGNoX2NhcF9iaXRzIGZsb3dfdGFibGVfZXN3aXRjaF9jYXA7CiAJc3RydWN0IG1seDVfaWZjX3dxZV9iYXNlZF9mbG93X3RhYmxlX2NhcF9iaXRzIHdxZV9iYXNlZF9mbG93X3RhYmxlX2NhcDsKLQlzdHJ1Y3QgbWx4NV9pZmNfZXN3X2NhcF9iaXRzIGVzd19jYXA7CiAJc3RydWN0IG1seDVfaWZjX2Vfc3dpdGNoX2NhcF9iaXRzIGVfc3dpdGNoX2NhcDsKIAlzdHJ1Y3QgbWx4NV9pZmNfcG9ydF9zZWxlY3Rpb25fY2FwX2JpdHMgcG9ydF9zZWxlY3Rpb25fY2FwOwogCXN0cnVjdCBtbHg1X2lmY19xb3NfY2FwX2JpdHMgcW9zX2NhcDsKQEAgLTY5OTUsNiAmIzQzOzY5OTQsNyBAQCBlbnVtIHsKIAlNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU18zID0gMHg0LAogCU1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzQgPSAweDUsCiAJTUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfNSA9IDB4NiwKJiM0MzsJTUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfNiA9IDB4NywKIH07CiAKIHN0cnVjdCBtbHg1X2lmY19xdWVyeV9mbG93X2dyb3VwX291dF9iaXRzIHsKQEAgLTcyNTYsNiAmIzQzOzcyNTYsNyBAQCBlbnVtIG1seDVfcmVmb3JtYXRfY3R4X3R5cGUgewogCU1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfSERSID0gMHgxMCwKIAlNTFg1X1JFRk9STUFUX1RZUEVfQUREX01BQ1NFQyA9IDB4MTEsCiAJTUxYNV9SRUZPUk1BVF9UWVBFX0RFTF9NQUNTRUMgPSAweDEyLAomIzQzOwlNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlQgPSAweDE2LAogfTsKIAogc3RydWN0IG1seDVfaWZjX2FsbG9jX3BhY2tldF9yZWZvcm1hdF9jb250ZXh0X2luX2JpdHMgewpAQCAtNzM3OSw2ICYjNDM7NzM4MCw3IEBAIGVudW0gewogCU1MWDVfQUNUSU9OX0lOX0ZJRUxEX09VVF9FTURfNDdfMzIgICAgID0gMHg2RiwKIAlNTFg1X0FDVElPTl9JTl9GSUVMRF9PVVRfRU1EXzMxXzAgICAgICA9IDB4NzAsCiAJTUxYNV9BQ1RJT05fSU5fRklFTERfUFNQX1NZTkRST01FICAgICAgPSAweDcxLAomIzQzOwlNTFg1X0FDVElPTl9JTl9GSUVMRF9QU1BfSEVBREVSXzEgICAgICA9IDB4NzgsCiB9OwogCiBzdHJ1Y3QgbWx4NV9pZmNfYWxsb2NfbW9kaWZ5X2hlYWRlcl9jb250ZXh0X291dF9iaXRzIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUwNQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDgwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1lbGxhbm94IG1seDUgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciB0aGUgTWVsbGFub3ggbWx4NSBkcml2ZXIsIGFuZCBpdCBzZWVtcyBsaWtlIGEgdGFyZ2V0ZWQgbW9kaWZpY2F0aW9uLiBQcmltYXJpbHksIGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBzb21lIGhlYWRlciBmaWxlIHVwZGF0ZXMgYW5kIGEgbWlub3IgY29kZSBhZGp1c3RtZW50LiBJJiMzOTttIHNlZWluZyBjaGFuZ2VzIGluIGBmc19jb3JlLmhgLCBgY21kLmNgLCBgZGV2aWNlLmhgLCBhbmQgYG1seDVfaWZjLmhgLiBUaGUgY2hhbmdlcyBpbiBgZnNfY29yZS5oYCBpbnZvbHZlIGFsdGVyaW5nIHRoZSBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgbWFjcm8uIEluIGBjbWQuY2AsIHRoZXJlJiMzOTtzIGEgc3RyYWlnaHRmb3J3YXJkIHJlbmFtZTogYGVzd19jYXBgIGlzIG5vdyBgZV9zd2l0Y2hfY2FwYCB3aXRoaW4gYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgLiBJJiMzOTt2ZSBub3RpY2VkIG5ldyBhZGRpdGlvbnMgb2YgYE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzZgIGluIGBkZXZpY2UuaGAgYW5kIGEgc2VyaWVzIG9mIGFkZGl0aW9ucywgcmVtb3ZhbHMsIGFuZCByZS1vcmdzIGluIGBtbHg1X2lmYy5oYCwgaW5jbHVkaW5nIG5ldyBmdW5jdGlvbnMgbGlrZSBgcmVmb3JtYXRfZGVsX3BzcF90cmFuc3BvcnRgIGFuZCB1cGRhdGVzIHJlbGF0ZWQgdG8gYGVzd19jYXBgIGFuZCBgZV9zd2l0Y2hfY2FwYCBhcyB3ZWxsIGFzIGFkZGl0aW9ucyByZWxhdGVkIHRvIGBtaXNjX3BhcmFtZXRlcnNfNmAuCgpUaGUgZ2lzdCBvZiBpdCBzZWVtcyB0byBiZSBhcm91bmQgaW50cm9kdWNpbmcgbmV3IGhhcmR3YXJlIGNhcGFiaWxpdGllcyBvciBmaWVsZHMgcmVsYXRlZCB0byBQU1AsIGxpa2VseSBJUHNlYy4gUGx1cywgaXQgYXBwZWFycyB0aGV5JiMzOTtyZSByZW9yZ2FuaXppbmcgc29tZSBmaWVsZHMsIHNwZWNpZmljYWxseSBtb3ZpbmcgZnJvbSBgZXN3X2NhcGAgdG8gYGVfc3dpdGNoX2NhcGAuIFRoZSBvbmx5IGFjdHVhbCBjb2RlIGNoYW5nZSBJJiMzOTt2ZSBzcG90dGVkIHNvIGZhciBpcyBpbiBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AsIHdoZXJlIGl0JiMzOTtzIG5vdyByZWFkaW5nIGZyb20gYGNhcGFiaWxpdHkuZV9zd2l0Y2hfY2FwYCBpbnN0ZWFkIG9mIHRoZSBvbGQgYGNhcGFiaWxpdHkuZXN3X2NhcGAuIFRoYXQmIzM5O3MgZXNzZW50aWFsbHkgYSBuYW1lIGNoYW5nZSwgYnV0IGl0IG5lZWRzIHZlcmlmaWNhdGlvbi4KCkFscmlnaHQsIGxldCYjMzk7cyB6b29tIGluIG9uIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYC4gTG9va3MgbGlrZSB0aGUgcGF0Y2ggZXNzZW50aWFsbHkgcmVuYW1lcyB0aGUgZmllbGRzIGluIHRoZSBzdHJ1Y3QgYW5kIHVwZGF0ZXMgdGhlIG1hY3Jvcy9jb2RlIHRvIHVzZSB0aGUgbmV3IG5hbWVzLiBBbmQsIGFkZHMgc29tZSBuZXcgZW51bXMgYW5kIHN0cnVjdHMgdGhhdCBhcmVuJiMzOTt0IGFjdHVhbGx5IHVzZWQgYnkgdGhpcyBwYXRjaC4gU28sIHRoZSBxdWVzdGlvbiBiZWNvbWVzLCBpcyB0aGVyZSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGhhcHBlbmluZyBoZXJlPwoKTGV0JiMzOTtzIGRyaWxsIGRvd24gaW50byB0aGF0IGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNyby4gUHJldmlvdXNseSwgaXQgaGFkIHRoaXMgY29tcGxleCBjYWxjdWxhdGlvbiwgYW5kIG5vdyBpdCYjMzk7cyBzaW1wbGlmaWVkIHRvIGBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlgLiBOb3csIHRoYXQmIzM5O3MganVzdCB0aGUgc2l6ZSBpbiBkd29yZHMgb2YgYGZ0ZV9tYXRjaF9wYXJhbWAuIFByZXZpb3VzbHksIHRoZSBtYWNybyBleGNsdWRlZCBhIHJlc2VydmVkIHBvcnRpb24gYXQgdGhlIGVuZCBvZiB0aGUgYGZ0ZV9tYXRjaF9wYXJhbWAgc3RydWN0LiBOb3csIHRoYXQgcmVzZXJ2ZWQgcG9ydGlvbiAoYHJlc2VydmVkX2F0X2UwMGApIGlzIHJlcGxhY2VkIGJ5IGBtaXNjX3BhcmFtZXRlcnNfNmAuIFNvIHdoaWxlIHRoZSBzaXplIG9mIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdCBpdHNlbGYgbWlnaHQgYmUgdGhlIHNhbWUsIHRoZSB3aG9sZSBzdHJ1Y3QgaXMgbm93IGJlaW5nIHVzZWQsIGluY2x1ZGluZyBgbWlzY19wYXJhbWV0ZXJzXzZgLgoKU28sIHdoYXQgYmVoYXZpb3IgY2hhbmdlcyBhcmUgaW1wbGllZCBieSB0aGlzPyBMb29raW5nIGF0IHRoZSBzaXplcywgdGhlIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdCBpcyAweDEwMDAgYnl0ZXMuIFByZXZpb3VzbHksIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCB3YXMgY2FsY3VsYXRlZCBhcyAweGUwMCAvIDQsIHJlc3VsdGluZyBpbiAweDM4MC4gTm93LCBpdCYjMzk7cyAweDEwMDAgLyA0LCB3aGljaCBpcyAweDQwMC4gRWZmZWN0aXZlbHksIHRoaXMgaW5jcmVhc2VzIHRoZSBzaXplIG9mIGBmdGVfbWF0Y2hfcGFyYW1gIGJlaW5nIHVzZWQgaW4gdGhlIGNvZGUuIEkgbmVlZCB0byB0cmFjZSB3aGVyZSBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgaXMgdXNlZCB0byBnZXQgYSBmdWxsZXIgcGljdHVyZSBvZiB0aGUgaW1wYWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYz01MTA9c3RhdGljIGJvb2wgY2hlY2tfdmFsaWRfc3BlYyhjb25zdCBzdHJ1Y3QgbWx4NV9mbG93X3NwZWMgKnNwZWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy01MTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjUxNDpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU07IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy01MTUtXHRcdGlmIChzcGVjLVx1MDAzZW1hdGNoX3ZhbHVlW2ldIFx1MDAyNiB+c3BlYy1cdTAwM2VtYXRjaF9jcml0ZXJpYVtpXSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjEyPXN0cnVjdCBtbHg1X2Z0X3VuZGVybGF5X3FwIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTIxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjE3OiNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTSBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjE4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjMzPXN0cnVjdCBmc19mdGUge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjM4LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjM5Olx0dTMyXHRcdFx0XHR2YWxbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTI0MC1cdHN0cnVjdCBmc19mdGVfYWN0aW9uXHRcdGFjdF9kZXN0cztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oPTI2Mz1zdHJ1Y3QgbWx4NV9mbG93X2dyb3VwX21hc2sge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjQtXHR1OFx0bWF0Y2hfY3JpdGVyaWFfZW5hYmxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyNjU6XHR1MzJcdG1hdGNoX2NyaXRlcmlhW01MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1dO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjYtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jPTc3MT1pbnQgbWx4NWRyX2NtZF9zZXRfZnRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9jbWQuYy04NTMtXHRcdFx0XHQgICAgICBtYXRjaF92YWx1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jOjg1NDpcdG1lbWNweShpbl9tYXRjaF92YWx1ZSwgZnRlLVx1MDAzZXZhbCwgc2l6ZW9mKHUzMikgKiBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYz0xMDE9aW50IG1seDVkcl9md19jcmVhdGVfbWRfdGJsKHN0cnVjdCBtbHg1ZHJfZG9tYWluICpkbW4sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTExMS1cdHN0cnVjdCBtbHg1ZHJfY21kX2Z0ZV9pbmZvIGZ0ZV9pbmZvID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTEyOlx0dTMyIHZhbFtNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNXSA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTExMy1cdHN0cnVjdCBtbHg1ZHJfY21kX2Z0X2luZm8gZnRfaW5mbyA9IHt9O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xOS0jZGVmaW5lIERSX1NURV9DVkxBTiAweDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaDoyMDojZGVmaW5lIERSX1NaX01BVENIX1BBUkFNIChNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNICogNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0yMS0jZGVmaW5lIERSX05VTV9PRl9GTEVYX1BBUlNFUlMgOFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDczMDEKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVc2Ugb2YgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIGlzIHV0aWxpemVkIHdpdGhpbiB0aGlzIGNvZGViYXNlLiBJdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhhdCBpdCYjMzk7cyBjcnVjaWFsIGZvciBkZXRlcm1pbmluZyBhcnJheSBzaXplcyB3aXRoaW4gc2V2ZXJhbCBrZXkgc3RydWN0dXJlczogYGZzX2Z0ZWAsIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2AsIGFuZCB2YXJpb3VzIGxvY2FsIGFycmF5cy4gVGhhdCYjMzk7cyBhIGNvbW1vbiBwYXR0ZXJuLCB1c2luZyBhIG1hY3JvIGZvciB0aGVzZSBraW5kcyBvZiBzaXppbmcgb3BlcmF0aW9ucy4gQnV0IHRoZW4gaXQgcG9wcyB1cCBhZ2FpbiBpbiBgY2hlY2tfdmFsaWRfc3BlY2AuIEFoLCByaWdodCwgdGhhdCYjMzk7cyB3aGVyZSB3ZSBpdGVyYXRlIHRocm91Z2ggdGhlIGBtYXRjaF92YWx1ZWAgYW5kIGBtYXRjaF9jcml0ZXJpYWAgZmllbGRzLiBJIHJlY2FsbCB0aG9zZSBhcmUgcGFydCBvZiBgc3RydWN0IG1seDVfZmxvd19zcGVjYC4gSSBzaG91bGQgcHJvYmFibHkgZG91YmxlIGNoZWNrIHRoZSBkZWZpbml0aW9uIG9mIHRoYXQgc3RydWN0OyBpdCYjMzk7cyBpbiBgaW5jbHVkZS9saW51eC9tbHg1L2ZzLmhgLCBhcyBJIHJlY2FsbC4gSXQgd291bGQgYmUgZ29vZCB0byBjb25maXJtIGl0cyBvdmVyYWxsIHNpemUgd2hpbGUgSSYjMzk7bSBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0cnVjdCBtbHg1X2Zsb3dfc3BlYyBcXHsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9tbHg1L2ZzLmg9MTY0PXN0cnVjdCBtbHg1X2Zsb3dfY29udGV4dCB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L2ZzLmgtMTY5LVxuaW5jbHVkZS9saW51eC9tbHg1L2ZzLmg6MTcwOnN0cnVjdCBtbHg1X2Zsb3dfc3BlYyB7XG5pbmNsdWRlL2xpbnV4L21seDUvZnMuaC0xNzEtXHR1OCAgIG1hdGNoX2NyaXRlcmlhX2VuYWJsZTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NzU4CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byB0aGUgbWx4NSBGaWxlc3lzdGVtIEhlYWRlcioqCgpPa2F5LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkmIzM5O20gZ29pbmcgdG8gdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBgaW5jbHVkZS9saW51eC9tbHg1L2ZzLmhgIGZpbGUuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGZvY3VzIG15IGF0dGVudGlvbiBhcm91bmQgbGluZSAxNzAuIEtub3dpbmcgdGhlIGludHJpY2FjaWVzIG9mIHRoaXMgZmlsZSwgdGhlIE1lbGxhbm94IGRyaXZlciYjMzk7cyBmaWxlc3lzdGVtIGludGVyYWN0aW9ucywgYW5kIGxpa2VseSB0aGUgY29udGV4dCBzdXJyb3VuZGluZyB0aGF0IGxpbmUgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGN1cnJlbnQgaXNzdWUgYXQgaGFuZC4gTGluZSAxNzAgbWlnaHQgaG9sZCB0aGUga2V5IGRlZmluaXRpb24sIGRhdGEgc3RydWN0dXJlLCBvciBmdW5jdGlvbiBjYWxsIHRoYXQgd2lsbCBpbGx1bWluYXRlIHRoZSByZWxldmFudCBhc3BlY3RzIG9mIHRoaXMgc2VjdGlvbi4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9tbHg1L2ZzLmgmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNjUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDE2NTpcdFx0dTMyIGZsYWdzO1xuIDE2NjpcdFx0dTMyIGZsb3dfdGFnO1xuIDE2NzpcdFx0dTMyIGZsb3dfc291cmNlO1xuIDE2ODpcdH07XG4gMTY5Olx0XG4gMTcwOlx0c3RydWN0IG1seDVfZmxvd19zcGVjIHtcbiAxNzE6XHRcdHU4ICAgbWF0Y2hfY3JpdGVyaWFfZW5hYmxlO1xuIDE3MjpcdFx0dTMyICBtYXRjaF9jcml0ZXJpYVtNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSldO1xuIDE3MzpcdFx0dTMyICBtYXRjaF92YWx1ZVtNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSldO1xuIDE3NDpcdFx0c3RydWN0IG1seDVfZmxvd19jb250ZXh0IGZsb3dfY29udGV4dDtcbiAxNzU6XHR9O1xuIDE3NjpcdFxuIDE3NzpcdGVudW0ge1xuIDE3ODpcdFx0TUxYNV9GTE9XX0RFU1RfVlBPUlRfVkhDQV9JRCAgICAgID0gQklUKDApLFxuIDE3OTpcdFx0TUxYNV9GTE9XX0RFU1RfVlBPUlRfUkVGT1JNQVRfSUQgID0gQklUKDEpLFxuIDE4MDpcdH07XG4gMTgxOlx0XG4gMTgyOlx0ZW51bSBtbHg1X2Zsb3dfZGVzdF9yYW5nZV9maWVsZCB7XG4gMTgzOlx0XHRNTFg1X0ZMT1dfREVTVF9SQU5HRV9GSUVMRF9QS1RfTEVOID0gMCxcbiAxODQ6XHR9O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgzMDAKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIENoYW5nZXMgaW4gbWx4NSBGbG93IFNwZWNpZmljYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHN0cnVjdCBtbHg1X2Zsb3dfc3BlY2AsIGFuZCBpdCYjMzk7cyB1c2luZyBgTUxYNV9TVF9TWl9EVyhmdGVfbWF0Y2hfcGFyYW0pYC4gSSByZWNhbGwgdGhhdCBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgdXNlZCB0byBiZSBzbWFsbGVyIHRoYW4gdGhhdCwgYnV0IG5vdyB0aGV5JiMzOTtyZSBpZGVudGljYWwuIEludGVyZXN0aW5nLiBXaGF0IGRvZXMgdGhpcyBtZWFuIGluIHByYWN0aWNlPyBJdCBtZWFucyB0aGF0IHRoZSBgY2hlY2tfdmFsaWRfc3BlY2AgZnVuY3Rpb24gaXMgZ29pbmcgdG8gc3RhcnQgdmFsaWRhdGluZyB0aGUgKmVudGlyZSogYXJyYXkgbm93LCBpbnN0ZWFkIG9mIHNraXBwaW5nIG92ZXIgdGhhdCByZXNlcnZlZCBwb3J0aW9uLiBNYWtlcyBzZW5zZSwgdGhhdCYjMzk7cyBhIGRpcmVjdCBjb25zZXF1ZW5jZSBvZiB0aGUgc2l6ZSBjaGFuZ2UuCgpBbmQsIG9mIGNvdXJzZSwgdGhhdCBzaXplIGNoYW5nZSByaXBwbGVzIG91dHdhcmQuIGBmc19mdGVgIGFuZCBgbWx4NV9mbG93X2dyb3VwX21hc2tgIGFyZSBub3cgYmlnZ2VyLCB3aGljaCBpc24mIzM5O3QgZW50aXJlbHkgc3VycHJpc2luZy4gVGhlIHF1ZXN0aW9uIGlzLCBpcyB0aGlzIGEgKmZ1bmN0aW9uYWwqIGNoYW5nZT8gWWVzLCBhYnNvbHV0ZWx5LiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhbHRlcmF0aW9ucyB0byBzdHJ1Y3Qgc2l6ZXMsIHdoaWNoIHdpbGwgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGFuZCBob3cgdGhlIGRhdGEgaXMgbGFpZCBvdXQsIGFuZCBjaGFuZ2luZyB0aGUgbG9vcCBpdGVyYXRpb25zLiBUaGlzIGlzIGEgYmVoYXZpb3JhbCBtb2RpZmljYXRpb24uCgpBbmQsIGFzIGEgc2lkZSBub3RlLCBJJiMzOTttIGFsc28gbm90aWNpbmcgdGhhdCBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2Agbm93IHJlYWRzIGZyb20gYGVfc3dpdGNoX2NhcGAgcmF0aGVyIHRoYW4gYGVzd19jYXBgLiBJIG5lZWQgdG8gdmVyaWZ5IGlmIHRoZXNlIGFyZSBsb2NhdGVkIGF0IHRoZSBzYW1lIG9mZnNldCB3aXRoaW4gYHVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0c2AgdG8gZnVsbHkgZ3Jhc3AgdGhlIGltcGxpY2F0aW9uLCBidXQgdGhpcyBjb3VsZCBiZSBhbm90aGVyIGltcG9ydGFudCBjbHVlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMgZV9zd2l0Y2hfY2FwOyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD0zODQ4PXVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0cyB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtMzg1Ny1cdHN0cnVjdCBtbHg1X2lmY193cWVfYmFzZWRfZmxvd190YWJsZV9jYXBfYml0cyB3cWVfYmFzZWRfZmxvd190YWJsZV9jYXA7XG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaDozODU4Olx0c3RydWN0IG1seDVfaWZjX2Vfc3dpdGNoX2NhcF9iaXRzIGVfc3dpdGNoX2NhcDtcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTM4NTktXHRzdHJ1Y3QgbWx4NV9pZmNfcG9ydF9zZWxlY3Rpb25fY2FwX2JpdHMgcG9ydF9zZWxlY3Rpb25fY2FwO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3OTA1CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmg9MTE2Nj1lbnVtIHtcbi0tXG5pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgtMTE3My1cdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzVcdD0gMSBcdTAwM2NcdTAwM2MgNixcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaDoxMTc0Olx0TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNlx0PSAxIFx1MDAzY1x1MDAzYyA3LFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oLTExNzUtfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODA1OAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD03MjM5PWVudW0gbWx4NV9yZWZvcm1hdF9jdHhfdHlwZSB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI1OC1cdE1MWDVfUkVGT1JNQVRfVFlQRV9ERUxfTUFDU0VDID0gMHgxMixcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oOjcyNTk6XHRNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlQgPSAweDE2LFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI2MC19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NDA0CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogOTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQXNzZXNzaW5nIHRoZSBJbXBhY3Qgb2YgUmVjZW50IENvZGUgQ2hhbmdlcyoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIHNlZW1zIHByaW1hcmlseSBmb2N1c2VkIG9uIGFkZGluZyBzb21lIG5ldyBmaWVsZHMgYW5kIHR3ZWFraW5nIHRoZSBzaXplIG9mIGEgc3RydWN0dXJlLiBUaGUgaW5pdGlhbCBxdWVzdGlvbiBJIGhhdmUgaXMsICYjMzQ7SXMgdGhpcyBldmVuIHdvcnRoIGRlZGljYXRpbmcgZnV6emluZyByZXNvdXJjZXMgdG8/JiMzNDsgVGhlIHN0cnVjdCBzaXplIG1vZGlmaWNhdGlvbiBpcyB0aGUga2V5IHBvaW50IGhlcmUuIEl0IGFmZmVjdHMgYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O1doZXJlIGlzIGBmc19mdGVgIGFsbG9jYXRlZD8gVGhhdCYjMzk7cyB0aGUgY3JpdGljYWwgcGllY2UuJiMzNDsgSSBrbm93IGBmc19mdGVgIGlzIGFsbG9jYXRlZCB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmNgLiBUaGVyZWZvcmUsIG15IG5leHQgc3RlcCBpcyBjbGVhci4gSSBuZWVkIHRvIGRpdmUgaW50byBgZnNfY29yZS5jYCBhbmQgc3BlY2lmaWNhbGx5IGV4YW1pbmUgdGhlIGFsbG9jYXRpb24gYW5kIHVzYWdlIG9mIGBmc19mdGVgIHRvIHVuZGVyc3RhbmQgdGhlIHBvdGVudGlhbCBpbXBsaWNhdGlvbnMgb2YgdGhpcyBzdHJ1Y3Qgc2l6ZSBjaGFuZ2UgYW5kIGhvdyBpdCBtYXkgaW1wYWN0IGZ1enppbmcgc3RyYXRlZ2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthbGxvYy4qZnNfZnRlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTcxNgoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a21hbGxvYy4qZnNfZnRlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTc1MAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3phbGxvYy4qZnNfZnRlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODUyNwoJCQkJCQkJb3V0cHV0OiAxNwoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FsbG9jX2Z0ZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jPTgyMD1zdGF0aWMgaW50IGluc2VydF9mdGUoc3RydWN0IG1seDVfZmxvd19ncm91cCAqZmcsIHN0cnVjdCBmc19mdGUgKmZ0ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTg1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmM6ODUxOnN0YXRpYyBzdHJ1Y3QgZnNfZnRlICphbGxvY19mdGUoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTg1Mi1cdFx0XHRcdGNvbnN0IHN0cnVjdCBtbHg1X2Zsb3dfc3BlYyAqc3BlYyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jPTIyMTc9dHJ5X2FkZF90b19leGlzdGluZ19mZyhzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTIyMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjIyMzY6XHRmdGUgPSBhbGxvY19mdGUoZnQsIHNwZWMsIGZsb3dfYWN0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtMjIzNy1cdGlmIChJU19FUlIoZnRlKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jPTIzMjY9X21seDVfYWRkX2Zsb3dfcnVsZXMoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy0yMzk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYzoyMzk5Olx0ZnRlID0gYWxsb2NfZnRlKGZ0LCBzcGVjLCBmbG93X2FjdCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTI0MDAtXHRpZiAoSVNfRVJSKGZ0ZSkpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTI0MDItXHRcdGVyciA9IFBUUl9FUlIoZnRlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmM6MjQwMzpcdFx0Z290byBlcnJfYWxsb2NfZnRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy0yNDA0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtMjQyOC1cdGttZW1fY2FjaGVfZnJlZShzdGVlcmluZy1cdTAwM2VmdGVzX2NhY2hlLCBmdGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYzoyNDI5OmVycl9hbGxvY19mdGU6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTI0MzAtXHR0cmVlX3B1dF9ub2RlKFx1MDAyNmctXHUwMDNlbm9kZSwgZmFsc2UpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDUzMQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDIyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUmVjZW50IENoYW5nZXMgaW4gdGhlIGBtbHg1YCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhlc2UgcmVjZW50IG1vZGlmaWNhdGlvbnMsIHNwZWNpZmljYWxseSBhcm91bmQgdGhlIGBmc19mdGVgIHN0cnVjdHVyZS4gSXQgbG9va3MgbGlrZSBgZnNfZnRlYCBpcyBub3cgYmVpbmcgYWxsb2NhdGVkIGZyb20gYSBga21lbV9jYWNoZWAgY2FsbGVkIGBmdGVzX2NhY2hlYC4gVGhlIHNpemUgaGFzIGJlZW4gYnVtcGVkIHVwIGJ5IDUxMiBieXRlcyDigJMgdGhhdCYjMzk7cyBhIHNpZ25pZmljYW50IGNoYW5nZSwgMTI4IHUzMnMuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzdWJzdGFudGlhbCBvbmUgYXQgdGhhdC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5LgoKVGhlbiB0aGVyZSYjMzk7cyB0aGlzIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCBmdW5jdGlvbi4gSXQgc2VlbXMgdG8gYmUgcmVhZGluZyBmcm9tIGBlX3N3aXRjaF9jYXBgIG5vdywgaW5zdGVhZCBvZiBgZXN3X2NhcGAuIFRoYXQgaW1tZWRpYXRlbHkgbWFrZXMgbWUgd29uZGVyIGlmIHRoZXNlIGFyZSBhdCB0aGUgc2FtZSBvZmZzZXQuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0Li4uIHdhaXQgYSBzZWNvbmQuLi4gbG9va3MgbGlrZSBgZXN3X2NhcGAgd2FzIHJlbW92ZWQgZnJvbSB0aGF0IGB1bmlvbiBtbHg1X2lmY19oY2FfY2FwX3VuaW9uX2JpdHNgIGluIGBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaGAuIEFuZCBgZV9zd2l0Y2hfY2FwYCB3YXMgYWxyZWFkeSBwcmVzZW50LiBPa2F5LCBzbyB0aGF0IGV4cGxhaW5zIHRoYXQgY2hhbmdlLiBUbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSBnbyBiYWNrIHRvIGBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaGAgYW5kIGp1c3QgZG8gYSBxdWljayBzY2FuIGZvciBib3RoIGBlc3dfY2FwYCBhbmQgYGVfc3dpdGNoX2NhcGAuIEkgbmVlZCB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIG90aGVyIHBsYWNlcyB3aGVyZSB0aGlzIHNoaWZ0IG1pZ2h0IGNhdXNlIGEgcHJvYmxlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IG1seDVfaWZjX2Vfc3dpdGNoX2NhcF9iaXRzIFxceyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD0xMDU1PWVudW0ge1xuLS1cbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTEwNTktXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaDoxMDYwOnN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7XG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC0xMDYxLVx0dTggICAgICAgICB2cG9ydF9zdmxhbl9zdHJpcFsweDFdO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTIyNQoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMDUwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzEwNTA6XHRcbjEwNTE6XHRcdHU4ICAgICAgICAgZmRiX2p1bXBfdG9fdGlyX3N0Y1sweDFdO1xuMTA1MjpcdFx0dTggICAgICAgICByZXNlcnZlZF9hdF8xYzFbMHgxZl07XG4xMDUzOlx0fTtcbjEwNTQ6XHRcbjEwNTU6XHRlbnVtIHtcbjEwNTY6XHRcdE1MWDVfQ09VTlRFUl9TT1VSQ0VfRVNXSVRDSCA9IDB4MCxcbjEwNTc6XHRcdE1MWDVfQ09VTlRFUl9GTE9XX0VTV0lUQ0ggICA9IDB4MSxcbjEwNTg6XHR9O1xuMTA1OTpcdFxuMTA2MDpcdHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7XG4xMDYxOlx0XHR1OCAgICAgICAgIHZwb3J0X3N2bGFuX3N0cmlwWzB4MV07XG4xMDYyOlx0XHR1OCAgICAgICAgIHZwb3J0X2N2bGFuX3N0cmlwWzB4MV07XG4xMDYzOlx0XHR1OCAgICAgICAgIHZwb3J0X3N2bGFuX2luc2VydFsweDFdO1xuMTA2NDpcdFx0dTggICAgICAgICB2cG9ydF9jdmxhbl9pbnNlcnRfaWZfbm90X2V4aXN0WzB4MV07XG4xMDY1Olx0XHR1OCAgICAgICAgIHZwb3J0X2N2bGFuX2luc2VydF9vdmVyd3JpdGVbMHgxXTtcbjEwNjY6XHRcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNVsweDFdO1xuMTA2NzpcdFx0dTggICAgICAgICB2cG9ydF9jdmxhbl9pbnNlcnRfYWx3YXlzWzB4MV07XG4xMDY4Olx0XHR1OCAgICAgICAgIGVzd19zaGFyZWRfaW5ncmVzc19hY2xbMHgxXTtcbjEwNjk6XHRcdHU4ICAgICAgICAgZXN3X3VwbGlua19pbmdyZXNzX2FjbFsweDFdO1xuMTA3MDpcdFx0dTggICAgICAgICByb290X2Z0X29uX290aGVyX2Vzd1sweDFdO1xuMTA3MTpcdFx0dTggICAgICAgICByZXNlcnZlZF9hdF9hWzB4MV07XG4xMDcyOlx0XHR1OCAgICAgICAgIGVzd192cG9ydF9zdGF0ZV9tYXhfdHhfc3BlZWRbMHgxXTtcbjEwNzM6XHRcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfY1sweGRdO1xuMTA3NDpcdFx0dTggICAgICAgICBlc3dfZnVuY3Rpb25zX2NoYW5nZWRbMHgxXTtcbjEwNzU6XHRcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWFbMHgxXTtcbjEwNzY6XHRcdHU4ICAgICAgICAgZWNwZl92cG9ydF9leGlzdHNbMHgxXTtcbjEwNzc6XHRcdHU4ICAgICAgICAgY291bnRlcl9lc3dpdGNoX2FmZmluaXR5WzB4MV07XG4xMDc4Olx0XHR1OCAgICAgICAgIG1lcmdlZF9lc3dpdGNoWzB4MV07XG4xMDc5Olx0XHR1OCAgICAgICAgIG5pY192cG9ydF9ub2RlX2d1aWRfbW9kaWZ5WzB4MV07XG4xMDgwOlx0XHR1OCAgICAgICAgIG5pY192cG9ydF9wb3J0X2d1aWRfbW9kaWZ5WzB4MV07XG4xMDgxOlx0XG4xMDgyOlx0XHR1OCAgICAgICAgIHZ4bGFuX2VuY2FwX2RlY2FwWzB4MV07XG4xMDgzOlx0XHR1OCAgICAgICAgIG52Z3JlX2VuY2FwX2RlY2FwWzB4MV07XG4xMDg0Olx0XHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzIyWzB4MV07XG4xMDg1Olx0XHR1OCAgICAgICAgIGxvZ19tYXhfZmRiX2VuY2FwX3VwbGlua1sweDVdO1xuMTA4NjpcdFx0dTggICAgICAgICByZXNlcnZlZF9hdF8yMVsweDNdO1xuMTA4NzpcdFx0dTggICAgICAgICBsb2dfbWF4X3BhY2tldF9yZWZvcm1hdF9jb250ZXh0WzB4NV07XG4xMDg4Olx0XHR1OCAgICAgICAgIHJlc2VydmVkXzJiWzB4Nl07XG4xMDg5Olx0XHR1OCAgICAgICAgIG1heF9lbmNhcF9oZWFkZXJfc2l6ZVsweGFdO1xuMTA5MDpcdFxuMTA5MTpcdFx0dTggICAgICAgICByZXNlcnZlZF9hdF80MFsweGJdO1xuMTA5MjpcdFx0dTggICAgICAgICBsb2dfbWF4X2Vzd19zZlsweDVdO1xuMTA5MzpcdFx0dTggICAgICAgICBlc3dfc2ZfYmFzZV9pZFsweDEwXTtcbjEwOTQ6XHRcbjEwOTU6XHRcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XG4xMDk2Olx0XHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07XG4xMDk3Olx0XHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlclsweDEwXTtcbjEwOTg6XHRcbjEwOTk6XHRcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfODBbMHg3ODBdO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDc5NgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD03MjM5PWVudW0gbWx4NV9yZWZvcm1hdF9jdHhfdHlwZSB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI1OC1cdE1MWDVfUkVGT1JNQVRfVFlQRV9ERUxfTUFDU0VDID0gMHgxMixcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oOjcyNTk6XHRNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlQgPSAweDE2LFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI2MC19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDk3OAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUxYNV9GVEVfTUFUQ0hfUEFSQU1fUkVTRVJWRUQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTAyMAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYz01MTA9c3RhdGljIGJvb2wgY2hlY2tfdmFsaWRfc3BlYyhjb25zdCBzdHJ1Y3QgbWx4NV9mbG93X3NwZWMgKnNwZWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy01MTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjUxNDpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU07IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy01MTUtXHRcdGlmIChzcGVjLVx1MDAzZW1hdGNoX3ZhbHVlW2ldIFx1MDAyNiB+c3BlYy1cdTAwM2VtYXRjaF9jcml0ZXJpYVtpXSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjEyPXN0cnVjdCBtbHg1X2Z0X3VuZGVybGF5X3FwIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTIxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjE3OiNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTSBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjE4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjMzPXN0cnVjdCBmc19mdGUge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjM4LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjM5Olx0dTMyXHRcdFx0XHR2YWxbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTI0MC1cdHN0cnVjdCBmc19mdGVfYWN0aW9uXHRcdGFjdF9kZXN0cztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oPTI2Mz1zdHJ1Y3QgbWx4NV9mbG93X2dyb3VwX21hc2sge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjQtXHR1OFx0bWF0Y2hfY3JpdGVyaWFfZW5hYmxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyNjU6XHR1MzJcdG1hdGNoX2NyaXRlcmlhW01MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1dO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjYtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jPTc3MT1pbnQgbWx4NWRyX2NtZF9zZXRfZnRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9jbWQuYy04NTMtXHRcdFx0XHQgICAgICBtYXRjaF92YWx1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jOjg1NDpcdG1lbWNweShpbl9tYXRjaF92YWx1ZSwgZnRlLVx1MDAzZXZhbCwgc2l6ZW9mKHUzMikgKiBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYz0xMDE9aW50IG1seDVkcl9md19jcmVhdGVfbWRfdGJsKHN0cnVjdCBtbHg1ZHJfZG9tYWluICpkbW4sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTExMS1cdHN0cnVjdCBtbHg1ZHJfY21kX2Z0ZV9pbmZvIGZ0ZV9pbmZvID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTEyOlx0dTMyIHZhbFtNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNXSA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTExMy1cdHN0cnVjdCBtbHg1ZHJfY21kX2Z0X2luZm8gZnRfaW5mbyA9IHt9O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xOS0jZGVmaW5lIERSX1NURV9DVkxBTiAweDJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaDoyMDojZGVmaW5lIERSX1NaX01BVENIX1BBUkFNIChNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNICogNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0yMS0jZGVmaW5lIERSX05VTV9PRl9GTEVYX1BBUlNFUlMgOFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzczMgoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDY0NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBTaWduaWZpY2FudCBNTFg1IERyaXZlciBDaGFuZ2UqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5IHNlZSBhIHByZXR0eSBzaWduaWZpY2FudCBjaGFuZ2UuIFRoZXkmIzM5O3ZlIHVwZGF0ZWQgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIGZyb20gc29tZXRoaW5nIHRoYXQgd2FzIGNhbGN1bGF0ZWQgdG8gYmVpbmcgZXhwbGljaXRseSBzZXQgdmlhIHRoZSBtYWNybyBgTUxYNV9TVF9TWl9EVyhmdGVfbWF0Y2hfcGFyYW0pYC4gIExldCYjMzk7cyBzZWUuLi4gUHJldmlvdXNseSwgdGhpcyB3YXMgZGVyaXZlZCBieSB0YWtpbmcgdGhlIG9mZnNldCBvZiBgcmVzZXJ2ZWRfYXRfZTAwYCB3aXRoaW4gdGhlIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdHVyZSAod2hpY2ggd2FzIDB4ZTAwLCBvciAzNTg0IGluIGRlY2ltYWwpLCBkaXZpZGluZyBpdCBieSB0aGUgc2l6ZSBvZiBhIGB1MzJgICh3aGljaCBpcyA0IGJ5dGVzKS4gIFNvLCBlc3NlbnRpYWxseSwgaXQgd2FzIDB4ZTAwIC8gNCwgcmVzdWx0aW5nIGluIDB4MzgwLiBOb3csIHRoZXkmIzM5O3ZlIG1hZGUgaXQgYE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKWAuIEdpdmVuIHRoYXQgdGhlIHRvdGFsIHNpemUgb2YgYGZ0ZV9tYXRjaF9wYXJhbWAgaXMgMHgxMDAwIGJ5dGVzICgweGUwMCAmIzQzOyAweDIwMCksIGRpdmlkaW5nIHRoaXMgYnkgNCBnaXZlcyB1cyAweDQwMC4gVGhhdCYjMzk7cyBhIG5vdGljZWFibGUgaW5jcmVhc2UuCgpUaGlzIGhhcyBkaXJlY3QgaW1wbGljYXRpb25zIGZvciB0aGUgc2l6ZXMgb2Ygc3RydWN0dXJlcyBsaWtlIGBmc19mdGVgIGFuZCBgbWx4NV9mbG93X2dyb3VwX21hc2tgLiBJdCBhbHNvIGFmZmVjdHMgaXRlcmF0aW9uIGNvdW50cyBpbiB0aGUgYGNoZWNrX3ZhbGlkX3NwZWNgIGZ1bmN0aW9uLiBJdCBzZWVtcyB0aGlzIGNoYW5nZXMgdGhlIHNpemUgb2YgdGhlIGB2YWxgIGFycmF5IGluIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAgYW5kIHRoZSBgbWVtY3B5YCBvcGVyYXRpb25zIHdpdGhpbiBgbWx4NWRyX2NtZF9zZXRfZnRlYC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBjaGFuZ2UgaW4gdGhlIG1seDUgZHJpdmVyJiMzOTtzIGhhbmRsaW5nIG9mIHRoZXNlIG1hdGNoIHBhcmFtZXRlcnMsIHNvIHdlICphYnNvbHV0ZWx5KiBuZWVkIHRvIGZ1enogdGhpcyB0aG9yb3VnaGx5LgoKTm93LCBsZXQmIzM5O3MgemVybyBpbiBvbiB0aGUga2V5IHN5bWJvbHMgaW52b2x2ZWQuIFRoZSBwYXRjaCBjbGVhcmx5IHRvdWNoZXMgYGNoZWNrX3ZhbGlkX3NwZWNgLCBgYWxsb2NfZnRlYCwgYG1seDVkcl9jbWRfc2V0X2Z0ZWAsIGFuZCBgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxgLiBXZSBzaG91bGQgY2hlY2sgaG93IGVhc2lseSB0aGVzZSBjYW4gYmUgcmVhY2hlZC4gYGNoZWNrX3ZhbGlkX3NwZWNgIGlzIHJlYWNoZWQgdmlhIGBfbWx4NV9hZGRfZmxvd19ydWxlc2AsIHdoaWNoIGlzIGluIHR1cm4gY2FsbGVkIGJ5IGBtbHg1X2FkZF9mbG93X3J1bGVzYC4gYG1seDVkcl9jbWRfc2V0X2Z0ZWAgaXMgaW52b2x2ZWQgd2l0aCB0aGUgU1RFIGFycmF5LiBJdCYjMzk7cyB0aW1lIHRvIGRpZyBpbnRvIHRoZSBjYWxsZXJzIG9mIGBtbHg1ZHJfY21kX3NldF9mdGVgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1ZHJfY21kX3NldF9mdGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9jbWQuYz0yNzk9aW50IG1seDVkcl9jbWRfc3luY19zdGVlcmluZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jLTI5NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM6Mjk1OmludCBtbHg1ZHJfY21kX3NldF9mdGVfbW9kaWZ5X2FuZF92cG9ydChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtMjk2LVx0XHRcdFx0XHR1MzIgdGFibGVfdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jPTczMj1zdGF0aWMgaW50IG1seDVkcl9jbWRfc2V0X2V4dGVuZGVkX2Rlc3Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jLTc3MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM6NzcxOmludCBtbHg1ZHJfY21kX3NldF9mdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtNzcyLVx0XHQgICAgICAgaW50IG9wbW9kLCBpbnQgbW9kaWZ5X21hc2ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jPTg9bWx4NWRyX2Z3X2NyZWF0ZV9yZWNhbGNfY3NfZnQoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbiwgdTE2IHZwb3J0X251bSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmMtNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6NTQ6XHRyZXQgPSBtbHg1ZHJfY21kX3NldF9mdGVfbW9kaWZ5X2FuZF92cG9ydChkbW4tXHUwMDNlbWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy01NS1cdFx0XHRcdFx0XHQgIE1MWDVfRkxPV19UQUJMRV9UWVBFX0ZEQixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM9MTAxPWludCBtbHg1ZHJfZndfY3JlYXRlX21kX3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTQ1Olx0cmV0ID0gbWx4NWRyX2NtZF9zZXRfZnRlKGRtbi1cdTAwM2VtZGV2LCAwLCAwLCBcdTAwMjZmdF9pbmZvLCAqZ3JvdXBfaWQsIFx1MDAyNmZ0ZV9pbmZvKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xNDYtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oPTEzMTM9aW50IG1seDVkcl9jbWRfc3luY19zdGVlcmluZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX3R5cGVzLmg6MTMxNDppbnQgbWx4NWRyX2NtZF9zZXRfZnRlX21vZGlmeV9hbmRfdnBvcnQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX3R5cGVzLmgtMTMxNS1cdFx0XHRcdFx0dTMyIHRhYmxlX3R5cGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oPTE1MjY9c3RydWN0IG1seDVkcl9jbWRfZnRlX2luZm8ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xNTM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oOjE1MzY6aW50IG1seDVkcl9jbWRfc2V0X2Z0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE1MzctXHRcdCAgICAgICBpbnQgb3Btb2QsIGludCBtb2RpZnlfbWFzayxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTYwNjMKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiA0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSYjMzk7bSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczoKCioqVHJhY2luZyB0aGUgT3JpZ2lucyBvZiB0aGUgRFIgRlQgRW50cnkgU2V0dXAqKgoKT2theSwgc28gYG1seDVkcl9jbWRfc2V0X2Z0ZWAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQmIzM5O3MgdWx0aW1hdGVseSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB1cCB0aGUgRm9yd2FyZGluZyBUYWJsZSBFbnRyeSBpbiB0aGUgRGF0YSBQYXRoIFJ1bGUuIE5vdywgd2hlcmUgaXMgdGhpcyBjcml0aWNhbCBmdW5jdGlvbiBiZWluZyBjYWxsZWQgZnJvbT8gVGhlIHRleHQgbWVudGlvbnMgaXQmIzM5O3MgY2FsbGVkIGJ5IGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAsIHdoaWNoIG1ha2VzIHNlbnNlOyB0aGUgTWV0YWRhdGEgVGFibGUgaXMgdGhlIGNvbnRhaW5lciB3aGVyZSB0aGVzZSBGVEVzIGxpdmUsIEkmIzM5O2QgZXhwZWN0IHNldHVwIHRvIG9jY3VyIHRoZXJlLgoKTXkgbmV4dCBzdGVwIGlzIHRvIHVuZGVyc3RhbmQgKndoeSogYG1seDVkcl9md19jcmVhdGVfbWRfdGJsYCBpcyBiZWluZyBpbnZva2VkLiBJIG5lZWQgdG8ga25vdyB0aGUgY2FsbGluZyBjb250ZXh0LiBMZXQgbWUgdHJhY2UgdGhlIGNhbGxzIHRvIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAgdG8gc2VlIHdoYXQmIzM5O3MgdHJpZ2dlcmluZyBpdHMgZXhlY3V0aW9uLiBGcm9tIHRoZXJlLCBJIHNob3VsZCBiZSBhYmxlIHRvIGdyYXNwIHRoZSBiaWdnZXIgcGljdHVyZSBvZiB3aGVyZSBhbmQgd2hlbiB0aGVzZSBGVEVzIGFyZSBnZXR0aW5nIHBvcHVsYXRlZCwgYW5kIHRoYXQgd2lsbCBnaXZlIG1lIHNvbWUgaW5zaWdodCBvbiB3aGVyZSB0byBsb29rIGZvciBhbiBpc3N1ZS4gVGhpcyB3aWxsIGhlbHAgbWUgdHJhY2UgdGhlIGRhdGEtZmxvdyB0aHJvdWdoIHRoZSBkZXZpY2UgZHJpdmVycyBpbiByZWxhdGlvbiB0byB0aGUgZGF0YXBsYW5lIGltcGxlbWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1ZHJfZndfY3JlYXRlX21kX3RibCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2FjdGlvbi5jPTExNzQ9bWx4NWRyX2FjdGlvbl9jcmVhdGVfbXVsdF9kZXN0X3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmMtMTI2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmM6MTI2NTpcdHJldCA9IG1seDVkcl9md19jcmVhdGVfbWRfdGJsKGRtbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmMtMTI2Ni1cdFx0XHRcdCAgICAgIGh3X2Rlc3RzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYz04Mz12b2lkIG1seDVkcl9md19kZXN0cm95X3JlY2FsY19jc19mdChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xMDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTAxOmludCBtbHg1ZHJfZndfY3JlYXRlX21kX3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTEwMi1cdFx0XHQgICAgc3RydWN0IG1seDVkcl9jbWRfZmxvd19kZXN0aW5hdGlvbl9od19pbmZvICpkZXN0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaD0xNTU1PWludCBtbHg1ZHJfZG9tYWluX2dldF9yZWNhbGNfY3NfZnRfYWRkcihzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xNTU3LVx0XHRcdFx0XHR1NjQgKnJ4X2ljbV9hZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaDoxNTU4OmludCBtbHg1ZHJfZndfY3JlYXRlX21kX3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE1NTktXHRcdFx0ICAgIHN0cnVjdCBtbHg1ZHJfY21kX2Zsb3dfZGVzdGluYXRpb25faHdfaW5mbyAqZGVzdCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ4MjgKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1ZHJfYWN0aW9uX2NyZWF0ZV9tdWx0X2Rlc3RfdGJsJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmM9MTE3Mz1zdHJ1Y3QgbWx4NWRyX2FjdGlvbiAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2FjdGlvbi5jOjExNzQ6bWx4NWRyX2FjdGlvbl9jcmVhdGVfbXVsdF9kZXN0X3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9hY3Rpb24uYy0xMTc1LVx0XHRcdFx0ICAgc3RydWN0IG1seDVkcl9hY3Rpb25fZGVzdCAqZGVzdHMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jPTI1Mj1zdGF0aWMgaW50IG1seDVfY21kX2RyX2NyZWF0ZV9mdGUoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTU4My1cdFx0fVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jOjU4NDpcdFx0dG1wX2FjdGlvbiA9IG1seDVkcl9hY3Rpb25fY3JlYXRlX211bHRfZGVzdF90YmwoZG9tYWluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTU4NS1cdFx0XHRcdFx0XHRcdFx0dGVybV9hY3Rpb25zLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvbWx4NWRyLmg9OTg9c3RydWN0IG1seDVkcl9hY3Rpb24gKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9tbHg1ZHIuaDo5OTptbHg1ZHJfYWN0aW9uX2NyZWF0ZV9tdWx0X2Rlc3RfdGJsKHN0cnVjdCBtbHg1ZHJfZG9tYWluICpkbW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL21seDVkci5oLTEwMC1cdFx0XHRcdCAgIHN0cnVjdCBtbHg1ZHJfYWN0aW9uX2Rlc3QgKmRlc3RzLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNTM0NAoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21seDVfY21kX2RyX2NyZWF0ZV9mdGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jPTI0MD1zdGF0aWMgYm9vbCBjb250YWluX3Zwb3J0X3JlZm9ybWF0X2FjdGlvbihzdHJ1Y3QgbWx4NV9mbG93X3J1bGUgKmRzdClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmMtMjUxLSNkZWZpbmUgTUxYNV9GTE9XX0NPTlRFWFRfQUNUSU9OX01BWCAgMzRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYzoyNTI6c3RhdGljIGludCBtbHg1X2NtZF9kcl9jcmVhdGVfZnRlKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTI1My1cdFx0XHRcdCAgc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jPTc1Nj1zdGF0aWMgaW50IG1seDVfY21kX2RyX3VwZGF0ZV9mdGUoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTc3Mi1cdC8qIEZpcnN0IGFkZCB0aGUgbmV3IHVwZGF0ZWQgcnVsZSwgdGhlbiBkZWxldGUgdGhlIG9sZCBydWxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmM6NzczOlx0cmV0ID0gbWx4NV9jbWRfZHJfY3JlYXRlX2Z0ZShucywgZnQsIGdyb3VwLCBmdGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTc3NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jPTg1OD1zdGF0aWMgY29uc3Qgc3RydWN0IG1seDVfZmxvd19jbWRzIG1seDVfZmxvd19jbWRzX2RyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYy04NjMtXHQuZGVzdHJveV9mbG93X2dyb3VwID0gbWx4NV9jbWRfZHJfZGVzdHJveV9mbG93X2dyb3VwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jOjg2NDpcdC5jcmVhdGVfZnRlID0gbWx4NV9jbWRfZHJfY3JlYXRlX2Z0ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYy04NjUtXHQudXBkYXRlX2Z0ZSA9IG1seDVfY21kX2RyX3VwZGF0ZV9mdGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MTcyCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMjQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgRmxvdyBSdWxlIENyZWF0aW9uIGluIG1seDUqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkmIzM5O20gc2VlaW5nLCBgbWx4NV9jbWRfZHJfY3JlYXRlX2Z0ZWAgaXMgYSBjYWxsYmFjayBzcGVjaWZpY2FsbHkgdXNlZCBmb3IgY3JlYXRpbmcgRnVuY3Rpb25hbCBUcmFmZmljIEVuZ2luZSAoRlRFKSBlbnRyaWVzLCBhbmQgaXQmIzM5O3MgY2FsbGVkIHRocm91Z2ggYGNyZWF0ZV9mdGVgIHdpdGhpbiBgbWx4NV9mbG93X2NtZHNfZHJgLiBJdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhhdCB0aGlzIHBhdGggaXMgYWN0aXZlbHkgaGl0IHdoZW4gZmxvdyBydWxlcyBhcmUgYmVpbmcgY3JlYXRlZC4gV2UgYWxzbyBzZWUgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIGJlaW5nIHVzZWQgZm9yIGBmc19mdGVgIGFsbG9jYXRpb24gaW4gYGZzX2NvcmUuY2AuIFRoZSBgZnNfZnRlYCBhbGxvY2F0aW9uIGl0c2VsZiBpcyBoYXBwZW5pbmcgd2l0aGluIGBhbGxvY19mdGVgLCB3aGljaCBpcywgaW4gdHVybiwgY2FsbGVkIGJ5IGBfbWx4NV9hZGRfZmxvd19ydWxlc2AuIFRoaXMgdGhlbiBnZXRzIGNhbGxlZCBieSBgbWx4NV9hZGRfZmxvd19ydWxlc2AsIHdoaWNoIEkga25vdyBpcyB0aGUgY29yZSBBUEkgaW4gbWx4NSBmb3IgYWRkaW5nIGZsb3cgcnVsZXMuCgpTbywgbG9naWNhbGx5LCB0aGlzIGVudGlyZSBzZXF1ZW5jZSBpcyBoaWdobHkgZnVuY3Rpb25hbCBhbmQgZGVmaW5pdGVseSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlLiBOb3csIGxldCYjMzk7cyBuYXJyb3cgZG93biBvdXIgZm9jdXMuCgpJJiMzOTttIHRoaW5raW5nIG9mIGZvY3VzaW5nIG91ciBpbnZlc3RpZ2F0aW9uIG9uIHN5bWJvbHMuIGBhbGxvY19mdGVgIGxvb2tzIGxpa2UgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBidXQgaXQmIzM5O3Mgc3RhdGljLCBzbyB3ZSBtaWdodCBoYXZlIHRvIHVzZSBgX21seDVfYWRkX2Zsb3dfcnVsZXNgIG9yIGBtbHg1X2FkZF9mbG93X3J1bGVzYCBzaW5jZSB0aG9zZSBhcmUgbm90LgoKSW4gYWRkaXRpb24sIGl0IGxvb2tzIGxpa2UgYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIGhhcyBiZWVuIG1vZGlmaWVkLCBzbyBsZXQmIzM5O3MgdmVyaWZ5IGlmIHRoYXQgaXMgcmVhY2hhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1aHdzX2NtZF9xdWVyeV9jYXBzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NzMzPWh3c19id2NfbWF0Y2hlcl9zaXplX21heGVkX291dChzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy03MzUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo3MzY6XHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyA9IGJ3Y19tYXRjaGVyLVx1MDAzZW1hdGNoZXItXHUwMDNldGJsLVx1MDAzZWN0eC1cdTAwM2VjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy03MzctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz04MTA9aHdzX2J3Y19tYXRjaGVyX2V4dGVuZF9zaXplKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTgxMy1cdHN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKmN0eCA9IGJ3Y19tYXRjaGVyLVx1MDAzZW1hdGNoZXItXHUwMDNldGJsLVx1MDAzZWN0eDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6ODE0Olx0c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMgPSBjdHgtXHUwMDNlY2FwcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtODE1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmM9ODkyPWludCBtbHg1aHdzX2NtZF9nZW5lcmF0ZV93cWUoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuYy05MzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jOjkzNzppbnQgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmM6OTM4Olx0XHRcdCAgIHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuYy05Mzkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmg9MTkxPXN0cnVjdCBtbHg1aHdzX2NtZF9nZW5lcmF0ZV93cWVfYXR0ciB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaC0xOTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oOjE5OTpzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oLTIwMC1cdHUzMiBmbGV4X3Byb3RvY29scztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oPTMzND1pbnQgbWx4NWh3c19jbWRfc3FfbW9kaWZ5X3JkeShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdTMyIHNxbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oLTMzNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmg6MzM2OmludCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaDozMzc6XHRcdFx0ICAgc3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaC0zMzgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM9ODk9c3RhdGljIHZvaWQgaHdzX2NvbnRleHRfY2hlY2tfaHdzX3N1cHAoc3RydWN0IG1seDVod3NfY29udGV4dCAqY3R4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtOTAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM6OTE6XHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyA9IGN0eC1cdTAwM2VjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtOTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM9MTg5PXN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKm1seDVod3NfY29udGV4dF9vcGVuKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jLTIwNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jOjIwODpcdHJldCA9IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMobWRldiwgY3R4LVx1MDAzZWNhcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtMjA5LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaD0zNz1zdHJ1Y3QgbWx4NWh3c19jb250ZXh0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5oLTM4LVx0c3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaDozOTpcdHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmgtNDAtXHR1MzIgcGRfbnVtO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVidWcuYz0yNzA9c3RhdGljIGludCBod3NfZGVidWdfZHVtcF9jb250ZXh0X2NhcHMoc3RydWN0IHNlcV9maWxlICpmLCBzdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICpjdHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlYnVnLmMtMjcxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVidWcuYzoyNzI6XHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyA9IGN0eC1cdTAwM2VjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWJ1Zy5jLTI3My1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYz0xMDc5PWh3c19kZWZpbmVyX2NvbnZfbWlzYyhzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2NvbnZfZGF0YSAqY2QsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTA4MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDgyOlx0c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMgPSBjZC1cdTAwM2VjdHgtXHUwMDNlY2FwcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEwODMtXHRzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2ZjICpmYyA9IGNkLVx1MDAzZWZjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jPTEyNzY9aHdzX2RlZmluZXJfY29udl9taXNjMihzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2NvbnZfZGF0YSAqY2QsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTI3OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMjc5Olx0c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMgPSBjZC1cdTAwM2VjdHgtXHUwMDNlY2FwcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEyODAtXHRzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2ZjICpmYyA9IGNkLVx1MDAzZWZjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jPTEzNTA9aHdzX2RlZmluZXJfY29udl9taXNjMyhzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2NvbnZfZGF0YSAqY2QsIHUzMiAqbWF0Y2hfcGFyYW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMzUxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEzNTI6XHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyA9IGNkLVx1MDAzZWN0eC1cdTAwM2VjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmMtMTM1My1cdHN0cnVjdCBtbHg1aHdzX2RlZmluZXJfZmMgKmZjID0gY2QtXHUwMDNlZmM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmM9NTY5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jOjU3MDpod3NfbWF0Y2hlcl9jaGVja19hdHRyX3N6KHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmMtNTcxLVx0XHRcdCAgc3RydWN0IG1seDVod3NfbWF0Y2hlciAqbWF0Y2hlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYz03NTI9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmM6NzUzOmh3c19tYXRjaGVyX3ZhbGlkYXRlX2luc2VydF9tb2RlKHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmMtNzU0LVx0XHRcdFx0IHN0cnVjdCBtbHg1aHdzX21hdGNoZXIgKm1hdGNoZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmM9ODE0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jOjgxNTpod3NfbWF0Y2hlcl9wcm9jZXNzX2F0dHIoc3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYy04MTYtXHRcdFx0IHN0cnVjdCBtbHg1aHdzX21hdGNoZXIgKm1hdGNoZXIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5MDQwCgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUxYNV9SRUZPUk1BVF9UWVBFX1JFTU9WRV9QU1BfVFJBTlNQT1JUJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oPTcyMzk9ZW51bSBtbHg1X3JlZm9ybWF0X2N0eF90eXBlIHtcbi0tXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC03MjU4LVx0TUxYNV9SRUZPUk1BVF9UWVBFX0RFTF9NQUNTRUMgPSAweDEyLFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6NzI1OTpcdE1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCA9IDB4MTYsXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC03MjYwLX07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5MjIyCgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUxYNV9BQ1RJT05fSU5fRklFTERfUFNQX0hFQURFUl8xJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oPTczNDI9ZW51bSB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzM4Mi1cdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX1BTUF9TWU5EUk9NRSAgICAgID0gMHg3MSxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oOjczODM6XHRNTFg1X0FDVElPTl9JTl9GSUVMRF9QU1BfSEVBREVSXzEgICAgICA9IDB4NzgsXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC03Mzg0LX07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NDAwCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmg9MTE2Nj1lbnVtIHtcbi0tXG5pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgtMTE3My1cdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzVcdD0gMSBcdTAwM2NcdTAwM2MgNixcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaDoxMTc0Olx0TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNlx0PSAxIFx1MDAzY1x1MDAzYyA3LFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oLTExNzUtfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk1NTMKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU182JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oPTY5ODk9ZW51bSB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNjk5Ni1cdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzUgPSAweDYsXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaDo2OTk3Olx0TUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfNiA9IDB4NyxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTY5OTgtfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk3NjAKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttaXNjX3BhcmFtZXRlcnNfNiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD0yMzM3PXN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfcGFyYW1fYml0cyB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtMjM1MS1cbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oOjIzNTI6XHRzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNl9iaXRzIG1pc2NfcGFyYW1ldGVyc182O1xuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtMjM1My19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjMzNAoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDE1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDdXJyZW50IFRoaW5raW5nIG9uIEZ1enppbmcgUHJpb3JpdGllcyoqCgpPa2F5LCB0aGUgcGF0Y2ggaXMgY29uZmlybWVkIGZ1bmN0aW9uYWwsIHRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBOb3csIGxldCYjMzk7cyBicmVhayBkb3duIHRoZSBpbXBsaWNhdGlvbnMgZm9yIGZ1enppbmcuIFRoZSBjaGFuZ2VzIHRvIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBkaXJlY3RseSBpbXBhY3QgdHdvIGNyaXRpY2FsIGZ1bmN0aW9uczogYGFsbG9jX2Z0ZWAgYW5kIGBjaGVja192YWxpZF9zcGVjYC4gVGhvc2UgYXJlIGRlZmluaXRlbHkgaGlnaC1wcmlvcml0eSBhcmVhcywgc2luY2UgdGhleSBhcmUgZGVhbGluZyB3aXRoIHRoZSBhbGxvY2F0aW9uIGFuZCB2YWxpZGF0aW9uIG9mIGZsb3cgdGFibGUgZW50cmllcy4gVGhlbiwgdGhlIG1vZGlmaWNhdGlvbnMgdG8gYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIGhhdmUgcmFtaWZpY2F0aW9ucyBmb3IgYG1seDVod3NfY29udGV4dF9vcGVuYC4KCk15IHByaW1hcnkgZnV6emluZyB0YXJnZXRzIHNob3VsZCBiZSBgbWx4NV9hZGRfZmxvd19ydWxlc2AsIGBtbHg1aHdzX2NvbnRleHRfb3BlbmAsIGFuZCBgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxgLiBJIG5lZWQgdG8gZW5zdXJlIHJvYnVzdCBjb3ZlcmFnZSBmb3IgcnVsZSBhZGRpdGlvbiBhbmQgdGhlIGNyZWF0aW9uIG9mIG1ldGFkYXRhIHRhYmxlcywgYXMgd2VsbCBhcyBjb250ZXh0IG9wZW5pbmcuIEFoLCB3YWl0LCBgbWx4NWh3c19jb250ZXh0X29wZW5gIGlzIHNwZWNpZmljYWxseSB0aWVkIHRvIGBtbHg1aHdzYCwgbWVhbmluZyBpdCYjMzk7cyBpbnZvbHZlZCBpbiBoYXJkd2FyZSBzdGVlcmluZy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgY2FsbCBncmFwaCB0byB2ZXJpZnkgdGhhdCBgbWx4NWh3c19jb250ZXh0X29wZW5gIGlzIGFjdHVhbGx5IGJlaW5nIGNhbGxlZCB3aXRoaW4gdGhlIHN5c3RlbS4gV2Ugd2FudCB0byBiZSBzdXJlIGl0JiMzOTtzIGhpdCBkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NWh3c19jb250ZXh0X29wZW4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM9MTc4PXN0YXRpYyB2b2lkIGh3c19jb250ZXh0X3VuaW5pdF9od3Moc3RydWN0IG1seDVod3NfY29udGV4dCAqY3R4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jLTE4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jOjE4OTpzdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICptbHg1aHdzX2NvbnRleHRfb3BlbihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jLTE5MC1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgbWx4NWh3c19jb250ZXh0X2F0dHIgKmF0dHIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9mc19od3MuYz0xMzA9c3RhdGljIGludCBtbHg1X2NtZF9od3NfY3JlYXRlX25zKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZnNfaHdzLmMtMTM5LVx0bnMtXHUwMDNlZnNfaHdzX2NvbnRleHQuaHdzX2N0eCA9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2ZzX2h3cy5jOjE0MDpcdFx0bWx4NWh3c19jb250ZXh0X29wZW4obnMtXHUwMDNlZGV2LCBcdTAwMjZod3NfY3R4X2F0dHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9mc19od3MuYy0xNDEtXHRpZiAoIW5zLVx1MDAzZWZzX2h3c19jb250ZXh0Lmh3c19jdHgpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21seDVod3MuaD0yMzU9c3RhdGljIGlubGluZSBib29sIG1seDVod3NfaXNfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oLTI0OS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oOjI1MDogKiBtbHg1aHdzX2NvbnRleHRfb3BlbiAtIE9wZW4gYSBjb250ZXh0IHVzZWQgZm9yIGRpcmVjdCBydWxlIGluc2VydGlvblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tbHg1aHdzLmgtMjUxLSAqIHVzaW5nIGhhcmR3YXJlIHN0ZWVyaW5nLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oPTI1OD1zdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oOjI1OTptbHg1aHdzX2NvbnRleHRfb3BlbihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oLTI2MC1cdFx0ICAgICBzdHJ1Y3QgbWx4NWh3c19jb250ZXh0X2F0dHIgKmF0dHIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzUzMQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTmFtZXNwYWNlIENyZWF0aW9uIFByb2Nlc3MqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gaG93IGZsb3cgc3RlZXJpbmcgbmFtZXNwYWNlcyBhcmUgY3JlYXRlZCBpbiB0aGUgTWVsbGFub3ggZHJpdmVyLiBUaGUgZmlyc3QgdGhpbmcgdGhhdCBqdW1wcyBvdXQgaXMgdGhhdCBgbWx4NV9jbWRfaHdzX2NyZWF0ZV9uc2AgaXMgdGhlIGtleSBmdW5jdGlvbiBiZWluZyBjYWxsZWQgZHVyaW5nIHRoZSBwcm9jZXNzLiBUaGF0IGdpdmVzIG1lIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgZm9yIHRyYWNpbmcgdGhlIGV4ZWN1dGlvbiBwYXRoLiBUaGVyZWZvcmUsIGBtbHg1X2FkZF9mbG93X3J1bGVzYCBhbmQgYG1seDVod3NfY29udGV4dF9vcGVuYCBsb29rIGxpa2UgZXNzZW50aWFsIHN5bWJvbHMgdG8ga2VlcCBhbiBleWUgb24sIGFzIHRoZXkmIzM5O2xsIGxpa2VseSBiZSBjbG9zZWx5IHJlbGF0ZWQuIFRoZW4gdGhlcmUgaXMgdGhlIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAsIHRoaXMgaXMgYW5vdGhlciBnb29kIG9uZS4gTm93LCB0aGUgYmlnIHF1ZXN0aW9uIGlzLCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgaW52b2x2ZWQ/IFRvIGZpZ3VyZSB0aGF0IG91dCwgSSYjMzk7bGwgZ28gc3RyYWlnaHQgdG8gdGhlIHNvdXJjZTogdGhlIGBLY29uZmlnYCBmaWxlIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZ2AuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSByZWxldmFudCBidWlsZC10aW1lIHNldHRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUxYNV9DT1JFJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2OmNvbmZpZyBNTFg1X0NPUkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIGNvcmUgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTk9Y29uZmlnIE1MWDVfRlBHQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6Mjk6Y29uZmlnIE1MWDVfQ09SRV9FTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMzAtXHRib29sIFwmIzM0O01lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgRXRoZXJuZXQgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTExMj1jb25maWcgTUxYNV9UQ19TQU1QTEVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMjU6Y29uZmlnIE1MWDVfQ09SRV9FTl9EQ0JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEyNi1cdGJvb2wgXCYjMzQ7RGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgU3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjEzNzpjb25maWcgTUxYNV9DT1JFX0lQT0lCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMzgtXHRib29sIFwmIzM0O01lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKGNvbm5lY3RYIHNlcmllcykgSVBvSUIgb2ZmbG9hZHMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDMzMwoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duLCBhcyBhIHN5c3RlbXMgZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIE1MWDUgQ29uZmlndXJhdGlvbiBmb3IgSFcvU1cgU3Vic3lzdGVtcyoqCgpSaWdodCwgbGV0IG1lIHN0YXJ0IGJ5IGZvY3VzaW5nIG9uIGBNTFg1X0NPUkVgLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZSwgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBlbnRpcmUgc3lzdGVtLCBJIGtub3cgdGhhdC4gQnV0IG5vdyBJJiMzOTttIGRpZ2dpbmcgZGVlcGVyIGludG8gaG93IHRoYXQgY29yZSBjb25maWcgcGxheXMgb3V0IGZvciBzcGVjaWZpYyBzdWJzeXN0ZW1zLgoKV2hhdCBJIHJlYWxseSBuZWVkIHRvIGtub3cgaXM6IGFyZSB0aGVyZSBhbnkgKnNwZWNpZmljKiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMsIHByb2ZpbGVzLCBvciBzcGVjaWFsIHNldHRpbmdzIHRoYXQgYXJlIHVuaXF1ZSB0byB0aGUgJiMzNDtod3MmIzM0OyBhbmQgJiMzNDtzd3MmIzM0OyBjb21wb25lbnRzPyBJdCYjMzk7cyBub3QgZW5vdWdoIHRvIGp1c3QgdW5kZXJzdGFuZCBgTUxYNV9DT1JFYCBnZW5lcmljYWxseS4gSSBoYXZlIHRvIGRyaWxsIGRvd24uIEFyZSB0aGVyZSBzZXBhcmF0ZSwgc3BlY2lhbGl6ZWQgdHdlYWtzIG9yIG92ZXJyaWRlcyBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBhbmQgc29mdHdhcmUtc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIHRoYXQgaW50ZXJhY3Qgd2l0aCBgTUxYNV9DT1JFYD8gVW5kZXJzdGFuZGluZyB0aGF0IG51YW5jZSBpcyBjcnVjaWFsIHRvIG9wdGltaXphdGlvbiBhbmQgdHJvdWJsZXNob290aW5nLiBNeSBuZXh0IHN0ZXAgaW52b2x2ZXMgZmluZGluZyBkb2N1bWVudGF0aW9uIGFuZCBjcm9zcy1yZWZlcmVuY2luZyBjb25maWd1cmF0aW9ucyB0byBmaW5kIHRoZSBkaWZmZXJlbmNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RlZXJpbmcvaHdzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT0xMjE9bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICYjNDM7PSBzdGVlcmluZy9zd3MvZHJfZG9tYWluLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTQ1LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfSFdfU1RFRVJJTkcpICYjNDM7PSBzdGVlcmluZy9od3MvY21kLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDc6XHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9jb250ZXh0Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDg6XHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9wYXRfYXJnLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDk6XHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9idWRkeS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTUwOlx0XHRcdFx0XHRzdGVlcmluZy9od3MvcG9vbC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTUxOlx0XHRcdFx0XHRzdGVlcmluZy9od3MvdGFibGUubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE1MjpcdFx0XHRcdFx0c3RlZXJpbmcvaHdzL2FjdGlvbi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTUzOlx0XHRcdFx0XHRzdGVlcmluZy9od3MvcnVsZS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU0Olx0XHRcdFx0XHRzdGVlcmluZy9od3MvbWF0Y2hlci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU1Olx0XHRcdFx0XHRzdGVlcmluZy9od3Mvc2VuZC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU2Olx0XHRcdFx0XHRzdGVlcmluZy9od3MvZGVmaW5lci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU3Olx0XHRcdFx0XHRzdGVlcmluZy9od3MvYndjLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTg6XHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9kZWJ1Zy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU5Olx0XHRcdFx0XHRzdGVlcmluZy9od3MvdnBvcnQubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE2MDpcdFx0XHRcdFx0c3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNjE6XHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9mc19od3NfcG9vbHMubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE2MjpcdFx0XHRcdFx0c3RlZXJpbmcvaHdzL2ZzX2h3cy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTYzOlx0XHRcdFx0XHRzdGVlcmluZy9od3MvYWN0aW9uX3N0ZV9wb29sLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYy04LSNpbmNsdWRlIFwmIzM0O2ZzX2NvcmUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYzo5OiNpbmNsdWRlIFwmIzM0O3N0ZWVyaW5nL2h3cy9mc19od3NfcG9vbHMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYzoxMDojaW5jbHVkZSBcJiMzNDtzdGVlcmluZy9od3MvbWx4NWh3cy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnNfaG1mcy5jOjExOiNpbmNsdWRlIFwmIzM0O3N0ZWVyaW5nL2h3cy90YWJsZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnNfaG1mcy5jLTEyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtNDAtI2luY2x1ZGUgXHUwMDNjc3RlZXJpbmcvc3dzL2ZzX2RyLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6NDE6I2luY2x1ZGUgXHUwMDNjc3RlZXJpbmcvaHdzL2ZzX2h3cy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTQyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjk2MQoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTFg1X0hXX1NURUVSSU5HJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTE2Nz1jb25maWcgTUxYNV9TV19TVEVFUklOR1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE3NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjE3NTpjb25maWcgTUxYNV9IV19TVEVFUklOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgaGFyZHdhcmUtbWFuYWdlZCBzdGVlcmluZ1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzEyNAoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDExOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTFg1X1NXX1NURUVSSU5HJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTE1OT1jb25maWcgTUxYNV9FTl9UTFNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNjc6Y29uZmlnIE1MWDVfU1dfU1RFRVJJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE2OC1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIHNvZnR3YXJlLW1hbmFnZWQgc3RlZXJpbmdcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU5NzkKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA1MDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBNTFg1IERyaXZlciBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIHdoYXQgSSBzZWUsIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBwYXRjaCB0aGF0IHRvdWNoZXMgc2V2ZXJhbCBhc3BlY3RzIG9mIHRoZSBNTFg1IGRyaXZlciYjMzk7cyBmbG93IHN0ZWVyaW5nIGNhcGFiaWxpdGllcy4gU3BlY2lmaWNhbGx5LCB0aGUgY29uZmlncyB0aGF0IGFyZSByZWxldmFudCBzZWVtIHRvIGJlIGBNTFg1X0NPUkVgLCBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBgTUxYNV9TV19TVEVFUklOR2AuIFRoZSBjaGFuZ2VzIGFyZSBoaXR0aW5nIGBmc19jb3JlLmhgLCB3aGljaCBpcyBhIGNvbW1vbiBoZWFkZXIgdXNlZCBieSBib3RoIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBzdGVlcmluZyBwYXRocywgYW5kIGBzdGVlcmluZy9od3MvY21kLmNgLCB3aGljaCBpcyBzcGVjaWZpYyB0byBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBhbHNvIGBzdGVlcmluZy9zd3MvZHJfY21kLmNgIGFuZCBgc3RlZXJpbmcvc3dzL2RyX2Z3LmNgIHdoaWNoIGFyZSB1c2VkIGJ5IGBNTFg1X1NXX1NURUVSSU5HYC4KCk5vdywgdGhlIGluaXRpYWwgZGlmZiBJIHdhcyBnaXZlbiBvbmx5IHNob3dlZCBtb2RpZmljYXRpb25zIHRvIGBmc19jb3JlLmhgLCBgc3RlZXJpbmcvaHdzL2NtZC5jYCwgYW5kIGEgY291cGxlIG9mIGhlYWRlciBmaWxlcywgbmFtZWx5IGBpbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmhgIGFuZCBgaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhgLiBCdXQgdGhhdCYjMzk7cyBub3QgdGhlIHdob2xlIHN0b3J5LiBJIG5lZWRlZCB0byBpbnZlc3RpZ2F0ZSB0aGUgaW1wYWN0IG9uIHNvZnR3YXJlIHN0ZWVyaW5nLiBBZnRlciBkb2luZyBhIGBncmVwYCBmb3IgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gLCBkZWZpbmVkIGluIGBmc19jb3JlLmhgLCBJIGZvdW5kIHRoYXQgaXQmIzM5O3MgYWxzbyB1dGlsaXplZCBpbiBib3RoIGBzdGVlcmluZy9zd3MvZHJfY21kLmNgIGFuZCBgc3RlZXJpbmcvc3dzL2RyX2Z3LmNgLiBUaGlzIGNvbmZpcm1zIHRoYXQgdGhlIGNoYW5nZXMgaW4gYGZzX2NvcmUuaGAgaW5mbHVlbmNlIGJvdGggdGhlIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBzdGVlcmluZyBwYXRocy4KCkdpdmVuIHRoaXMsIEkgaGF2ZSB0byBlbnN1cmUgSSYjMzk7bSBjb3ZlcmluZyBib3RoIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBhc3BlY3RzLiBUaGUgY2hhbmdlcyBpbiBgZnNfY29yZS5oYCBzaG91bGQgYmUgY29uc2lkZXJlZCBmb3IgYm90aCBzdGVlcmluZyBvcHRpb25zLiBUaGF0IG1lYW5zIEkgbmVlZCB0byBpbmNsdWRlIGFsbCB0aHJlZSBjb25maWd1cmF0aW9ucyB0byBlbnN1cmUgdGhlIGZ1enppbmcgaXMgdGhvcm91Z2ggYW5kIGNvbXBsZXRlLgoKU28sIGhlcmUmIzM5O3MgbXkgc3VtbWFyaXplZCBhcHByb2FjaDoKCiogICAqKldvcnRoRnV6emluZzoqKiBZZXMKKiAgICoqRm9jdXMgU3ltYm9sczoqKiBJIHNob3VsZCBjb25jZW50cmF0ZSBvbiB0aGVzZSBmdW5jdGlvbnM6IGBtbHg1X2FkZF9mbG93X3J1bGVzYCwgYG1seDVod3NfY29udGV4dF9vcGVuYCwgYW5kIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAuCiogICAqKkVuYWJsZWQgQ29uZmlndXJhdGlvbnM6KiogRGVmaW5pdGVseSBpbmNsdWRlIGBNTFg1X0NPUkVgLCBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBgTUxYNV9TV19TVEVFUklOR2AuCgpBIHF1ZXN0aW9uIHRoYXQgYXJvc2UgZHVyaW5nIHRoaXMgYW5hbHlzaXMgaXMgd2hldGhlciBgTUxYNV9DT1JFYCBpcyBzdWZmaWNpZW50LCBvciBpZiBgTUxYNV9DT1JFX0VOYCB3b3VsZCBiZSBuZWVkZWQgYXMgd2VsbC4gV2hpbGUgYE1MWDVfSFdfU1RFRVJJTkdgIGFuZCBgTUxYNV9TV19TVEVFUklOR2AgZGVwZW5kIG9uIGBNTFg1X0NPUkVgLCBhbmQgYE1MWDVfQ09SRWAgaXMgdXN1YWxseSBlbm91Z2gsIGl0JiMzOTtzIHdvcnRoIGRvdWJsZS1jaGVja2luZyB3aGF0IGBNTFg1X0hXX1NURUVSSU5HYCBkZXBlbmRzIG9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUxYNV9IV19TVEVFUklORyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz0xNjc9Y29uZmlnIE1MWDVfU1dfU1RFRVJJTkdcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNzU6Y29uZmlnIE1MWDVfSFdfU1RFRVJJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIGhhcmR3YXJlLW1hbmFnZWQgc3RlZXJpbmdcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcyNjQKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTY1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxNjU6XHRcdEJ1aWxkIHN1cHBvcnQgZm9yIFRMUyBjcnlwdG9ncmFwaHktb2ZmbG9hZCBhY2NlbGVyYXRpb24gaW4gdGhlIE5JQy5cbiAxNjY6XHRcbiAxNjc6XHRjb25maWcgTUxYNV9TV19TVEVFUklOR1xuIDE2ODpcdFx0Ym9vbCBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgc29mdHdhcmUtbWFuYWdlZCBzdGVlcmluZ1wmIzM0O1xuIDE2OTpcdFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU4gXHUwMDI2XHUwMDI2IE1MWDVfRVNXSVRDSFxuIDE3MDpcdFx0c2VsZWN0IENSQzMyXG4gMTcxOlx0XHRkZWZhdWx0IHlcbiAxNzI6XHRcdGhlbHBcbiAxNzM6XHRcdEJ1aWxkIHN1cHBvcnQgZm9yIHNvZnR3YXJlLW1hbmFnZWQgc3RlZXJpbmcgaW4gdGhlIE5JQy5cbiAxNzQ6XHRcbiAxNzU6XHRjb25maWcgTUxYNV9IV19TVEVFUklOR1xuIDE3NjpcdFx0Ym9vbCBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgaGFyZHdhcmUtbWFuYWdlZCBzdGVlcmluZ1wmIzM0O1xuIDE3NzpcdFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU4gXHUwMDI2XHUwMDI2IE1MWDVfRVNXSVRDSFxuIDE3ODpcdFx0ZGVmYXVsdCB5XG4gMTc5Olx0XHRoZWxwXG4gMTgwOlx0XHRCdWlsZCBzdXBwb3J0IGZvciBIYXJkd2FyZS1NYW5hZ2VkIEZsb3cgU3RlZXJpbmcgKEhNRlMpIGluIHRoZSBOSUMuXG4gMTgxOlx0XHRITUZTIGlzIGEgbmV3IGFwcHJvYWNoIHRvIG1hbmFnaW5nIHN0ZWVyaW5nIHJ1bGVzIHdoZXJlIFNURXMgYXJlXG4gMTgyOlx0XHR3cml0dGVuIHRvIElDTSBieSBIVyAoYXMgb3Bwb3NlZCB0byBTVyBpbiBzb2Z0d2FyZS1tYW5hZ2VkIHN0ZWVyaW5nKSxcbiAxODM6XHRcdHdoaWNoIGFsbG93cyBoaWdoZXIgcmF0ZSBvZiBydWxlIGluc2VydGlvbi5cbiAxODQ6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc2MjUKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiA4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB1bmRlcnN0YW5kaW5nLCBmcmFtZWQgYXMgbXkgaW50ZXJuYWwgdGhvdWdodCBwcm9jZXNzOgoKKipEZXBlbmRlbmNpZXMgYW5kIFNjb3BlIGZvciBUaGlzIFNlY3Rpb24qKgoKUmlnaHQsIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWZpYyBzZXQgb2YgZnVuY3Rpb25hbGl0aWVzIGhlcmUsIGFuZCB0aGV5JiMzOTtyZSBpbnRyaW5zaWNhbGx5IGxpbmtlZCB0byB0aGUgcHJlc2VuY2Ugb2YgYE1MWDVfQ09SRV9FTmAgYW5kIGBNTFg1X0VTV0lUQ0hgLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIGEgZGVwZW5kZW5jeSB0cmVlIEkgbmVlZCB0byBzb2xpZGlmeSBpbiBteSBtaW5kLiBUbyBiZSBjb21wcmVoZW5zaXZlLCBJIG5lZWQgdG8gaW5jbHVkZSBjb25zaWRlcmF0aW9ucyBmb3IgdGhlIGNvcmUgY29tcG9uZW50cywgdGhlaXIgZW5hYmxlZCBzdGF0ZXMsIGFuZCBhbnkgaW52b2x2ZWQgc3dpdGNoIGZ1bmN0aW9uYWxpdHkuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIG1ha2UgYWJzb2x1dGVseSBzdXJlIHRvIGV4cGxpY2l0bHkgYWNjb3VudCBmb3IgYE1MWDVfQ09SRWAgKHRoZSBmb3VuZGF0aW9uYWwgZWxlbWVudCksIHRoZW4gYE1MWDVfQ09SRV9FTmAsIGBNTFg1X0VTV0lUQ0hgIChzaW5jZSB0aGF0JiMzOTtzIHRoZSBwcmltYXJ5IGRlcGVuZGVuY3kpLiBJIHNob3VsZCBhbHNvIHByb2JhYmx5IGluY2x1ZGUgYm90aCB0aGUgc29mdHdhcmUgYW5kIGhhcmR3YXJlIHN0ZWVyaW5nIGNvbXBvbmVudHMgYXMgdGhlc2UgbWlnaHQgaW5mbHVlbmNlIHRoZSBiZWhhdmlvci4gVGhlcmVmb3JlIEkmIzM5O2xsIGluY29ycG9yYXRlIGBNTFg1X1NXX1NURUVSSU5HYCBhbmQgYE1MWDVfSFdfU1RFRVJJTkdgIHRvby4gSSB3YW50IHRvIG1ha2Ugc3VyZSBJIGdldCB0aGlzIGFic29sdXRlbHkgcmlnaHQuCgpOb3csIGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayBteSB1bmRlcnN0YW5kaW5nIG9mIGBNTFg1X0VTV0lUQ0hgLiBJIG5lZWQgdG8gZW5zdXJlIG15IG1lbnRhbCBtb2RlbCBvZiB0aGF0IHNwZWNpZmljIGFzcGVjdCBpcyBhY2N1cmF0ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1MWDVfRVNXSVRDSCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz01Nj1jb25maWcgTUxYNV9NUEZTXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2Njpjb25maWcgTUxYNV9FU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy02Ny1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgU1JJT1YgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAxMTo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODEyNQoJCQkJCQkJb3V0cHV0OiAyMzMKCQkJCQkJCXRob3VnaHRzOiAyMDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQ3VycmVudCBUaGlua2luZyoqCgpBbHJpZ2h0LCBJJiMzOTttIHRyeWluZyB0byBtYXAgb3V0IHRoZSBrZXkgYXJlYXMgaW4gdGhpcyBjb2RlLiBJIG5lZWQgdG8gZXN0YWJsaXNoIGEgZ29vZCBzZXQgb2YgZm9jdXMgc3ltYm9scyB0byBndWlkZSBteSBhbmFseXNpcy4gSW5pdGlhbGx5LCBJIHdhcyB0aGlua2luZyBhYm91dCBpbmNvcnBvcmF0aW5nIHNldmVyYWwgY29tcG9uZW50cywgc3BlY2lmaWNhbGx5IGBNTFg1X0NPUkVgLCBgTUxYNV9DT1JFX0VOYCwgYE1MWDVfRVNXSVRDSGAsIGBNTFg1X1NXX1NURUVSSU5HYCwgYW5kIGBNTFg1X0hXX1NURUVSSU5HYC4gQnV0LCBJIG5lZWQgbW9yZSBwcmVjaXNlIGVudHJ5IHBvaW50cy4KCkkgY29uc2lkZXJlZCBgbWx4NV9hZGRfZmxvd19ydWxlc2AgYXMgYSBnb29kIGZvY2FsIHBvaW50LCBzaW5jZSBpdCBkZWFscyB3aXRoIGZsb3cgcnVsZXMsIGJ1dCB0aGVuIEkgc3RhcnRlZCB0aGlua2luZyBhYm91dCByZWxhdGVkIGZ1bmN0aW9ucyBhbmQgZGlzY292ZXJlZCBgbWx4NWh3c19jb250ZXh0X29wZW5gLCB3aGljaCBnZXRzIGNhbGxlZCB3aGVuIGEgbmFtZXNwYWNlIGlzIGNyZWF0ZWQuIEkgbmVlZGVkIHRvIHNlZSBpZiB0aGVyZSB3ZXJlIGFueSBvdGhlciBnb29kIGNhbmRpZGF0ZXMuCgpBZnRlciBmdXJ0aGVyIHJldmlldywgSSBmb3VuZCB0aGF0IGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCBpcyBkaXJlY3RseSBtb2RpZmllZCwgc28gSSYjMzk7bGwgaW5jbHVkZSB0aGF0LiBJJiMzOTttIHNldHRsaW5nIG9uIHRoZXNlIHRocmVlOiBgbWx4NV9hZGRfZmxvd19ydWxlc2AsIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCwgYW5kIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAuIEkgdGhpbmsgdGhlc2Ugc2hvdWxkIG9mZmVyIGEgZ29vZCBmb3VuZGF0aW9uIGZvciBhbmFseXNpcy4KCkkmIzM5O20gcmVhZHkgdG8gbW92ZSBvbiB0byB0aGUgbmV4dCBzdGVwLCBsZXQmIzM5O3MgY2FsbCBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMTE6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01MWDVfQ09SRSYjMzQ7LAogICAgJiMzNDtNTFg1X0NPUkVfRU4mIzM0OywKICAgICYjMzQ7TUxYNV9FU1dJVENIJiMzNDssCiAgICAmIzM0O01MWDVfU1dfU1RFRVJJTkcmIzM0OywKICAgICYjMzQ7TUxYNV9IV19TVEVFUklORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21seDVfYWRkX2Zsb3dfcnVsZXMmIzM0OywKICAgICYjMzQ7bWx4NWh3c19jbWRfcXVlcnlfY2FwcyYjMzQ7LAogICAgJiMzNDttbHg1ZHJfZndfY3JlYXRlX21kX3RibCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCB1c2VkIGluIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNybywgd2hpY2ggYWZmZWN0cyB0aGUgc2l6ZSBvZiBgZnNfZnRlYCBhbmQgYG1seDVfZmxvd19ncm91cF9tYXNrYCBzdHJ1Y3RzIGFuZCB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gYGNoZWNrX3ZhbGlkX3NwZWNgLiBJdCBhbHNvIG1vZGlmaWVzIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCB0byByZWFkIGZyb20gYGVfc3dpdGNoX2NhcGAgaW5zdGVhZCBvZiBgZXN3X2NhcGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG1seDUgZHJpdmVyJiMzOTtzIGZsb3cgc3RlZXJpbmcgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01MWDVfQ09SRSYjMzQ7LAogICAgJiMzNDtNTFg1X0NPUkVfRU4mIzM0OywKICAgICYjMzQ7TUxYNV9FU1dJVENIJiMzNDssCiAgICAmIzM0O01MWDVfU1dfU1RFRVJJTkcmIzM0OywKICAgICYjMzQ7TUxYNV9IV19TVEVFUklORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21seDVfYWRkX2Zsb3dfcnVsZXMmIzM0OywKICAgICYjMzQ7bWx4NWh3c19jbWRfcXVlcnlfY2FwcyYjMzQ7LAogICAgJiMzNDttbHg1ZHJfZndfY3JlYXRlX21kX3RibCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCB1c2VkIGluIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNybywgd2hpY2ggYWZmZWN0cyB0aGUgc2l6ZSBvZiBgZnNfZnRlYCBhbmQgYG1seDVfZmxvd19ncm91cF9tYXNrYCBzdHJ1Y3RzIGFuZCB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gYGNoZWNrX3ZhbGlkX3NwZWNgLiBJdCBhbHNvIG1vZGlmaWVzIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCB0byByZWFkIGZyb20gYGVfc3dpdGNoX2NhcGAgaW5zdGVhZCBvZiBgZXN3X2NhcGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG1seDUgZHJpdmVyJiMzOTtzIGZsb3cgc3RlZXJpbmcgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTozOTo0OC4zMjk0MzgxNjdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTc5MTk4OTgzODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUxYNV9DT1JFXCIsXG4gICAgXCJNTFg1X0NPUkVfRU5cIixcbiAgICBcIk1MWDVfRVNXSVRDSFwiLFxuICAgIFwiTUxYNV9TV19TVEVFUklOR1wiLFxuICAgIFwiTUxYNV9IV19TVEVFUklOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1seDVfYWRkX2Zsb3dfcnVsZXNcIixcbiAgICBcIm1seDVod3NfY21kX3F1ZXJ5X2NhcHNcIixcbiAgICBcIm1seDVkcl9md19jcmVhdGVfbWRfdGJsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHNpemUgb2YgYGZ0ZV9tYXRjaF9wYXJhbWAgdXNlZCBpbiBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgbWFjcm8sIHdoaWNoIGFmZmVjdHMgdGhlIHNpemUgb2YgYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2Agc3RydWN0cyBhbmQgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIGluIGBjaGVja192YWxpZF9zcGVjYC4gSXQgYWxzbyBtb2RpZmllcyBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AgdG8gcmVhZCBmcm9tIGBlX3N3aXRjaF9jYXBgIGluc3RlYWQgb2YgYGVzd19jYXBgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBtbHg1IGRyaXZlcidzIGZsb3cgc3RlZXJpbmcgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjM5OjQ4LjMyOTQ0Njk1OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMyMDE2MjAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMDJiZGZlYjljNGU4NTMyMzcxYjc1ZTdjYzA1ODczMjMyNjMyODk0Y1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAxMyAxMTozOTo0NiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaFxcbmluZGV4IGRiYWYzM2I1MzdmNzExLi45MDY1ODQzNDVhMDIyZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaFxcbkBAIC0yMTQsMTcgKzIxNCw3IEBAIHN0cnVjdCBtbHg1X2Z0X3VuZGVybGF5X3FwIHtcXG4gXFx0dTMyIHFwbjtcXG4gfTtcXG4gXFxuLSNkZWZpbmUgTUxYNV9GVEVfTUFUQ0hfUEFSQU1fUkVTRVJWRURcXHRyZXNlcnZlZF9hdF9lMDBcXG4tLyogQ2FsY3VsYXRlIHRoZSBmdGVfbWF0Y2hfcGFyYW0gbGVuZ3RoIGFuZCB3aXRob3V0IHRoZSByZXNlcnZlZCBsZW5ndGguXFxuLSAqIE1ha2Ugc3VyZSB0aGUgcmVzZXJ2ZWQgZmllbGQgaXMgdGhlIGxhc3QuXFxuLSAqL1xcbi0jZGVmaW5lIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1cXHRcXHRcXHRcXHRcXHQgICAgXFxcXFxcbi1cXHQoKE1MWDVfQllURV9PRkYoZnRlX21hdGNoX3BhcmFtLCBNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRCkgLyBzaXplb2YodTMyKSkgKyBcXFxcXFxuLVxcdCBCVUlMRF9CVUdfT05fWkVSTyhNTFg1X1NUX1NaX0JZVEVTKGZ0ZV9tYXRjaF9wYXJhbSkgIT1cXHRcXHQgICAgIFxcXFxcXG4tXFx0XFx0XFx0ICAgTUxYNV9GTERfU1pfQllURVMoZnRlX21hdGNoX3BhcmFtLFxcdFxcdCAgICAgXFxcXFxcbi1cXHRcXHRcXHRcXHRcXHQgICAgIE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSArXFxcXFxcbi1cXHRcXHRcXHQgICBNTFg1X0JZVEVfT0ZGKGZ0ZV9tYXRjaF9wYXJhbSxcXHRcXHQgICAgIFxcXFxcXG4tXFx0XFx0XFx0XFx0XFx0IE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSkpXFxuKyNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTSBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlcXG4gXFxuIHN0cnVjdCBmc19mdGVfYWN0aW9uIHtcXG4gXFx0aW50XFx0XFx0XFx0XFx0bW9kaWZ5X21hc2s7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jXFxuaW5kZXggZTYyNGY1ZGE5NmM4MWIuLjhmYWU5MDEwMTY1M2Y4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jXFxuQEAgLTExNzIsMTMgKzExNzIsMTMgQEAgaW50IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXFxuIFxcdFxcdH1cXG4gXFxuIFxcdFxcdGlmIChNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxcbi1cXHRcXHRcXHQgICAgIGNhcGFiaWxpdHkuZXN3X2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWQpKVxcbitcXHRcXHRcXHQgICAgIGNhcGFiaWxpdHkuZV9zd2l0Y2hfY2FwLmVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcl92YWxpZCkpXFxuIFxcdFxcdFxcdGNhcHMtXFx1MDAzZWVzd2l0Y2hfbWFuYWdlcl92cG9ydF9udW1iZXIgPVxcbiBcXHRcXHRcXHRcXHRNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxcbi1cXHRcXHRcXHRcXHRcXHQgY2FwYWJpbGl0eS5lc3dfY2FwLmVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcik7XFxuK1xcdFxcdFxcdFxcdFxcdCBjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXIpO1xcbiBcXG4gXFx0XFx0Y2Fwcy1cXHUwMDNlbWVyZ2VkX2Vzd2l0Y2ggPSBNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxcbi1cXHRcXHRcXHRcXHRcXHRcXHRjYXBhYmlsaXR5LmVzd19jYXAubWVyZ2VkX2Vzd2l0Y2gpO1xcbitcXHRcXHRcXHRcXHRcXHRcXHRjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5tZXJnZWRfZXN3aXRjaCk7XFxuIFxcdH1cXG4gXFxuIFxcdHJldCA9IG1seDVfY21kX2V4ZWMobWRldiwgaW4sIHNpemVvZihpbiksIG91dCwgb3V0X3NpemUpO1xcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmhcXG5pbmRleCAwN2EyNWYyNjQyOTIxMy4uOGNiMzIxYTlmYjNkMWQgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oXFxuKysrIGIvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oXFxuQEAgLTExNzEsNiArMTE3MSw3IEBAIGVudW0ge1xcbiBcXHRNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU18zXFx0PSAxIFxcdTAwM2NcXHUwMDNjIDQsXFxuIFxcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzRcXHQ9IDEgXFx1MDAzY1xcdTAwM2MgNSxcXG4gXFx0TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNVxcdD0gMSBcXHUwMDNjXFx1MDAzYyA2LFxcbitcXHRNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU182XFx0PSAxIFxcdTAwM2NcXHUwMDNjIDcsXFxuIH07XFxuIFxcbiBlbnVtIHtcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmggYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaFxcbmluZGV4IDRmNTliN2U4YTNkNWQ2Li5jZjAxOTIyY2Y2OWZkYiAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oXFxuQEAgLTUwOCw3ICs1MDgsOCBAQCBzdHJ1Y3QgbWx4NV9pZmNfZmxvd190YWJsZV9wcm9wX2xheW91dF9iaXRzIHtcXG4gXFx0dTggICAgICAgICByZWZvcm1hdF9sMl90b19sM19hdWRwX3R1bm5lbFsweDFdO1xcbiBcXHR1OCAgICAgICAgIHJlZm9ybWF0X2wzX2F1ZHBfdHVubmVsX3RvX2wyWzB4MV07XFxuIFxcdHU4ICAgICAgICAgaWdub3JlX2Zsb3dfbGV2ZWxfcnRjX3ZhbGlkWzB4MV07XFxuLVxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNzBbMHg4XTtcXG4rXFx0dTggICAgICAgICByZXNlcnZlZF9hdF83MFsweDddO1xcbitcXHR1OCAgICAgICAgIHJlZm9ybWF0X2RlbF9wc3BfdHJhbnNwb3J0WzB4MV07XFxuIFxcdHU4ICAgICAgICAgbG9nX21heF9mdF9udW1bMHg4XTtcXG4gXFxuIFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfODBbMHgxMF07XFxuQEAgLTc5OCw2ICs3OTksMTUgQEAgc3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzVfYml0cyB7XFxuIFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMTAwWzB4MTAwXTtcXG4gfTtcXG4gXFxuK3N0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfc2V0X21pc2M2X2JpdHMge1xcbitcXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzBbMHgxYV07XFxuK1xcdHU4ICAgICAgICAgcHNwX3ZlcnNpb25bMHg0XTtcXG4rXFx0dTggICAgICAgICByZXNlcnZlZF9hdF8xZVsweDJdO1xcbitcXG4rXFx0dTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDFlMF07XFxuK307XFxuK1xcbitcXG4gc3RydWN0IG1seDVfaWZjX2NtZF9wYXNfYml0cyB7XFxuIFxcdHU4ICAgICAgICAgcGFfaFsweDIwXTtcXG4gXFxuQEAgLTEwNDIsMjAgKzEwNTIsNiBAQCBzdHJ1Y3QgbWx4NV9pZmNfd3FlX2Jhc2VkX2Zsb3dfdGFibGVfY2FwX2JpdHMge1xcbiBcXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzFjMVsweDFmXTtcXG4gfTtcXG4gXFxuLXN0cnVjdCBtbHg1X2lmY19lc3dfY2FwX2JpdHMge1xcbi1cXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzBbMHgxZF07XFxuLVxcdHU4ICAgICAgICAgbWVyZ2VkX2Vzd2l0Y2hbMHgxXTtcXG4tXFx0dTggICAgICAgICByZXNlcnZlZF9hdF8xZVsweDJdO1xcbi1cXG4tXFx0dTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDQwXTtcXG4tXFxuLVxcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XFxuLVxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNjFbMHhmXTtcXG4tXFx0dTggICAgICAgICBlc3dfbWFuYWdlcl92cG9ydF9udW1iZXJbMHgxMF07XFxuLVxcbi1cXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzgwWzB4NzgwXTtcXG4tfTtcXG4tXFxuIGVudW0ge1xcbiBcXHRNTFg1X0NPVU5URVJfU09VUkNFX0VTV0lUQ0ggPSAweDAsXFxuIFxcdE1MWDVfQ09VTlRFUl9GTE9XX0VTV0lUQ0ggICA9IDB4MSxcXG5AQCAtMTA5Niw3ICsxMDkyLDExIEBAIHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7XFxuIFxcdHU4ICAgICAgICAgbG9nX21heF9lc3dfc2ZbMHg1XTtcXG4gXFx0dTggICAgICAgICBlc3dfc2ZfYmFzZV9pZFsweDEwXTtcXG4gXFxuLVxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNjBbMHg3YTBdO1xcbitcXHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcl92YWxpZFsweDFdO1xcbitcXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07XFxuK1xcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyWzB4MTBdO1xcbitcXG4rXFx0dTggICAgICAgICByZXNlcnZlZF9hdF84MFsweDc4MF07XFxuIFxcbiB9O1xcbiBcXG5AQCAtMjM0OSw3ICsyMzQ5LDcgQEAgc3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9wYXJhbV9iaXRzIHtcXG4gXFxuIFxcdHN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfc2V0X21pc2M1X2JpdHMgbWlzY19wYXJhbWV0ZXJzXzU7XFxuIFxcbi1cXHR1OCAgICAgICAgIHJlc2VydmVkX2F0X2UwMFsweDIwMF07XFxuK1xcdHN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfc2V0X21pc2M2X2JpdHMgbWlzY19wYXJhbWV0ZXJzXzY7XFxuIH07XFxuIFxcbiBlbnVtIHtcXG5AQCAtMzg1NSw3ICszODU1LDYgQEAgdW5pb24gbWx4NV9pZmNfaGNhX2NhcF91bmlvbl9iaXRzIHtcXG4gXFx0c3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfbmljX2NhcF9iaXRzIGZsb3dfdGFibGVfbmljX2NhcDtcXG4gXFx0c3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfZXN3aXRjaF9jYXBfYml0cyBmbG93X3RhYmxlX2Vzd2l0Y2hfY2FwO1xcbiBcXHRzdHJ1Y3QgbWx4NV9pZmNfd3FlX2Jhc2VkX2Zsb3dfdGFibGVfY2FwX2JpdHMgd3FlX2Jhc2VkX2Zsb3dfdGFibGVfY2FwO1xcbi1cXHRzdHJ1Y3QgbWx4NV9pZmNfZXN3X2NhcF9iaXRzIGVzd19jYXA7XFxuIFxcdHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyBlX3N3aXRjaF9jYXA7XFxuIFxcdHN0cnVjdCBtbHg1X2lmY19wb3J0X3NlbGVjdGlvbl9jYXBfYml0cyBwb3J0X3NlbGVjdGlvbl9jYXA7XFxuIFxcdHN0cnVjdCBtbHg1X2lmY19xb3NfY2FwX2JpdHMgcW9zX2NhcDtcXG5AQCAtNjk5NSw2ICs2OTk0LDcgQEAgZW51bSB7XFxuIFxcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzMgPSAweDQsXFxuIFxcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzQgPSAweDUsXFxuIFxcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzUgPSAweDYsXFxuK1xcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzYgPSAweDcsXFxuIH07XFxuIFxcbiBzdHJ1Y3QgbWx4NV9pZmNfcXVlcnlfZmxvd19ncm91cF9vdXRfYml0cyB7XFxuQEAgLTcyNTYsNiArNzI1Niw3IEBAIGVudW0gbWx4NV9yZWZvcm1hdF9jdHhfdHlwZSB7XFxuIFxcdE1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfSERSID0gMHgxMCxcXG4gXFx0TUxYNV9SRUZPUk1BVF9UWVBFX0FERF9NQUNTRUMgPSAweDExLFxcbiBcXHRNTFg1X1JFRk9STUFUX1RZUEVfREVMX01BQ1NFQyA9IDB4MTIsXFxuK1xcdE1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCA9IDB4MTYsXFxuIH07XFxuIFxcbiBzdHJ1Y3QgbWx4NV9pZmNfYWxsb2NfcGFja2V0X3JlZm9ybWF0X2NvbnRleHRfaW5fYml0cyB7XFxuQEAgLTczNzksNiArNzM4MCw3IEBAIGVudW0ge1xcbiBcXHRNTFg1X0FDVElPTl9JTl9GSUVMRF9PVVRfRU1EXzQ3XzMyICAgICA9IDB4NkYsXFxuIFxcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX09VVF9FTURfMzFfMCAgICAgID0gMHg3MCxcXG4gXFx0TUxYNV9BQ1RJT05fSU5fRklFTERfUFNQX1NZTkRST01FICAgICAgPSAweDcxLFxcbitcXHRNTFg1X0FDVElPTl9JTl9GSUVMRF9QU1BfSEVBREVSXzEgICAgICA9IDB4NzgsXFxuIH07XFxuIFxcbiBzdHJ1Y3QgbWx4NV9pZmNfYWxsb2NfbW9kaWZ5X2hlYWRlcl9jb250ZXh0X291dF9iaXRzIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6Mzk6NDguODYyMzIwODA4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTczODcwMDI4NzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUxYNV9DT1JFXCIsXG4gICAgXCJNTFg1X0NPUkVfRU5cIixcbiAgICBcIk1MWDVfRVNXSVRDSFwiLFxuICAgIFwiTUxYNV9TV19TVEVFUklOR1wiLFxuICAgIFwiTUxYNV9IV19TVEVFUklOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1seDVfYWRkX2Zsb3dfcnVsZXNcIixcbiAgICBcIm1seDVod3NfY21kX3F1ZXJ5X2NhcHNcIixcbiAgICBcIm1seDVkcl9md19jcmVhdGVfbWRfdGJsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHNpemUgb2YgYGZ0ZV9tYXRjaF9wYXJhbWAgdXNlZCBpbiBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgbWFjcm8sIHdoaWNoIGFmZmVjdHMgdGhlIHNpemUgb2YgYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2Agc3RydWN0cyBhbmQgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIGluIGBjaGVja192YWxpZF9zcGVjYC4gSXQgYWxzbyBtb2RpZmllcyBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AgdG8gcmVhZCBmcm9tIGBlX3N3aXRjaF9jYXBgIGluc3RlYWQgb2YgYGVzd19jYXBgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBtbHg1IGRyaXZlcidzIGZsb3cgc3RlZXJpbmcgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMDJiZGZlYjljNGU4NTMyMzcxYjc1ZTdjYzA1ODczMjMyNjMyODk0Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDEzIDExOjM5OjQ2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbmluZGV4IGRiYWYzM2I1MzdmNzExLi45MDY1ODQzNDVhMDIyZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmhcbkBAIC0yMTQsMTcgKzIxNCw3IEBAIHN0cnVjdCBtbHg1X2Z0X3VuZGVybGF5X3FwIHtcbiBcdHUzMiBxcG47XG4gfTtcbiBcbi0jZGVmaW5lIE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEXHRyZXNlcnZlZF9hdF9lMDBcbi0vKiBDYWxjdWxhdGUgdGhlIGZ0ZV9tYXRjaF9wYXJhbSBsZW5ndGggYW5kIHdpdGhvdXQgdGhlIHJlc2VydmVkIGxlbmd0aC5cbi0gKiBNYWtlIHN1cmUgdGhlIHJlc2VydmVkIGZpZWxkIGlzIHRoZSBsYXN0LlxuLSAqL1xuLSNkZWZpbmUgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTVx0XHRcdFx0XHQgICAgXFxcbi1cdCgoTUxYNV9CWVRFX09GRihmdGVfbWF0Y2hfcGFyYW0sIE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSAvIHNpemVvZih1MzIpKSArIFxcXG4tXHQgQlVJTERfQlVHX09OX1pFUk8oTUxYNV9TVF9TWl9CWVRFUyhmdGVfbWF0Y2hfcGFyYW0pICE9XHRcdCAgICAgXFxcbi1cdFx0XHQgICBNTFg1X0ZMRF9TWl9CWVRFUyhmdGVfbWF0Y2hfcGFyYW0sXHRcdCAgICAgXFxcbi1cdFx0XHRcdFx0ICAgICBNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRCkgK1xcXG4tXHRcdFx0ICAgTUxYNV9CWVRFX09GRihmdGVfbWF0Y2hfcGFyYW0sXHRcdCAgICAgXFxcbi1cdFx0XHRcdFx0IE1MWDVfRlRFX01BVENIX1BBUkFNX1JFU0VSVkVEKSkpXG4rI2RlZmluZSBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNIE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKVxuIFxuIHN0cnVjdCBmc19mdGVfYWN0aW9uIHtcbiBcdGludFx0XHRcdFx0bW9kaWZ5X21hc2s7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmNcbmluZGV4IGU2MjRmNWRhOTZjODFiLi44ZmFlOTAxMDE2NTNmOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmNcbkBAIC0xMTcyLDEzICsxMTcyLDEzIEBAIGludCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxuIFx0XHR9XG4gXG4gXHRcdGlmIChNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxuLVx0XHRcdCAgICAgY2FwYWJpbGl0eS5lc3dfY2FwLmVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcl92YWxpZCkpXG4rXHRcdFx0ICAgICBjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXJfdmFsaWQpKVxuIFx0XHRcdGNhcHMtXHUwMDNlZXN3aXRjaF9tYW5hZ2VyX3Zwb3J0X251bWJlciA9XG4gXHRcdFx0XHRNTFg1X0dFVChxdWVyeV9oY2FfY2FwX291dCwgb3V0LFxuLVx0XHRcdFx0XHQgY2FwYWJpbGl0eS5lc3dfY2FwLmVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcik7XG4rXHRcdFx0XHRcdCBjYXBhYmlsaXR5LmVfc3dpdGNoX2NhcC5lc3dfbWFuYWdlcl92cG9ydF9udW1iZXIpO1xuIFxuIFx0XHRjYXBzLVx1MDAzZW1lcmdlZF9lc3dpdGNoID0gTUxYNV9HRVQocXVlcnlfaGNhX2NhcF9vdXQsIG91dCxcbi1cdFx0XHRcdFx0XHRjYXBhYmlsaXR5LmVzd19jYXAubWVyZ2VkX2Vzd2l0Y2gpO1xuK1x0XHRcdFx0XHRcdGNhcGFiaWxpdHkuZV9zd2l0Y2hfY2FwLm1lcmdlZF9lc3dpdGNoKTtcbiBcdH1cbiBcbiBcdHJldCA9IG1seDVfY21kX2V4ZWMobWRldiwgaW4sIHNpemVvZihpbiksIG91dCwgb3V0X3NpemUpO1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaFxuaW5kZXggMDdhMjVmMjY0MjkyMTMuLjhjYjMyMWE5ZmIzZDFkIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmhcbkBAIC0xMTcxLDYgKzExNzEsNyBAQCBlbnVtIHtcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzNcdD0gMSBcdTAwM2NcdTAwM2MgNCxcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzRcdD0gMSBcdTAwM2NcdTAwM2MgNSxcbiBcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzVcdD0gMSBcdTAwM2NcdTAwM2MgNixcbitcdE1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzZcdD0gMSBcdTAwM2NcdTAwM2MgNyxcbiB9O1xuIFxuIGVudW0ge1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oIGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhcbmluZGV4IDRmNTliN2U4YTNkNWQ2Li5jZjAxOTIyY2Y2OWZkYiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaFxuQEAgLTUwOCw3ICs1MDgsOCBAQCBzdHJ1Y3QgbWx4NV9pZmNfZmxvd190YWJsZV9wcm9wX2xheW91dF9iaXRzIHtcbiBcdHU4ICAgICAgICAgcmVmb3JtYXRfbDJfdG9fbDNfYXVkcF90dW5uZWxbMHgxXTtcbiBcdHU4ICAgICAgICAgcmVmb3JtYXRfbDNfYXVkcF90dW5uZWxfdG9fbDJbMHgxXTtcbiBcdHU4ICAgICAgICAgaWdub3JlX2Zsb3dfbGV2ZWxfcnRjX3ZhbGlkWzB4MV07XG4tXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzcwWzB4OF07XG4rXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzcwWzB4N107XG4rXHR1OCAgICAgICAgIHJlZm9ybWF0X2RlbF9wc3BfdHJhbnNwb3J0WzB4MV07XG4gXHR1OCAgICAgICAgIGxvZ19tYXhfZnRfbnVtWzB4OF07XG4gXG4gXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzgwWzB4MTBdO1xuQEAgLTc5OCw2ICs3OTksMTUgQEAgc3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzVfYml0cyB7XG4gXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzEwMFsweDEwMF07XG4gfTtcbiBcbitzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNl9iaXRzIHtcbitcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMFsweDFhXTtcbitcdHU4ICAgICAgICAgcHNwX3ZlcnNpb25bMHg0XTtcbitcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWVbMHgyXTtcbitcbitcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMjBbMHgxZTBdO1xuK307XG4rXG4rXG4gc3RydWN0IG1seDVfaWZjX2NtZF9wYXNfYml0cyB7XG4gXHR1OCAgICAgICAgIHBhX2hbMHgyMF07XG4gXG5AQCAtMTA0MiwyMCArMTA1Miw2IEBAIHN0cnVjdCBtbHg1X2lmY193cWVfYmFzZWRfZmxvd190YWJsZV9jYXBfYml0cyB7XG4gXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzFjMVsweDFmXTtcbiB9O1xuIFxuLXN0cnVjdCBtbHg1X2lmY19lc3dfY2FwX2JpdHMge1xuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8wWzB4MWRdO1xuLVx0dTggICAgICAgICBtZXJnZWRfZXN3aXRjaFsweDFdO1xuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8xZVsweDJdO1xuLVxuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF8yMFsweDQwXTtcbi1cbi1cdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XG4tXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07XG4tXHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlclsweDEwXTtcbi1cbi1cdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfODBbMHg3ODBdO1xuLX07XG4tXG4gZW51bSB7XG4gXHRNTFg1X0NPVU5URVJfU09VUkNFX0VTV0lUQ0ggPSAweDAsXG4gXHRNTFg1X0NPVU5URVJfRkxPV19FU1dJVENIICAgPSAweDEsXG5AQCAtMTA5Niw3ICsxMDkyLDExIEBAIHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7XG4gXHR1OCAgICAgICAgIGxvZ19tYXhfZXN3X3NmWzB4NV07XG4gXHR1OCAgICAgICAgIGVzd19zZl9iYXNlX2lkWzB4MTBdO1xuIFxuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF82MFsweDdhMF07XG4rXHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlcl92YWxpZFsweDFdO1xuK1x0dTggICAgICAgICByZXNlcnZlZF9hdF82MVsweGZdO1xuK1x0dTggICAgICAgICBlc3dfbWFuYWdlcl92cG9ydF9udW1iZXJbMHgxMF07XG4rXG4rXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzgwWzB4NzgwXTtcbiBcbiB9O1xuIFxuQEAgLTIzNDksNyArMjM0OSw3IEBAIHN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfcGFyYW1fYml0cyB7XG4gXG4gXHRzdHJ1Y3QgbWx4NV9pZmNfZnRlX21hdGNoX3NldF9taXNjNV9iaXRzIG1pc2NfcGFyYW1ldGVyc181O1xuIFxuLVx0dTggICAgICAgICByZXNlcnZlZF9hdF9lMDBbMHgyMDBdO1xuK1x0c3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzZfYml0cyBtaXNjX3BhcmFtZXRlcnNfNjtcbiB9O1xuIFxuIGVudW0ge1xuQEAgLTM4NTUsNyArMzg1NSw2IEBAIHVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0cyB7XG4gXHRzdHJ1Y3QgbWx4NV9pZmNfZmxvd190YWJsZV9uaWNfY2FwX2JpdHMgZmxvd190YWJsZV9uaWNfY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX2Zsb3dfdGFibGVfZXN3aXRjaF9jYXBfYml0cyBmbG93X3RhYmxlX2Vzd2l0Y2hfY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX3dxZV9iYXNlZF9mbG93X3RhYmxlX2NhcF9iaXRzIHdxZV9iYXNlZF9mbG93X3RhYmxlX2NhcDtcbi1cdHN0cnVjdCBtbHg1X2lmY19lc3dfY2FwX2JpdHMgZXN3X2NhcDtcbiBcdHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyBlX3N3aXRjaF9jYXA7XG4gXHRzdHJ1Y3QgbWx4NV9pZmNfcG9ydF9zZWxlY3Rpb25fY2FwX2JpdHMgcG9ydF9zZWxlY3Rpb25fY2FwO1xuIFx0c3RydWN0IG1seDVfaWZjX3Fvc19jYXBfYml0cyBxb3NfY2FwO1xuQEAgLTY5OTUsNiArNjk5NCw3IEBAIGVudW0ge1xuIFx0TUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfMyA9IDB4NCxcbiBcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzQgPSAweDUsXG4gXHRNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU181ID0gMHg2LFxuK1x0TUxYNV9RVUVSWV9GTE9XX0dST1VQX0lOX01BVENIX0NSSVRFUklBX0VOQUJMRV9NSVNDX1BBUkFNRVRFUlNfNiA9IDB4NyxcbiB9O1xuIFxuIHN0cnVjdCBtbHg1X2lmY19xdWVyeV9mbG93X2dyb3VwX291dF9iaXRzIHtcbkBAIC03MjU2LDYgKzcyNTYsNyBAQCBlbnVtIG1seDVfcmVmb3JtYXRfY3R4X3R5cGUge1xuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX1JFTU9WRV9IRFIgPSAweDEwLFxuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX0FERF9NQUNTRUMgPSAweDExLFxuIFx0TUxYNV9SRUZPUk1BVF9UWVBFX0RFTF9NQUNTRUMgPSAweDEyLFxuK1x0TUxYNV9SRUZPUk1BVF9UWVBFX1JFTU9WRV9QU1BfVFJBTlNQT1JUID0gMHgxNixcbiB9O1xuIFxuIHN0cnVjdCBtbHg1X2lmY19hbGxvY19wYWNrZXRfcmVmb3JtYXRfY29udGV4dF9pbl9iaXRzIHtcbkBAIC03Mzc5LDYgKzczODAsNyBAQCBlbnVtIHtcbiBcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX09VVF9FTURfNDdfMzIgICAgID0gMHg2RixcbiBcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX09VVF9FTURfMzFfMCAgICAgID0gMHg3MCxcbiBcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX1BTUF9TWU5EUk9NRSAgICAgID0gMHg3MSxcbitcdE1MWDVfQUNUSU9OX0lOX0ZJRUxEX1BTUF9IRUFERVJfMSAgICAgID0gMHg3OCxcbiB9O1xuIFxuIHN0cnVjdCBtbHg1X2lmY19hbGxvY19tb2RpZnlfaGVhZGVyX2NvbnRleHRfb3V0X2JpdHMge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6Mzk6NDguODYyMzIyNjM4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA4MDg1ODIwOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBtbHg1IERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBNZWxsYW5veCBtbHg1IGRyaXZlciwgYW5kIGl0IHNlZW1zIGxpa2UgYSB0YXJnZXRlZCBtb2RpZmljYXRpb24uIFByaW1hcmlseSwgaXQncyBkZWFsaW5nIHdpdGggc29tZSBoZWFkZXIgZmlsZSB1cGRhdGVzIGFuZCBhIG1pbm9yIGNvZGUgYWRqdXN0bWVudC4gSSdtIHNlZWluZyBjaGFuZ2VzIGluIGBmc19jb3JlLmhgLCBgY21kLmNgLCBgZGV2aWNlLmhgLCBhbmQgYG1seDVfaWZjLmhgLiBUaGUgY2hhbmdlcyBpbiBgZnNfY29yZS5oYCBpbnZvbHZlIGFsdGVyaW5nIHRoZSBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAgbWFjcm8uIEluIGBjbWQuY2AsIHRoZXJlJ3MgYSBzdHJhaWdodGZvcndhcmQgcmVuYW1lOiBgZXN3X2NhcGAgaXMgbm93IGBlX3N3aXRjaF9jYXBgIHdpdGhpbiBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AuIEkndmUgbm90aWNlZCBuZXcgYWRkaXRpb25zIG9mIGBNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU182YCBpbiBgZGV2aWNlLmhgIGFuZCBhIHNlcmllcyBvZiBhZGRpdGlvbnMsIHJlbW92YWxzLCBhbmQgcmUtb3JncyBpbiBgbWx4NV9pZmMuaGAsIGluY2x1ZGluZyBuZXcgZnVuY3Rpb25zIGxpa2UgYHJlZm9ybWF0X2RlbF9wc3BfdHJhbnNwb3J0YCBhbmQgdXBkYXRlcyByZWxhdGVkIHRvIGBlc3dfY2FwYCBhbmQgYGVfc3dpdGNoX2NhcGAgYXMgd2VsbCBhcyBhZGRpdGlvbnMgcmVsYXRlZCB0byBgbWlzY19wYXJhbWV0ZXJzXzZgLlxuXG5UaGUgZ2lzdCBvZiBpdCBzZWVtcyB0byBiZSBhcm91bmQgaW50cm9kdWNpbmcgbmV3IGhhcmR3YXJlIGNhcGFiaWxpdGllcyBvciBmaWVsZHMgcmVsYXRlZCB0byBQU1AsIGxpa2VseSBJUHNlYy4gUGx1cywgaXQgYXBwZWFycyB0aGV5J3JlIHJlb3JnYW5pemluZyBzb21lIGZpZWxkcywgc3BlY2lmaWNhbGx5IG1vdmluZyBmcm9tIGBlc3dfY2FwYCB0byBgZV9zd2l0Y2hfY2FwYC4gVGhlIG9ubHkgYWN0dWFsIGNvZGUgY2hhbmdlIEkndmUgc3BvdHRlZCBzbyBmYXIgaXMgaW4gYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgLCB3aGVyZSBpdCdzIG5vdyByZWFkaW5nIGZyb20gYGNhcGFiaWxpdHkuZV9zd2l0Y2hfY2FwYCBpbnN0ZWFkIG9mIHRoZSBvbGQgYGNhcGFiaWxpdHkuZXN3X2NhcGAuIFRoYXQncyBlc3NlbnRpYWxseSBhIG5hbWUgY2hhbmdlLCBidXQgaXQgbmVlZHMgdmVyaWZpY2F0aW9uLlxuXG5BbHJpZ2h0LCBsZXQncyB6b29tIGluIG9uIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYC4gTG9va3MgbGlrZSB0aGUgcGF0Y2ggZXNzZW50aWFsbHkgcmVuYW1lcyB0aGUgZmllbGRzIGluIHRoZSBzdHJ1Y3QgYW5kIHVwZGF0ZXMgdGhlIG1hY3Jvcy9jb2RlIHRvIHVzZSB0aGUgbmV3IG5hbWVzLiBBbmQsIGFkZHMgc29tZSBuZXcgZW51bXMgYW5kIHN0cnVjdHMgdGhhdCBhcmVuJ3QgYWN0dWFsbHkgdXNlZCBieSB0aGlzIHBhdGNoLiBTbywgdGhlIHF1ZXN0aW9uIGJlY29tZXMsIGlzIHRoZXJlIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaGFwcGVuaW5nIGhlcmU/XG5cbkxldCdzIGRyaWxsIGRvd24gaW50byB0aGF0IGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBtYWNyby4gUHJldmlvdXNseSwgaXQgaGFkIHRoaXMgY29tcGxleCBjYWxjdWxhdGlvbiwgYW5kIG5vdyBpdCdzIHNpbXBsaWZpZWQgdG8gYE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKWAuIE5vdywgdGhhdCdzIGp1c3QgdGhlIHNpemUgaW4gZHdvcmRzIG9mIGBmdGVfbWF0Y2hfcGFyYW1gLiBQcmV2aW91c2x5LCB0aGUgbWFjcm8gZXhjbHVkZWQgYSByZXNlcnZlZCBwb3J0aW9uIGF0IHRoZSBlbmQgb2YgdGhlIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdC4gTm93LCB0aGF0IHJlc2VydmVkIHBvcnRpb24gKGByZXNlcnZlZF9hdF9lMDBgKSBpcyByZXBsYWNlZCBieSBgbWlzY19wYXJhbWV0ZXJzXzZgLiBTbyB3aGlsZSB0aGUgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCBzdHJ1Y3QgaXRzZWxmIG1pZ2h0IGJlIHRoZSBzYW1lLCB0aGUgd2hvbGUgc3RydWN0IGlzIG5vdyBiZWluZyB1c2VkLCBpbmNsdWRpbmcgYG1pc2NfcGFyYW1ldGVyc182YC5cblxuU28sIHdoYXQgYmVoYXZpb3IgY2hhbmdlcyBhcmUgaW1wbGllZCBieSB0aGlzPyBMb29raW5nIGF0IHRoZSBzaXplcywgdGhlIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdCBpcyAweDEwMDAgYnl0ZXMuIFByZXZpb3VzbHksIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCB3YXMgY2FsY3VsYXRlZCBhcyAweGUwMCAvIDQsIHJlc3VsdGluZyBpbiAweDM4MC4gTm93LCBpdCdzIDB4MTAwMCAvIDQsIHdoaWNoIGlzIDB4NDAwLiBFZmZlY3RpdmVseSwgdGhpcyBpbmNyZWFzZXMgdGhlIHNpemUgb2YgYGZ0ZV9tYXRjaF9wYXJhbWAgYmVpbmcgdXNlZCBpbiB0aGUgY29kZS4gSSBuZWVkIHRvIHRyYWNlIHdoZXJlIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBpcyB1c2VkIHRvIGdldCBhIGZ1bGxlciBwaWN0dXJlIG9mIHRoZSBpbXBhY3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1MDUsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MDAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTozOTo1OS42NzA5MDYyNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODE2MDYxMTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYz01MTA9c3RhdGljIGJvb2wgY2hlY2tfdmFsaWRfc3BlYyhjb25zdCBzdHJ1Y3QgbWx4NV9mbG93X3NwZWMgKnNwZWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTUxMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjUxNDpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTTsgaSsrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtNTE1LVxcdFxcdGlmIChzcGVjLVxcdTAwM2VtYXRjaF92YWx1ZVtpXSBcXHUwMDI2IH5zcGVjLVxcdTAwM2VtYXRjaF9jcml0ZXJpYVtpXSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaD0yMTI9c3RydWN0IG1seDVfZnRfdW5kZXJsYXlfcXAge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyMTc6I2RlZmluZSBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNIE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjE4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaD0yMzM9c3RydWN0IGZzX2Z0ZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTIzOC1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjM5OlxcdHUzMlxcdFxcdFxcdFxcdHZhbFtNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTI0MC1cXHRzdHJ1Y3QgZnNfZnRlX2FjdGlvblxcdFxcdGFjdF9kZXN0cztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjYzPXN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXBfbWFzayB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjQtXFx0dThcXHRtYXRjaF9jcml0ZXJpYV9lbmFibGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyNjU6XFx0dTMyXFx0bWF0Y2hfY3JpdGVyaWFbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM9NzcxPWludCBtbHg1ZHJfY21kX3NldF9mdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODUzLVxcdFxcdFxcdFxcdCAgICAgIG1hdGNoX3ZhbHVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jOjg1NDpcXHRtZW1jcHkoaW5fbWF0Y2hfdmFsdWUsIGZ0ZS1cXHUwMDNldmFsLCBzaXplb2YodTMyKSAqIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jPTEwMT1pbnQgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90Ymwoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xMTEtXFx0c3RydWN0IG1seDVkcl9jbWRfZnRlX2luZm8gZnRlX2luZm8gPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTEyOlxcdHUzMiB2YWxbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV0gPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmMtMTEzLVxcdHN0cnVjdCBtbHg1ZHJfY21kX2Z0X2luZm8gZnRfaW5mbyA9IHt9O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE5LSNkZWZpbmUgRFJfU1RFX0NWTEFOIDB4MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaDoyMDojZGVmaW5lIERSX1NaX01BVENIX1BBUkFNIChNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNICogNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX3R5cGVzLmgtMjEtI2RlZmluZSBEUl9OVU1fT0ZfRkxFWF9QQVJTRVJTIDhcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDA6MDIuNDg2OTcyNjMyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTg5NDg5MTI2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFVzZSBvZiBgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTWAqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIGlzIHV0aWxpemVkIHdpdGhpbiB0aGlzIGNvZGViYXNlLiBJdCdzIHByZXR0eSBjbGVhciB0aGF0IGl0J3MgY3J1Y2lhbCBmb3IgZGV0ZXJtaW5pbmcgYXJyYXkgc2l6ZXMgd2l0aGluIHNldmVyYWwga2V5IHN0cnVjdHVyZXM6IGBmc19mdGVgLCBgbWx4NV9mbG93X2dyb3VwX21hc2tgLCBhbmQgdmFyaW91cyBsb2NhbCBhcnJheXMuIFRoYXQncyBhIGNvbW1vbiBwYXR0ZXJuLCB1c2luZyBhIG1hY3JvIGZvciB0aGVzZSBraW5kcyBvZiBzaXppbmcgb3BlcmF0aW9ucy4gQnV0IHRoZW4gaXQgcG9wcyB1cCBhZ2FpbiBpbiBgY2hlY2tfdmFsaWRfc3BlY2AuIEFoLCByaWdodCwgdGhhdCdzIHdoZXJlIHdlIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYG1hdGNoX3ZhbHVlYCBhbmQgYG1hdGNoX2NyaXRlcmlhYCBmaWVsZHMuIEkgcmVjYWxsIHRob3NlIGFyZSBwYXJ0IG9mIGBzdHJ1Y3QgbWx4NV9mbG93X3NwZWNgLiBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUgY2hlY2sgdGhlIGRlZmluaXRpb24gb2YgdGhhdCBzdHJ1Y3Q7IGl0J3MgaW4gYGluY2x1ZGUvbGludXgvbWx4NS9mcy5oYCwgYXMgSSByZWNhbGwuIEl0IHdvdWxkIGJlIGdvb2QgdG8gY29uZmlybSBpdHMgb3ZlcmFsbCBzaXplIHdoaWxlIEknbSBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MzAxLCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQwOjEyLjM4MTg2NTQ1MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDkwNDQ2NTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBtbHg1X2Zsb3dfc3BlYyBcXFxce1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvZnMuaD0xNjQ9c3RydWN0IG1seDVfZmxvd19jb250ZXh0IHtcXG4tLVxcbmluY2x1ZGUvbGludXgvbWx4NS9mcy5oLTE2OS1cXG5pbmNsdWRlL2xpbnV4L21seDUvZnMuaDoxNzA6c3RydWN0IG1seDVfZmxvd19zcGVjIHtcXG5pbmNsdWRlL2xpbnV4L21seDUvZnMuaC0xNzEtXFx0dTggICBtYXRjaF9jcml0ZXJpYV9lbmFibGU7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQwOjE1LjQ3MjMxNzAwNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk1MjcyNzMwMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIGludG8gdGhlIG1seDUgRmlsZXN5c3RlbSBIZWFkZXIqKlxuXG5Pa2F5LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSdtIGdvaW5nIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYGluY2x1ZGUvbGludXgvbWx4NS9mcy5oYCBmaWxlLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24gYXJvdW5kIGxpbmUgMTcwLiBLbm93aW5nIHRoZSBpbnRyaWNhY2llcyBvZiB0aGlzIGZpbGUsIHRoZSBNZWxsYW5veCBkcml2ZXIncyBmaWxlc3lzdGVtIGludGVyYWN0aW9ucywgYW5kIGxpa2VseSB0aGUgY29udGV4dCBzdXJyb3VuZGluZyB0aGF0IGxpbmUgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGN1cnJlbnQgaXNzdWUgYXQgaGFuZC4gTGluZSAxNzAgbWlnaHQgaG9sZCB0aGUga2V5IGRlZmluaXRpb24sIGRhdGEgc3RydWN0dXJlLCBvciBmdW5jdGlvbiBjYWxsIHRoYXQgd2lsbCBpbGx1bWluYXRlIHRoZSByZWxldmFudCBhc3BlY3RzIG9mIHRoaXMgc2VjdGlvbi4gTGV0J3Mgc2VlIHdoYXQgd2UgY2FuIGZpbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc3NTgsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MDoyNC45OTk1OTI1NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1OTE5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvZnMuaFwiLFxuICBcIkZpcnN0TGluZVwiOiAxNjUsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxNjU6XFx0XFx0dTMyIGZsYWdzO1xcbiAxNjY6XFx0XFx0dTMyIGZsb3dfdGFnO1xcbiAxNjc6XFx0XFx0dTMyIGZsb3dfc291cmNlO1xcbiAxNjg6XFx0fTtcXG4gMTY5OlxcdFxcbiAxNzA6XFx0c3RydWN0IG1seDVfZmxvd19zcGVjIHtcXG4gMTcxOlxcdFxcdHU4ICAgbWF0Y2hfY3JpdGVyaWFfZW5hYmxlO1xcbiAxNzI6XFx0XFx0dTMyICBtYXRjaF9jcml0ZXJpYVtNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSldO1xcbiAxNzM6XFx0XFx0dTMyICBtYXRjaF92YWx1ZVtNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSldO1xcbiAxNzQ6XFx0XFx0c3RydWN0IG1seDVfZmxvd19jb250ZXh0IGZsb3dfY29udGV4dDtcXG4gMTc1OlxcdH07XFxuIDE3NjpcXHRcXG4gMTc3OlxcdGVudW0ge1xcbiAxNzg6XFx0XFx0TUxYNV9GTE9XX0RFU1RfVlBPUlRfVkhDQV9JRCAgICAgID0gQklUKDApLFxcbiAxNzk6XFx0XFx0TUxYNV9GTE9XX0RFU1RfVlBPUlRfUkVGT1JNQVRfSUQgID0gQklUKDEpLFxcbiAxODA6XFx0fTtcXG4gMTgxOlxcdFxcbiAxODI6XFx0ZW51bSBtbHg1X2Zsb3dfZGVzdF9yYW5nZV9maWVsZCB7XFxuIDE4MzpcXHRcXHRNTFg1X0ZMT1dfREVTVF9SQU5HRV9GSUVMRF9QS1RfTEVOID0gMCxcXG4gMTg0OlxcdH07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQwOjI1LjAwMDA1NTY3WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM1MDM3MDI4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgQ2hhbmdlcyBpbiBtbHg1IEZsb3cgU3BlY2lmaWNhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHN0cnVjdCBtbHg1X2Zsb3dfc3BlY2AsIGFuZCBpdCdzIHVzaW5nIGBNTFg1X1NUX1NaX0RXKGZ0ZV9tYXRjaF9wYXJhbSlgLiBJIHJlY2FsbCB0aGF0IGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCB1c2VkIHRvIGJlIHNtYWxsZXIgdGhhbiB0aGF0LCBidXQgbm93IHRoZXkncmUgaWRlbnRpY2FsLiBJbnRlcmVzdGluZy4gV2hhdCBkb2VzIHRoaXMgbWVhbiBpbiBwcmFjdGljZT8gSXQgbWVhbnMgdGhhdCB0aGUgYGNoZWNrX3ZhbGlkX3NwZWNgIGZ1bmN0aW9uIGlzIGdvaW5nIHRvIHN0YXJ0IHZhbGlkYXRpbmcgdGhlICplbnRpcmUqIGFycmF5IG5vdywgaW5zdGVhZCBvZiBza2lwcGluZyBvdmVyIHRoYXQgcmVzZXJ2ZWQgcG9ydGlvbi4gTWFrZXMgc2Vuc2UsIHRoYXQncyBhIGRpcmVjdCBjb25zZXF1ZW5jZSBvZiB0aGUgc2l6ZSBjaGFuZ2UuXG5cbkFuZCwgb2YgY291cnNlLCB0aGF0IHNpemUgY2hhbmdlIHJpcHBsZXMgb3V0d2FyZC4gYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2AgYXJlIG5vdyBiaWdnZXIsIHdoaWNoIGlzbid0IGVudGlyZWx5IHN1cnByaXNpbmcuIFRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBhICpmdW5jdGlvbmFsKiBjaGFuZ2U/IFllcywgYWJzb2x1dGVseS4gV2UncmUgdGFsa2luZyBhYm91dCBhbHRlcmF0aW9ucyB0byBzdHJ1Y3Qgc2l6ZXMsIHdoaWNoIHdpbGwgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGFuZCBob3cgdGhlIGRhdGEgaXMgbGFpZCBvdXQsIGFuZCBjaGFuZ2luZyB0aGUgbG9vcCBpdGVyYXRpb25zLiBUaGlzIGlzIGEgYmVoYXZpb3JhbCBtb2RpZmljYXRpb24uXG5cbkFuZCwgYXMgYSBzaWRlIG5vdGUsIEknbSBhbHNvIG5vdGljaW5nIHRoYXQgYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIG5vdyByZWFkcyBmcm9tIGBlX3N3aXRjaF9jYXBgIHJhdGhlciB0aGFuIGBlc3dfY2FwYC4gSSBuZWVkIHRvIHZlcmlmeSBpZiB0aGVzZSBhcmUgbG9jYXRlZCBhdCB0aGUgc2FtZSBvZmZzZXQgd2l0aGluIGB1bmlvbiBtbHg1X2lmY19oY2FfY2FwX3VuaW9uX2JpdHNgIHRvIGZ1bGx5IGdyYXNwIHRoZSBpbXBsaWNhdGlvbiwgYnV0IHRoaXMgY291bGQgYmUgYW5vdGhlciBpbXBvcnRhbnQgY2x1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODMwMCwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQwOjMwLjM1MDQyOTAwNVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU2MDg5ODIxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMgZV9zd2l0Y2hfY2FwO1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD0zODQ4PXVuaW9uIG1seDVfaWZjX2hjYV9jYXBfdW5pb25fYml0cyB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC0zODU3LVxcdHN0cnVjdCBtbHg1X2lmY193cWVfYmFzZWRfZmxvd190YWJsZV9jYXBfYml0cyB3cWVfYmFzZWRfZmxvd190YWJsZV9jYXA7XFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6Mzg1ODpcXHRzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMgZV9zd2l0Y2hfY2FwO1xcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTM4NTktXFx0c3RydWN0IG1seDVfaWZjX3BvcnRfc2VsZWN0aW9uX2NhcF9iaXRzIHBvcnRfc2VsZWN0aW9uX2NhcDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDA6MzIuOTExMzM4Njc2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMTQyMjIxMDU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6NzkwNSwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDA6NDQuMDUzNTYyNjg0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTQ1NzgyOTc4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oPTExNjY9ZW51bSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgtMTE3My1cXHRNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU181XFx0PSAxIFxcdTAwM2NcXHUwMDNjIDYsXFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oOjExNzQ6XFx0TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNlxcdD0gMSBcXHUwMDNjXFx1MDAzYyA3LFxcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaC0xMTc1LX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQwOjQ3Ljk5OTM1NjYwMloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjE2MjUwOTk0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjgwNTgsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQxOjAwLjE2MTg2OTE5M1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjc1NzQyNjk5NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg9NzIzOT1lbnVtIG1seDVfcmVmb3JtYXRfY3R4X3R5cGUge1xcbi0tXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI1OC1cXHRNTFg1X1JFRk9STUFUX1RZUEVfREVMX01BQ1NFQyA9IDB4MTIsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6NzI1OTpcXHRNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlQgPSAweDE2LFxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTcyNjAtfTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDE6MDIuOTE5MzA2NloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDc4ODEzOTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgSW1wYWN0IG9mIFJlY2VudCBDb2RlIENoYW5nZXMqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIHNlZW1zIHByaW1hcmlseSBmb2N1c2VkIG9uIGFkZGluZyBzb21lIG5ldyBmaWVsZHMgYW5kIHR3ZWFraW5nIHRoZSBzaXplIG9mIGEgc3RydWN0dXJlLiBUaGUgaW5pdGlhbCBxdWVzdGlvbiBJIGhhdmUgaXMsIFwiSXMgdGhpcyBldmVuIHdvcnRoIGRlZGljYXRpbmcgZnV6emluZyByZXNvdXJjZXMgdG8/XCIgVGhlIHN0cnVjdCBzaXplIG1vZGlmaWNhdGlvbiBpcyB0aGUga2V5IHBvaW50IGhlcmUuIEl0IGFmZmVjdHMgYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoZXJlIGlzIGBmc19mdGVgIGFsbG9jYXRlZD8gVGhhdCdzIHRoZSBjcml0aWNhbCBwaWVjZS5cIiBJIGtub3cgYGZzX2Z0ZWAgaXMgYWxsb2NhdGVkIHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuY2AuIFRoZXJlZm9yZSwgbXkgbmV4dCBzdGVwIGlzIGNsZWFyLiBJIG5lZWQgdG8gZGl2ZSBpbnRvIGBmc19jb3JlLmNgIGFuZCBzcGVjaWZpY2FsbHkgZXhhbWluZSB0aGUgYWxsb2NhdGlvbiBhbmQgdXNhZ2Ugb2YgYGZzX2Z0ZWAgdG8gdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiB0aGlzIHN0cnVjdCBzaXplIGNoYW5nZSBhbmQgaG93IGl0IG1heSBpbXBhY3QgZnV6emluZyBzdHJhdGVnaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NDA0LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDE6MDkuOTk4MTIzMjM2WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTAwMjc3OTk2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhbGxvYy4qZnNfZnRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MToxMi44OTg0MTE2MTJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjU2MDEwMzg3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjk3MTYsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQxOjE5LjQ1ODUxODcwN1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgzMDQ0MDkzMCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia21hbGxvYy4qZnNfZnRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MToyMi4yODg5NjcyMDdaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA3ODAxMzU0MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjo5NzUwLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MTozMy4wNjkxMDQ3MDlaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MTY3NjQ2NDYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt6YWxsb2MuKmZzX2Z0ZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDE6MzUuNzg1ODc3MTE1WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMzM3MDMwODAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6ODUyNywiT3V0cHV0VG9rZW5zIjoxNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDE6NDcuMTIyOTEwODg2WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzQ5NDY5NTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFsbG9jX2Z0ZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jPTgyMD1zdGF0aWMgaW50IGluc2VydF9mdGUoc3RydWN0IG1seDVfZmxvd19ncm91cCAqZmcsIHN0cnVjdCBmc19mdGUgKmZ0ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtODUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmM6ODUxOnN0YXRpYyBzdHJ1Y3QgZnNfZnRlICphbGxvY19mdGUoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy04NTItXFx0XFx0XFx0XFx0Y29uc3Qgc3RydWN0IG1seDVfZmxvd19zcGVjICpzcGVjLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYz0yMjE3PXRyeV9hZGRfdG9fZXhpc3RpbmdfZmcoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTIyMzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYzoyMjM2OlxcdGZ0ZSA9IGFsbG9jX2Z0ZShmdCwgc3BlYywgZmxvd19hY3QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtMjIzNy1cXHRpZiAoSVNfRVJSKGZ0ZSkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jPTIzMjY9X21seDVfYWRkX2Zsb3dfcnVsZXMoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTIzOTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYzoyMzk5OlxcdGZ0ZSA9IGFsbG9jX2Z0ZShmdCwgc3BlYywgZmxvd19hY3QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtMjQwMC1cXHRpZiAoSVNfRVJSKGZ0ZSkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtMjQwMi1cXHRcXHRlcnIgPSBQVFJfRVJSKGZ0ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYzoyNDAzOlxcdFxcdGdvdG8gZXJyX2FsbG9jX2Z0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTI0MDQtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYy0yNDI4LVxcdGttZW1fY2FjaGVfZnJlZShzdGVlcmluZy1cXHUwMDNlZnRlc19jYWNoZSwgZnRlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjI0Mjk6ZXJyX2FsbG9jX2Z0ZTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTI0MzAtXFx0dHJlZV9wdXRfbm9kZShcXHUwMDI2Zy1cXHUwMDNlbm9kZSwgZmFsc2UpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MTo0OS44NzIzODU5MjNaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTQxOTAwMDQ4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUmVjZW50IENoYW5nZXMgaW4gdGhlIGBtbHg1YCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoZXNlIHJlY2VudCBtb2RpZmljYXRpb25zLCBzcGVjaWZpY2FsbHkgYXJvdW5kIHRoZSBgZnNfZnRlYCBzdHJ1Y3R1cmUuIEl0IGxvb2tzIGxpa2UgYGZzX2Z0ZWAgaXMgbm93IGJlaW5nIGFsbG9jYXRlZCBmcm9tIGEgYGttZW1fY2FjaGVgIGNhbGxlZCBgZnRlc19jYWNoZWAuIFRoZSBzaXplIGhhcyBiZWVuIGJ1bXBlZCB1cCBieSA1MTIgYnl0ZXMg4oCTIHRoYXQncyBhIHNpZ25pZmljYW50IGNoYW5nZSwgMTI4IHUzMnMuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzdWJzdGFudGlhbCBvbmUgYXQgdGhhdC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5LlxuXG5UaGVuIHRoZXJlJ3MgdGhpcyBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AgZnVuY3Rpb24uIEl0IHNlZW1zIHRvIGJlIHJlYWRpbmcgZnJvbSBgZV9zd2l0Y2hfY2FwYCBub3csIGluc3RlYWQgb2YgYGVzd19jYXBgLiBUaGF0IGltbWVkaWF0ZWx5IG1ha2VzIG1lIHdvbmRlciBpZiB0aGVzZSBhcmUgYXQgdGhlIHNhbWUgb2Zmc2V0LiBMZXQgbWUgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhhdC4uLiB3YWl0IGEgc2Vjb25kLi4uIGxvb2tzIGxpa2UgYGVzd19jYXBgIHdhcyByZW1vdmVkIGZyb20gdGhhdCBgdW5pb24gbWx4NV9pZmNfaGNhX2NhcF91bmlvbl9iaXRzYCBpbiBgaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhgLiBBbmQgYGVfc3dpdGNoX2NhcGAgd2FzIGFscmVhZHkgcHJlc2VudC4gT2theSwgc28gdGhhdCBleHBsYWlucyB0aGF0IGNoYW5nZS4gVG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgZ28gYmFjayB0byBgaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhgIGFuZCBqdXN0IGRvIGEgcXVpY2sgc2NhbiBmb3IgYm90aCBgZXN3X2NhcGAgYW5kIGBlX3N3aXRjaF9jYXBgLiBJIG5lZWQgdG8gZW5zdXJlIHRoZXJlIGFyZSBubyBvdGhlciBwbGFjZXMgd2hlcmUgdGhpcyBzaGlmdCBtaWdodCBjYXVzZSBhIHByb2JsZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwNTMxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQxOjU5LjI5MTM4ODYxN1oiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgxODk0NDU2MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMgXFxcXHtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg9MTA1NT1lbnVtIHtcXG4tLVxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTEwNTktXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6MTA2MDpzdHJ1Y3QgbWx4NV9pZmNfZV9zd2l0Y2hfY2FwX2JpdHMge1xcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTEwNjEtXFx0dTggICAgICAgICB2cG9ydF9zdmxhbl9zdHJpcFsweDFdO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MjowMi4xMTAzMzk4NzlaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ1OTQ5MDM4MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjoxMTIyNSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDI6MTYuNzA1MjQ3MDgyWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMjYzMTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmhcIixcbiAgXCJGaXJzdExpbmVcIjogMTA1MCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTA1MDpcXHRcXG4xMDUxOlxcdFxcdHU4ICAgICAgICAgZmRiX2p1bXBfdG9fdGlyX3N0Y1sweDFdO1xcbjEwNTI6XFx0XFx0dTggICAgICAgICByZXNlcnZlZF9hdF8xYzFbMHgxZl07XFxuMTA1MzpcXHR9O1xcbjEwNTQ6XFx0XFxuMTA1NTpcXHRlbnVtIHtcXG4xMDU2OlxcdFxcdE1MWDVfQ09VTlRFUl9TT1VSQ0VfRVNXSVRDSCA9IDB4MCxcXG4xMDU3OlxcdFxcdE1MWDVfQ09VTlRFUl9GTE9XX0VTV0lUQ0ggICA9IDB4MSxcXG4xMDU4OlxcdH07XFxuMTA1OTpcXHRcXG4xMDYwOlxcdHN0cnVjdCBtbHg1X2lmY19lX3N3aXRjaF9jYXBfYml0cyB7XFxuMTA2MTpcXHRcXHR1OCAgICAgICAgIHZwb3J0X3N2bGFuX3N0cmlwWzB4MV07XFxuMTA2MjpcXHRcXHR1OCAgICAgICAgIHZwb3J0X2N2bGFuX3N0cmlwWzB4MV07XFxuMTA2MzpcXHRcXHR1OCAgICAgICAgIHZwb3J0X3N2bGFuX2luc2VydFsweDFdO1xcbjEwNjQ6XFx0XFx0dTggICAgICAgICB2cG9ydF9jdmxhbl9pbnNlcnRfaWZfbm90X2V4aXN0WzB4MV07XFxuMTA2NTpcXHRcXHR1OCAgICAgICAgIHZwb3J0X2N2bGFuX2luc2VydF9vdmVyd3JpdGVbMHgxXTtcXG4xMDY2OlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNVsweDFdO1xcbjEwNjc6XFx0XFx0dTggICAgICAgICB2cG9ydF9jdmxhbl9pbnNlcnRfYWx3YXlzWzB4MV07XFxuMTA2ODpcXHRcXHR1OCAgICAgICAgIGVzd19zaGFyZWRfaW5ncmVzc19hY2xbMHgxXTtcXG4xMDY5OlxcdFxcdHU4ICAgICAgICAgZXN3X3VwbGlua19pbmdyZXNzX2FjbFsweDFdO1xcbjEwNzA6XFx0XFx0dTggICAgICAgICByb290X2Z0X29uX290aGVyX2Vzd1sweDFdO1xcbjEwNzE6XFx0XFx0dTggICAgICAgICByZXNlcnZlZF9hdF9hWzB4MV07XFxuMTA3MjpcXHRcXHR1OCAgICAgICAgIGVzd192cG9ydF9zdGF0ZV9tYXhfdHhfc3BlZWRbMHgxXTtcXG4xMDczOlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfY1sweGRdO1xcbjEwNzQ6XFx0XFx0dTggICAgICAgICBlc3dfZnVuY3Rpb25zX2NoYW5nZWRbMHgxXTtcXG4xMDc1OlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMWFbMHgxXTtcXG4xMDc2OlxcdFxcdHU4ICAgICAgICAgZWNwZl92cG9ydF9leGlzdHNbMHgxXTtcXG4xMDc3OlxcdFxcdHU4ICAgICAgICAgY291bnRlcl9lc3dpdGNoX2FmZmluaXR5WzB4MV07XFxuMTA3ODpcXHRcXHR1OCAgICAgICAgIG1lcmdlZF9lc3dpdGNoWzB4MV07XFxuMTA3OTpcXHRcXHR1OCAgICAgICAgIG5pY192cG9ydF9ub2RlX2d1aWRfbW9kaWZ5WzB4MV07XFxuMTA4MDpcXHRcXHR1OCAgICAgICAgIG5pY192cG9ydF9wb3J0X2d1aWRfbW9kaWZ5WzB4MV07XFxuMTA4MTpcXHRcXG4xMDgyOlxcdFxcdHU4ICAgICAgICAgdnhsYW5fZW5jYXBfZGVjYXBbMHgxXTtcXG4xMDgzOlxcdFxcdHU4ICAgICAgICAgbnZncmVfZW5jYXBfZGVjYXBbMHgxXTtcXG4xMDg0OlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMjJbMHgxXTtcXG4xMDg1OlxcdFxcdHU4ICAgICAgICAgbG9nX21heF9mZGJfZW5jYXBfdXBsaW5rWzB4NV07XFxuMTA4NjpcXHRcXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzIxWzB4M107XFxuMTA4NzpcXHRcXHR1OCAgICAgICAgIGxvZ19tYXhfcGFja2V0X3JlZm9ybWF0X2NvbnRleHRbMHg1XTtcXG4xMDg4OlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfMmJbMHg2XTtcXG4xMDg5OlxcdFxcdHU4ICAgICAgICAgbWF4X2VuY2FwX2hlYWRlcl9zaXplWzB4YV07XFxuMTA5MDpcXHRcXG4xMDkxOlxcdFxcdHU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfNDBbMHhiXTtcXG4xMDkyOlxcdFxcdHU4ICAgICAgICAgbG9nX21heF9lc3dfc2ZbMHg1XTtcXG4xMDkzOlxcdFxcdHU4ICAgICAgICAgZXN3X3NmX2Jhc2VfaWRbMHgxMF07XFxuMTA5NDpcXHRcXG4xMDk1OlxcdFxcdHU4ICAgICAgICAgZXN3X21hbmFnZXJfdnBvcnRfbnVtYmVyX3ZhbGlkWzB4MV07XFxuMTA5NjpcXHRcXHR1OCAgICAgICAgIHJlc2VydmVkX2F0XzYxWzB4Zl07XFxuMTA5NzpcXHRcXHR1OCAgICAgICAgIGVzd19tYW5hZ2VyX3Zwb3J0X251bWJlclsweDEwXTtcXG4xMDk4OlxcdFxcbjEwOTk6XFx0XFx0dTggICAgICAgICByZXNlcnZlZF9hdF84MFsweDc4MF07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQyOjE2LjcwNjU3NzAzMVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjAxMDAzNDM0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjEwNzk2LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQyOjI4LjcxNjYxNDkzNVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQzMDUwMTg1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg9NzIzOT1lbnVtIG1seDVfcmVmb3JtYXRfY3R4X3R5cGUge1xcbi0tXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI1OC1cXHRNTFg1X1JFRk9STUFUX1RZUEVfREVMX01BQ1NFQyA9IDB4MTIsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6NzI1OTpcXHRNTFg1X1JFRk9STUFUX1RZUEVfUkVNT1ZFX1BTUF9UUkFOU1BPUlQgPSAweDE2LFxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTcyNjAtfTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDI6MzEuMTQ3MTIyNTM1WiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyMTI4NzgxOTI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTA5NzgsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQyOjQzLjI3NTkwNjM2WiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDYxNDM5ODA4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X0ZURV9NQVRDSF9QQVJBTV9SRVNFUlZFRFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDI6NDUuNzM3MzUzNTc4WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMzQ1ODI2NzUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTEwMjAsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQyOjU3LjA4MzIwMDgzWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDg0Njc4Mzc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYz01MTA9c3RhdGljIGJvb2wgY2hlY2tfdmFsaWRfc3BlYyhjb25zdCBzdHJ1Y3QgbWx4NV9mbG93X3NwZWMgKnNwZWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jLTUxMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jOjUxNDpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTTsgaSsrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMtNTE1LVxcdFxcdGlmIChzcGVjLVxcdTAwM2VtYXRjaF92YWx1ZVtpXSBcXHUwMDI2IH5zcGVjLVxcdTAwM2VtYXRjaF9jcml0ZXJpYVtpXSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaD0yMTI9c3RydWN0IG1seDVfZnRfdW5kZXJsYXlfcXAge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyMTc6I2RlZmluZSBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNIE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtMjE4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaD0yMzM9c3RydWN0IGZzX2Z0ZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTIzOC1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg6MjM5OlxcdHUzMlxcdFxcdFxcdFxcdHZhbFtNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5oLTI0MC1cXHRzdHJ1Y3QgZnNfZnRlX2FjdGlvblxcdFxcdGFjdF9kZXN0cztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmg9MjYzPXN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXBfbWFzayB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjQtXFx0dThcXHRtYXRjaF9jcml0ZXJpYV9lbmFibGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDoyNjU6XFx0dTMyXFx0bWF0Y2hfY3JpdGVyaWFbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC0yNjYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM9NzcxPWludCBtbHg1ZHJfY21kX3NldF9mdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODUzLVxcdFxcdFxcdFxcdCAgICAgIG1hdGNoX3ZhbHVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jOjg1NDpcXHRtZW1jcHkoaW5fbWF0Y2hfdmFsdWUsIGZ0ZS1cXHUwMDNldmFsLCBzaXplb2YodTMyKSAqIE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtODU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jPTEwMT1pbnQgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90Ymwoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xMTEtXFx0c3RydWN0IG1seDVkcl9jbWRfZnRlX2luZm8gZnRlX2luZm8gPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTEyOlxcdHUzMiB2YWxbTUxYNV9TVF9TWl9EV19NQVRDSF9QQVJBTV0gPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmMtMTEzLVxcdHN0cnVjdCBtbHg1ZHJfY21kX2Z0X2luZm8gZnRfaW5mbyA9IHt9O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE5LSNkZWZpbmUgRFJfU1RFX0NWTEFOIDB4MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaDoyMDojZGVmaW5lIERSX1NaX01BVENIX1BBUkFNIChNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNICogNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX3R5cGVzLmgtMjEtI2RlZmluZSBEUl9OVU1fT0ZfRkxFWF9QQVJTRVJTIDhcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDI6NTkuNTY3ODg0MzY3WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg2MTgwOTYwMzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgU2lnbmlmaWNhbnQgTUxYNSBEcml2ZXIgQ2hhbmdlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHkgc2VlIGEgcHJldHR5IHNpZ25pZmljYW50IGNoYW5nZS4gVGhleSd2ZSB1cGRhdGVkIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBmcm9tIHNvbWV0aGluZyB0aGF0IHdhcyBjYWxjdWxhdGVkIHRvIGJlaW5nIGV4cGxpY2l0bHkgc2V0IHZpYSB0aGUgbWFjcm8gYE1MWDVfU1RfU1pfRFcoZnRlX21hdGNoX3BhcmFtKWAuICBMZXQncyBzZWUuLi4gUHJldmlvdXNseSwgdGhpcyB3YXMgZGVyaXZlZCBieSB0YWtpbmcgdGhlIG9mZnNldCBvZiBgcmVzZXJ2ZWRfYXRfZTAwYCB3aXRoaW4gdGhlIGBmdGVfbWF0Y2hfcGFyYW1gIHN0cnVjdHVyZSAod2hpY2ggd2FzIDB4ZTAwLCBvciAzNTg0IGluIGRlY2ltYWwpLCBkaXZpZGluZyBpdCBieSB0aGUgc2l6ZSBvZiBhIGB1MzJgICh3aGljaCBpcyA0IGJ5dGVzKS4gIFNvLCBlc3NlbnRpYWxseSwgaXQgd2FzIDB4ZTAwIC8gNCwgcmVzdWx0aW5nIGluIDB4MzgwLiBOb3csIHRoZXkndmUgbWFkZSBpdCBgTUxYNV9TVF9TWl9EVyhmdGVfbWF0Y2hfcGFyYW0pYC4gR2l2ZW4gdGhhdCB0aGUgdG90YWwgc2l6ZSBvZiBgZnRlX21hdGNoX3BhcmFtYCBpcyAweDEwMDAgYnl0ZXMgKDB4ZTAwICsgMHgyMDApLCBkaXZpZGluZyB0aGlzIGJ5IDQgZ2l2ZXMgdXMgMHg0MDAuIFRoYXQncyBhIG5vdGljZWFibGUgaW5jcmVhc2UuXG5cblRoaXMgaGFzIGRpcmVjdCBpbXBsaWNhdGlvbnMgZm9yIHRoZSBzaXplcyBvZiBzdHJ1Y3R1cmVzIGxpa2UgYGZzX2Z0ZWAgYW5kIGBtbHg1X2Zsb3dfZ3JvdXBfbWFza2AuIEl0IGFsc28gYWZmZWN0cyBpdGVyYXRpb24gY291bnRzIGluIHRoZSBgY2hlY2tfdmFsaWRfc3BlY2AgZnVuY3Rpb24uIEl0IHNlZW1zIHRoaXMgY2hhbmdlcyB0aGUgc2l6ZSBvZiB0aGUgYHZhbGAgYXJyYXkgaW4gYG1seDVkcl9md19jcmVhdGVfbWRfdGJsYCBhbmQgdGhlIGBtZW1jcHlgIG9wZXJhdGlvbnMgd2l0aGluIGBtbHg1ZHJfY21kX3NldF9mdGVgLiBJdCdzIGEgZnVuZGFtZW50YWwgY2hhbmdlIGluIHRoZSBtbHg1IGRyaXZlcidzIGhhbmRsaW5nIG9mIHRoZXNlIG1hdGNoIHBhcmFtZXRlcnMsIHNvIHdlICphYnNvbHV0ZWx5KiBuZWVkIHRvIGZ1enogdGhpcyB0aG9yb3VnaGx5LlxuXG5Ob3csIGxldCdzIHplcm8gaW4gb24gdGhlIGtleSBzeW1ib2xzIGludm9sdmVkLiBUaGUgcGF0Y2ggY2xlYXJseSB0b3VjaGVzIGBjaGVja192YWxpZF9zcGVjYCwgYGFsbG9jX2Z0ZWAsIGBtbHg1ZHJfY21kX3NldF9mdGVgLCBhbmQgYG1seDVkcl9md19jcmVhdGVfbWRfdGJsYC4gV2Ugc2hvdWxkIGNoZWNrIGhvdyBlYXNpbHkgdGhlc2UgY2FuIGJlIHJlYWNoZWQuIGBjaGVja192YWxpZF9zcGVjYCBpcyByZWFjaGVkIHZpYSBgX21seDVfYWRkX2Zsb3dfcnVsZXNgLCB3aGljaCBpcyBpbiB0dXJuIGNhbGxlZCBieSBgbWx4NV9hZGRfZmxvd19ydWxlc2AuIGBtbHg1ZHJfY21kX3NldF9mdGVgIGlzIGludm9sdmVkIHdpdGggdGhlIFNURSBhcnJheS4gSXQncyB0aW1lIHRvIGRpZyBpbnRvIHRoZSBjYWxsZXJzIG9mIGBtbHg1ZHJfY21kX3NldF9mdGVgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzczMiwiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY0NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MzowOC4xODU5ODI4MTFaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MDA3NjQ3ODIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWRyX2NtZF9zZXRfZnRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM9Mjc5PWludCBtbHg1ZHJfY21kX3N5bmNfc3RlZXJpbmcoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jLTI5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jOjI5NTppbnQgbWx4NWRyX2NtZF9zZXRfZnRlX21vZGlmeV9hbmRfdnBvcnQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9jbWQuYy0yOTYtXFx0XFx0XFx0XFx0XFx0dTMyIHRhYmxlX3R5cGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jPTczMj1zdGF0aWMgaW50IG1seDVkcl9jbWRfc2V0X2V4dGVuZGVkX2Rlc3Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmMtNzcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfY21kLmM6NzcxOmludCBtbHg1ZHJfY21kX3NldF9mdGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2NtZC5jLTc3Mi1cXHRcXHQgICAgICAgaW50IG9wbW9kLCBpbnQgbW9kaWZ5X21hc2ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM9OD1tbHg1ZHJfZndfY3JlYXRlX3JlY2FsY19jc19mdChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLCB1MTYgdnBvcnRfbnVtKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYzo1NDpcXHRyZXQgPSBtbHg1ZHJfY21kX3NldF9mdGVfbW9kaWZ5X2FuZF92cG9ydChkbW4tXFx1MDAzZW1kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTU1LVxcdFxcdFxcdFxcdFxcdFxcdCAgTUxYNV9GTE9XX1RBQkxFX1RZUEVfRkRCLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jPTEwMT1pbnQgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90Ymwoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jOjE0NTpcXHRyZXQgPSBtbHg1ZHJfY21kX3NldF9mdGUoZG1uLVxcdTAwM2VtZGV2LCAwLCAwLCBcXHUwMDI2ZnRfaW5mbywgKmdyb3VwX2lkLCBcXHUwMDI2ZnRlX2luZm8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xNDYtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oPTEzMTM9aW50IG1seDVkcl9jbWRfc3luY19zdGVlcmluZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oOjEzMTQ6aW50IG1seDVkcl9jbWRfc2V0X2Z0ZV9tb2RpZnlfYW5kX3Zwb3J0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xMzE1LVxcdFxcdFxcdFxcdFxcdHUzMiB0YWJsZV90eXBlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oPTE1MjY9c3RydWN0IG1seDVkcl9jbWRfZnRlX2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE1MzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oOjE1MzY6aW50IG1seDVkcl9jbWRfc2V0X2Z0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaC0xNTM3LVxcdFxcdCAgICAgICBpbnQgb3Btb2QsIGludCBtb2RpZnlfbWFzayxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDM6MTAuNTg2NzU1NjczWiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4NTUxMDMzODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSdtIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOlxuXG4qKlRyYWNpbmcgdGhlIE9yaWdpbnMgb2YgdGhlIERSIEZUIEVudHJ5IFNldHVwKipcblxuT2theSwgc28gYG1seDVkcl9jbWRfc2V0X2Z0ZWAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQncyB1bHRpbWF0ZWx5IHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHVwIHRoZSBGb3J3YXJkaW5nIFRhYmxlIEVudHJ5IGluIHRoZSBEYXRhIFBhdGggUnVsZS4gTm93LCB3aGVyZSBpcyB0aGlzIGNyaXRpY2FsIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCBmcm9tPyBUaGUgdGV4dCBtZW50aW9ucyBpdCdzIGNhbGxlZCBieSBgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxgLCB3aGljaCBtYWtlcyBzZW5zZTsgdGhlIE1ldGFkYXRhIFRhYmxlIGlzIHRoZSBjb250YWluZXIgd2hlcmUgdGhlc2UgRlRFcyBsaXZlLCBJJ2QgZXhwZWN0IHNldHVwIHRvIG9jY3VyIHRoZXJlLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gdW5kZXJzdGFuZCAqd2h5KiBgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxgIGlzIGJlaW5nIGludm9rZWQuIEkgbmVlZCB0byBrbm93IHRoZSBjYWxsaW5nIGNvbnRleHQuIExldCBtZSB0cmFjZSB0aGUgY2FsbHMgdG8gYG1seDVkcl9md19jcmVhdGVfbWRfdGJsYCB0byBzZWUgd2hhdCdzIHRyaWdnZXJpbmcgaXRzIGV4ZWN1dGlvbi4gRnJvbSB0aGVyZSwgSSBzaG91bGQgYmUgYWJsZSB0byBncmFzcCB0aGUgYmlnZ2VyIHBpY3R1cmUgb2Ygd2hlcmUgYW5kIHdoZW4gdGhlc2UgRlRFcyBhcmUgZ2V0dGluZyBwb3B1bGF0ZWQsIGFuZCB0aGF0IHdpbGwgZ2l2ZSBtZSBzb21lIGluc2lnaHQgb24gd2hlcmUgdG8gbG9vayBmb3IgYW4gaXNzdWUuIFRoaXMgd2lsbCBoZWxwIG1lIHRyYWNlIHRoZSBkYXRhLWZsb3cgdGhyb3VnaCB0aGUgZGV2aWNlIGRyaXZlcnMgaW4gcmVsYXRpb24gdG8gdGhlIGRhdGFwbGFuZSBpbXBsZW1lbnRhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTYwNjMsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0MzoxNC40NDE4NjE5MjlaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0Nzc0Nzg4MzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9hY3Rpb24uYz0xMTc0PW1seDVkcl9hY3Rpb25fY3JlYXRlX211bHRfZGVzdF90Ymwoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmMtMTI2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2FjdGlvbi5jOjEyNjU6XFx0cmV0ID0gbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmwoZG1uLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmMtMTI2Ni1cXHRcXHRcXHRcXHQgICAgICBod19kZXN0cyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYz04Mz12b2lkIG1seDVkcl9md19kZXN0cm95X3JlY2FsY19jc19mdChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9mdy5jLTEwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2Z3LmM6MTAxOmludCBtbHg1ZHJfZndfY3JlYXRlX21kX3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfZncuYy0xMDItXFx0XFx0XFx0ICAgIHN0cnVjdCBtbHg1ZHJfY21kX2Zsb3dfZGVzdGluYXRpb25faHdfaW5mbyAqZGVzdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfdHlwZXMuaD0xNTU1PWludCBtbHg1ZHJfZG9tYWluX2dldF9yZWNhbGNfY3NfZnRfYWRkcihzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE1NTctXFx0XFx0XFx0XFx0XFx0dTY0ICpyeF9pY21fYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oOjE1NTg6aW50IG1seDVkcl9md19jcmVhdGVfbWRfdGJsKHN0cnVjdCBtbHg1ZHJfZG9tYWluICpkbW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl90eXBlcy5oLTE1NTktXFx0XFx0XFx0ICAgIHN0cnVjdCBtbHg1ZHJfY21kX2Zsb3dfZGVzdGluYXRpb25faHdfaW5mbyAqZGVzdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDM6MTYuOTE5MzQ3NDE2WiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNTQzODMwMDA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTQ4MjgsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQzOjI5LjQ2MzE4MDU2WiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzIwMjAyOTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVkcl9hY3Rpb25fY3JlYXRlX211bHRfZGVzdF90YmxcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9kcl9hY3Rpb24uYz0xMTczPXN0cnVjdCBtbHg1ZHJfYWN0aW9uICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2RyX2FjdGlvbi5jOjExNzQ6bWx4NWRyX2FjdGlvbl9jcmVhdGVfbXVsdF9kZXN0X3RibChzdHJ1Y3QgbWx4NWRyX2RvbWFpbiAqZG1uLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZHJfYWN0aW9uLmMtMTE3NS1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbWx4NWRyX2FjdGlvbl9kZXN0ICpkZXN0cyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYz0yNTI9c3RhdGljIGludCBtbHg1X2NtZF9kcl9jcmVhdGVfZnRlKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTU4My1cXHRcXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jOjU4NDpcXHRcXHR0bXBfYWN0aW9uID0gbWx4NWRyX2FjdGlvbl9jcmVhdGVfbXVsdF9kZXN0X3RibChkb21haW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTU4NS1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHR0ZXJtX2FjdGlvbnMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL21seDVkci5oPTk4PXN0cnVjdCBtbHg1ZHJfYWN0aW9uICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL21seDVkci5oOjk5Om1seDVkcl9hY3Rpb25fY3JlYXRlX211bHRfZGVzdF90Ymwoc3RydWN0IG1seDVkcl9kb21haW4gKmRtbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL21seDVkci5oLTEwMC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbWx4NWRyX2FjdGlvbl9kZXN0ICpkZXN0cyxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDM6MzEuNzgzMzg4MDk5WiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyOTM2OTQ0NTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTUzNDQsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQzOjQ0LjcyMDMzNTA5M1oiLCJTZXEiOjQwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU0NzMzMTA1MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtbHg1X2NtZF9kcl9jcmVhdGVfZnRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYz0yNDA9c3RhdGljIGJvb2wgY29udGFpbl92cG9ydF9yZWZvcm1hdF9hY3Rpb24oc3RydWN0IG1seDVfZmxvd19ydWxlICpkc3QpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmMtMjUxLSNkZWZpbmUgTUxYNV9GTE9XX0NPTlRFWFRfQUNUSU9OX01BWCAgMzRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmM6MjUyOnN0YXRpYyBpbnQgbWx4NV9jbWRfZHJfY3JlYXRlX2Z0ZShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmMtMjUzLVxcdFxcdFxcdFxcdCAgc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmM9NzU2PXN0YXRpYyBpbnQgbWx4NV9jbWRfZHJfdXBkYXRlX2Z0ZShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9zd3MvZnNfZHIuYy03NzItXFx0LyogRmlyc3QgYWRkIHRoZSBuZXcgdXBkYXRlZCBydWxlLCB0aGVuIGRlbGV0ZSB0aGUgb2xkIHJ1bGUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmM6NzczOlxcdHJldCA9IG1seDVfY21kX2RyX2NyZWF0ZV9mdGUobnMsIGZ0LCBncm91cCwgZnRlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmMtNzc0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmM9ODU4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbWx4NV9mbG93X2NtZHMgbWx4NV9mbG93X2NtZHNfZHIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvc3dzL2ZzX2RyLmMtODYzLVxcdC5kZXN0cm95X2Zsb3dfZ3JvdXAgPSBtbHg1X2NtZF9kcl9kZXN0cm95X2Zsb3dfZ3JvdXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jOjg2NDpcXHQuY3JlYXRlX2Z0ZSA9IG1seDVfY21kX2RyX2NyZWF0ZV9mdGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL3N3cy9mc19kci5jLTg2NS1cXHQudXBkYXRlX2Z0ZSA9IG1seDVfY21kX2RyX3VwZGF0ZV9mdGUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQzOjQ3LjI2NzY3MTIzNVoiLCJTZXEiOjQxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTA0ODI3MTg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgRmxvdyBSdWxlIENyZWF0aW9uIGluIG1seDUqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJJ20gc2VlaW5nLCBgbWx4NV9jbWRfZHJfY3JlYXRlX2Z0ZWAgaXMgYSBjYWxsYmFjayBzcGVjaWZpY2FsbHkgdXNlZCBmb3IgY3JlYXRpbmcgRnVuY3Rpb25hbCBUcmFmZmljIEVuZ2luZSAoRlRFKSBlbnRyaWVzLCBhbmQgaXQncyBjYWxsZWQgdGhyb3VnaCBgY3JlYXRlX2Z0ZWAgd2l0aGluIGBtbHg1X2Zsb3dfY21kc19kcmAuIEl0J3MgcHJldHR5IGNsZWFyIHRoYXQgdGhpcyBwYXRoIGlzIGFjdGl2ZWx5IGhpdCB3aGVuIGZsb3cgcnVsZXMgYXJlIGJlaW5nIGNyZWF0ZWQuIFdlIGFsc28gc2VlIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBiZWluZyB1c2VkIGZvciBgZnNfZnRlYCBhbGxvY2F0aW9uIGluIGBmc19jb3JlLmNgLiBUaGUgYGZzX2Z0ZWAgYWxsb2NhdGlvbiBpdHNlbGYgaXMgaGFwcGVuaW5nIHdpdGhpbiBgYWxsb2NfZnRlYCwgd2hpY2ggaXMsIGluIHR1cm4sIGNhbGxlZCBieSBgX21seDVfYWRkX2Zsb3dfcnVsZXNgLiBUaGlzIHRoZW4gZ2V0cyBjYWxsZWQgYnkgYG1seDVfYWRkX2Zsb3dfcnVsZXNgLCB3aGljaCBJIGtub3cgaXMgdGhlIGNvcmUgQVBJIGluIG1seDUgZm9yIGFkZGluZyBmbG93IHJ1bGVzLlxuXG5TbywgbG9naWNhbGx5LCB0aGlzIGVudGlyZSBzZXF1ZW5jZSBpcyBoaWdobHkgZnVuY3Rpb25hbCBhbmQgZGVmaW5pdGVseSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlLiBOb3csIGxldCdzIG5hcnJvdyBkb3duIG91ciBmb2N1cy5cblxuSSdtIHRoaW5raW5nIG9mIGZvY3VzaW5nIG91ciBpbnZlc3RpZ2F0aW9uIG9uIHN5bWJvbHMuIGBhbGxvY19mdGVgIGxvb2tzIGxpa2UgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBidXQgaXQncyBzdGF0aWMsIHNvIHdlIG1pZ2h0IGhhdmUgdG8gdXNlIGBfbWx4NV9hZGRfZmxvd19ydWxlc2Agb3IgYG1seDVfYWRkX2Zsb3dfcnVsZXNgIHNpbmNlIHRob3NlIGFyZSBub3QuXG5cbkluIGFkZGl0aW9uLCBpdCBsb29rcyBsaWtlIGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCBoYXMgYmVlbiBtb2RpZmllZCwgc28gbGV0J3MgdmVyaWZ5IGlmIHRoYXQgaXMgcmVhY2hhYmxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODE3MiwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0Mzo1Mi4xNzI1MDA4MzNaIiwiU2VxIjo0MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0NTA5NDMyODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWh3c19jbWRfcXVlcnlfY2Fwc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTczMz1od3NfYndjX21hdGNoZXJfc2l6ZV9tYXhlZF9vdXQoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy03MzUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6NzM2OlxcdHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzID0gYndjX21hdGNoZXItXFx1MDAzZW1hdGNoZXItXFx1MDAzZXRibC1cXHUwMDNlY3R4LVxcdTAwM2VjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNzM3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz04MTA9aHdzX2J3Y19tYXRjaGVyX2V4dGVuZF9zaXplKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtODEzLVxcdHN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKmN0eCA9IGJ3Y19tYXRjaGVyLVxcdTAwM2VtYXRjaGVyLVxcdTAwM2V0YmwtXFx1MDAzZWN0eDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjgxNDpcXHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyA9IGN0eC1cXHUwMDNlY2FwcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTgxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmM9ODkyPWludCBtbHg1aHdzX2NtZF9nZW5lcmF0ZV93cWUoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jLTkzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jOjkzNzppbnQgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jOjkzODpcXHRcXHRcXHQgICBzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5jLTkzOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oPTE5MT1zdHJ1Y3QgbWx4NWh3c19jbWRfZ2VuZXJhdGVfd3FlX2F0dHIge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaC0xOTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaDoxOTk6c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmgtMjAwLVxcdHUzMiBmbGV4X3Byb3RvY29scztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY21kLmg9MzM0PWludCBtbHg1aHdzX2NtZF9zcV9tb2RpZnlfcmR5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1MzIgc3FuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oLTMzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oOjMzNjppbnQgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NtZC5oOjMzNzpcXHRcXHRcXHQgICBzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2Fwcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jbWQuaC0zMzgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuYz04OT1zdGF0aWMgdm9pZCBod3NfY29udGV4dF9jaGVja19od3Nfc3VwcChzdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICpjdHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtOTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jOjkxOlxcdHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzID0gY3R4LVxcdTAwM2VjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jLTkyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM9MTg5PXN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKm1seDVod3NfY29udGV4dF9vcGVuKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtMjA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jOjIwODpcXHRyZXQgPSBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzKG1kZXYsIGN0eC1cXHUwMDNlY2Fwcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtMjA5LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaD0zNz1zdHJ1Y3QgbWx4NWh3c19jb250ZXh0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaC0zOC1cXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaDozOTpcXHRzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuaC00MC1cXHR1MzIgcGRfbnVtO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWJ1Zy5jPTI3MD1zdGF0aWMgaW50IGh3c19kZWJ1Z19kdW1wX2NvbnRleHRfY2FwcyhzdHJ1Y3Qgc2VxX2ZpbGUgKmYsIHN0cnVjdCBtbHg1aHdzX2NvbnRleHQgKmN0eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlYnVnLmMtMjcxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlYnVnLmM6MjcyOlxcdHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzID0gY3R4LVxcdTAwM2VjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVidWcuYy0yNzMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYz0xMDc5PWh3c19kZWZpbmVyX2NvbnZfbWlzYyhzdHJ1Y3QgbWx4NWh3c19kZWZpbmVyX2NvbnZfZGF0YSAqY2QsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDgxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYzoxMDgyOlxcdHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzID0gY2QtXFx1MDAzZWN0eC1cXHUwMDNlY2FwcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYy0xMDgzLVxcdHN0cnVjdCBtbHg1aHdzX2RlZmluZXJfZmMgKmZjID0gY2QtXFx1MDAzZWZjO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9kZWZpbmVyLmM9MTI3Nj1od3NfZGVmaW5lcl9jb252X21pc2MyKHN0cnVjdCBtbHg1aHdzX2RlZmluZXJfY29udl9kYXRhICpjZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEyNzgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEyNzk6XFx0c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMgPSBjZC1cXHUwMDNlY3R4LVxcdTAwM2VjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEyODAtXFx0c3RydWN0IG1seDVod3NfZGVmaW5lcl9mYyAqZmMgPSBjZC1cXHUwMDNlZmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2RlZmluZXIuYz0xMzUwPWh3c19kZWZpbmVyX2NvbnZfbWlzYzMoc3RydWN0IG1seDVod3NfZGVmaW5lcl9jb252X2RhdGEgKmNkLCB1MzIgKm1hdGNoX3BhcmFtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEzNTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jOjEzNTI6XFx0c3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMgPSBjZC1cXHUwMDNlY3R4LVxcdTAwM2VjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvZGVmaW5lci5jLTEzNTMtXFx0c3RydWN0IG1seDVod3NfZGVmaW5lcl9mYyAqZmMgPSBjZC1cXHUwMDNlZmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYz01Njk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jOjU3MDpod3NfbWF0Y2hlcl9jaGVja19hdHRyX3N6KHN0cnVjdCBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzICpjYXBzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jLTU3MS1cXHRcXHRcXHQgIHN0cnVjdCBtbHg1aHdzX21hdGNoZXIgKm1hdGNoZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYz03NTI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jOjc1Mzpod3NfbWF0Y2hlcl92YWxpZGF0ZV9pbnNlcnRfbW9kZShzdHJ1Y3QgbWx4NWh3c19jbWRfcXVlcnlfY2FwcyAqY2FwcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYy03NTQtXFx0XFx0XFx0XFx0IHN0cnVjdCBtbHg1aHdzX21hdGNoZXIgKm1hdGNoZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21hdGNoZXIuYz04MTQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWF0Y2hlci5jOjgxNTpod3NfbWF0Y2hlcl9wcm9jZXNzX2F0dHIoc3RydWN0IG1seDVod3NfY21kX3F1ZXJ5X2NhcHMgKmNhcHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tYXRjaGVyLmMtODE2LVxcdFxcdFxcdCBzdHJ1Y3QgbWx4NWh3c19tYXRjaGVyICptYXRjaGVyKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0Mzo1NC42MjM0NTAyMzJaIiwiU2VxIjo0MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTIwNzQyMTY3MDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjoxOTA0MCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDQ6MDYuNjk3NjcwMzIxWiIsIlNlcSI6NDQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDkzMDAxNDg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD03MjM5PWVudW0gbWx4NV9yZWZvcm1hdF9jdHhfdHlwZSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC03MjU4LVxcdE1MWDVfUkVGT1JNQVRfVFlQRV9ERUxfTUFDU0VDID0gMHgxMixcXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaDo3MjU5OlxcdE1MWDVfUkVGT1JNQVRfVFlQRV9SRU1PVkVfUFNQX1RSQU5TUE9SVCA9IDB4MTYsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzI2MC19O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NDowOS4xOTA2NzU4NDdaIiwiU2VxIjo0NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTU2NTAwNDczMTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjoxOTIyMiwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDQ6MjQuODQwNzI1NTgxWiIsIlNlcSI6NDYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTQwMDExNDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfQUNUSU9OX0lOX0ZJRUxEX1BTUF9IRUFERVJfMVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD03MzQyPWVudW0ge1xcbi0tXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzM4Mi1cXHRNTFg1X0FDVElPTl9JTl9GSUVMRF9QU1BfU1lORFJPTUUgICAgICA9IDB4NzEsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6NzM4MzpcXHRNTFg1X0FDVElPTl9JTl9GSUVMRF9QU1BfSEVBREVSXzEgICAgICA9IDB4NzgsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgtNzM4NC19O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NDoyNy4zODA3NDE5MjRaIiwiU2VxIjo0NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQ2MzIwNzE5MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjoxOTQwMCwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDQ6NTIuMDEyODE4MTU2WiIsIlNlcSI6NDgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjgxNTA3MDgyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1MWDVfTUFUQ0hfTUlTQ19QQVJBTUVURVJTXzZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oPTExNjY9ZW51bSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgtMTE3My1cXHRNTFg1X01BVENIX01JU0NfUEFSQU1FVEVSU181XFx0PSAxIFxcdTAwM2NcXHUwMDNjIDYsXFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oOjExNzQ6XFx0TUxYNV9NQVRDSF9NSVNDX1BBUkFNRVRFUlNfNlxcdD0gMSBcXHUwMDNjXFx1MDAzYyA3LFxcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaC0xMTc1LX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ0OjU0LjY5NDMzMDkyOFoiLCJTZXEiOjQ5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTYyMDU2MDUxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjE5NTUzLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NTowNi4zMTQ4OTU4N1oiLCJTZXEiOjUwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI2NTA1ODI2MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU182XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oPTY5ODk9ZW51bSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC02OTk2LVxcdE1MWDVfUVVFUllfRkxPV19HUk9VUF9JTl9NQVRDSF9DUklURVJJQV9FTkFCTEVfTUlTQ19QQVJBTUVURVJTXzUgPSAweDYsXFxuaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmg6Njk5NzpcXHRNTFg1X1FVRVJZX0ZMT1dfR1JPVVBfSU5fTUFUQ0hfQ1JJVEVSSUFfRU5BQkxFX01JU0NfUEFSQU1FVEVSU182ID0gMHg3LFxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oLTY5OTgtfTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDU6MDguNTc5OTU4NjEzWiIsIlNlcSI6NTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExNzcxNTMxOTcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTk3NjAsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ1OjIwLjM1MTQ5NDMyNFoiLCJTZXEiOjUyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ2OTg1MDAzNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtaXNjX3BhcmFtZXRlcnNfNlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaD0yMzM3PXN0cnVjdCBtbHg1X2lmY19mdGVfbWF0Y2hfcGFyYW1fYml0cyB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC0yMzUxLVxcbmluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oOjIzNTI6XFx0c3RydWN0IG1seDVfaWZjX2Z0ZV9tYXRjaF9zZXRfbWlzYzZfYml0cyBtaXNjX3BhcmFtZXRlcnNfNjtcXG5pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaC0yMzUzLX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ1OjIyLjgyMTM1NjAxMVoiLCJTZXEiOjUzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDU5MDcyMDYzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBDdXJyZW50IFRoaW5raW5nIG9uIEZ1enppbmcgUHJpb3JpdGllcyoqXG5cbk9rYXksIHRoZSBwYXRjaCBpcyBjb25maXJtZWQgZnVuY3Rpb25hbCwgdGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gTm93LCBsZXQncyBicmVhayBkb3duIHRoZSBpbXBsaWNhdGlvbnMgZm9yIGZ1enppbmcuIFRoZSBjaGFuZ2VzIHRvIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCBkaXJlY3RseSBpbXBhY3QgdHdvIGNyaXRpY2FsIGZ1bmN0aW9uczogYGFsbG9jX2Z0ZWAgYW5kIGBjaGVja192YWxpZF9zcGVjYC4gVGhvc2UgYXJlIGRlZmluaXRlbHkgaGlnaC1wcmlvcml0eSBhcmVhcywgc2luY2UgdGhleSBhcmUgZGVhbGluZyB3aXRoIHRoZSBhbGxvY2F0aW9uIGFuZCB2YWxpZGF0aW9uIG9mIGZsb3cgdGFibGUgZW50cmllcy4gVGhlbiwgdGhlIG1vZGlmaWNhdGlvbnMgdG8gYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIGhhdmUgcmFtaWZpY2F0aW9ucyBmb3IgYG1seDVod3NfY29udGV4dF9vcGVuYC5cblxuTXkgcHJpbWFyeSBmdXp6aW5nIHRhcmdldHMgc2hvdWxkIGJlIGBtbHg1X2FkZF9mbG93X3J1bGVzYCwgYG1seDVod3NfY29udGV4dF9vcGVuYCwgYW5kIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAuIEkgbmVlZCB0byBlbnN1cmUgcm9idXN0IGNvdmVyYWdlIGZvciBydWxlIGFkZGl0aW9uIGFuZCB0aGUgY3JlYXRpb24gb2YgbWV0YWRhdGEgdGFibGVzLCBhcyB3ZWxsIGFzIGNvbnRleHQgb3BlbmluZy4gQWgsIHdhaXQsIGBtbHg1aHdzX2NvbnRleHRfb3BlbmAgaXMgc3BlY2lmaWNhbGx5IHRpZWQgdG8gYG1seDVod3NgLCBtZWFuaW5nIGl0J3MgaW52b2x2ZWQgaW4gaGFyZHdhcmUgc3RlZXJpbmcuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY2FsbCBncmFwaCB0byB2ZXJpZnkgdGhhdCBgbWx4NWh3c19jb250ZXh0X29wZW5gIGlzIGFjdHVhbGx5IGJlaW5nIGNhbGxlZCB3aXRoaW4gdGhlIHN5c3RlbS4gV2Ugd2FudCB0byBiZSBzdXJlIGl0J3MgaGl0IGR1cmluZyBub3JtYWwgb3BlcmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjMzNCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NTozMy40MTIwODAzODlaIiwiU2VxIjo1NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0ODc0Mjg4NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWh3c19jb250ZXh0X29wZW5cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmM9MTc4PXN0YXRpYyB2b2lkIGh3c19jb250ZXh0X3VuaW5pdF9od3Moc3RydWN0IG1seDVod3NfY29udGV4dCAqY3R4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9jb250ZXh0LmMtMTg4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvY29udGV4dC5jOjE4OTpzdHJ1Y3QgbWx4NWh3c19jb250ZXh0ICptbHg1aHdzX2NvbnRleHRfb3BlbihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2NvbnRleHQuYy0xOTAtXFx0XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWx4NWh3c19jb250ZXh0X2F0dHIgKmF0dHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2ZzX2h3cy5jPTEzMD1zdGF0aWMgaW50IG1seDVfY21kX2h3c19jcmVhdGVfbnMoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2ZzX2h3cy5jLTEzOS1cXHRucy1cXHUwMDNlZnNfaHdzX2NvbnRleHQuaHdzX2N0eCA9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9mc19od3MuYzoxNDA6XFx0XFx0bWx4NWh3c19jb250ZXh0X29wZW4obnMtXFx1MDAzZWRldiwgXFx1MDAyNmh3c19jdHhfYXR0cik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9mc19od3MuYy0xNDEtXFx0aWYgKCFucy1cXHUwMDNlZnNfaHdzX2NvbnRleHQuaHdzX2N0eCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tbHg1aHdzLmg9MjM1PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1aHdzX2lzX3N1cHBvcnRlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oLTI0OS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21seDVod3MuaDoyNTA6ICogbWx4NWh3c19jb250ZXh0X29wZW4gLSBPcGVuIGEgY29udGV4dCB1c2VkIGZvciBkaXJlY3QgcnVsZSBpbnNlcnRpb25cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21seDVod3MuaC0yNTEtICogdXNpbmcgaGFyZHdhcmUgc3RlZXJpbmcuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL21seDVod3MuaD0yNTg9c3RydWN0IG1seDVod3NfY29udGV4dCAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9tbHg1aHdzLmg6MjU5Om1seDVod3NfY29udGV4dF9vcGVuKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvbWx4NWh3cy5oLTI2MC1cXHRcXHQgICAgIHN0cnVjdCBtbHg1aHdzX2NvbnRleHRfYXR0ciAqYXR0cik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ1OjM1Ljg5OTUxNjE4NloiLCJTZXEiOjU1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MjUxMTc2NDE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTmFtZXNwYWNlIENyZWF0aW9uIFByb2Nlc3MqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIGhvdyBmbG93IHN0ZWVyaW5nIG5hbWVzcGFjZXMgYXJlIGNyZWF0ZWQgaW4gdGhlIE1lbGxhbm94IGRyaXZlci4gVGhlIGZpcnN0IHRoaW5nIHRoYXQganVtcHMgb3V0IGlzIHRoYXQgYG1seDVfY21kX2h3c19jcmVhdGVfbnNgIGlzIHRoZSBrZXkgZnVuY3Rpb24gYmVpbmcgY2FsbGVkIGR1cmluZyB0aGUgcHJvY2Vzcy4gVGhhdCBnaXZlcyBtZSBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50IGZvciB0cmFjaW5nIHRoZSBleGVjdXRpb24gcGF0aC4gVGhlcmVmb3JlLCBgbWx4NV9hZGRfZmxvd19ydWxlc2AgYW5kIGBtbHg1aHdzX2NvbnRleHRfb3BlbmAgbG9vayBsaWtlIGVzc2VudGlhbCBzeW1ib2xzIHRvIGtlZXAgYW4gZXllIG9uLCBhcyB0aGV5J2xsIGxpa2VseSBiZSBjbG9zZWx5IHJlbGF0ZWQuIFRoZW4gdGhlcmUgaXMgdGhlIGBtbHg1ZHJfZndfY3JlYXRlX21kX3RibGAsIHRoaXMgaXMgYW5vdGhlciBnb29kIG9uZS4gTm93LCB0aGUgYmlnIHF1ZXN0aW9uIGlzLCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgaW52b2x2ZWQ/IFRvIGZpZ3VyZSB0aGF0IG91dCwgSSdsbCBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlOiB0aGUgYEtjb25maWdgIGZpbGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIGdvb2Qgb3ZlcnZpZXcgb2YgdGhlIHJlbGV2YW50IGJ1aWxkLXRpbWUgc2V0dGluZ3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzNTMxLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDU6NDUuMTUwNjk1ODAzWiIsIlNlcSI6NTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTE2NjEyMzU0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNTFg1X0NPUkVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2OmNvbmZpZyBNTFg1X0NPUkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIGNvcmUgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTk9Y29uZmlnIE1MWDVfRlBHQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6Mjk6Y29uZmlnIE1MWDVfQ09SRV9FTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTMwLVxcdGJvb2wgXFxcIk1lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTExMj1jb25maWcgTUxYNV9UQ19TQU1QTEVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEyNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMjU6Y29uZmlnIE1MWDVfQ09SRV9FTl9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMjYtXFx0Ym9vbCBcXFwiRGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgU3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMzc6Y29uZmlnIE1MWDVfQ09SRV9JUE9JQlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEzOC1cXHRib29sIFxcXCJNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChjb25uZWN0WCBzZXJpZXMpIElQb0lCIG9mZmxvYWRzIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ1OjQ3LjY2NzMxMjIwN1oiLCJTZXEiOjU3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDc5MTAwMDY3MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duLCBhcyBhIHN5c3RlbXMgZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgTUxYNSBDb25maWd1cmF0aW9uIGZvciBIVy9TVyBTdWJzeXN0ZW1zKipcblxuUmlnaHQsIGxldCBtZSBzdGFydCBieSBmb2N1c2luZyBvbiBgTUxYNV9DT1JFYC4gVGhhdCdzIHRoZSBiYXNlbGluZSwgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBlbnRpcmUgc3lzdGVtLCBJIGtub3cgdGhhdC4gQnV0IG5vdyBJJ20gZGlnZ2luZyBkZWVwZXIgaW50byBob3cgdGhhdCBjb3JlIGNvbmZpZyBwbGF5cyBvdXQgZm9yIHNwZWNpZmljIHN1YnN5c3RlbXMuXG5cbldoYXQgSSByZWFsbHkgbmVlZCB0byBrbm93IGlzOiBhcmUgdGhlcmUgYW55ICpzcGVjaWZpYyogY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLCBwcm9maWxlcywgb3Igc3BlY2lhbCBzZXR0aW5ncyB0aGF0IGFyZSB1bmlxdWUgdG8gdGhlIFwiaHdzXCIgYW5kIFwic3dzXCIgY29tcG9uZW50cz8gSXQncyBub3QgZW5vdWdoIHRvIGp1c3QgdW5kZXJzdGFuZCBgTUxYNV9DT1JFYCBnZW5lcmljYWxseS4gSSBoYXZlIHRvIGRyaWxsIGRvd24uIEFyZSB0aGVyZSBzZXBhcmF0ZSwgc3BlY2lhbGl6ZWQgdHdlYWtzIG9yIG92ZXJyaWRlcyBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBhbmQgc29mdHdhcmUtc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIHRoYXQgaW50ZXJhY3Qgd2l0aCBgTUxYNV9DT1JFYD8gVW5kZXJzdGFuZGluZyB0aGF0IG51YW5jZSBpcyBjcnVjaWFsIHRvIG9wdGltaXphdGlvbiBhbmQgdHJvdWJsZXNob290aW5nLiBNeSBuZXh0IHN0ZXAgaW52b2x2ZXMgZmluZGluZyBkb2N1bWVudGF0aW9uIGFuZCBjcm9zcy1yZWZlcmVuY2luZyBjb25maWd1cmF0aW9ucyB0byBmaW5kIHRoZSBkaWZmZXJlbmNlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQzMzMsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NTo1OC40NTgzMTY3M1oiLCJTZXEiOjU4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcxMjY5ODY5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdGVlcmluZy9od3NcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlPTEyMT1tbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKz0gc3RlZXJpbmcvc3dzL2RyX2RvbWFpbi5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDUtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfSFdfU1RFRVJJTkcpICs9IHN0ZWVyaW5nL2h3cy9jbWQubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE0NzpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvY29udGV4dC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ4OlxcdFxcdFxcdFxcdFxcdHN0ZWVyaW5nL2h3cy9wYXRfYXJnLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDk6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2J1ZGR5Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTA6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL3Bvb2wubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE1MTpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvdGFibGUubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE1MjpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvYWN0aW9uLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTM6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL3J1bGUubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE1NDpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvbWF0Y2hlci5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTU1OlxcdFxcdFxcdFxcdFxcdHN0ZWVyaW5nL2h3cy9zZW5kLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTY6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2RlZmluZXIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE1NzpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvYndjLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTg6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2RlYnVnLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNTk6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL3Zwb3J0Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNjA6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNjE6XFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2ZzX2h3c19wb29scy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTYyOlxcdFxcdFxcdFxcdFxcdHN0ZWVyaW5nL2h3cy9mc19od3MubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE2MzpcXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvYWN0aW9uX3N0ZV9wb29sLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTY0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYy04LSNpbmNsdWRlIFxcXCJmc19jb3JlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYzo5OiNpbmNsdWRlIFxcXCJzdGVlcmluZy9od3MvZnNfaHdzX3Bvb2xzLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzX2htZnMuYzoxMDojaW5jbHVkZSBcXFwic3RlZXJpbmcvaHdzL21seDVod3MuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnNfaG1mcy5jOjExOiNpbmNsdWRlIFxcXCJzdGVlcmluZy9od3MvdGFibGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnNfaG1mcy5jLTEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaC00MC0jaW5jbHVkZSBcXHUwMDNjc3RlZXJpbmcvc3dzL2ZzX2RyLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuaDo0MTojaW5jbHVkZSBcXHUwMDNjc3RlZXJpbmcvaHdzL2ZzX2h3cy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmgtNDItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ2OjAxLjE3MTAxOTgxWiIsIlNlcSI6NTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMTg2MjkwOTk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MjI5NjEsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ2OjE0LjM1NzMxNDQ1N1oiLCJTZXEiOjYwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ0ODYwNzIzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUxYNV9IV19TVEVFUklOR1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz0xNjc9Y29uZmlnIE1MWDVfU1dfU1RFRVJJTkdcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE3NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNzU6Y29uZmlnIE1MWDVfSFdfU1RFRVJJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIGhhcmR3YXJlLW1hbmFnZWQgc3RlZXJpbmdcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ2OjE2LjgwNTkyODAwNVoiLCJTZXEiOjYxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzU3NTUxMDM3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjIzMTI0LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NjozMC4zODE0NDA5MzRaIiwiU2VxIjo2MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2MTI4OTk0OTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1MWDVfU1dfU1RFRVJJTkdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTU5PWNvbmZpZyBNTFg1X0VOX1RMU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjE2Nzpjb25maWcgTUxYNV9TV19TVEVFUklOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE2OC1cXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgc29mdHdhcmUtbWFuYWdlZCBzdGVlcmluZ1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDY6MzMuOTk0MzQ3OTk3WiIsIlNlcSI6NjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyMjczMzAyMTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTWVsbGFub3ggTUxYNSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgd2UncmUgZGVhbGluZyB3aXRoIGEgcGF0Y2ggdGhhdCB0b3VjaGVzIHNldmVyYWwgYXNwZWN0cyBvZiB0aGUgTUxYNSBkcml2ZXIncyBmbG93IHN0ZWVyaW5nIGNhcGFiaWxpdGllcy4gU3BlY2lmaWNhbGx5LCB0aGUgY29uZmlncyB0aGF0IGFyZSByZWxldmFudCBzZWVtIHRvIGJlIGBNTFg1X0NPUkVgLCBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBgTUxYNV9TV19TVEVFUklOR2AuIFRoZSBjaGFuZ2VzIGFyZSBoaXR0aW5nIGBmc19jb3JlLmhgLCB3aGljaCBpcyBhIGNvbW1vbiBoZWFkZXIgdXNlZCBieSBib3RoIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBzdGVlcmluZyBwYXRocywgYW5kIGBzdGVlcmluZy9od3MvY21kLmNgLCB3aGljaCBpcyBzcGVjaWZpYyB0byBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBhbHNvIGBzdGVlcmluZy9zd3MvZHJfY21kLmNgIGFuZCBgc3RlZXJpbmcvc3dzL2RyX2Z3LmNgIHdoaWNoIGFyZSB1c2VkIGJ5IGBNTFg1X1NXX1NURUVSSU5HYC5cblxuTm93LCB0aGUgaW5pdGlhbCBkaWZmIEkgd2FzIGdpdmVuIG9ubHkgc2hvd2VkIG1vZGlmaWNhdGlvbnMgdG8gYGZzX2NvcmUuaGAsIGBzdGVlcmluZy9od3MvY21kLmNgLCBhbmQgYSBjb3VwbGUgb2YgaGVhZGVyIGZpbGVzLCBuYW1lbHkgYGluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaGAgYW5kIGBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaGAuIEJ1dCB0aGF0J3Mgbm90IHRoZSB3aG9sZSBzdG9yeS4gSSBuZWVkZWQgdG8gaW52ZXN0aWdhdGUgdGhlIGltcGFjdCBvbiBzb2Z0d2FyZSBzdGVlcmluZy4gQWZ0ZXIgZG9pbmcgYSBgZ3JlcGAgZm9yIGBNTFg1X1NUX1NaX0RXX01BVENIX1BBUkFNYCwgZGVmaW5lZCBpbiBgZnNfY29yZS5oYCwgSSBmb3VuZCB0aGF0IGl0J3MgYWxzbyB1dGlsaXplZCBpbiBib3RoIGBzdGVlcmluZy9zd3MvZHJfY21kLmNgIGFuZCBgc3RlZXJpbmcvc3dzL2RyX2Z3LmNgLiBUaGlzIGNvbmZpcm1zIHRoYXQgdGhlIGNoYW5nZXMgaW4gYGZzX2NvcmUuaGAgaW5mbHVlbmNlIGJvdGggdGhlIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBzdGVlcmluZyBwYXRocy5cblxuR2l2ZW4gdGhpcywgSSBoYXZlIHRvIGVuc3VyZSBJJ20gY292ZXJpbmcgYm90aCBoYXJkd2FyZSBhbmQgc29mdHdhcmUgYXNwZWN0cy4gVGhlIGNoYW5nZXMgaW4gYGZzX2NvcmUuaGAgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZm9yIGJvdGggc3RlZXJpbmcgb3B0aW9ucy4gVGhhdCBtZWFucyBJIG5lZWQgdG8gaW5jbHVkZSBhbGwgdGhyZWUgY29uZmlndXJhdGlvbnMgdG8gZW5zdXJlIHRoZSBmdXp6aW5nIGlzIHRob3JvdWdoIGFuZCBjb21wbGV0ZS5cblxuU28sIGhlcmUncyBteSBzdW1tYXJpemVkIGFwcHJvYWNoOlxuXG4qICAgKipXb3J0aEZ1enppbmc6KiogWWVzXG4qICAgKipGb2N1cyBTeW1ib2xzOioqIEkgc2hvdWxkIGNvbmNlbnRyYXRlIG9uIHRoZXNlIGZ1bmN0aW9uczogYG1seDVfYWRkX2Zsb3dfcnVsZXNgLCBgbWx4NWh3c19jb250ZXh0X29wZW5gLCBhbmQgYG1seDVkcl9md19jcmVhdGVfbWRfdGJsYC5cbiogICAqKkVuYWJsZWQgQ29uZmlndXJhdGlvbnM6KiogRGVmaW5pdGVseSBpbmNsdWRlIGBNTFg1X0NPUkVgLCBgTUxYNV9IV19TVEVFUklOR2AsIGFuZCBgTUxYNV9TV19TVEVFUklOR2AuXG5cbkEgcXVlc3Rpb24gdGhhdCBhcm9zZSBkdXJpbmcgdGhpcyBhbmFseXNpcyBpcyB3aGV0aGVyIGBNTFg1X0NPUkVgIGlzIHN1ZmZpY2llbnQsIG9yIGlmIGBNTFg1X0NPUkVfRU5gIHdvdWxkIGJlIG5lZWRlZCBhcyB3ZWxsLiBXaGlsZSBgTUxYNV9IV19TVEVFUklOR2AgYW5kIGBNTFg1X1NXX1NURUVSSU5HYCBkZXBlbmQgb24gYE1MWDVfQ09SRWAsIGFuZCBgTUxYNV9DT1JFYCBpcyB1c3VhbGx5IGVub3VnaCwgaXQncyB3b3J0aCBkb3VibGUtY2hlY2tpbmcgd2hhdCBgTUxYNV9IV19TVEVFUklOR2AgZGVwZW5kcyBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU5NzksIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDY6NDYuMjY3NjUyNjVaIiwiU2VxIjo2NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2OTYyMDIyNTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1MWDVfSFdfU1RFRVJJTkdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTY3PWNvbmZpZyBNTFg1X1NXX1NURUVSSU5HXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTc1OmNvbmZpZyBNTFg1X0hXX1NURUVSSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTc2LVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBoYXJkd2FyZS1tYW5hZ2VkIHN0ZWVyaW5nXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0Njo0OC45NjM4NjE4OTFaIiwiU2VxIjo2NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTY4MTQ2MTUyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjI3MjY0LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0Njo1OC42NDUzMjg2ODdaIiwiU2VxIjo2NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ0NTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE2NSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDE2NTpcXHRcXHRCdWlsZCBzdXBwb3J0IGZvciBUTFMgY3J5cHRvZ3JhcGh5LW9mZmxvYWQgYWNjZWxlcmF0aW9uIGluIHRoZSBOSUMuXFxuIDE2NjpcXHRcXG4gMTY3OlxcdGNvbmZpZyBNTFg1X1NXX1NURUVSSU5HXFxuIDE2ODpcXHRcXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgc29mdHdhcmUtbWFuYWdlZCBzdGVlcmluZ1xcXCJcXG4gMTY5OlxcdFxcdGRlcGVuZHMgb24gTUxYNV9DT1JFX0VOIFxcdTAwMjZcXHUwMDI2IE1MWDVfRVNXSVRDSFxcbiAxNzA6XFx0XFx0c2VsZWN0IENSQzMyXFxuIDE3MTpcXHRcXHRkZWZhdWx0IHlcXG4gMTcyOlxcdFxcdGhlbHBcXG4gMTczOlxcdFxcdEJ1aWxkIHN1cHBvcnQgZm9yIHNvZnR3YXJlLW1hbmFnZWQgc3RlZXJpbmcgaW4gdGhlIE5JQy5cXG4gMTc0OlxcdFxcbiAxNzU6XFx0Y29uZmlnIE1MWDVfSFdfU1RFRVJJTkdcXG4gMTc2OlxcdFxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBoYXJkd2FyZS1tYW5hZ2VkIHN0ZWVyaW5nXFxcIlxcbiAxNzc6XFx0XFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU4gXFx1MDAyNlxcdTAwMjYgTUxYNV9FU1dJVENIXFxuIDE3ODpcXHRcXHRkZWZhdWx0IHlcXG4gMTc5OlxcdFxcdGhlbHBcXG4gMTgwOlxcdFxcdEJ1aWxkIHN1cHBvcnQgZm9yIEhhcmR3YXJlLU1hbmFnZWQgRmxvdyBTdGVlcmluZyAoSE1GUykgaW4gdGhlIE5JQy5cXG4gMTgxOlxcdFxcdEhNRlMgaXMgYSBuZXcgYXBwcm9hY2ggdG8gbWFuYWdpbmcgc3RlZXJpbmcgcnVsZXMgd2hlcmUgU1RFcyBhcmVcXG4gMTgyOlxcdFxcdHdyaXR0ZW4gdG8gSUNNIGJ5IEhXIChhcyBvcHBvc2VkIHRvIFNXIGluIHNvZnR3YXJlLW1hbmFnZWQgc3RlZXJpbmcpLFxcbiAxODM6XFx0XFx0d2hpY2ggYWxsb3dzIGhpZ2hlciByYXRlIG9mIHJ1bGUgaW5zZXJ0aW9uLlxcbiAxODQ6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDExOjQ2OjU4LjY0NTQ3ODY4N1oiLCJTZXEiOjY3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTUzNjczOTAzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHVuZGVyc3RhbmRpbmcsIGZyYW1lZCBhcyBteSBpbnRlcm5hbCB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGVwZW5kZW5jaWVzIGFuZCBTY29wZSBmb3IgVGhpcyBTZWN0aW9uKipcblxuUmlnaHQsIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHNwZWNpZmljIHNldCBvZiBmdW5jdGlvbmFsaXRpZXMgaGVyZSwgYW5kIHRoZXkncmUgaW50cmluc2ljYWxseSBsaW5rZWQgdG8gdGhlIHByZXNlbmNlIG9mIGBNTFg1X0NPUkVfRU5gIGFuZCBgTUxYNV9FU1dJVENIYC4gVGhhdCBpbW1lZGlhdGVseSBmbGFncyBhIGRlcGVuZGVuY3kgdHJlZSBJIG5lZWQgdG8gc29saWRpZnkgaW4gbXkgbWluZC4gVG8gYmUgY29tcHJlaGVuc2l2ZSwgSSBuZWVkIHRvIGluY2x1ZGUgY29uc2lkZXJhdGlvbnMgZm9yIHRoZSBjb3JlIGNvbXBvbmVudHMsIHRoZWlyIGVuYWJsZWQgc3RhdGVzLCBhbmQgYW55IGludm9sdmVkIHN3aXRjaCBmdW5jdGlvbmFsaXR5LiBUaGVyZWZvcmUsIEkgbmVlZCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSB0byBleHBsaWNpdGx5IGFjY291bnQgZm9yIGBNTFg1X0NPUkVgICh0aGUgZm91bmRhdGlvbmFsIGVsZW1lbnQpLCB0aGVuIGBNTFg1X0NPUkVfRU5gLCBgTUxYNV9FU1dJVENIYCAoc2luY2UgdGhhdCdzIHRoZSBwcmltYXJ5IGRlcGVuZGVuY3kpLiBJIHNob3VsZCBhbHNvIHByb2JhYmx5IGluY2x1ZGUgYm90aCB0aGUgc29mdHdhcmUgYW5kIGhhcmR3YXJlIHN0ZWVyaW5nIGNvbXBvbmVudHMgYXMgdGhlc2UgbWlnaHQgaW5mbHVlbmNlIHRoZSBiZWhhdmlvci4gVGhlcmVmb3JlIEknbGwgaW5jb3Jwb3JhdGUgYE1MWDVfU1dfU1RFRVJJTkdgIGFuZCBgTUxYNV9IV19TVEVFUklOR2AgdG9vLiBJIHdhbnQgdG8gbWFrZSBzdXJlIEkgZ2V0IHRoaXMgYWJzb2x1dGVseSByaWdodC5cblxuTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgbXkgdW5kZXJzdGFuZGluZyBvZiBgTUxYNV9FU1dJVENIYC4gSSBuZWVkIHRvIGVuc3VyZSBteSBtZW50YWwgbW9kZWwgb2YgdGhhdCBzcGVjaWZpYyBhc3BlY3QgaXMgYWNjdXJhdGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NjI1LCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NzoxMC4xODIyMTk4NjVaIiwiU2VxIjo2OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0OTQ3ODY5MjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1MWDVfRVNXSVRDSFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZz01Nj1jb25maWcgTUxYNV9NUEZTXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy02NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2Njpjb25maWcgTUxYNV9FU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNjctXFx0Ym9vbCBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgU1JJT1YgRS1Td2l0Y2ggc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMTE6NDc6MTIuNjc3MDEyMDIxWiIsIlNlcSI6NjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzNDA3MDc2MDQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEN1cnJlbnQgVGhpbmtpbmcqKlxuXG5BbHJpZ2h0LCBJJ20gdHJ5aW5nIHRvIG1hcCBvdXQgdGhlIGtleSBhcmVhcyBpbiB0aGlzIGNvZGUuIEkgbmVlZCB0byBlc3RhYmxpc2ggYSBnb29kIHNldCBvZiBmb2N1cyBzeW1ib2xzIHRvIGd1aWRlIG15IGFuYWx5c2lzLiBJbml0aWFsbHksIEkgd2FzIHRoaW5raW5nIGFib3V0IGluY29ycG9yYXRpbmcgc2V2ZXJhbCBjb21wb25lbnRzLCBzcGVjaWZpY2FsbHkgYE1MWDVfQ09SRWAsIGBNTFg1X0NPUkVfRU5gLCBgTUxYNV9FU1dJVENIYCwgYE1MWDVfU1dfU1RFRVJJTkdgLCBhbmQgYE1MWDVfSFdfU1RFRVJJTkdgLiBCdXQsIEkgbmVlZCBtb3JlIHByZWNpc2UgZW50cnkgcG9pbnRzLlxuXG5JIGNvbnNpZGVyZWQgYG1seDVfYWRkX2Zsb3dfcnVsZXNgIGFzIGEgZ29vZCBmb2NhbCBwb2ludCwgc2luY2UgaXQgZGVhbHMgd2l0aCBmbG93IHJ1bGVzLCBidXQgdGhlbiBJIHN0YXJ0ZWQgdGhpbmtpbmcgYWJvdXQgcmVsYXRlZCBmdW5jdGlvbnMgYW5kIGRpc2NvdmVyZWQgYG1seDVod3NfY29udGV4dF9vcGVuYCwgd2hpY2ggZ2V0cyBjYWxsZWQgd2hlbiBhIG5hbWVzcGFjZSBpcyBjcmVhdGVkLiBJIG5lZWRlZCB0byBzZWUgaWYgdGhlcmUgd2VyZSBhbnkgb3RoZXIgZ29vZCBjYW5kaWRhdGVzLlxuXG5BZnRlciBmdXJ0aGVyIHJldmlldywgSSBmb3VuZCB0aGF0IGBtbHg1aHdzX2NtZF9xdWVyeV9jYXBzYCBpcyBkaXJlY3RseSBtb2RpZmllZCwgc28gSSdsbCBpbmNsdWRlIHRoYXQuIEknbSBzZXR0bGluZyBvbiB0aGVzZSB0aHJlZTogYG1seDVfYWRkX2Zsb3dfcnVsZXNgLCBgbWx4NWh3c19jbWRfcXVlcnlfY2Fwc2AsIGFuZCBgbWx4NWRyX2Z3X2NyZWF0ZV9tZF90YmxgLiBJIHRoaW5rIHRoZXNlIHNob3VsZCBvZmZlciBhIGdvb2QgZm91bmRhdGlvbiBmb3IgYW5hbHlzaXMuXG5cbkknbSByZWFkeSB0byBtb3ZlIG9uIHRvIHRoZSBuZXh0IHN0ZXAsIGxldCdzIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4MTI1LCJPdXRwdXRUb2tlbnMiOjIzMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QxMTo0NzoyNi4wODQwOTA0MjFaIiwiU2VxIjo3MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjUyMjQ3NTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1MWDVfQ09SRVwiLFxuICAgIFwiTUxYNV9DT1JFX0VOXCIsXG4gICAgXCJNTFg1X0VTV0lUQ0hcIixcbiAgICBcIk1MWDVfU1dfU1RFRVJJTkdcIixcbiAgICBcIk1MWDVfSFdfU1RFRVJJTkdcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtbHg1X2FkZF9mbG93X3J1bGVzXCIsXG4gICAgXCJtbHg1aHdzX2NtZF9xdWVyeV9jYXBzXCIsXG4gICAgXCJtbHg1ZHJfZndfY3JlYXRlX21kX3RibFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzaXplIG9mIGBmdGVfbWF0Y2hfcGFyYW1gIHVzZWQgaW4gYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIG1hY3JvLCB3aGljaCBhZmZlY3RzIHRoZSBzaXplIG9mIGBmc19mdGVgIGFuZCBgbWx4NV9mbG93X2dyb3VwX21hc2tgIHN0cnVjdHMgYW5kIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBpbiBgY2hlY2tfdmFsaWRfc3BlY2AuIEl0IGFsc28gbW9kaWZpZXMgYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIHRvIHJlYWQgZnJvbSBgZV9zd2l0Y2hfY2FwYCBpbnN0ZWFkIG9mIGBlc3dfY2FwYC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgbWx4NSBkcml2ZXIncyBmbG93IHN0ZWVyaW5nIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1MWDVfQ09SRVwiLFxuICAgIFwiTUxYNV9DT1JFX0VOXCIsXG4gICAgXCJNTFg1X0VTV0lUQ0hcIixcbiAgICBcIk1MWDVfU1dfU1RFRVJJTkdcIixcbiAgICBcIk1MWDVfSFdfU1RFRVJJTkdcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtbHg1X2FkZF9mbG93X3J1bGVzXCIsXG4gICAgXCJtbHg1aHdzX2NtZF9xdWVyeV9jYXBzXCIsXG4gICAgXCJtbHg1ZHJfZndfY3JlYXRlX21kX3RibFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzaXplIG9mIGBmdGVfbWF0Y2hfcGFyYW1gIHVzZWQgaW4gYE1MWDVfU1RfU1pfRFdfTUFUQ0hfUEFSQU1gIG1hY3JvLCB3aGljaCBhZmZlY3RzIHRoZSBzaXplIG9mIGBmc19mdGVgIGFuZCBgbWx4NV9mbG93X2dyb3VwX21hc2tgIHN0cnVjdHMgYW5kIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBpbiBgY2hlY2tfdmFsaWRfc3BlY2AuIEl0IGFsc28gbW9kaWZpZXMgYG1seDVod3NfY21kX3F1ZXJ5X2NhcHNgIHRvIHJlYWQgZnJvbSBgZV9zd2l0Y2hfY2FwYCBpbnN0ZWFkIG9mIGBlc3dfY2FwYC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgbWx4NSBkcml2ZXIncyBmbG93IHN0ZWVyaW5nIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow99svx[1] Phase: Succeeded StartedAt: 2026-07-13 11:47:39 +0000 UTC FinishedAt: 2026-07-13 11:47:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-13 11:47:39 +0000 UTC FinishedAt: 2026-07-13 11:47:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2] Phase: Succeeded StartedAt: 2026-07-13 11:47:39 +0000 UTC FinishedAt: 2026-07-13 13:50:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-13 11:47:39 +0000 UTC FinishedAt: 2026-07-13 13:50:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-13 11:47:39 +0000 UTC FinishedAt: 2026-07-13 11:47:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-13 11:47:39 +0000 UTC FinishedAt: 2026-07-13 11:47:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow99svx/series-workflow99svx-convert-artifact-3469024048/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-13 11:47:50 +0000 UTC FinishedAt: 2026-07-13 12:24:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-13 11:47:50 +0000 UTC FinishedAt: 2026-07-13 12:24: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:*2e30e0d0-8a07-407b-8153-de6e2b2b35c3,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-workflow99svx/series-workflow99svx-convert-artifact-3469024048/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": "0e7c1b0c-47d1-4e12-950b-e5d657cfc3f4", "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-workflow99svx/series-workflow99svx-build-action-1598359606/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-13 11:47:50 +0000 UTC FinishedAt: 2026-07-13 12:24:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*2e30e0d0-8a07-407b-8153-de6e2b2b35c3,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-workflow99svx/series-workflow99svx-convert-artifact-3469024048/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": "0e7c1b0c-47d1-4e12-950b-e5d657cfc3f4", "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-workflow99svx/series-workflow99svx-build-action-1598359606/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-13 12:24:44 +0000 UTC FinishedAt: 2026-07-13 12:24:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-13 12:24:44 +0000 UTC FinishedAt: 2026-07-13 12:24:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-13 12:24:44 +0000 UTC FinishedAt: 2026-07-13 12:24:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-13 12:24:44 +0000 UTC FinishedAt: 2026-07-13 12:24:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow99svx/series-workflow99svx-convert-artifact-1750073367/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-13 12:24:55 +0000 UTC FinishedAt: 2026-07-13 12:26:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-13 12:24:55 +0000 UTC FinishedAt: 2026-07-13 12:26:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0e7c1b0c-47d1-4e12-950b-e5d657cfc3f4,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-workflow99svx/series-workflow99svx-build-action-1598359606/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-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-13 12:26:54 +0000 UTC FinishedAt: 2026-07-13 12:26:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-13 12:26:54 +0000 UTC FinishedAt: 2026-07-13 12:26:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-13 12:26:54 +0000 UTC FinishedAt: 2026-07-13 12:53:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-13 12:26:54 +0000 UTC FinishedAt: 2026-07-13 12:53:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*2e30e0d0-8a07-407b-8153-de6e2b2b35c3,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-workflow99svx/series-workflow99svx-convert-artifact-1750073367/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": "65c4b57a-9281-4e10-95b8-9e912b005584", "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-workflow99svx/series-workflow99svx-build-action-3090888283/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-13 12:26:54 +0000 UTC FinishedAt: 2026-07-13 12:53:39 +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:*2e30e0d0-8a07-407b-8153-de6e2b2b35c3,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-workflow99svx/series-workflow99svx-convert-artifact-1750073367/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": "65c4b57a-9281-4e10-95b8-9e912b005584", "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-workflow99svx/series-workflow99svx-build-action-3090888283/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-13 12:53:46 +0000 UTC FinishedAt: 2026-07-13 12:53:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-13 12:53:46 +0000 UTC FinishedAt: 2026-07-13 12:53:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-13 12:53:46 +0000 UTC FinishedAt: 2026-07-13 12:55:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-13 12:53:46 +0000 UTC FinishedAt: 2026-07-13 12:55:48 +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:*65c4b57a-9281-4e10-95b8-9e912b005584,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-workflow99svx/series-workflow99svx-build-action-3090888283/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-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-13 12:55:58 +0000 UTC FinishedAt: 2026-07-13 13:50:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-13 12:55:58 +0000 UTC FinishedAt: 2026-07-13 13:50:13 +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":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"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:*0e7c1b0c-47d1-4e12-950b-e5d657cfc3f4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*65c4b57a-9281-4e10-95b8-9e912b005584,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-workflow99svx/series-workflow99svx-build-action-1598359606/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-workflow99svx/series-workflow99svx-build-action-3090888283/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-13 12:55:58 +0000 UTC FinishedAt: 2026-07-13 12:56:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-13 12:55:58 +0000 UTC FinishedAt: 2026-07-13 12:56:02 +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":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"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-workflow99svx/series-workflow99svx-convert-artifact-3579104976/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-13 12:55:58 +0000 UTC FinishedAt: 2026-07-13 12:55:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-13 12:55:58 +0000 UTC FinishedAt: 2026-07-13 12:55:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-13 12:55:58 +0000 UTC FinishedAt: 2026-07-13 12:55:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-13 12:56:08 +0000 UTC FinishedAt: 2026-07-13 13:50:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow99svx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mlx5_add_flow_rules","mlx5hws_cmd_query_caps","mlx5dr_fw_create_md_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ddbddbf8aee54bee038149187270c93a45478473","config_name":"upstream-apparmor-kasan.config","enable_configs":["MLX5_CORE","MLX5_CORE_EN","MLX5_ESWITCH","MLX5_SW_STEERING","MLX5_HW_STEERING"],"series_id":"ff2152f5-864c-4d11-a1d4-b963ddafca46","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-13 12:56:08 +0000 UTC FinishedAt: 2026-07-13 13:50:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0e7c1b0c-47d1-4e12-950b-e5d657cfc3f4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*65c4b57a-9281-4e10-95b8-9e912b005584,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-workflow99svx/series-workflow99svx-build-action-1598359606/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-workflow99svx/series-workflow99svx-build-action-3090888283/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-workflow99svx/series-workflow99svx-convert-artifact-3579104976/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,}