Name: series-workflowxsv5h Phase: Succeeded StartedAt: 2026-07-17 03:17:11 +0000 UTC FinishedAt: 2026-07-17 05:37:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[0] Phase: Succeeded StartedAt: 2026-07-17 03:17:11 +0000 UTC FinishedAt: 2026-07-17 04:00:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[0].run-triage Phase: Succeeded StartedAt: 2026-07-17 03:17:11 +0000 UTC FinishedAt: 2026-07-17 04:00:45 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MWIFIEX", "MWIFIEX_USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MWIFIEX", "MWIFIEX_USB" ], "series_id": "bb7a3c28-309f-43f7-b0be-9dec4e13e60f" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mwifiex_update_bss_desc_with_ie", "mwifiex_fill_new_bss_desc" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIHBhcnNpbmcgaW4gdGhlIE1hcnZlbGwgV2lGaS1FeCBkcml2ZXIuIFNpbmNlIHRoaXMgZHJpdmVyIHN1cHBvcnRzIFVTQiAoTVdJRklFWF9VU0IpLCBpdCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0byBpbmplY3QgbWFsZm9ybWVkIGZpcm13YXJlIHJlc3BvbnNlcyBjb250YWluaW5nIGNyYWZ0ZWQgSUVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDljNjllYzVkZTUwMzM4ODdlZjhkYTk2MjMzZWJmYmIxZGRlZjVlOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDAzOjU3OjU5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG5pbmRleCA5N2MwZWMzYjgyMmU3MC4uMDE5NmMyYWRmZWVkZjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG5AQCAtMTM4NCw2ICYjNDM7MTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdFx0XHRic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfSFRfQ0FQQUJJTElUWTpcbiYjNDM7XHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9jYXApKVxuJiM0MztcdFx0XHRcdHJldHVybiAtRUlOVkFMO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViY25faHRfY2FwID0gKHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwICopXG4gXHRcdFx0XHRcdChjdXJyZW50X3B0ciAmIzQzO1xuIFx0XHRcdFx0XHRzaXplb2Yoc3RydWN0IGllZWVfdHlwZXNfaGVhZGVyKSk7XG5AQCAtMTM5Miw2ICYjNDM7MTM5NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViZWFjb25fYnVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBXTEFOX0VJRF9IVF9PUEVSQVRJT046XG4mIzQzO1x0XHRcdGlmIChlbGVtZW50X2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uKSlcbiYjNDM7XHRcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX2h0X29wZXIgPVxuIFx0XHRcdFx0KHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICYjNDM7XG4gXHRcdFx0XHRcdHNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTtcbkBAIC0xNDAwLDYgJiM0MzsxNDA0LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX1ZIVF9DQVBBQklMSVRZOlxuJiM0MztcdFx0XHRpZiAoZWxlbWVudF9sZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKVxuJiM0MztcdFx0XHRcdHJldHVybiAtRUlOVkFMO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2VkaXNhYmxlXzExYWMgPSBmYWxzZTtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX3ZodF9jYXAgPVxuIFx0XHRcdFx0KHZvaWQgKikoY3VycmVudF9wdHIgJiM0MztcbkBAIC0xNDA5LDYgJiM0MzsxNDE1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0ICAgICAgYnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX1ZIVF9PUEVSQVRJT046XG4mIzQzO1x0XHRcdGlmIChlbGVtZW50X2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X29wZXJhdGlvbikpXG4mIzQzO1x0XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJjbl92aHRfb3BlciA9XG4gXHRcdFx0XHQodm9pZCAqKShjdXJyZW50X3B0ciAmIzQzO1xuIFx0XHRcdFx0XHQgc2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIHBhcnNpbmcgaW4gdGhlIE1hcnZlbGwgV2lGaS1FeCBkcml2ZXIuIFNpbmNlIHRoaXMgZHJpdmVyIHN1cHBvcnRzIFVTQiAoTVdJRklFWF9VU0IpLCBpdCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0byBpbmplY3QgbWFsZm9ybWVkIGZpcm13YXJlIHJlc3BvbnNlcyBjb250YWluaW5nIGNyYWZ0ZWQgSUVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0OWM2OWVjNWRlNTAzMzg4N2VmOGRhOTYyMzNlYmZiYjFkZGVmNWU5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMTcgMDM6NTc6NTkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYwppbmRleCA5N2MwZWMzYjgyMmU3MC4uMDE5NmMyYWRmZWVkZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYwpAQCAtMTM4NCw2ICYjNDM7MTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsCiAJCQkJCQkJYnNzX2VudHJ5LSZndDtiZWFjb25fYnVmKTsKIAkJCWJyZWFrOwogCQljYXNlIFdMQU5fRUlEX0hUX0NBUEFCSUxJVFk6CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwKSkKJiM0MzsJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQlic3NfZW50cnktJmd0O2Jjbl9odF9jYXAgPSAoc3RydWN0IGllZWU4MDIxMV9odF9jYXAgKikKIAkJCQkJKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCXNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTsKQEAgLTEzOTIsNiAmIzQzOzEzOTQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLAogCQkJCQlic3NfZW50cnktJmd0O2JlYWNvbl9idWYpOwogCQkJYnJlYWs7CiAJCWNhc2UgV0xBTl9FSURfSFRfT1BFUkFUSU9OOgomIzQzOwkJCWlmIChlbGVtZW50X2xlbiAmbHQ7IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbikpCiYjNDM7CQkJCXJldHVybiAtRUlOVkFMOwogCQkJYnNzX2VudHJ5LSZndDtiY25faHRfb3BlciA9CiAJCQkJKHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCXNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTsKQEAgLTE0MDAsNiAmIzQzOzE0MDQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLAogCQkJCQlic3NfZW50cnktJmd0O2JlYWNvbl9idWYpOwogCQkJYnJlYWs7CiAJCWNhc2UgV0xBTl9FSURfVkhUX0NBUEFCSUxJVFk6CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCkpCiYjNDM7CQkJCXJldHVybiAtRUlOVkFMOwogCQkJYnNzX2VudHJ5LSZndDtkaXNhYmxlXzExYWMgPSBmYWxzZTsKIAkJCWJzc19lbnRyeS0mZ3Q7YmNuX3ZodF9jYXAgPQogCQkJCSh2b2lkICopKGN1cnJlbnRfcHRyICYjNDM7CkBAIC0xNDA5LDYgJiM0MzsxNDE1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlciwKIAkJCQkJICAgICAgYnNzX2VudHJ5LSZndDtiZWFjb25fYnVmKTsKIAkJCWJyZWFrOwogCQljYXNlIFdMQU5fRUlEX1ZIVF9PUEVSQVRJT046CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X29wZXJhdGlvbikpCiYjNDM7CQkJCXJldHVybiAtRUlOVkFMOwogCQkJYnNzX2VudHJ5LSZndDtiY25fdmh0X29wZXIgPQogCQkJCSh2b2lkICopKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCSBzaXplb2Yoc3RydWN0IGllZWVfdHlwZXNfaGVhZGVyKSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjQKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAzMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgV2lGaSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jYC4gSXQgc2VlbXMgdGhleSYjMzk7cmUgYWRkaW5nIGJvdW5kcyBjaGVja2luZyBpbiBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAsIHNwZWNpZmljYWxseSBmb3IgdGhvc2UgSFQgYW5kIFZIVCBJbmZvcm1hdGlvbiBFbGVtZW50cyDigJMgYFdMQU5fRUlEX0hUX0NBUEFCSUxJVFlgLCBgV0xBTl9FSURfSFRfT1BFUkFUSU9OYCwgYFdMQU5fRUlEX1ZIVF9DQVBBQklMSVRZYCwgYW5kIGBXTEFOX0VJRF9WSFRfT1BFUkFUSU9OYC4gU21hcnQgbW92ZTsgdGhleSYjMzk7cmUgY29tcGFyaW5nIGBlbGVtZW50X2xlbmAgYWdhaW5zdCB0aGUgc2l6ZXMgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc3RydWN0dXJlcyB0byBwcmV2ZW50IGJ1ZmZlciBvdmVycnVucy4gVGhpcyBzaG91bGQgYmUgYSBuaWNlLCBzb2xpZCBmdW5jdGlvbmFsIGltcHJvdmVtZW50LCBhZGRyZXNzaW5nIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWRzIG9yIHdyaXRlcywgdGhlIHVzdWFsIHN1c3BlY3RzLiBJIGtub3cgdGhpcyBkcml2ZXIgaXMgZm9yIE1hcnZlbGwgV2lGaSBjaGlwcywgc28gaXQmIzM5O3MgYSBgbXdpZmlleGAgZHJpdmVyLgoKTm93LCBteSBtaW5kIHN0YXJ0cyByYWNpbmcg4oCTIGlzIHRoaXMgc29tZXRoaW5nIHdlIGNhbiByZWFjaCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBvciBhcmUgd2Ugc3R1Y2sgd2l0aCBpdCBiZWluZyBhIHN0cmljdGx5IGhhcmR3YXJlLWRlcGVuZGVudCBkcml2ZXI/IGBtYWM4MDIxMV9od3NpbWAgd29uJiMzOTt0IGNvdmVyIGl0LCBiZWNhdXNlIGl0JiMzOTtzIGhhcmR3YXJlLXNwZWNpZmljLiBXYWl0LCB5ZWFoLCB0aGlzIGlzIGEgc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyLiBIbW0sIGNhbiB3ZSBmdXp6IGl0PyBJIGtub3cgd2UgY2FuIHNvbWV0aW1lcyBmdXp6IGhhcmR3YXJlIGRyaXZlcnMsIGJ1dCBvZnRlbiBub3QgZWFzaWx5LiBVbmxlc3MgdGhlcmUmIzM5O3Mgc29tZSBraW5kIG9mIGVtdWxhdGlvbiBsYXllciBvciBzb21ldGhpbmcgbGlrZSBVU0IgZnV6emluZyAobGlrZSB3aXRoIGB2aGNpYCksIHdlJiMzOTtyZSBwcm9iYWJseSBnb2luZyB0byBoYXZlIHRyb3VibGUuIExldCBtZSBzZWUuLi4gSSYjMzk7bGwgY2hlY2sgaWYgYG13aWZpZXhgIHVzZXMgYSBVU0IgaW50ZXJmYWNlLiBJIHZhZ3VlbHkgcmVjYWxsIHRoZXJlIGJlaW5nIGEgYHVzYi5jYCBmaWxlLi4uIHllcCwgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuY2AuIExldCYjMzk7cyB0YWtlIGEgbG9vayB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg9MTUzOD1pbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTU0MC1cdFx0XHQgICAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oOjE1NDE6aW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTU0Mi1cdFx0XHRcdCAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZW50cnkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM9MTExMj1td2lmaWV4X3JldF84MDJfMTFfc2Nhbl9nZXRfdGx2X3B0cnMoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTExODEtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjExODI6aW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTE4My1cdFx0XHRcdCAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZW50cnkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTEyOT1pbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MTgwOlx0cmV0dXJuIG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUocHJpdi1cdTAwM2VhZGFwdGVyLCBic3NfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTgxLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTUyCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEkmIzM5O20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIG13aWZpZXggVVNCIERyaXZlciBQcmVzZW5jZSoqCgpBbHJpZ2h0LCBzbyB0aGUgaW5pdGlhbCB0aG91Z2h0IHRoYXQgcG9wcyBpbnRvIG15IGhlYWQgaXMgdG8gZGV0ZXJtaW5lIGlmIGBtd2lmaWV4YCBldmVuIGhhcyBhIGNvcnJlc3BvbmRpbmcgVVNCIGRyaXZlciBhdmFpbGFibGUuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgZmlyc3Qgc3RlcC4gV2UgbmVlZCB0byBhc2NlcnRhaW4gaWYgdGhlIHN5c3RlbSBoYXMgdGhlIGNhcGFiaWxpdHkgdG8gaW50ZXJmYWNlIHdpdGggdGhpcyBwb3RlbnRpYWwgV2ktRmkgaGFyZHdhcmUgdGhyb3VnaCBVU0IuIEEgcXVpY2sgY2hlY2sgaGVyZSBzYXZlcyB0aW1lIGRvd24gdGhlIGxpbmUuIFdlIGNhbiYjMzk7dCBwcm9jZWVkIGZ1cnRoZXIgd2l0aCBhbnkgVVNCLXJlbGF0ZWQgZGVidWdnaW5nIG9yIGNvbmZpZ3VyYXRpb24gd2l0aG91dCB2ZXJpZnlpbmcgdGhpcyBpbml0aWFsIGNvbm5lY3Rpdml0eSBvcHRpb24uIFNvLCB0aGF0JiMzOTtzIHdoZXJlIEkmIzM5O20gc3RhcnRpbmc6IGRvZXMgYG13aWZpZXhgIHByb3ZpZGUgdGhlIG5lY2Vzc2FyeSBVU0IgaW50ZXJmYWNlLCBhbmQgaWYgc28sIHdoYXQmIzM5O3MgdGhlIGRyaXZlciBzaXR1YXRpb24/IExldCYjMzk7cyBkaWcgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0OzExYWMuYyYjMzQ7LAogICAgJiMzNDsxMWFjLmgmIzM0OywKICAgICYjMzQ7MTFoLmMmIzM0OywKICAgICYjMzQ7MTFuLmMmIzM0OywKICAgICYjMzQ7MTFuLmgmIzM0OywKICAgICYjMzQ7MTFuX2FnZ3IuYyYjMzQ7LAogICAgJiMzNDsxMW5fYWdnci5oJiMzNDssCiAgICAmIzM0OzExbl9yeHJlb3JkZXIuYyYjMzQ7LAogICAgJiMzNDsxMW5fcnhyZW9yZGVyLmgmIzM0OywKICAgICYjMzQ7Y2ZnODAyMTEuYyYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMS5oJiMzNDssCiAgICAmIzM0O2NmcC5jJiMzNDssCiAgICAmIzM0O2NtZGV2dC5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtkZWNsLmgmIzM0OywKICAgICYjMzQ7ZXRodG9vbC5jJiMzNDssCiAgICAmIzM0O2Z3LmgmIzM0OywKICAgICYjMzQ7aWUuYyYjMzQ7LAogICAgJiMzNDtpbml0LmMmIzM0OywKICAgICYjMzQ7aW9jdGwuaCYjMzQ7LAogICAgJiMzNDtqb2luLmMmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21haW4uaCYjMzQ7LAogICAgJiMzNDtwY2llLmMmIzM0OywKICAgICYjMzQ7cGNpZS5oJiMzNDssCiAgICAmIzM0O3BjaWVfcXVpcmtzLmMmIzM0OywKICAgICYjMzQ7cGNpZV9xdWlya3MuaCYjMzQ7LAogICAgJiMzNDtzY2FuLmMmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW8uaCYjMzQ7LAogICAgJiMzNDtzdGFfY21kLmMmIzM0OywKICAgICYjMzQ7c3RhX2NtZHJlc3AuYyYjMzQ7LAogICAgJiMzNDtzdGFfZXZlbnQuYyYjMzQ7LAogICAgJiMzNDtzdGFfaW9jdGwuYyYjMzQ7LAogICAgJiMzNDtzdGFfcnguYyYjMzQ7LAogICAgJiMzNDtzdGFfdHguYyYjMzQ7LAogICAgJiMzNDt0ZGxzLmMmIzM0OywKICAgICYjMzQ7dHhyeC5jJiMzNDssCiAgICAmIzM0O3VhcF9jbWQuYyYjMzQ7LAogICAgJiMzNDt1YXBfZXZlbnQuYyYjMzQ7LAogICAgJiMzNDt1YXBfdHhyeC5jJiMzNDssCiAgICAmIzM0O3VzYi5jJiMzNDssCiAgICAmIzM0O3VzYi5oJiMzNDssCiAgICAmIzM0O3V0aWwuYyYjMzQ7LAogICAgJiMzNDt1dGlsLmgmIzM0OywKICAgICYjMzQ7d21tLmMmIzM0OywKICAgICYjMzQ7d21tLmgmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MDAKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgV2lGaSBEcml2ZXIgUGF0Y2ggZm9yIFBvdGVudGlhbCBWdWxuZXJhYmlsaXRpZXMqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBkaWdnaW5nIGludG8gYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uY2AuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7cmUgYWRkaW5nIGJvdW5kcyBjaGVja2luZyBmb3IgYSBmZXcgaW1wb3J0YW50IDgwMi4xMSBlbGVtZW50czogYFdMQU5fRUlEX0hUX0NBUEFCSUxJVFlgLCBgV0xBTl9FSURfSFRfT1BFUkFUSU9OYCwgYFdMQU5fRUlEX1ZIVF9DQVBBQklMSVRZYCwgYW5kIGBXTEFOX0VJRF9WSFRfT1BFUkFUSU9OYC4gVGhpcyBpbW1lZGlhdGVseSBzY3JlYW1zIHBvdGVudGlhbCBmb3Igb2ZmLWJ5LW9uZSBlcnJvcnMgb3IgYnVmZmVyIG92ZXJmbG93cywgd2hpY2ggaXMgcHJlY2lzZWx5IHRoZSBraW5kIG9mIHRoaW5nIEkmIzM5O20gYWx3YXlzIGxvb2tpbmcgZm9yLiBUaGlzIGlzIGEgTWFydmVsbCBXaUZpIGRyaXZlciwgYG13aWZpZXhgLCB3aGljaCBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGhhcmR3YXJlLCBvciBhdCBsZWFzdCBhIHNvZnR3YXJlIHJlcHJlc2VudGF0aW9uIG9mIGl0LgoKTXkgZmlyc3QgdGhvdWdodCBpcyBhbHdheXMgYWJvdXQgcmVhY2hhYmlsaXR5OiBjYW4gdGhpcyBkcml2ZXIgZXZlbiAqYmUqIGF0dGFja2VkIGluIHRoZSBlbnZpcm9ubWVudHMgSSYjMzk7bSB0eXBpY2FsbHkgdGFyZ2V0aW5nPyBJbiBtb3N0IHZpcnR1YWxpemVkIHNldHVwcyBsaWtlIEdDRSBvciBRRU1VLCB3ZSYjMzk7cmUgdW5saWtlbHkgdG8gaGF2ZSBkaXJlY3QgaGFyZHdhcmUgYWNjZXNzIHRvIGEgZGVkaWNhdGVkIFdpRmkgY2FyZCwgdW5sZXNzIGl0JiMzOTtzIGEgVVNCIGRldmljZS4gT2Z0ZW4sIHdlIG1pZ2h0IGdldCBsdWNreSB3aXRoIHNvZnR3YXJlIGVtdWxhdGlvbiwgb3IgcGVyaGFwcyBhIGR1bW15IGhvc3QgY29udHJvbGxlciAoZHVtbXktaGNkL3ZoY2kpIHNldHVwIGZvciBmdXp6aW5nIHRoZSBVU0IgZHJpdmVyLiBTbywgaXMgdGhlcmUgYSBVU0IgY29tcG9uZW50PwoKQSBxdWljayBzY2FuIHNob3dzIHRoZXJlICppcyogYSBgdXNiLmNgIGFuZCBgdXNiLmhgIHJpZ2h0IHRoZXJlIGluIHRoZSBgbXdpZmlleGAgZGlyZWN0b3J5ISBFeGNlbGxlbnQuIFRoYXQmIzM5O3MgYSBzdHJvbmcgaW5kaWNhdG9yIHdlIG1pZ2h0IGJlIGFibGUgdG8gdHJpZ2dlciB0aGlzIGNvZGUgcGF0aCB0aHJvdWdoIFVTQi4gTm93IEkgbmVlZCB0byBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3VzYi5jYCB0byBjb25maXJtIGl0IHJlZ2lzdGVycyBhIFVTQiBkcml2ZXIsIHRvIGFzY2VydGFpbiBpZiB0aGlzIGlzIGEgcGF0aCB3ZSBjYW4gYWN0dWFsbHkgZXhwbG9pdC4gVGhpcyBjb3VsZCBvcGVuIGEgdmVyeSBpbnRlcmVzdGluZyBhdHRhY2sgc3VyZmFjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VzYl9yZWdpc3RlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDg0MQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIHN0cmVhbSBvZiB0aG91Z2h0OgoKKipDaGVja2luZyBmb3IgVVNCIERyaXZlciBDYW5kaWRhdGVzKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCYjMzk7cyBnb2luZyBvbiB3aXRoIHRoaXMgVVNCIHNpdHVhdGlvbi4gTXkgZmlyc3QgbW92ZSBpcyBzdHJhaWdodGZvcndhcmQ6IEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHBvdGVudGlhbCBVU0IgZHJpdmVyIGVudHJpZXMuIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhlIG9idmlvdXMgY2FuZGlkYXRlcy4gSSYjMzk7bGwgc2VhcmNoIGZvciB0aGluZ3MgbGFiZWxlZCB2ZXJ5IGV4cGxpY2l0bHksIGxpa2UgYHVzYl9kcml2ZXJgLiBJZiB0aGF0JiMzOTtzIHRvbyBzaW1wbGUsIEkmIzM5O2xsIGJyb2FkZW4gdGhlIG5ldCBhIGJpdCBhbmQgbG9vayBmb3IgdmFyaWF0aW9ucyBvbiB0aGF0IHRoZW1lLCBzdWNoIGFzIGBtb2R1bGVfdXNiX2RyaXZlcmAuIFRoaXMgd2lsbCBnaXZlIG1lIGEgYmFzZWxpbmUgdG8gd29yayBmcm9tLCBhIGhhbmRsZSBvbiB0aGUgbW9zdCBmdW5kYW1lbnRhbCBwYXJ0cyBvZiB0aGUgVVNCIGRyaXZlciwgdG8gc2VlIGlmIGFueXRoaW5nIGlzIGltbWVkaWF0ZWx5IGFwcGFyZW50LiBGcm9tIHRoZXJlLCBJIGNhbiBiZWdpbiBteSBpbnZlc3RpZ2F0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfdXNiX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmM9MTU4ND1zdGF0aWMgY29uc3Qgc3RydWN0IG13aWZpZXhfaWZfb3BzIHVzYl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3VzYi5jLTE1OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmM6MTYwMDptb2R1bGVfdXNiX2RyaXZlcihtd2lmaWV4X3VzYl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3VzYi5jLTE2MDEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxOTkKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAxMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBtd2lmaWV4IERyaXZlciBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIEkgc2VlIGl0LiBUaGUgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGZ1bmN0aW9uIGlzIGRlZmluaXRlbHkgYSBwb3RlbnRpYWwgZW50cnkgcG9pbnQgZm9yIGZ1enppbmcsIGxpa2VseSB0aHJvdWdoIFVTQiBmdXp6aW5nIHV0aWxpemluZyBzb21ldGhpbmcgbGlrZSBzeXprYWxsZXImIzM5O3MgYHN5el91c2JfY29ubmVjdGAgY2FsbC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgZ3JhcGggdG8gZGV0ZXJtaW5lIHRoZSBwb3RlbnRpYWwgaW1wYWN0LiBJdCBsb29rcyBsaWtlIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBpcyBjYWxsZWQgZnJvbSBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AsIHdoaWNoIGl0c2VsZiBpcyBjYWxsZWQgZnJvbSBgbXdpZmlleF9yZXRfODAyXzExX3NjYW5fZ2V0X3Rsdl9wdHJzYC4gVGhlIGNhbGwgdG8gYG13aWZpZXhfc2V0X21hY19hZGRyZXNzYCBpcyBhbHNvIGluIHRoZXJlLCBwZXJoYXBzLCB0aGlzIGlzIHNvbWV0aGluZyB0byBhbHNvIGJlIGNvbnNpZGVyZWQsIG9yIGF0IGxlYXN0IGNvbmZpcm1lZCBieSBjaGVja2luZyB0aGUgY2FsbCBncmFwaC4gVGhlIG5leHQgc3RlcCBpcyB0byBtZXRob2RpY2FsbHkgdHJhY2UgKmFsbCogY2FsbHMgdG8gYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIHRvIGZvcm0gYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oPTE1Mzg9aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1NDAtXHRcdFx0ICAgICAgc3RydWN0IG13aWZpZXhfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaDoxNTQxOmludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1NDItXHRcdFx0XHQgICAgc3RydWN0IG13aWZpZXhfYnNzZGVzY3JpcHRvciAqYnNzX2VudHJ5KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTExMTI9bXdpZmlleF9yZXRfODAyXzExX3NjYW5fZ2V0X3Rsdl9wdHJzKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xMTgxLSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYzoxMTgyOmludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTExODMtXHRcdFx0XHQgICAgc3RydWN0IG13aWZpZXhfYnNzZGVzY3JpcHRvciAqYnNzX2VudHJ5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYz0xMjk9aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jOjE4MDpcdHJldHVybiBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHByaXYtXHUwMDNlYWRhcHRlciwgYnNzX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTE4MS19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzNDUKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oPTE1MzY9aW50IG13aWZpZXhfZ2V0X2Jzc19pbmZvKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTUzNy1cdFx0XHQgc3RydWN0IG13aWZpZXhfYnNzX2luZm8gKik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oOjE1Mzg6aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTUzOS1cdFx0XHQgICAgICBzdHJ1Y3QgY2ZnODAyMTFfYnNzICpic3MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYz0xNjUxPXN0YXRpYyBpbnQgbXdpZmlleF9zYXZlX2hpZGRlbl9zc2lkX2NoYW5uZWxzKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYzoxNjYzOlx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTY2NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjg3LVx0LyogYmVhY29uX2llIGJ1ZmZlciB3YXMgYWxsb2NhdGVkIGluIGZ1bmN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE2ODg6XHQgKiBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKCkuIEZyZWUgaXQgbm93LlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjg5LVx0ICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYz0xNjk1PXN0YXRpYyBpbnQgbXdpZmlleF91cGRhdGVfY3Vycl9ic3NfcGFyYW1zKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYzoxNzA2Olx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTcwNy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzI2LVx0LyogYmVhY29uX2llIGJ1ZmZlciB3YXMgYWxsb2NhdGVkIGluIGZ1bmN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE3Mjc6XHQgKiBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKCkuIEZyZWUgaXQgbm93LlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzI4LVx0ICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTc2PWludCBtd2lmaWV4X3JlcXVlc3Rfc2V0X211bHRpY2FzdF9saXN0KHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTEyOC0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYzoxMjk6aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xMzAtXHRcdFx0ICAgICAgc3RydWN0IGNmZzgwMjExX2JzcyAqYnNzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYz0zMTg9aW50IG13aWZpZXhfYnNzX3N0YXJ0KHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsIHN0cnVjdCBjZmc4MDIxMV9ic3MgKmJzcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMzM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jOjMzNzpcdFx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0zMzgtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTQzMi1cdC8qIGJlYWNvbl9pZSBidWZmZXIgd2FzIGFsbG9jYXRlZCBpbiBmdW5jdGlvblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jOjQzMzpcdCAqIG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MoKS4gRnJlZSBpdCBub3cuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtNDM0LVx0ICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyMjAKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxNjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVnVsbmVyYWJpbGl0eSBBc3Nlc3NtZW50OiBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKioKCk9rYXksIHNvIGhlcmUmIzM5O3MgdGhlIGJyZWFrZG93biBvZiB3aGF0IEkmIzM5O20gdGhpbmtpbmcuIEkmIzM5O3ZlIGJlZW4gdHJhY2luZyBkb3duIHRoZSBjYWxsIHN0YWNrIGFuZCBpdCYjMzk7cyBsb29raW5nIGxpa2UgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGlzIGEga2V5IGZ1bmN0aW9uIHRvIGNvbnNpZGVyLiBJdCYjMzk7cyBjYWxsZWQgZnJvbSB0d28gcGxhY2VzOiBgbXdpZmlleF9yZXRfODAyXzExX3NjYW5fZ2V0X3Rsdl9wdHJzYCBhbmQgYG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2NgLgoKQW5kLCBhcyBJIGZvbGxvdyB0aGUgY2FsbHMsIEkgc2VlIHRoYXQgYG13aWZpZXhfcmV0XzgwMl8xMV9zY2FuX2dldF90bHZfcHRyc2AgaXMgY2FsbGVkIGZyb20gYG13aWZpZXhfcmV0XzgwMl8xMV9zY2FuYC4gVGhpcyBpcyBzaWduaWZpY2FudCBiZWNhdXNlIGBtd2lmaWV4X3JldF84MDJfMTFfc2NhbmAgaXMgcmVzcG9uc2libGUgZm9yIHBhcnNpbmcgc2NhbiByZXN1bHRzIHRoYXQgY29tZSBkaXJlY3RseSBmcm9tIHRoZSBmaXJtd2FyZSDigJMgb3IgcG90ZW50aWFsbHkgb3ZlciBVU0IsIGRlcGVuZGluZyBvbiB0aGUgc2V0dXAuCgpUaGlzIGdpdmVzIG1lIGEgY2xlYXIgYXR0YWNrIHN1cmZhY2U6IGl0JiMzOTtzIGRhdGEgY29taW5nIGZyb20gdGhlIGZpcm13YXJlIGl0c2VsZiwgb3Igb3ZlciB0aGUgVVNCIGludGVyZmFjZS4gU28sIGlmIHRoZSBmaXJtd2FyZSBpcyBjb21wcm9taXNlZCwgbWFsaWNpb3VzLCBvciBpZiB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IGZ1enogdGhlIFVTQiBjb25uZWN0aW9uLCB3ZSBjYW4gZGlyZWN0bHkgdHJpZ2dlciB0aGUgZXhlY3V0aW9uIG9mIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYC4gQ29uc2lkZXJpbmcgdGhlIGNvbnRleHQsIHRoaXMgKmFic29sdXRlbHkqIHNlZW1zIGxpa2UgYSByaXBlIHRhcmdldCBmb3IgZnV6emluZy4gV2UgbWlnaHQgYmUgYWJsZSB0byBjcmFmdCBtYWxpY2lvdXMgQlNTIGRlc2NyaXB0b3JzIHRoYXQgbGVhZCB0byBhIGNyYXNoLCBtZW1vcnkgY29ycnVwdGlvbiwgb3IgZXZlbiBhcmJpdHJhcnkgY29kZSBleGVjdXRpb24uCgpNeSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHRoZSBleGFjdCBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cyBmb3IgdGhlIGBtd2lmaWV4YCBVU0IgZHJpdmVyLCBzbyB0aGF0IEkgY2FuIGZpZ3VyZSBvdXQgdGhlIGJlc3Qgd2F5IHRvIHRyaWdnZXIgdGhpcyBjb2RlIHBhdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNV0lGSUVYJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6Mjpjb25maWcgTVdJRklFWFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjEyOmNvbmZpZyBNV0lGSUVYX1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTEzLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgU0Q4Nzg2L1NEODc4Ny9TRDg3OTcvU0Q4ODg3L1NEODg5Ny9TRDg5NzcvU0Q4OTc4L1NEODk4Ny9TRDg5OTdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjI1OmNvbmZpZyBNV0lGSUVYX1BDSUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTI2LVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgUENJRSA4NzY2Lzg4OTcvODk5N1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6Mzc6Y29uZmlnIE1XSUZJRVhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zOC1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFVTQjg3NjYvODc5Ny84OTk3XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgyMTUKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipBbmFseXppbmcgRGVwZW5kZW5jaWVzIGZvciBXaXJlbGVzcyBEcml2ZXIgTW9kdWxlcyoqCgpBbHJpZ2h0LCBzbyB0aGUgdGFzayBhdCBoYW5kIGludm9sdmVzIHdvcmtpbmcgd2l0aCBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAg4oCTIHR3byBtb2R1bGVzIHJlbGF0ZWQgdG8gd2lyZWxlc3MgZnVuY3Rpb25hbGl0eSwgbGlrZWx5IGRyaXZlcnMuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHRoZSBkZXBlbmRlbmN5IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZW0uIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGNvbmZpcm0gaWYgYE1XSUZJRVhfVVNCYCBhY3R1YWxseSAqZGVwZW5kcyogb24gYE1XSUZJRVhgLiBJZiBpdCBkb2VzLCB0aGVuIHRoZSBidWlsZCBwcm9jZXNzLCBsb2FkaW5nIG9yZGVyLCBhbmQgb3ZlcmFsbCBtb2R1bGUgbWFuYWdlbWVudCBuZWVkIHRvIGFjY291bnQgZm9yIHRoaXMgY3JpdGljYWwgcHJlcmVxdWlzaXRlLiBLbm93aW5nIHRoaXMgcmVsYXRpb25zaGlwIGlzIGZ1bmRhbWVudGFsIGZvciBhIHN0YWJsZSBhbmQgcHJvcGVybHkgZnVuY3Rpb25pbmcgd2lyZWxlc3Mgc3lzdGVtLiBJIG5lZWQgdG8gZGVsdmUgaW50byB0aGUgY29kZSwgY29uZmlndXJhdGlvbiBmaWxlcywgb3IgYnVpbGQgc2NyaXB0cyB0byBkZXRlcm1pbmUgaWYgdGhpcyBkZXBlbmRlbmN5IGV4aXN0cy4gSXQmIzM5O3MgYSBrZXkgZmlyc3Qgc3RlcCBiZWZvcmUgSSBwcm9jZWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0Y29uZmlnIE1XSUZJRVhcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXJcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gQ0ZHODAyMTFcbiAgIDU6XHRcdGhlbHBcbiAgIDY6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHdpcmVsZXNzIGFkYXB0ZXJzIGJhc2VkIG9uIE1hcnZlbGxcbiAgIDc6XHRcdCAgODAyLjExbi9hYyBjaGlwc2V0cy5cbiAgIDg6XHRcbiAgIDk6XHRcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBpdCBhcyBhIG1vZHVsZSwgaXQgd2lsbCBiZSBjYWxsZWRcbiAgMTA6XHRcdCAgbXdpZmlleC5cbiAgMTE6XHRcbiAgMTI6XHRjb25maWcgTVdJRklFWF9TRElPXG4gIDEzOlx0XHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBTRDg3ODYvU0Q4Nzg3L1NEODc5Ny9TRDg4ODcvU0Q4ODk3L1NEODk3Ny9TRDg5NzgvU0Q4OTg3L1NEODk5N1wmIzM0O1xuICAxNDpcdFx0ZGVwZW5kcyBvbiBNV0lGSUVYIFx1MDAyNlx1MDAyNiBNTUNcbiAgMTU6XHRcdHNlbGVjdCBGV19MT0FERVJcbiAgMTY6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICAxNzpcdFx0aGVscFxuICAxODpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTWFydmVsbFxuICAxOTpcdFx0ICA4Nzg2Lzg3ODcvODc5Ny84ODg3Lzg4OTcvODk3Ny84OTc4Lzg5ODcvODk5NyBjaGlwc2V0cyB3aXRoXG4gIDIwOlx0XHQgIFNESU8gaW50ZXJmYWNlLiBTRDg5NzggaXMgYWxzbyBrbm93biBhcyBOWFAgSVc0MTYuXG4gIDIxOlx0XG4gIDIyOlx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXG4gIDIzOlx0XHQgIG13aWZpZXhfc2Rpby5cbiAgMjQ6XHRcbiAgMjU6XHRjb25maWcgTVdJRklFWF9QQ0lFXG4gIDI2Olx0XHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBQQ0lFIDg3NjYvODg5Ny84OTk3XCYjMzQ7XG4gIDI3Olx0XHRkZXBlbmRzIG9uIE1XSUZJRVggXHUwMDI2XHUwMDI2IFBDSVxuICAyODpcdFx0c2VsZWN0IEZXX0xPQURFUlxuICAyOTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gIDMwOlx0XHRoZWxwXG4gIDMxOlx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBNYXJ2ZWxsXG4gIDMyOlx0XHQgIDg3NjYvODg5Ny84OTk3IGNoaXBzZXRzIHdpdGggUENJZSBpbnRlcmZhY2UuXG4gIDMzOlx0XG4gIDM0Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXG4gIDM1Olx0XHQgIG13aWZpZXhfcGNpZS5cbiAgMzY6XHRcbiAgMzc6XHRjb25maWcgTVdJRklFWF9VU0JcbiAgMzg6XHRcdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFVTQjg3NjYvODc5Ny84OTk3XCYjMzQ7XG4gIDM5Olx0XHRkZXBlbmRzIG9uIE1XSUZJRVggXHUwMDI2XHUwMDI2IFVTQlxuICA0MDpcdFx0c2VsZWN0IEZXX0xPQURFUlxuICA0MTpcdFx0aGVscFxuICA0MjpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTWFydmVsbFxuICA0MzpcdFx0ICA4Nzk3Lzg5OTcgY2hpcHNldCB3aXRoIFVTQiBpbnRlcmZhY2UuXG4gIDQ0Olx0XG4gIDQ1Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXG4gIDQ2Olx0XHQgIG13aWZpZXhfdXNiLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4Mjc5CgkJCQkJCQlvdXRwdXQ6IDEyOAoJCQkJCQkJdGhvdWdodHM6IDg0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFN0cmF0ZWd5IGZvciBJbmZvcm1hdGlvbiBFbGVtZW50IFBhcnNpbmcgaW4gdGhlIE1hcnZlbGwgbXdpZmlleCBXaS1GaSBEcml2ZXIqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhIGdvb2Qgb25lLiBJdCYjMzk7cyB0aWdodGVuaW5nIHVwIElFIHBhcnNpbmcgaW4gYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uY2AuIFNwZWNpZmljYWxseSwgdGhleSYjMzk7cmUgYWRkaW5nIGNoZWNrcyBhZ2FpbnN0IHN0cnVjdHVyZSBzaXplcyAoYGllZWU4MDIxMV9odF9jYXBgLCBldGMuKSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgZHVyaW5nIGJlYWNvbi9wcm9iZSByZXNwb25zZSBwcm9jZXNzaW5nLiBUaGlzIGlzIHNvbGlkIGRlZmVuc2l2ZSBwcm9ncmFtbWluZywgYSBncmVhdCBwbGFjZSB0byBsb29rIGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O1dpcmVsZXNzIGRyaXZlciwgZXhjZWxsZW50ISYjMzQ7IFdlIGhhdmUgYG13aWZpZXhgIGhlcmUsIHdoaWNoLCBhcyBJIHJlY2FsbCwgc3VwcG9ydHMgU0RJTywgUENJZSwgYW5kIFVTQi4gVGhlIGluY2x1c2lvbiBvZiBVU0Igc3VwcG9ydCAoYE1XSUZJRVhfVVNCYCkgaXMgdGhlIGtleSBoZXJlLiBTeXprYWxsZXImIzM5O3MgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzLCBlc3BlY2lhbGx5IHdpdGggdGhlIGR1bW15IEhDRCwgYXJlIHBlcmZlY3QgZm9yIHRoaXMuIFdlIGNhbiBjcmFmdCBtYWxpY2lvdXMgVVNCIHBhY2tldHMgdGhhdCBtaW1pYyBmaXJtd2FyZSByZXNwb25zZXMsIGluY2x1ZGluZyB0aG9zZSBzY2FuIHJlc3VsdHMgYW5kIGNyYWZ0ZWQgSUVzIHRvIHRyaWdnZXIgdGhvc2UgYm91bmRzIGNoZWNrcy4KCkxldCYjMzk7cyBxdWlja2x5IGNoZWNrIHJlYWNoYWJpbGl0eS4gTG9va3MgbGlrZSBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgaXMgY2FsbGVkIGJ5IGBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjYCwgd2hpY2ggaXMgaXRzZWxmIGNhbGxlZCBieSBgbXdpZmlleF9zYXZlX2hpZGRlbl9zc2lkX2NoYW5uZWxzYCwgYG13aWZpZXhfdXBkYXRlX2N1cnJfYnNzX3BhcmFtc2AsIGFuZCBgbXdpZmlleF9ic3Nfc3RhcnRgLiBBbGwgb2YgdGhlc2UgZnVuY3Rpb25zIGFyZSBpbnZvbHZlZCBpbiBzY2FubmluZyBhbmQgY29ubmVjdGluZyB0byBCU1NzLiBTaW5jZSB0aGlzIGRyaXZlciBpcyBwYXJzaW5nIElFcywgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIgaXMgZGVmaW5pdGVseSByZWFjaGFibGUsIGFuZCB0aHVzLCB2dWxuZXJhYmxlLgoKUmlnaHQsIGBtd2lmaWV4YCBpcyBhIEZ1bGxNQUMgZHJpdmVyLCB3aGljaCBtZWFucyBpdCByZWxpZXMgb24gdGhlIGZpcm13YXJlIGZvciBzY2FuIHJlc3VsdHMuIFRoYXTigJlzIGV2ZW4gYmV0dGVyOyBpZiB3ZSBjYW4gZnV6eiB0aGUgVVNCIGludGVyZmFjZSwgd2UgY2FuIGZlZWQgdGhlIGRyaXZlciBtYWxmb3JtZWQgZmlybXdhcmUgcmVzcG9uc2VzIHdpdGggY3JhZnRlZCBJRXMuCgpMZXQmIzM5O3MgdmVyaWZ5IHRoZSBjb25maWdzOyBXZSYjMzk7bGwgbmVlZCBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAgdG8gZW5hYmxlIHRoZSBVU0IgaW50ZXJmYWNlLiBgTVdJRklFWF9VU0JgIGltcGxpZXMgYm90aCBgTVdJRklFWGAgYW5kIGBVU0JgLCBhbmQgdGhlIHBhdGNoIGlzIGluIGBzY2FuLmNgLCBzbyB3ZeKAmXJlIGdvb2QuIE5vIG5lZWQgdG8gd29ycnkgYWJvdXQgYE1XSUZJRVhfU0RJT2Agb3IgYE1XSUZJRVhfUENJRWAgYXMgc3l6a2FsbGVyJiMzOTtzIFVTQiBmdXp6aW5nIGlzIHRoZSBiZXN0IHBhdGggaGVyZS4KClRoZSB0YXJnZXQgc3ltYm9sczoKKiAgIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYAoqICAgYG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2NgCgpUaGUgcmVhc29uaW5nIGhlcmUgaXMgc29saWQ6IFRoZSBwYXRjaCBndWFyZHMgYWdhaW5zdCBJRSBwYXJzaW5nIGlzc3VlcywgYW5kIHRoZSBVU0IgaW50ZXJmYWNlIHByb3ZpZGVzIGEgZGlyZWN0IGluamVjdGlvbiBwb2ludCBmb3IgbWFsaWNpb3VzIGZpcm13YXJlIHJlc3BvbnNlcy4KCkxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuIFRoaXMgbG9va3MgbGlrZSBhIHByaW1lIHRhcmdldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIHBhcnNpbmcgaW4gdGhlIE1hcnZlbGwgV2lGaS1FeCBkcml2ZXIuIFNpbmNlIHRoaXMgZHJpdmVyIHN1cHBvcnRzIFVTQiAoTVdJRklFWF9VU0IpLCBpdCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0byBpbmplY3QgbWFsZm9ybWVkIGZpcm13YXJlIHJlc3BvbnNlcyBjb250YWluaW5nIGNyYWZ0ZWQgSUVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNV0lGSUVYJiMzNDssCiAgICAmIzM0O01XSUZJRVhfVVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZSYjMzQ7LAogICAgJiMzNDttd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBwYXJzaW5nIGluIHRoZSBNYXJ2ZWxsIFdpRmktRXggZHJpdmVyLiBTaW5jZSB0aGlzIGRyaXZlciBzdXBwb3J0cyBVU0IgKE1XSUZJRVhfVVNCKSwgaXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGRldmljZSBlbXVsYXRpb24gdG8gaW5qZWN0IG1hbGZvcm1lZCBmaXJtd2FyZSByZXNwb25zZXMgY29udGFpbmluZyBjcmFmdGVkIElFcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjU4OjAxLjA4NDM1ODUwMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk3NDk0NzM2NTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1XSUZJRVhcIixcbiAgICBcIk1XSUZJRVhfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiLFxuICAgIFwibXdpZmlleF9maWxsX25ld19ic3NfZGVzY1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBwYXJzaW5nIGluIHRoZSBNYXJ2ZWxsIFdpRmktRXggZHJpdmVyLiBTaW5jZSB0aGlzIGRyaXZlciBzdXBwb3J0cyBVU0IgKE1XSUZJRVhfVVNCKSwgaXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGRldmljZSBlbXVsYXRpb24gdG8gaW5qZWN0IG1hbGZvcm1lZCBmaXJtd2FyZSByZXNwb25zZXMgY29udGFpbmluZyBjcmFmdGVkIElFcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MDEuMDg0MzYzOTcyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDA2OTg4NTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0OWM2OWVjNWRlNTAzMzg4N2VmOGRhOTYyMzNlYmZiYjFkZGVmNWU5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDE3IDAzOjU3OjU5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXFxuaW5kZXggOTdjMGVjM2I4MjJlNzAuLjAxOTZjMmFkZmVlZGY3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXFxuQEAgLTEzODQsNiArMTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdGJzc19lbnRyeS1cXHUwMDNlYmVhY29uX2J1Zik7XFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRjYXNlIFdMQU5fRUlEX0hUX0NBUEFCSUxJVFk6XFxuK1xcdFxcdFxcdGlmIChlbGVtZW50X2xlbiBcXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcCkpXFxuK1xcdFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl9odF9jYXAgPSAoc3RydWN0IGllZWU4MDIxMV9odF9jYXAgKilcXG4gXFx0XFx0XFx0XFx0XFx0KGN1cnJlbnRfcHRyICtcXG4gXFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcbkBAIC0xMzkyLDYgKzEzOTQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9IVF9PUEVSQVRJT046XFxuK1xcdFxcdFxcdGlmIChlbGVtZW50X2xlbiBcXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbikpXFxuK1xcdFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl9odF9vcGVyID1cXG4gXFx0XFx0XFx0XFx0KHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICtcXG4gXFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcbkBAIC0xNDAwLDYgKzE0MDQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9WSFRfQ0FQQUJJTElUWTpcXG4rXFx0XFx0XFx0aWYgKGVsZW1lbnRfbGVuIFxcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCkpXFxuK1xcdFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWRpc2FibGVfMTFhYyA9IGZhbHNlO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl92aHRfY2FwID1cXG4gXFx0XFx0XFx0XFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xcbkBAIC0xNDA5LDYgKzE0MTUsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9WSFRfT1BFUkFUSU9OOlxcbitcXHRcXHRcXHRpZiAoZWxlbWVudF9sZW4gXFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV92aHRfb3BlcmF0aW9uKSlcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdFxcdFxcdGJzc19lbnRyeS1cXHUwMDNlYmNuX3ZodF9vcGVyID1cXG4gXFx0XFx0XFx0XFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xcbiBcXHRcXHRcXHRcXHRcXHQgc2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1ODowMS42MjU5NzI1MDJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk2OTUzMTEwMzE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1XSUZJRVhcIixcbiAgICBcIk1XSUZJRVhfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiLFxuICAgIFwibXdpZmlleF9maWxsX25ld19ic3NfZGVzY1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBwYXJzaW5nIGluIHRoZSBNYXJ2ZWxsIFdpRmktRXggZHJpdmVyLiBTaW5jZSB0aGlzIGRyaXZlciBzdXBwb3J0cyBVU0IgKE1XSUZJRVhfVVNCKSwgaXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGRldmljZSBlbXVsYXRpb24gdG8gaW5qZWN0IG1hbGZvcm1lZCBmaXJtd2FyZSByZXNwb25zZXMgY29udGFpbmluZyBjcmFmdGVkIElFcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0OWM2OWVjNWRlNTAzMzg4N2VmOGRhOTYyMzNlYmZiYjFkZGVmNWU5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTcgMDM6NTc6NTkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uY1xuaW5kZXggOTdjMGVjM2I4MjJlNzAuLjAxOTZjMmFkZmVlZGY3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uY1xuQEAgLTEzODQsNiArMTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdFx0XHRic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfSFRfQ0FQQUJJTElUWTpcbitcdFx0XHRpZiAoZWxlbWVudF9sZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcCkpXG4rXHRcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX2h0X2NhcCA9IChzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcCAqKVxuIFx0XHRcdFx0XHQoY3VycmVudF9wdHIgK1xuIFx0XHRcdFx0XHRzaXplb2Yoc3RydWN0IGllZWVfdHlwZXNfaGVhZGVyKSk7XG5AQCAtMTM5Miw2ICsxMzk0LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX0hUX09QRVJBVElPTjpcbitcdFx0XHRpZiAoZWxlbWVudF9sZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbikpXG4rXHRcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX2h0X29wZXIgPVxuIFx0XHRcdFx0KHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICtcbiBcdFx0XHRcdFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xuQEAgLTE0MDAsNiArMTQwNCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViZWFjb25fYnVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBXTEFOX0VJRF9WSFRfQ0FQQUJJTElUWTpcbitcdFx0XHRpZiAoZWxlbWVudF9sZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKVxuK1x0XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWRpc2FibGVfMTFhYyA9IGZhbHNlO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViY25fdmh0X2NhcCA9XG4gXHRcdFx0XHQodm9pZCAqKShjdXJyZW50X3B0ciArXG5AQCAtMTQwOSw2ICsxNDE1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0ICAgICAgYnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX1ZIVF9PUEVSQVRJT046XG4rXHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV92aHRfb3BlcmF0aW9uKSlcbitcdFx0XHRcdHJldHVybiAtRUlOVkFMO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViY25fdmh0X29wZXIgPVxuIFx0XHRcdFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xuIFx0XHRcdFx0XHQgc2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MDEuNjI1OTc0NTMzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQwMTkzOTQ0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaUZpIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jYC4gSXQgc2VlbXMgdGhleSdyZSBhZGRpbmcgYm91bmRzIGNoZWNraW5nIGluIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCwgc3BlY2lmaWNhbGx5IGZvciB0aG9zZSBIVCBhbmQgVkhUIEluZm9ybWF0aW9uIEVsZW1lbnRzIOKAkyBgV0xBTl9FSURfSFRfQ0FQQUJJTElUWWAsIGBXTEFOX0VJRF9IVF9PUEVSQVRJT05gLCBgV0xBTl9FSURfVkhUX0NBUEFCSUxJVFlgLCBhbmQgYFdMQU5fRUlEX1ZIVF9PUEVSQVRJT05gLiBTbWFydCBtb3ZlOyB0aGV5J3JlIGNvbXBhcmluZyBgZWxlbWVudF9sZW5gIGFnYWluc3QgdGhlIHNpemVzIG9mIHRoZSBjb3JyZXNwb25kaW5nIHN0cnVjdHVyZXMgdG8gcHJldmVudCBidWZmZXIgb3ZlcnJ1bnMuIFRoaXMgc2hvdWxkIGJlIGEgbmljZSwgc29saWQgZnVuY3Rpb25hbCBpbXByb3ZlbWVudCwgYWRkcmVzc2luZyBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMsIHRoZSB1c3VhbCBzdXNwZWN0cy4gSSBrbm93IHRoaXMgZHJpdmVyIGlzIGZvciBNYXJ2ZWxsIFdpRmkgY2hpcHMsIHNvIGl0J3MgYSBgbXdpZmlleGAgZHJpdmVyLlxuXG5Ob3csIG15IG1pbmQgc3RhcnRzIHJhY2luZyDigJMgaXMgdGhpcyBzb21ldGhpbmcgd2UgY2FuIHJlYWNoIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIG9yIGFyZSB3ZSBzdHVjayB3aXRoIGl0IGJlaW5nIGEgc3RyaWN0bHkgaGFyZHdhcmUtZGVwZW5kZW50IGRyaXZlcj8gYG1hYzgwMjExX2h3c2ltYCB3b24ndCBjb3ZlciBpdCwgYmVjYXVzZSBpdCdzIGhhcmR3YXJlLXNwZWNpZmljLiBXYWl0LCB5ZWFoLCB0aGlzIGlzIGEgc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyLiBIbW0sIGNhbiB3ZSBmdXp6IGl0PyBJIGtub3cgd2UgY2FuIHNvbWV0aW1lcyBmdXp6IGhhcmR3YXJlIGRyaXZlcnMsIGJ1dCBvZnRlbiBub3QgZWFzaWx5LiBVbmxlc3MgdGhlcmUncyBzb21lIGtpbmQgb2YgZW11bGF0aW9uIGxheWVyIG9yIHNvbWV0aGluZyBsaWtlIFVTQiBmdXp6aW5nIChsaWtlIHdpdGggYHZoY2lgKSwgd2UncmUgcHJvYmFibHkgZ29pbmcgdG8gaGF2ZSB0cm91YmxlLiBMZXQgbWUgc2VlLi4uIEknbGwgY2hlY2sgaWYgYG13aWZpZXhgIHVzZXMgYSBVU0IgaW50ZXJmYWNlLiBJIHZhZ3VlbHkgcmVjYWxsIHRoZXJlIGJlaW5nIGEgYHVzYi5jYCBmaWxlLi4uIHllcCwgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuY2AuIExldCdzIHRha2UgYSBsb29rIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzI0LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MDguMDI3OTE2Mjc5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxNzUyNDg3OTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oPTE1Mzg9aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTU0MC1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaDoxNTQxOmludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTQyLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZW50cnkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYz0xMTEyPW13aWZpZXhfcmV0XzgwMl8xMV9zY2FuX2dldF90bHZfcHRycyhzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xMTgxLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTE4MjppbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTE4My1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG13aWZpZXhfYnNzZGVzY3JpcHRvciAqYnNzX2VudHJ5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTEyOT1pbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTE3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MTgwOlxcdHJldHVybiBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHByaXYtXFx1MDAzZWFkYXB0ZXIsIGJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTgxLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MTUuMjAzMTcxMTMzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzYwNzE5ODc2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGtlZXBpbmcgaW4gbWluZCBJJ20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgbXdpZmlleCBVU0IgRHJpdmVyIFByZXNlbmNlKipcblxuQWxyaWdodCwgc28gdGhlIGluaXRpYWwgdGhvdWdodCB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzIHRvIGRldGVybWluZSBpZiBgbXdpZmlleGAgZXZlbiBoYXMgYSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgYXZhaWxhYmxlLiBJdCdzIGEgZnVuZGFtZW50YWwgZmlyc3Qgc3RlcC4gV2UgbmVlZCB0byBhc2NlcnRhaW4gaWYgdGhlIHN5c3RlbSBoYXMgdGhlIGNhcGFiaWxpdHkgdG8gaW50ZXJmYWNlIHdpdGggdGhpcyBwb3RlbnRpYWwgV2ktRmkgaGFyZHdhcmUgdGhyb3VnaCBVU0IuIEEgcXVpY2sgY2hlY2sgaGVyZSBzYXZlcyB0aW1lIGRvd24gdGhlIGxpbmUuIFdlIGNhbid0IHByb2NlZWQgZnVydGhlciB3aXRoIGFueSBVU0ItcmVsYXRlZCBkZWJ1Z2dpbmcgb3IgY29uZmlndXJhdGlvbiB3aXRob3V0IHZlcmlmeWluZyB0aGlzIGluaXRpYWwgY29ubmVjdGl2aXR5IG9wdGlvbi4gU28sIHRoYXQncyB3aGVyZSBJJ20gc3RhcnRpbmc6IGRvZXMgYG13aWZpZXhgIHByb3ZpZGUgdGhlIG5lY2Vzc2FyeSBVU0IgaW50ZXJmYWNlLCBhbmQgaWYgc28sIHdoYXQncyB0aGUgZHJpdmVyIHNpdHVhdGlvbj8gTGV0J3MgZGlnIGluLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTUyLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MjIuODEwMzcxOTQ4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5OTM1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiMTFhYy5jXCIsXG4gICAgXCIxMWFjLmhcIixcbiAgICBcIjExaC5jXCIsXG4gICAgXCIxMW4uY1wiLFxuICAgIFwiMTFuLmhcIixcbiAgICBcIjExbl9hZ2dyLmNcIixcbiAgICBcIjExbl9hZ2dyLmhcIixcbiAgICBcIjExbl9yeHJlb3JkZXIuY1wiLFxuICAgIFwiMTFuX3J4cmVvcmRlci5oXCIsXG4gICAgXCJjZmc4MDIxMS5jXCIsXG4gICAgXCJjZmc4MDIxMS5oXCIsXG4gICAgXCJjZnAuY1wiLFxuICAgIFwiY21kZXZ0LmNcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZGVjbC5oXCIsXG4gICAgXCJldGh0b29sLmNcIixcbiAgICBcImZ3LmhcIixcbiAgICBcImllLmNcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwiaW9jdGwuaFwiLFxuICAgIFwiam9pbi5jXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1haW4uaFwiLFxuICAgIFwicGNpZS5jXCIsXG4gICAgXCJwY2llLmhcIixcbiAgICBcInBjaWVfcXVpcmtzLmNcIixcbiAgICBcInBjaWVfcXVpcmtzLmhcIixcbiAgICBcInNjYW4uY1wiLFxuICAgIFwic2Rpby5jXCIsXG4gICAgXCJzZGlvLmhcIixcbiAgICBcInN0YV9jbWQuY1wiLFxuICAgIFwic3RhX2NtZHJlc3AuY1wiLFxuICAgIFwic3RhX2V2ZW50LmNcIixcbiAgICBcInN0YV9pb2N0bC5jXCIsXG4gICAgXCJzdGFfcnguY1wiLFxuICAgIFwic3RhX3R4LmNcIixcbiAgICBcInRkbHMuY1wiLFxuICAgIFwidHhyeC5jXCIsXG4gICAgXCJ1YXBfY21kLmNcIixcbiAgICBcInVhcF9ldmVudC5jXCIsXG4gICAgXCJ1YXBfdHhyeC5jXCIsXG4gICAgXCJ1c2IuY1wiLFxuICAgIFwidXNiLmhcIixcbiAgICBcInV0aWwuY1wiLFxuICAgIFwidXRpbC5oXCIsXG4gICAgXCJ3bW0uY1wiLFxuICAgIFwid21tLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MjIuODEwNDczMzk4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTYxMzY5OTM0MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgV2lGaSBEcml2ZXIgUGF0Y2ggZm9yIFBvdGVudGlhbCBWdWxuZXJhYmlsaXRpZXMqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGRpZ2dpbmcgaW50byBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jYC4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIGFkZGluZyBib3VuZHMgY2hlY2tpbmcgZm9yIGEgZmV3IGltcG9ydGFudCA4MDIuMTEgZWxlbWVudHM6IGBXTEFOX0VJRF9IVF9DQVBBQklMSVRZYCwgYFdMQU5fRUlEX0hUX09QRVJBVElPTmAsIGBXTEFOX0VJRF9WSFRfQ0FQQUJJTElUWWAsIGFuZCBgV0xBTl9FSURfVkhUX09QRVJBVElPTmAuIFRoaXMgaW1tZWRpYXRlbHkgc2NyZWFtcyBwb3RlbnRpYWwgZm9yIG9mZi1ieS1vbmUgZXJyb3JzIG9yIGJ1ZmZlciBvdmVyZmxvd3MsIHdoaWNoIGlzIHByZWNpc2VseSB0aGUga2luZCBvZiB0aGluZyBJJ20gYWx3YXlzIGxvb2tpbmcgZm9yLiBUaGlzIGlzIGEgTWFydmVsbCBXaUZpIGRyaXZlciwgYG13aWZpZXhgLCB3aGljaCBtZWFucyB3ZSdyZSBkZWFsaW5nIHdpdGggaGFyZHdhcmUsIG9yIGF0IGxlYXN0IGEgc29mdHdhcmUgcmVwcmVzZW50YXRpb24gb2YgaXQuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMgYWx3YXlzIGFib3V0IHJlYWNoYWJpbGl0eTogY2FuIHRoaXMgZHJpdmVyIGV2ZW4gKmJlKiBhdHRhY2tlZCBpbiB0aGUgZW52aXJvbm1lbnRzIEknbSB0eXBpY2FsbHkgdGFyZ2V0aW5nPyBJbiBtb3N0IHZpcnR1YWxpemVkIHNldHVwcyBsaWtlIEdDRSBvciBRRU1VLCB3ZSdyZSB1bmxpa2VseSB0byBoYXZlIGRpcmVjdCBoYXJkd2FyZSBhY2Nlc3MgdG8gYSBkZWRpY2F0ZWQgV2lGaSBjYXJkLCB1bmxlc3MgaXQncyBhIFVTQiBkZXZpY2UuIE9mdGVuLCB3ZSBtaWdodCBnZXQgbHVja3kgd2l0aCBzb2Z0d2FyZSBlbXVsYXRpb24sIG9yIHBlcmhhcHMgYSBkdW1teSBob3N0IGNvbnRyb2xsZXIgKGR1bW15LWhjZC92aGNpKSBzZXR1cCBmb3IgZnV6emluZyB0aGUgVVNCIGRyaXZlci4gU28sIGlzIHRoZXJlIGEgVVNCIGNvbXBvbmVudD9cblxuQSBxdWljayBzY2FuIHNob3dzIHRoZXJlICppcyogYSBgdXNiLmNgIGFuZCBgdXNiLmhgIHJpZ2h0IHRoZXJlIGluIHRoZSBgbXdpZmlleGAgZGlyZWN0b3J5ISBFeGNlbGxlbnQuIFRoYXQncyBhIHN0cm9uZyBpbmRpY2F0b3Igd2UgbWlnaHQgYmUgYWJsZSB0byB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoIHRocm91Z2ggVVNCLiBOb3cgSSBuZWVkIHRvIGNoZWNrIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmNgIHRvIGNvbmZpcm0gaXQgcmVnaXN0ZXJzIGEgVVNCIGRyaXZlciwgdG8gYXNjZXJ0YWluIGlmIHRoaXMgaXMgYSBwYXRoIHdlIGNhbiBhY3R1YWxseSBleHBsb2l0LiBUaGlzIGNvdWxkIG9wZW4gYSB2ZXJ5IGludGVyZXN0aW5nIGF0dGFjayBzdXJmYWNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODAwLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUwLCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1ODozOC45NDc0Njk5OTNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzg3NDQ0MzksIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVzYl9yZWdpc3RlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjU4OjM5LjAyNjIyNDE0MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYxODcwOTc2NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCBwcmVzZW50ZWQgYXMgYSBzdHJlYW0gb2YgdGhvdWdodDpcblxuKipDaGVja2luZyBmb3IgVVNCIERyaXZlciBDYW5kaWRhdGVzKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQncyBnb2luZyBvbiB3aXRoIHRoaXMgVVNCIHNpdHVhdGlvbi4gTXkgZmlyc3QgbW92ZSBpcyBzdHJhaWdodGZvcndhcmQ6IEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHBvdGVudGlhbCBVU0IgZHJpdmVyIGVudHJpZXMuIEknbGwgc3RhcnQgd2l0aCB0aGUgb2J2aW91cyBjYW5kaWRhdGVzLiBJJ2xsIHNlYXJjaCBmb3IgdGhpbmdzIGxhYmVsZWQgdmVyeSBleHBsaWNpdGx5LCBsaWtlIGB1c2JfZHJpdmVyYC4gSWYgdGhhdCdzIHRvbyBzaW1wbGUsIEknbGwgYnJvYWRlbiB0aGUgbmV0IGEgYml0IGFuZCBsb29rIGZvciB2YXJpYXRpb25zIG9uIHRoYXQgdGhlbWUsIHN1Y2ggYXMgYG1vZHVsZV91c2JfZHJpdmVyYC4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiYXNlbGluZSB0byB3b3JrIGZyb20sIGEgaGFuZGxlIG9uIHRoZSBtb3N0IGZ1bmRhbWVudGFsIHBhcnRzIG9mIHRoZSBVU0IgZHJpdmVyLCB0byBzZWUgaWYgYW55dGhpbmcgaXMgaW1tZWRpYXRlbHkgYXBwYXJlbnQuIEZyb20gdGhlcmUsIEkgY2FuIGJlZ2luIG15IGludmVzdGlnYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NDEsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1ODo0NS4yMTMzMjQ4NDJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNzc0NDQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vZHVsZV91c2JfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmM9MTU4ND1zdGF0aWMgY29uc3Qgc3RydWN0IG13aWZpZXhfaWZfb3BzIHVzYl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmMtMTU5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmM6MTYwMDptb2R1bGVfdXNiX2RyaXZlcihtd2lmaWV4X3VzYl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuYy0xNjAxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1ODo0NS4yNzQxMDkzNjFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQ0NTA1OTIzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIG13aWZpZXggRHJpdmVyIFZ1bG5lcmFiaWxpdHkqKlxuXG5Pa2F5LCBzbyBJIHNlZSBpdC4gVGhlIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBmdW5jdGlvbiBpcyBkZWZpbml0ZWx5IGEgcG90ZW50aWFsIGVudHJ5IHBvaW50IGZvciBmdXp6aW5nLCBsaWtlbHkgdGhyb3VnaCBVU0IgZnV6emluZyB1dGlsaXppbmcgc29tZXRoaW5nIGxpa2Ugc3l6a2FsbGVyJ3MgYHN5el91c2JfY29ubmVjdGAgY2FsbC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgZ3JhcGggdG8gZGV0ZXJtaW5lIHRoZSBwb3RlbnRpYWwgaW1wYWN0LiBJdCBsb29rcyBsaWtlIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBpcyBjYWxsZWQgZnJvbSBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AsIHdoaWNoIGl0c2VsZiBpcyBjYWxsZWQgZnJvbSBgbXdpZmlleF9yZXRfODAyXzExX3NjYW5fZ2V0X3Rsdl9wdHJzYC4gVGhlIGNhbGwgdG8gYG13aWZpZXhfc2V0X21hY19hZGRyZXNzYCBpcyBhbHNvIGluIHRoZXJlLCBwZXJoYXBzLCB0aGlzIGlzIHNvbWV0aGluZyB0byBhbHNvIGJlIGNvbnNpZGVyZWQsIG9yIGF0IGxlYXN0IGNvbmZpcm1lZCBieSBjaGVja2luZyB0aGUgY2FsbCBncmFwaC4gVGhlIG5leHQgc3RlcCBpcyB0byBtZXRob2RpY2FsbHkgdHJhY2UgKmFsbCogY2FsbHMgdG8gYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIHRvIGZvcm0gYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTk5LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjU4OjUxLjcxOTE3MTczN1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU5NjkwMDM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oPTE1Mzg9aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTU0MC1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaDoxNTQxOmludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTQyLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZW50cnkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYz0xMTEyPW13aWZpZXhfcmV0XzgwMl8xMV9zY2FuX2dldF90bHZfcHRycyhzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xMTgxLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTE4MjppbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTE4My1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG13aWZpZXhfYnNzZGVzY3JpcHRvciAqYnNzX2VudHJ5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTEyOT1pbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTE3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MTgwOlxcdHJldHVybiBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHByaXYtXFx1MDAzZWFkYXB0ZXIsIGJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTgxLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6NTEuODc4ODY3NTY1WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMDI4NjA0ODEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6NTM0NSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTk6MDQuOTA3NDc1MzA0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzI2MDY2NzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXdpZmlleF9maWxsX25ld19ic3NfZGVzY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg9MTUzNj1pbnQgbXdpZmlleF9nZXRfYnNzX2luZm8oc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTUzNy1cXHRcXHRcXHQgc3RydWN0IG13aWZpZXhfYnNzX2luZm8gKik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaDoxNTM4OmludCBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTM5LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBjZmc4MDIxMV9ic3MgKmJzcyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM9MTY1MT1zdGF0aWMgaW50IG13aWZpZXhfc2F2ZV9oaWRkZW5fc3NpZF9jaGFubmVscyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTY2MzpcXHRyZXQgPSBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHByaXYsIGJzcywgYnNzX2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTY2NC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjg3LVxcdC8qIGJlYWNvbl9pZSBidWZmZXIgd2FzIGFsbG9jYXRlZCBpbiBmdW5jdGlvblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTY4ODpcXHQgKiBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKCkuIEZyZWUgaXQgbm93LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTY4OS1cXHQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM9MTY5NT1zdGF0aWMgaW50IG13aWZpZXhfdXBkYXRlX2N1cnJfYnNzX3BhcmFtcyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTcwNjpcXHRyZXQgPSBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHByaXYsIGJzcywgYnNzX2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTcwNy1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzI2LVxcdC8qIGJlYWNvbl9pZSBidWZmZXIgd2FzIGFsbG9jYXRlZCBpbiBmdW5jdGlvblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTcyNzpcXHQgKiBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKCkuIEZyZWUgaXQgbm93LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTcyOC1cXHQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYz03Nj1pbnQgbXdpZmlleF9yZXF1ZXN0X3NldF9tdWx0aWNhc3RfbGlzdChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTEyOC0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MTI5OmludCBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTEzMC1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2ZnODAyMTFfYnNzICpic3MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM9MzE4PWludCBtd2lmaWV4X2Jzc19zdGFydChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LCBzdHJ1Y3QgY2ZnODAyMTFfYnNzICpic3MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMzM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYzozMzc6XFx0XFx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMzM4LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtNDMyLVxcdC8qIGJlYWNvbl9pZSBidWZmZXIgd2FzIGFsbG9jYXRlZCBpbiBmdW5jdGlvblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYzo0MzM6XFx0ICogbXdpZmlleF9maWxsX25ld19ic3NfZGVzYygpLiBGcmVlIGl0IG5vdy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtNDM0LVxcdCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1OTowNS4yNDAwODc4NThaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDgwNDI4ODQ1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipWdWxuZXJhYmlsaXR5IEFzc2Vzc21lbnQ6IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUqKlxuXG5Pa2F5LCBzbyBoZXJlJ3MgdGhlIGJyZWFrZG93biBvZiB3aGF0IEknbSB0aGlua2luZy4gSSd2ZSBiZWVuIHRyYWNpbmcgZG93biB0aGUgY2FsbCBzdGFjayBhbmQgaXQncyBsb29raW5nIGxpa2UgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGlzIGEga2V5IGZ1bmN0aW9uIHRvIGNvbnNpZGVyLiBJdCdzIGNhbGxlZCBmcm9tIHR3byBwbGFjZXM6IGBtd2lmaWV4X3JldF84MDJfMTFfc2Nhbl9nZXRfdGx2X3B0cnNgIGFuZCBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AuXG5cbkFuZCwgYXMgSSBmb2xsb3cgdGhlIGNhbGxzLCBJIHNlZSB0aGF0IGBtd2lmaWV4X3JldF84MDJfMTFfc2Nhbl9nZXRfdGx2X3B0cnNgIGlzIGNhbGxlZCBmcm9tIGBtd2lmaWV4X3JldF84MDJfMTFfc2NhbmAuIFRoaXMgaXMgc2lnbmlmaWNhbnQgYmVjYXVzZSBgbXdpZmlleF9yZXRfODAyXzExX3NjYW5gIGlzIHJlc3BvbnNpYmxlIGZvciBwYXJzaW5nIHNjYW4gcmVzdWx0cyB0aGF0IGNvbWUgZGlyZWN0bHkgZnJvbSB0aGUgZmlybXdhcmUg4oCTIG9yIHBvdGVudGlhbGx5IG92ZXIgVVNCLCBkZXBlbmRpbmcgb24gdGhlIHNldHVwLlxuXG5UaGlzIGdpdmVzIG1lIGEgY2xlYXIgYXR0YWNrIHN1cmZhY2U6IGl0J3MgZGF0YSBjb21pbmcgZnJvbSB0aGUgZmlybXdhcmUgaXRzZWxmLCBvciBvdmVyIHRoZSBVU0IgaW50ZXJmYWNlLiBTbywgaWYgdGhlIGZpcm13YXJlIGlzIGNvbXByb21pc2VkLCBtYWxpY2lvdXMsIG9yIGlmIHdlIGNhbiBzdWNjZXNzZnVsbHkgZnV6eiB0aGUgVVNCIGNvbm5lY3Rpb24sIHdlIGNhbiBkaXJlY3RseSB0cmlnZ2VyIHRoZSBleGVjdXRpb24gb2YgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgLiBDb25zaWRlcmluZyB0aGUgY29udGV4dCwgdGhpcyAqYWJzb2x1dGVseSogc2VlbXMgbGlrZSBhIHJpcGUgdGFyZ2V0IGZvciBmdXp6aW5nLiBXZSBtaWdodCBiZSBhYmxlIHRvIGNyYWZ0IG1hbGljaW91cyBCU1MgZGVzY3JpcHRvcnMgdGhhdCBsZWFkIHRvIGEgY3Jhc2gsIG1lbW9yeSBjb3JydXB0aW9uLCBvciBldmVuIGFyYml0cmFyeSBjb2RlIGV4ZWN1dGlvbi5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIG5haWwgZG93biB0aGUgZXhhY3QgY29uZmlndXJhdGlvbiByZXF1aXJlbWVudHMgZm9yIHRoZSBgbXdpZmlleGAgVVNCIGRyaXZlciwgc28gdGhhdCBJIGNhbiBmaWd1cmUgb3V0IHRoZSBiZXN0IHdheSB0byB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MjIwLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTY3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjU5OjEwLjA0NDM3ODU3M1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njk1MTg2OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1XSUZJRVhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjI6Y29uZmlnIE1XSUZJRVhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6MTI6Y29uZmlnIE1XSUZJRVhfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTEzLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBTRDg3ODYvU0Q4Nzg3L1NEODc5Ny9TRDg4ODcvU0Q4ODk3L1NEODk3Ny9TRDg5NzgvU0Q4OTg3L1NEODk5N1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjI1OmNvbmZpZyBNV0lGSUVYX1BDSUVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yNi1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgUENJRSA4NzY2Lzg4OTcvODk5N1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjM3OmNvbmZpZyBNV0lGSUVYX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTM4LVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBVU0I4NzY2Lzg3OTcvODk5N1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTk6MTAuMTEzOTAyNTYyWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4MTI4MjQyMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkFuYWx5emluZyBEZXBlbmRlbmNpZXMgZm9yIFdpcmVsZXNzIERyaXZlciBNb2R1bGVzKipcblxuQWxyaWdodCwgc28gdGhlIHRhc2sgYXQgaGFuZCBpbnZvbHZlcyB3b3JraW5nIHdpdGggYE1XSUZJRVhgIGFuZCBgTVdJRklFWF9VU0JgIOKAkyB0d28gbW9kdWxlcyByZWxhdGVkIHRvIHdpcmVsZXNzIGZ1bmN0aW9uYWxpdHksIGxpa2VseSBkcml2ZXJzLiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB0aGUgZGVwZW5kZW5jeSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGVtLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBjb25maXJtIGlmIGBNV0lGSUVYX1VTQmAgYWN0dWFsbHkgKmRlcGVuZHMqIG9uIGBNV0lGSUVYYC4gSWYgaXQgZG9lcywgdGhlbiB0aGUgYnVpbGQgcHJvY2VzcywgbG9hZGluZyBvcmRlciwgYW5kIG92ZXJhbGwgbW9kdWxlIG1hbmFnZW1lbnQgbmVlZCB0byBhY2NvdW50IGZvciB0aGlzIGNyaXRpY2FsIHByZXJlcXVpc2l0ZS4gS25vd2luZyB0aGlzIHJlbGF0aW9uc2hpcCBpcyBmdW5kYW1lbnRhbCBmb3IgYSBzdGFibGUgYW5kIHByb3Blcmx5IGZ1bmN0aW9uaW5nIHdpcmVsZXNzIHN5c3RlbS4gSSBuZWVkIHRvIGRlbHZlIGludG8gdGhlIGNvZGUsIGNvbmZpZ3VyYXRpb24gZmlsZXMsIG9yIGJ1aWxkIHNjcmlwdHMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgZGVwZW5kZW5jeSBleGlzdHMuIEl0J3MgYSBrZXkgZmlyc3Qgc3RlcCBiZWZvcmUgSSBwcm9jZWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MjE1LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTk6MTYuOTI2NzI5MTUyWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2NzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTVdJRklFWFxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgV2lGaS1FeCBEcml2ZXJcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBNYXJ2ZWxsXFxuICAgNzpcXHRcXHQgIDgwMi4xMW4vYWMgY2hpcHNldHMuXFxuICAgODpcXHRcXG4gICA5OlxcdFxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBpdCBhcyBhIG1vZHVsZSwgaXQgd2lsbCBiZSBjYWxsZWRcXG4gIDEwOlxcdFxcdCAgbXdpZmlleC5cXG4gIDExOlxcdFxcbiAgMTI6XFx0Y29uZmlnIE1XSUZJRVhfU0RJT1xcbiAgMTM6XFx0XFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFNEODc4Ni9TRDg3ODcvU0Q4Nzk3L1NEODg4Ny9TRDg4OTcvU0Q4OTc3L1NEODk3OC9TRDg5ODcvU0Q4OTk3XFxcIlxcbiAgMTQ6XFx0XFx0ZGVwZW5kcyBvbiBNV0lGSUVYIFxcdTAwMjZcXHUwMDI2IE1NQ1xcbiAgMTU6XFx0XFx0c2VsZWN0IEZXX0xPQURFUlxcbiAgMTY6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAxNzpcXHRcXHRoZWxwXFxuICAxODpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBNYXJ2ZWxsXFxuICAxOTpcXHRcXHQgIDg3ODYvODc4Ny84Nzk3Lzg4ODcvODg5Ny84OTc3Lzg5NzgvODk4Ny84OTk3IGNoaXBzZXRzIHdpdGhcXG4gIDIwOlxcdFxcdCAgU0RJTyBpbnRlcmZhY2UuIFNEODk3OCBpcyBhbHNvIGtub3duIGFzIE5YUCBJVzQxNi5cXG4gIDIxOlxcdFxcbiAgMjI6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZFxcbiAgMjM6XFx0XFx0ICBtd2lmaWV4X3NkaW8uXFxuICAyNDpcXHRcXG4gIDI1OlxcdGNvbmZpZyBNV0lGSUVYX1BDSUVcXG4gIDI2OlxcdFxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBQQ0lFIDg3NjYvODg5Ny84OTk3XFxcIlxcbiAgMjc6XFx0XFx0ZGVwZW5kcyBvbiBNV0lGSUVYIFxcdTAwMjZcXHUwMDI2IFBDSVxcbiAgMjg6XFx0XFx0c2VsZWN0IEZXX0xPQURFUlxcbiAgMjk6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAzMDpcXHRcXHRoZWxwXFxuICAzMTpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBNYXJ2ZWxsXFxuICAzMjpcXHRcXHQgIDg3NjYvODg5Ny84OTk3IGNoaXBzZXRzIHdpdGggUENJZSBpbnRlcmZhY2UuXFxuICAzMzpcXHRcXG4gIDM0OlxcdFxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBpdCBhcyBhIG1vZHVsZSwgaXQgd2lsbCBiZSBjYWxsZWRcXG4gIDM1OlxcdFxcdCAgbXdpZmlleF9wY2llLlxcbiAgMzY6XFx0XFxuICAzNzpcXHRjb25maWcgTVdJRklFWF9VU0JcXG4gIDM4OlxcdFxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBVU0I4NzY2Lzg3OTcvODk5N1xcXCJcXG4gIDM5OlxcdFxcdGRlcGVuZHMgb24gTVdJRklFWCBcXHUwMDI2XFx1MDAyNiBVU0JcXG4gIDQwOlxcdFxcdHNlbGVjdCBGV19MT0FERVJcXG4gIDQxOlxcdFxcdGhlbHBcXG4gIDQyOlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHdpcmVsZXNzIGFkYXB0ZXJzIGJhc2VkIG9uIE1hcnZlbGxcXG4gIDQzOlxcdFxcdCAgODc5Ny84OTk3IGNoaXBzZXQgd2l0aCBVU0IgaW50ZXJmYWNlLlxcbiAgNDQ6XFx0XFxuICA0NTpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXFxuICA0NjpcXHRcXHQgIG13aWZpZXhfdXNiLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1OToxNi45MjY4MTc3MDJaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjEwNDU1MTMzMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBTdHJhdGVneSBmb3IgSW5mb3JtYXRpb24gRWxlbWVudCBQYXJzaW5nIGluIHRoZSBNYXJ2ZWxsIG13aWZpZXggV2ktRmkgRHJpdmVyKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBhIGdvb2Qgb25lLiBJdCdzIHRpZ2h0ZW5pbmcgdXAgSUUgcGFyc2luZyBpbiBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jYC4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGFkZGluZyBjaGVja3MgYWdhaW5zdCBzdHJ1Y3R1cmUgc2l6ZXMgKGBpZWVlODAyMTFfaHRfY2FwYCwgZXRjLikgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIGR1cmluZyBiZWFjb24vcHJvYmUgcmVzcG9uc2UgcHJvY2Vzc2luZy4gVGhpcyBpcyBzb2xpZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcsIGEgZ3JlYXQgcGxhY2UgdG8gbG9vayBmb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIldpcmVsZXNzIGRyaXZlciwgZXhjZWxsZW50IVwiIFdlIGhhdmUgYG13aWZpZXhgIGhlcmUsIHdoaWNoLCBhcyBJIHJlY2FsbCwgc3VwcG9ydHMgU0RJTywgUENJZSwgYW5kIFVTQi4gVGhlIGluY2x1c2lvbiBvZiBVU0Igc3VwcG9ydCAoYE1XSUZJRVhfVVNCYCkgaXMgdGhlIGtleSBoZXJlLiBTeXprYWxsZXIncyBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMsIGVzcGVjaWFsbHkgd2l0aCB0aGUgZHVtbXkgSENELCBhcmUgcGVyZmVjdCBmb3IgdGhpcy4gV2UgY2FuIGNyYWZ0IG1hbGljaW91cyBVU0IgcGFja2V0cyB0aGF0IG1pbWljIGZpcm13YXJlIHJlc3BvbnNlcywgaW5jbHVkaW5nIHRob3NlIHNjYW4gcmVzdWx0cyBhbmQgY3JhZnRlZCBJRXMgdG8gdHJpZ2dlciB0aG9zZSBib3VuZHMgY2hlY2tzLlxuXG5MZXQncyBxdWlja2x5IGNoZWNrIHJlYWNoYWJpbGl0eS4gTG9va3MgbGlrZSBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgaXMgY2FsbGVkIGJ5IGBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjYCwgd2hpY2ggaXMgaXRzZWxmIGNhbGxlZCBieSBgbXdpZmlleF9zYXZlX2hpZGRlbl9zc2lkX2NoYW5uZWxzYCwgYG13aWZpZXhfdXBkYXRlX2N1cnJfYnNzX3BhcmFtc2AsIGFuZCBgbXdpZmlleF9ic3Nfc3RhcnRgLiBBbGwgb2YgdGhlc2UgZnVuY3Rpb25zIGFyZSBpbnZvbHZlZCBpbiBzY2FubmluZyBhbmQgY29ubmVjdGluZyB0byBCU1NzLiBTaW5jZSB0aGlzIGRyaXZlciBpcyBwYXJzaW5nIElFcywgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIgaXMgZGVmaW5pdGVseSByZWFjaGFibGUsIGFuZCB0aHVzLCB2dWxuZXJhYmxlLlxuXG5SaWdodCwgYG13aWZpZXhgIGlzIGEgRnVsbE1BQyBkcml2ZXIsIHdoaWNoIG1lYW5zIGl0IHJlbGllcyBvbiB0aGUgZmlybXdhcmUgZm9yIHNjYW4gcmVzdWx0cy4gVGhhdOKAmXMgZXZlbiBiZXR0ZXI7IGlmIHdlIGNhbiBmdXp6IHRoZSBVU0IgaW50ZXJmYWNlLCB3ZSBjYW4gZmVlZCB0aGUgZHJpdmVyIG1hbGZvcm1lZCBmaXJtd2FyZSByZXNwb25zZXMgd2l0aCBjcmFmdGVkIElFcy5cblxuTGV0J3MgdmVyaWZ5IHRoZSBjb25maWdzOyBXZSdsbCBuZWVkIGBNV0lGSUVYYCBhbmQgYE1XSUZJRVhfVVNCYCB0byBlbmFibGUgdGhlIFVTQiBpbnRlcmZhY2UuIGBNV0lGSUVYX1VTQmAgaW1wbGllcyBib3RoIGBNV0lGSUVYYCBhbmQgYFVTQmAsIGFuZCB0aGUgcGF0Y2ggaXMgaW4gYHNjYW4uY2AsIHNvIHdl4oCZcmUgZ29vZC4gTm8gbmVlZCB0byB3b3JyeSBhYm91dCBgTVdJRklFWF9TRElPYCBvciBgTVdJRklFWF9QQ0lFYCBhcyBzeXprYWxsZXIncyBVU0IgZnV6emluZyBpcyB0aGUgYmVzdCBwYXRoIGhlcmUuXG5cblRoZSB0YXJnZXQgc3ltYm9sczpcbiogICBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWBcbiogICBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2BcblxuVGhlIHJlYXNvbmluZyBoZXJlIGlzIHNvbGlkOiBUaGUgcGF0Y2ggZ3VhcmRzIGFnYWluc3QgSUUgcGFyc2luZyBpc3N1ZXMsIGFuZCB0aGUgVVNCIGludGVyZmFjZSBwcm92aWRlcyBhIGRpcmVjdCBpbmplY3Rpb24gcG9pbnQgZm9yIG1hbGljaW91cyBmaXJtd2FyZSByZXNwb25zZXMuXG5cbkxldCdzIGNhbGwgYHNldC1yZXN1bHRzYC4gVGhpcyBsb29rcyBsaWtlIGEgcHJpbWUgdGFyZ2V0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo4Mjc5LCJPdXRwdXRUb2tlbnMiOjEyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg0MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjU5OjM3Ljk3MjMzNjU1WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA2NzQwMDk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNV0lGSUVYXCIsXG4gICAgXCJNV0lGSUVYX1VTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVcIixcbiAgICBcIm13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgSW5mb3JtYXRpb24gRWxlbWVudHMgKElFcykgcGFyc2luZyBpbiB0aGUgTWFydmVsbCBXaUZpLUV4IGRyaXZlci4gU2luY2UgdGhpcyBkcml2ZXIgc3VwcG9ydHMgVVNCIChNV0lGSUVYX1VTQiksIGl0IGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBkZXZpY2UgZW11bGF0aW9uIHRvIGluamVjdCBtYWxmb3JtZWQgZmlybXdhcmUgcmVzcG9uc2VzIGNvbnRhaW5pbmcgY3JhZnRlZCBJRXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVdJRklFWFwiLFxuICAgIFwiTVdJRklFWF9VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llXCIsXG4gICAgXCJtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIHBhcnNpbmcgaW4gdGhlIE1hcnZlbGwgV2lGaS1FeCBkcml2ZXIuIFNpbmNlIHRoaXMgZHJpdmVyIHN1cHBvcnRzIFVTQiAoTVdJRklFWF9VU0IpLCBpdCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0byBpbmplY3QgbWFsZm9ybWVkIGZpcm13YXJlIHJlc3BvbnNlcyBjb250YWluaW5nIGNyYWZ0ZWQgSUVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowxsv5h[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-17 03:17:11 +0000 UTC FinishedAt: 2026-07-17 03:59:39 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MWIFIEX", "MWIFIEX_USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MWIFIEX", "MWIFIEX_USB" ], "series_id": "bb7a3c28-309f-43f7-b0be-9dec4e13e60f" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mwifiex_update_bss_desc_with_ie", "mwifiex_fill_new_bss_desc" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIHBhcnNpbmcgaW4gdGhlIE1hcnZlbGwgV2lGaS1FeCBkcml2ZXIuIFNpbmNlIHRoaXMgZHJpdmVyIHN1cHBvcnRzIFVTQiAoTVdJRklFWF9VU0IpLCBpdCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0byBpbmplY3QgbWFsZm9ybWVkIGZpcm13YXJlIHJlc3BvbnNlcyBjb250YWluaW5nIGNyYWZ0ZWQgSUVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDljNjllYzVkZTUwMzM4ODdlZjhkYTk2MjMzZWJmYmIxZGRlZjVlOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDAzOjU3OjU5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG5pbmRleCA5N2MwZWMzYjgyMmU3MC4uMDE5NmMyYWRmZWVkZjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG5AQCAtMTM4NCw2ICYjNDM7MTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdFx0XHRic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfSFRfQ0FQQUJJTElUWTpcbiYjNDM7XHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9jYXApKVxuJiM0MztcdFx0XHRcdHJldHVybiAtRUlOVkFMO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViY25faHRfY2FwID0gKHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwICopXG4gXHRcdFx0XHRcdChjdXJyZW50X3B0ciAmIzQzO1xuIFx0XHRcdFx0XHRzaXplb2Yoc3RydWN0IGllZWVfdHlwZXNfaGVhZGVyKSk7XG5AQCAtMTM5Miw2ICYjNDM7MTM5NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViZWFjb25fYnVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBXTEFOX0VJRF9IVF9PUEVSQVRJT046XG4mIzQzO1x0XHRcdGlmIChlbGVtZW50X2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uKSlcbiYjNDM7XHRcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX2h0X29wZXIgPVxuIFx0XHRcdFx0KHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICYjNDM7XG4gXHRcdFx0XHRcdHNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTtcbkBAIC0xNDAwLDYgJiM0MzsxNDA0LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX1ZIVF9DQVBBQklMSVRZOlxuJiM0MztcdFx0XHRpZiAoZWxlbWVudF9sZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKVxuJiM0MztcdFx0XHRcdHJldHVybiAtRUlOVkFMO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2VkaXNhYmxlXzExYWMgPSBmYWxzZTtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX3ZodF9jYXAgPVxuIFx0XHRcdFx0KHZvaWQgKikoY3VycmVudF9wdHIgJiM0MztcbkBAIC0xNDA5LDYgJiM0MzsxNDE1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0ICAgICAgYnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX1ZIVF9PUEVSQVRJT046XG4mIzQzO1x0XHRcdGlmIChlbGVtZW50X2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X29wZXJhdGlvbikpXG4mIzQzO1x0XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJjbl92aHRfb3BlciA9XG4gXHRcdFx0XHQodm9pZCAqKShjdXJyZW50X3B0ciAmIzQzO1xuIFx0XHRcdFx0XHQgc2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIHBhcnNpbmcgaW4gdGhlIE1hcnZlbGwgV2lGaS1FeCBkcml2ZXIuIFNpbmNlIHRoaXMgZHJpdmVyIHN1cHBvcnRzIFVTQiAoTVdJRklFWF9VU0IpLCBpdCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0byBpbmplY3QgbWFsZm9ybWVkIGZpcm13YXJlIHJlc3BvbnNlcyBjb250YWluaW5nIGNyYWZ0ZWQgSUVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0OWM2OWVjNWRlNTAzMzg4N2VmOGRhOTYyMzNlYmZiYjFkZGVmNWU5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMTcgMDM6NTc6NTkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYwppbmRleCA5N2MwZWMzYjgyMmU3MC4uMDE5NmMyYWRmZWVkZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYwpAQCAtMTM4NCw2ICYjNDM7MTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsCiAJCQkJCQkJYnNzX2VudHJ5LSZndDtiZWFjb25fYnVmKTsKIAkJCWJyZWFrOwogCQljYXNlIFdMQU5fRUlEX0hUX0NBUEFCSUxJVFk6CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwKSkKJiM0MzsJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQlic3NfZW50cnktJmd0O2Jjbl9odF9jYXAgPSAoc3RydWN0IGllZWU4MDIxMV9odF9jYXAgKikKIAkJCQkJKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCXNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTsKQEAgLTEzOTIsNiAmIzQzOzEzOTQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLAogCQkJCQlic3NfZW50cnktJmd0O2JlYWNvbl9idWYpOwogCQkJYnJlYWs7CiAJCWNhc2UgV0xBTl9FSURfSFRfT1BFUkFUSU9OOgomIzQzOwkJCWlmIChlbGVtZW50X2xlbiAmbHQ7IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbikpCiYjNDM7CQkJCXJldHVybiAtRUlOVkFMOwogCQkJYnNzX2VudHJ5LSZndDtiY25faHRfb3BlciA9CiAJCQkJKHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCXNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTsKQEAgLTE0MDAsNiAmIzQzOzE0MDQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLAogCQkJCQlic3NfZW50cnktJmd0O2JlYWNvbl9idWYpOwogCQkJYnJlYWs7CiAJCWNhc2UgV0xBTl9FSURfVkhUX0NBUEFCSUxJVFk6CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCkpCiYjNDM7CQkJCXJldHVybiAtRUlOVkFMOwogCQkJYnNzX2VudHJ5LSZndDtkaXNhYmxlXzExYWMgPSBmYWxzZTsKIAkJCWJzc19lbnRyeS0mZ3Q7YmNuX3ZodF9jYXAgPQogCQkJCSh2b2lkICopKGN1cnJlbnRfcHRyICYjNDM7CkBAIC0xNDA5LDYgJiM0MzsxNDE1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlciwKIAkJCQkJICAgICAgYnNzX2VudHJ5LSZndDtiZWFjb25fYnVmKTsKIAkJCWJyZWFrOwogCQljYXNlIFdMQU5fRUlEX1ZIVF9PUEVSQVRJT046CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X29wZXJhdGlvbikpCiYjNDM7CQkJCXJldHVybiAtRUlOVkFMOwogCQkJYnNzX2VudHJ5LSZndDtiY25fdmh0X29wZXIgPQogCQkJCSh2b2lkICopKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCSBzaXplb2Yoc3RydWN0IGllZWVfdHlwZXNfaGVhZGVyKSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjQKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAzMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgV2lGaSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jYC4gSXQgc2VlbXMgdGhleSYjMzk7cmUgYWRkaW5nIGJvdW5kcyBjaGVja2luZyBpbiBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAsIHNwZWNpZmljYWxseSBmb3IgdGhvc2UgSFQgYW5kIFZIVCBJbmZvcm1hdGlvbiBFbGVtZW50cyDigJMgYFdMQU5fRUlEX0hUX0NBUEFCSUxJVFlgLCBgV0xBTl9FSURfSFRfT1BFUkFUSU9OYCwgYFdMQU5fRUlEX1ZIVF9DQVBBQklMSVRZYCwgYW5kIGBXTEFOX0VJRF9WSFRfT1BFUkFUSU9OYC4gU21hcnQgbW92ZTsgdGhleSYjMzk7cmUgY29tcGFyaW5nIGBlbGVtZW50X2xlbmAgYWdhaW5zdCB0aGUgc2l6ZXMgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc3RydWN0dXJlcyB0byBwcmV2ZW50IGJ1ZmZlciBvdmVycnVucy4gVGhpcyBzaG91bGQgYmUgYSBuaWNlLCBzb2xpZCBmdW5jdGlvbmFsIGltcHJvdmVtZW50LCBhZGRyZXNzaW5nIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWRzIG9yIHdyaXRlcywgdGhlIHVzdWFsIHN1c3BlY3RzLiBJIGtub3cgdGhpcyBkcml2ZXIgaXMgZm9yIE1hcnZlbGwgV2lGaSBjaGlwcywgc28gaXQmIzM5O3MgYSBgbXdpZmlleGAgZHJpdmVyLgoKTm93LCBteSBtaW5kIHN0YXJ0cyByYWNpbmcg4oCTIGlzIHRoaXMgc29tZXRoaW5nIHdlIGNhbiByZWFjaCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBvciBhcmUgd2Ugc3R1Y2sgd2l0aCBpdCBiZWluZyBhIHN0cmljdGx5IGhhcmR3YXJlLWRlcGVuZGVudCBkcml2ZXI/IGBtYWM4MDIxMV9od3NpbWAgd29uJiMzOTt0IGNvdmVyIGl0LCBiZWNhdXNlIGl0JiMzOTtzIGhhcmR3YXJlLXNwZWNpZmljLiBXYWl0LCB5ZWFoLCB0aGlzIGlzIGEgc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyLiBIbW0sIGNhbiB3ZSBmdXp6IGl0PyBJIGtub3cgd2UgY2FuIHNvbWV0aW1lcyBmdXp6IGhhcmR3YXJlIGRyaXZlcnMsIGJ1dCBvZnRlbiBub3QgZWFzaWx5LiBVbmxlc3MgdGhlcmUmIzM5O3Mgc29tZSBraW5kIG9mIGVtdWxhdGlvbiBsYXllciBvciBzb21ldGhpbmcgbGlrZSBVU0IgZnV6emluZyAobGlrZSB3aXRoIGB2aGNpYCksIHdlJiMzOTtyZSBwcm9iYWJseSBnb2luZyB0byBoYXZlIHRyb3VibGUuIExldCBtZSBzZWUuLi4gSSYjMzk7bGwgY2hlY2sgaWYgYG13aWZpZXhgIHVzZXMgYSBVU0IgaW50ZXJmYWNlLiBJIHZhZ3VlbHkgcmVjYWxsIHRoZXJlIGJlaW5nIGEgYHVzYi5jYCBmaWxlLi4uIHllcCwgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuY2AuIExldCYjMzk7cyB0YWtlIGEgbG9vayB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg9MTUzOD1pbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTU0MC1cdFx0XHQgICAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oOjE1NDE6aW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTU0Mi1cdFx0XHRcdCAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZW50cnkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM9MTExMj1td2lmaWV4X3JldF84MDJfMTFfc2Nhbl9nZXRfdGx2X3B0cnMoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTExODEtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjExODI6aW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTE4My1cdFx0XHRcdCAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZW50cnkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTEyOT1pbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MTgwOlx0cmV0dXJuIG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUocHJpdi1cdTAwM2VhZGFwdGVyLCBic3NfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTgxLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTUyCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEkmIzM5O20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIG13aWZpZXggVVNCIERyaXZlciBQcmVzZW5jZSoqCgpBbHJpZ2h0LCBzbyB0aGUgaW5pdGlhbCB0aG91Z2h0IHRoYXQgcG9wcyBpbnRvIG15IGhlYWQgaXMgdG8gZGV0ZXJtaW5lIGlmIGBtd2lmaWV4YCBldmVuIGhhcyBhIGNvcnJlc3BvbmRpbmcgVVNCIGRyaXZlciBhdmFpbGFibGUuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgZmlyc3Qgc3RlcC4gV2UgbmVlZCB0byBhc2NlcnRhaW4gaWYgdGhlIHN5c3RlbSBoYXMgdGhlIGNhcGFiaWxpdHkgdG8gaW50ZXJmYWNlIHdpdGggdGhpcyBwb3RlbnRpYWwgV2ktRmkgaGFyZHdhcmUgdGhyb3VnaCBVU0IuIEEgcXVpY2sgY2hlY2sgaGVyZSBzYXZlcyB0aW1lIGRvd24gdGhlIGxpbmUuIFdlIGNhbiYjMzk7dCBwcm9jZWVkIGZ1cnRoZXIgd2l0aCBhbnkgVVNCLXJlbGF0ZWQgZGVidWdnaW5nIG9yIGNvbmZpZ3VyYXRpb24gd2l0aG91dCB2ZXJpZnlpbmcgdGhpcyBpbml0aWFsIGNvbm5lY3Rpdml0eSBvcHRpb24uIFNvLCB0aGF0JiMzOTtzIHdoZXJlIEkmIzM5O20gc3RhcnRpbmc6IGRvZXMgYG13aWZpZXhgIHByb3ZpZGUgdGhlIG5lY2Vzc2FyeSBVU0IgaW50ZXJmYWNlLCBhbmQgaWYgc28sIHdoYXQmIzM5O3MgdGhlIGRyaXZlciBzaXR1YXRpb24/IExldCYjMzk7cyBkaWcgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0OzExYWMuYyYjMzQ7LAogICAgJiMzNDsxMWFjLmgmIzM0OywKICAgICYjMzQ7MTFoLmMmIzM0OywKICAgICYjMzQ7MTFuLmMmIzM0OywKICAgICYjMzQ7MTFuLmgmIzM0OywKICAgICYjMzQ7MTFuX2FnZ3IuYyYjMzQ7LAogICAgJiMzNDsxMW5fYWdnci5oJiMzNDssCiAgICAmIzM0OzExbl9yeHJlb3JkZXIuYyYjMzQ7LAogICAgJiMzNDsxMW5fcnhyZW9yZGVyLmgmIzM0OywKICAgICYjMzQ7Y2ZnODAyMTEuYyYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMS5oJiMzNDssCiAgICAmIzM0O2NmcC5jJiMzNDssCiAgICAmIzM0O2NtZGV2dC5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtkZWNsLmgmIzM0OywKICAgICYjMzQ7ZXRodG9vbC5jJiMzNDssCiAgICAmIzM0O2Z3LmgmIzM0OywKICAgICYjMzQ7aWUuYyYjMzQ7LAogICAgJiMzNDtpbml0LmMmIzM0OywKICAgICYjMzQ7aW9jdGwuaCYjMzQ7LAogICAgJiMzNDtqb2luLmMmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21haW4uaCYjMzQ7LAogICAgJiMzNDtwY2llLmMmIzM0OywKICAgICYjMzQ7cGNpZS5oJiMzNDssCiAgICAmIzM0O3BjaWVfcXVpcmtzLmMmIzM0OywKICAgICYjMzQ7cGNpZV9xdWlya3MuaCYjMzQ7LAogICAgJiMzNDtzY2FuLmMmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW8uaCYjMzQ7LAogICAgJiMzNDtzdGFfY21kLmMmIzM0OywKICAgICYjMzQ7c3RhX2NtZHJlc3AuYyYjMzQ7LAogICAgJiMzNDtzdGFfZXZlbnQuYyYjMzQ7LAogICAgJiMzNDtzdGFfaW9jdGwuYyYjMzQ7LAogICAgJiMzNDtzdGFfcnguYyYjMzQ7LAogICAgJiMzNDtzdGFfdHguYyYjMzQ7LAogICAgJiMzNDt0ZGxzLmMmIzM0OywKICAgICYjMzQ7dHhyeC5jJiMzNDssCiAgICAmIzM0O3VhcF9jbWQuYyYjMzQ7LAogICAgJiMzNDt1YXBfZXZlbnQuYyYjMzQ7LAogICAgJiMzNDt1YXBfdHhyeC5jJiMzNDssCiAgICAmIzM0O3VzYi5jJiMzNDssCiAgICAmIzM0O3VzYi5oJiMzNDssCiAgICAmIzM0O3V0aWwuYyYjMzQ7LAogICAgJiMzNDt1dGlsLmgmIzM0OywKICAgICYjMzQ7d21tLmMmIzM0OywKICAgICYjMzQ7d21tLmgmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MDAKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgV2lGaSBEcml2ZXIgUGF0Y2ggZm9yIFBvdGVudGlhbCBWdWxuZXJhYmlsaXRpZXMqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBkaWdnaW5nIGludG8gYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uY2AuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7cmUgYWRkaW5nIGJvdW5kcyBjaGVja2luZyBmb3IgYSBmZXcgaW1wb3J0YW50IDgwMi4xMSBlbGVtZW50czogYFdMQU5fRUlEX0hUX0NBUEFCSUxJVFlgLCBgV0xBTl9FSURfSFRfT1BFUkFUSU9OYCwgYFdMQU5fRUlEX1ZIVF9DQVBBQklMSVRZYCwgYW5kIGBXTEFOX0VJRF9WSFRfT1BFUkFUSU9OYC4gVGhpcyBpbW1lZGlhdGVseSBzY3JlYW1zIHBvdGVudGlhbCBmb3Igb2ZmLWJ5LW9uZSBlcnJvcnMgb3IgYnVmZmVyIG92ZXJmbG93cywgd2hpY2ggaXMgcHJlY2lzZWx5IHRoZSBraW5kIG9mIHRoaW5nIEkmIzM5O20gYWx3YXlzIGxvb2tpbmcgZm9yLiBUaGlzIGlzIGEgTWFydmVsbCBXaUZpIGRyaXZlciwgYG13aWZpZXhgLCB3aGljaCBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGhhcmR3YXJlLCBvciBhdCBsZWFzdCBhIHNvZnR3YXJlIHJlcHJlc2VudGF0aW9uIG9mIGl0LgoKTXkgZmlyc3QgdGhvdWdodCBpcyBhbHdheXMgYWJvdXQgcmVhY2hhYmlsaXR5OiBjYW4gdGhpcyBkcml2ZXIgZXZlbiAqYmUqIGF0dGFja2VkIGluIHRoZSBlbnZpcm9ubWVudHMgSSYjMzk7bSB0eXBpY2FsbHkgdGFyZ2V0aW5nPyBJbiBtb3N0IHZpcnR1YWxpemVkIHNldHVwcyBsaWtlIEdDRSBvciBRRU1VLCB3ZSYjMzk7cmUgdW5saWtlbHkgdG8gaGF2ZSBkaXJlY3QgaGFyZHdhcmUgYWNjZXNzIHRvIGEgZGVkaWNhdGVkIFdpRmkgY2FyZCwgdW5sZXNzIGl0JiMzOTtzIGEgVVNCIGRldmljZS4gT2Z0ZW4sIHdlIG1pZ2h0IGdldCBsdWNreSB3aXRoIHNvZnR3YXJlIGVtdWxhdGlvbiwgb3IgcGVyaGFwcyBhIGR1bW15IGhvc3QgY29udHJvbGxlciAoZHVtbXktaGNkL3ZoY2kpIHNldHVwIGZvciBmdXp6aW5nIHRoZSBVU0IgZHJpdmVyLiBTbywgaXMgdGhlcmUgYSBVU0IgY29tcG9uZW50PwoKQSBxdWljayBzY2FuIHNob3dzIHRoZXJlICppcyogYSBgdXNiLmNgIGFuZCBgdXNiLmhgIHJpZ2h0IHRoZXJlIGluIHRoZSBgbXdpZmlleGAgZGlyZWN0b3J5ISBFeGNlbGxlbnQuIFRoYXQmIzM5O3MgYSBzdHJvbmcgaW5kaWNhdG9yIHdlIG1pZ2h0IGJlIGFibGUgdG8gdHJpZ2dlciB0aGlzIGNvZGUgcGF0aCB0aHJvdWdoIFVTQi4gTm93IEkgbmVlZCB0byBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3VzYi5jYCB0byBjb25maXJtIGl0IHJlZ2lzdGVycyBhIFVTQiBkcml2ZXIsIHRvIGFzY2VydGFpbiBpZiB0aGlzIGlzIGEgcGF0aCB3ZSBjYW4gYWN0dWFsbHkgZXhwbG9pdC4gVGhpcyBjb3VsZCBvcGVuIGEgdmVyeSBpbnRlcmVzdGluZyBhdHRhY2sgc3VyZmFjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VzYl9yZWdpc3RlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDg0MQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIHN0cmVhbSBvZiB0aG91Z2h0OgoKKipDaGVja2luZyBmb3IgVVNCIERyaXZlciBDYW5kaWRhdGVzKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCYjMzk7cyBnb2luZyBvbiB3aXRoIHRoaXMgVVNCIHNpdHVhdGlvbi4gTXkgZmlyc3QgbW92ZSBpcyBzdHJhaWdodGZvcndhcmQ6IEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHBvdGVudGlhbCBVU0IgZHJpdmVyIGVudHJpZXMuIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhlIG9idmlvdXMgY2FuZGlkYXRlcy4gSSYjMzk7bGwgc2VhcmNoIGZvciB0aGluZ3MgbGFiZWxlZCB2ZXJ5IGV4cGxpY2l0bHksIGxpa2UgYHVzYl9kcml2ZXJgLiBJZiB0aGF0JiMzOTtzIHRvbyBzaW1wbGUsIEkmIzM5O2xsIGJyb2FkZW4gdGhlIG5ldCBhIGJpdCBhbmQgbG9vayBmb3IgdmFyaWF0aW9ucyBvbiB0aGF0IHRoZW1lLCBzdWNoIGFzIGBtb2R1bGVfdXNiX2RyaXZlcmAuIFRoaXMgd2lsbCBnaXZlIG1lIGEgYmFzZWxpbmUgdG8gd29yayBmcm9tLCBhIGhhbmRsZSBvbiB0aGUgbW9zdCBmdW5kYW1lbnRhbCBwYXJ0cyBvZiB0aGUgVVNCIGRyaXZlciwgdG8gc2VlIGlmIGFueXRoaW5nIGlzIGltbWVkaWF0ZWx5IGFwcGFyZW50LiBGcm9tIHRoZXJlLCBJIGNhbiBiZWdpbiBteSBpbnZlc3RpZ2F0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfdXNiX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmM9MTU4ND1zdGF0aWMgY29uc3Qgc3RydWN0IG13aWZpZXhfaWZfb3BzIHVzYl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3VzYi5jLTE1OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmM6MTYwMDptb2R1bGVfdXNiX2RyaXZlcihtd2lmaWV4X3VzYl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3VzYi5jLTE2MDEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxOTkKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAxMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBtd2lmaWV4IERyaXZlciBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIEkgc2VlIGl0LiBUaGUgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGZ1bmN0aW9uIGlzIGRlZmluaXRlbHkgYSBwb3RlbnRpYWwgZW50cnkgcG9pbnQgZm9yIGZ1enppbmcsIGxpa2VseSB0aHJvdWdoIFVTQiBmdXp6aW5nIHV0aWxpemluZyBzb21ldGhpbmcgbGlrZSBzeXprYWxsZXImIzM5O3MgYHN5el91c2JfY29ubmVjdGAgY2FsbC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgZ3JhcGggdG8gZGV0ZXJtaW5lIHRoZSBwb3RlbnRpYWwgaW1wYWN0LiBJdCBsb29rcyBsaWtlIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBpcyBjYWxsZWQgZnJvbSBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AsIHdoaWNoIGl0c2VsZiBpcyBjYWxsZWQgZnJvbSBgbXdpZmlleF9yZXRfODAyXzExX3NjYW5fZ2V0X3Rsdl9wdHJzYC4gVGhlIGNhbGwgdG8gYG13aWZpZXhfc2V0X21hY19hZGRyZXNzYCBpcyBhbHNvIGluIHRoZXJlLCBwZXJoYXBzLCB0aGlzIGlzIHNvbWV0aGluZyB0byBhbHNvIGJlIGNvbnNpZGVyZWQsIG9yIGF0IGxlYXN0IGNvbmZpcm1lZCBieSBjaGVja2luZyB0aGUgY2FsbCBncmFwaC4gVGhlIG5leHQgc3RlcCBpcyB0byBtZXRob2RpY2FsbHkgdHJhY2UgKmFsbCogY2FsbHMgdG8gYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIHRvIGZvcm0gYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oPTE1Mzg9aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1NDAtXHRcdFx0ICAgICAgc3RydWN0IG13aWZpZXhfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaDoxNTQxOmludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1NDItXHRcdFx0XHQgICAgc3RydWN0IG13aWZpZXhfYnNzZGVzY3JpcHRvciAqYnNzX2VudHJ5KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTExMTI9bXdpZmlleF9yZXRfODAyXzExX3NjYW5fZ2V0X3Rsdl9wdHJzKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xMTgxLSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYzoxMTgyOmludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTExODMtXHRcdFx0XHQgICAgc3RydWN0IG13aWZpZXhfYnNzZGVzY3JpcHRvciAqYnNzX2VudHJ5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYz0xMjk9aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jOjE4MDpcdHJldHVybiBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHByaXYtXHUwMDNlYWRhcHRlciwgYnNzX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTE4MS19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzNDUKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oPTE1MzY9aW50IG13aWZpZXhfZ2V0X2Jzc19pbmZvKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTUzNy1cdFx0XHQgc3RydWN0IG13aWZpZXhfYnNzX2luZm8gKik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oOjE1Mzg6aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTUzOS1cdFx0XHQgICAgICBzdHJ1Y3QgY2ZnODAyMTFfYnNzICpic3MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYz0xNjUxPXN0YXRpYyBpbnQgbXdpZmlleF9zYXZlX2hpZGRlbl9zc2lkX2NoYW5uZWxzKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYzoxNjYzOlx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTY2NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjg3LVx0LyogYmVhY29uX2llIGJ1ZmZlciB3YXMgYWxsb2NhdGVkIGluIGZ1bmN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE2ODg6XHQgKiBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKCkuIEZyZWUgaXQgbm93LlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjg5LVx0ICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYz0xNjk1PXN0YXRpYyBpbnQgbXdpZmlleF91cGRhdGVfY3Vycl9ic3NfcGFyYW1zKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYzoxNzA2Olx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTcwNy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzI2LVx0LyogYmVhY29uX2llIGJ1ZmZlciB3YXMgYWxsb2NhdGVkIGluIGZ1bmN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE3Mjc6XHQgKiBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKCkuIEZyZWUgaXQgbm93LlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzI4LVx0ICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTc2PWludCBtd2lmaWV4X3JlcXVlc3Rfc2V0X211bHRpY2FzdF9saXN0KHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTEyOC0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYzoxMjk6aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xMzAtXHRcdFx0ICAgICAgc3RydWN0IGNmZzgwMjExX2JzcyAqYnNzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYz0zMTg9aW50IG13aWZpZXhfYnNzX3N0YXJ0KHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsIHN0cnVjdCBjZmc4MDIxMV9ic3MgKmJzcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMzM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jOjMzNzpcdFx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0zMzgtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTQzMi1cdC8qIGJlYWNvbl9pZSBidWZmZXIgd2FzIGFsbG9jYXRlZCBpbiBmdW5jdGlvblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jOjQzMzpcdCAqIG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MoKS4gRnJlZSBpdCBub3cuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtNDM0LVx0ICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyMjAKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxNjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVnVsbmVyYWJpbGl0eSBBc3Nlc3NtZW50OiBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKioKCk9rYXksIHNvIGhlcmUmIzM5O3MgdGhlIGJyZWFrZG93biBvZiB3aGF0IEkmIzM5O20gdGhpbmtpbmcuIEkmIzM5O3ZlIGJlZW4gdHJhY2luZyBkb3duIHRoZSBjYWxsIHN0YWNrIGFuZCBpdCYjMzk7cyBsb29raW5nIGxpa2UgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGlzIGEga2V5IGZ1bmN0aW9uIHRvIGNvbnNpZGVyLiBJdCYjMzk7cyBjYWxsZWQgZnJvbSB0d28gcGxhY2VzOiBgbXdpZmlleF9yZXRfODAyXzExX3NjYW5fZ2V0X3Rsdl9wdHJzYCBhbmQgYG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2NgLgoKQW5kLCBhcyBJIGZvbGxvdyB0aGUgY2FsbHMsIEkgc2VlIHRoYXQgYG13aWZpZXhfcmV0XzgwMl8xMV9zY2FuX2dldF90bHZfcHRyc2AgaXMgY2FsbGVkIGZyb20gYG13aWZpZXhfcmV0XzgwMl8xMV9zY2FuYC4gVGhpcyBpcyBzaWduaWZpY2FudCBiZWNhdXNlIGBtd2lmaWV4X3JldF84MDJfMTFfc2NhbmAgaXMgcmVzcG9uc2libGUgZm9yIHBhcnNpbmcgc2NhbiByZXN1bHRzIHRoYXQgY29tZSBkaXJlY3RseSBmcm9tIHRoZSBmaXJtd2FyZSDigJMgb3IgcG90ZW50aWFsbHkgb3ZlciBVU0IsIGRlcGVuZGluZyBvbiB0aGUgc2V0dXAuCgpUaGlzIGdpdmVzIG1lIGEgY2xlYXIgYXR0YWNrIHN1cmZhY2U6IGl0JiMzOTtzIGRhdGEgY29taW5nIGZyb20gdGhlIGZpcm13YXJlIGl0c2VsZiwgb3Igb3ZlciB0aGUgVVNCIGludGVyZmFjZS4gU28sIGlmIHRoZSBmaXJtd2FyZSBpcyBjb21wcm9taXNlZCwgbWFsaWNpb3VzLCBvciBpZiB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IGZ1enogdGhlIFVTQiBjb25uZWN0aW9uLCB3ZSBjYW4gZGlyZWN0bHkgdHJpZ2dlciB0aGUgZXhlY3V0aW9uIG9mIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYC4gQ29uc2lkZXJpbmcgdGhlIGNvbnRleHQsIHRoaXMgKmFic29sdXRlbHkqIHNlZW1zIGxpa2UgYSByaXBlIHRhcmdldCBmb3IgZnV6emluZy4gV2UgbWlnaHQgYmUgYWJsZSB0byBjcmFmdCBtYWxpY2lvdXMgQlNTIGRlc2NyaXB0b3JzIHRoYXQgbGVhZCB0byBhIGNyYXNoLCBtZW1vcnkgY29ycnVwdGlvbiwgb3IgZXZlbiBhcmJpdHJhcnkgY29kZSBleGVjdXRpb24uCgpNeSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHRoZSBleGFjdCBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cyBmb3IgdGhlIGBtd2lmaWV4YCBVU0IgZHJpdmVyLCBzbyB0aGF0IEkgY2FuIGZpZ3VyZSBvdXQgdGhlIGJlc3Qgd2F5IHRvIHRyaWdnZXIgdGhpcyBjb2RlIHBhdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNV0lGSUVYJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6Mjpjb25maWcgTVdJRklFWFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjEyOmNvbmZpZyBNV0lGSUVYX1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTEzLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgU0Q4Nzg2L1NEODc4Ny9TRDg3OTcvU0Q4ODg3L1NEODg5Ny9TRDg5NzcvU0Q4OTc4L1NEODk4Ny9TRDg5OTdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjI1OmNvbmZpZyBNV0lGSUVYX1BDSUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTI2LVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgUENJRSA4NzY2Lzg4OTcvODk5N1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6Mzc6Y29uZmlnIE1XSUZJRVhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zOC1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFVTQjg3NjYvODc5Ny84OTk3XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgyMTUKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipBbmFseXppbmcgRGVwZW5kZW5jaWVzIGZvciBXaXJlbGVzcyBEcml2ZXIgTW9kdWxlcyoqCgpBbHJpZ2h0LCBzbyB0aGUgdGFzayBhdCBoYW5kIGludm9sdmVzIHdvcmtpbmcgd2l0aCBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAg4oCTIHR3byBtb2R1bGVzIHJlbGF0ZWQgdG8gd2lyZWxlc3MgZnVuY3Rpb25hbGl0eSwgbGlrZWx5IGRyaXZlcnMuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHRoZSBkZXBlbmRlbmN5IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZW0uIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGNvbmZpcm0gaWYgYE1XSUZJRVhfVVNCYCBhY3R1YWxseSAqZGVwZW5kcyogb24gYE1XSUZJRVhgLiBJZiBpdCBkb2VzLCB0aGVuIHRoZSBidWlsZCBwcm9jZXNzLCBsb2FkaW5nIG9yZGVyLCBhbmQgb3ZlcmFsbCBtb2R1bGUgbWFuYWdlbWVudCBuZWVkIHRvIGFjY291bnQgZm9yIHRoaXMgY3JpdGljYWwgcHJlcmVxdWlzaXRlLiBLbm93aW5nIHRoaXMgcmVsYXRpb25zaGlwIGlzIGZ1bmRhbWVudGFsIGZvciBhIHN0YWJsZSBhbmQgcHJvcGVybHkgZnVuY3Rpb25pbmcgd2lyZWxlc3Mgc3lzdGVtLiBJIG5lZWQgdG8gZGVsdmUgaW50byB0aGUgY29kZSwgY29uZmlndXJhdGlvbiBmaWxlcywgb3IgYnVpbGQgc2NyaXB0cyB0byBkZXRlcm1pbmUgaWYgdGhpcyBkZXBlbmRlbmN5IGV4aXN0cy4gSXQmIzM5O3MgYSBrZXkgZmlyc3Qgc3RlcCBiZWZvcmUgSSBwcm9jZWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0Y29uZmlnIE1XSUZJRVhcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXJcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gQ0ZHODAyMTFcbiAgIDU6XHRcdGhlbHBcbiAgIDY6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHdpcmVsZXNzIGFkYXB0ZXJzIGJhc2VkIG9uIE1hcnZlbGxcbiAgIDc6XHRcdCAgODAyLjExbi9hYyBjaGlwc2V0cy5cbiAgIDg6XHRcbiAgIDk6XHRcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBpdCBhcyBhIG1vZHVsZSwgaXQgd2lsbCBiZSBjYWxsZWRcbiAgMTA6XHRcdCAgbXdpZmlleC5cbiAgMTE6XHRcbiAgMTI6XHRjb25maWcgTVdJRklFWF9TRElPXG4gIDEzOlx0XHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBTRDg3ODYvU0Q4Nzg3L1NEODc5Ny9TRDg4ODcvU0Q4ODk3L1NEODk3Ny9TRDg5NzgvU0Q4OTg3L1NEODk5N1wmIzM0O1xuICAxNDpcdFx0ZGVwZW5kcyBvbiBNV0lGSUVYIFx1MDAyNlx1MDAyNiBNTUNcbiAgMTU6XHRcdHNlbGVjdCBGV19MT0FERVJcbiAgMTY6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICAxNzpcdFx0aGVscFxuICAxODpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTWFydmVsbFxuICAxOTpcdFx0ICA4Nzg2Lzg3ODcvODc5Ny84ODg3Lzg4OTcvODk3Ny84OTc4Lzg5ODcvODk5NyBjaGlwc2V0cyB3aXRoXG4gIDIwOlx0XHQgIFNESU8gaW50ZXJmYWNlLiBTRDg5NzggaXMgYWxzbyBrbm93biBhcyBOWFAgSVc0MTYuXG4gIDIxOlx0XG4gIDIyOlx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXG4gIDIzOlx0XHQgIG13aWZpZXhfc2Rpby5cbiAgMjQ6XHRcbiAgMjU6XHRjb25maWcgTVdJRklFWF9QQ0lFXG4gIDI2Olx0XHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBQQ0lFIDg3NjYvODg5Ny84OTk3XCYjMzQ7XG4gIDI3Olx0XHRkZXBlbmRzIG9uIE1XSUZJRVggXHUwMDI2XHUwMDI2IFBDSVxuICAyODpcdFx0c2VsZWN0IEZXX0xPQURFUlxuICAyOTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gIDMwOlx0XHRoZWxwXG4gIDMxOlx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBNYXJ2ZWxsXG4gIDMyOlx0XHQgIDg3NjYvODg5Ny84OTk3IGNoaXBzZXRzIHdpdGggUENJZSBpbnRlcmZhY2UuXG4gIDMzOlx0XG4gIDM0Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXG4gIDM1Olx0XHQgIG13aWZpZXhfcGNpZS5cbiAgMzY6XHRcbiAgMzc6XHRjb25maWcgTVdJRklFWF9VU0JcbiAgMzg6XHRcdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFVTQjg3NjYvODc5Ny84OTk3XCYjMzQ7XG4gIDM5Olx0XHRkZXBlbmRzIG9uIE1XSUZJRVggXHUwMDI2XHUwMDI2IFVTQlxuICA0MDpcdFx0c2VsZWN0IEZXX0xPQURFUlxuICA0MTpcdFx0aGVscFxuICA0MjpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTWFydmVsbFxuICA0MzpcdFx0ICA4Nzk3Lzg5OTcgY2hpcHNldCB3aXRoIFVTQiBpbnRlcmZhY2UuXG4gIDQ0Olx0XG4gIDQ1Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXG4gIDQ2Olx0XHQgIG13aWZpZXhfdXNiLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4Mjc5CgkJCQkJCQlvdXRwdXQ6IDEyOAoJCQkJCQkJdGhvdWdodHM6IDg0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFN0cmF0ZWd5IGZvciBJbmZvcm1hdGlvbiBFbGVtZW50IFBhcnNpbmcgaW4gdGhlIE1hcnZlbGwgbXdpZmlleCBXaS1GaSBEcml2ZXIqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhIGdvb2Qgb25lLiBJdCYjMzk7cyB0aWdodGVuaW5nIHVwIElFIHBhcnNpbmcgaW4gYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uY2AuIFNwZWNpZmljYWxseSwgdGhleSYjMzk7cmUgYWRkaW5nIGNoZWNrcyBhZ2FpbnN0IHN0cnVjdHVyZSBzaXplcyAoYGllZWU4MDIxMV9odF9jYXBgLCBldGMuKSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgZHVyaW5nIGJlYWNvbi9wcm9iZSByZXNwb25zZSBwcm9jZXNzaW5nLiBUaGlzIGlzIHNvbGlkIGRlZmVuc2l2ZSBwcm9ncmFtbWluZywgYSBncmVhdCBwbGFjZSB0byBsb29rIGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O1dpcmVsZXNzIGRyaXZlciwgZXhjZWxsZW50ISYjMzQ7IFdlIGhhdmUgYG13aWZpZXhgIGhlcmUsIHdoaWNoLCBhcyBJIHJlY2FsbCwgc3VwcG9ydHMgU0RJTywgUENJZSwgYW5kIFVTQi4gVGhlIGluY2x1c2lvbiBvZiBVU0Igc3VwcG9ydCAoYE1XSUZJRVhfVVNCYCkgaXMgdGhlIGtleSBoZXJlLiBTeXprYWxsZXImIzM5O3MgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzLCBlc3BlY2lhbGx5IHdpdGggdGhlIGR1bW15IEhDRCwgYXJlIHBlcmZlY3QgZm9yIHRoaXMuIFdlIGNhbiBjcmFmdCBtYWxpY2lvdXMgVVNCIHBhY2tldHMgdGhhdCBtaW1pYyBmaXJtd2FyZSByZXNwb25zZXMsIGluY2x1ZGluZyB0aG9zZSBzY2FuIHJlc3VsdHMgYW5kIGNyYWZ0ZWQgSUVzIHRvIHRyaWdnZXIgdGhvc2UgYm91bmRzIGNoZWNrcy4KCkxldCYjMzk7cyBxdWlja2x5IGNoZWNrIHJlYWNoYWJpbGl0eS4gTG9va3MgbGlrZSBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgaXMgY2FsbGVkIGJ5IGBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjYCwgd2hpY2ggaXMgaXRzZWxmIGNhbGxlZCBieSBgbXdpZmlleF9zYXZlX2hpZGRlbl9zc2lkX2NoYW5uZWxzYCwgYG13aWZpZXhfdXBkYXRlX2N1cnJfYnNzX3BhcmFtc2AsIGFuZCBgbXdpZmlleF9ic3Nfc3RhcnRgLiBBbGwgb2YgdGhlc2UgZnVuY3Rpb25zIGFyZSBpbnZvbHZlZCBpbiBzY2FubmluZyBhbmQgY29ubmVjdGluZyB0byBCU1NzLiBTaW5jZSB0aGlzIGRyaXZlciBpcyBwYXJzaW5nIElFcywgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIgaXMgZGVmaW5pdGVseSByZWFjaGFibGUsIGFuZCB0aHVzLCB2dWxuZXJhYmxlLgoKUmlnaHQsIGBtd2lmaWV4YCBpcyBhIEZ1bGxNQUMgZHJpdmVyLCB3aGljaCBtZWFucyBpdCByZWxpZXMgb24gdGhlIGZpcm13YXJlIGZvciBzY2FuIHJlc3VsdHMuIFRoYXTigJlzIGV2ZW4gYmV0dGVyOyBpZiB3ZSBjYW4gZnV6eiB0aGUgVVNCIGludGVyZmFjZSwgd2UgY2FuIGZlZWQgdGhlIGRyaXZlciBtYWxmb3JtZWQgZmlybXdhcmUgcmVzcG9uc2VzIHdpdGggY3JhZnRlZCBJRXMuCgpMZXQmIzM5O3MgdmVyaWZ5IHRoZSBjb25maWdzOyBXZSYjMzk7bGwgbmVlZCBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAgdG8gZW5hYmxlIHRoZSBVU0IgaW50ZXJmYWNlLiBgTVdJRklFWF9VU0JgIGltcGxpZXMgYm90aCBgTVdJRklFWGAgYW5kIGBVU0JgLCBhbmQgdGhlIHBhdGNoIGlzIGluIGBzY2FuLmNgLCBzbyB3ZeKAmXJlIGdvb2QuIE5vIG5lZWQgdG8gd29ycnkgYWJvdXQgYE1XSUZJRVhfU0RJT2Agb3IgYE1XSUZJRVhfUENJRWAgYXMgc3l6a2FsbGVyJiMzOTtzIFVTQiBmdXp6aW5nIGlzIHRoZSBiZXN0IHBhdGggaGVyZS4KClRoZSB0YXJnZXQgc3ltYm9sczoKKiAgIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYAoqICAgYG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2NgCgpUaGUgcmVhc29uaW5nIGhlcmUgaXMgc29saWQ6IFRoZSBwYXRjaCBndWFyZHMgYWdhaW5zdCBJRSBwYXJzaW5nIGlzc3VlcywgYW5kIHRoZSBVU0IgaW50ZXJmYWNlIHByb3ZpZGVzIGEgZGlyZWN0IGluamVjdGlvbiBwb2ludCBmb3IgbWFsaWNpb3VzIGZpcm13YXJlIHJlc3BvbnNlcy4KCkxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuIFRoaXMgbG9va3MgbGlrZSBhIHByaW1lIHRhcmdldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIHBhcnNpbmcgaW4gdGhlIE1hcnZlbGwgV2lGaS1FeCBkcml2ZXIuIFNpbmNlIHRoaXMgZHJpdmVyIHN1cHBvcnRzIFVTQiAoTVdJRklFWF9VU0IpLCBpdCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0byBpbmplY3QgbWFsZm9ybWVkIGZpcm13YXJlIHJlc3BvbnNlcyBjb250YWluaW5nIGNyYWZ0ZWQgSUVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNV0lGSUVYJiMzNDssCiAgICAmIzM0O01XSUZJRVhfVVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZSYjMzQ7LAogICAgJiMzNDttd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBwYXJzaW5nIGluIHRoZSBNYXJ2ZWxsIFdpRmktRXggZHJpdmVyLiBTaW5jZSB0aGlzIGRyaXZlciBzdXBwb3J0cyBVU0IgKE1XSUZJRVhfVVNCKSwgaXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGRldmljZSBlbXVsYXRpb24gdG8gaW5qZWN0IG1hbGZvcm1lZCBmaXJtd2FyZSByZXNwb25zZXMgY29udGFpbmluZyBjcmFmdGVkIElFcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjU4OjAxLjA4NDM1ODUwMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk3NDk0NzM2NTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1XSUZJRVhcIixcbiAgICBcIk1XSUZJRVhfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiLFxuICAgIFwibXdpZmlleF9maWxsX25ld19ic3NfZGVzY1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBwYXJzaW5nIGluIHRoZSBNYXJ2ZWxsIFdpRmktRXggZHJpdmVyLiBTaW5jZSB0aGlzIGRyaXZlciBzdXBwb3J0cyBVU0IgKE1XSUZJRVhfVVNCKSwgaXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGRldmljZSBlbXVsYXRpb24gdG8gaW5qZWN0IG1hbGZvcm1lZCBmaXJtd2FyZSByZXNwb25zZXMgY29udGFpbmluZyBjcmFmdGVkIElFcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MDEuMDg0MzYzOTcyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDA2OTg4NTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0OWM2OWVjNWRlNTAzMzg4N2VmOGRhOTYyMzNlYmZiYjFkZGVmNWU5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDE3IDAzOjU3OjU5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXFxuaW5kZXggOTdjMGVjM2I4MjJlNzAuLjAxOTZjMmFkZmVlZGY3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXFxuQEAgLTEzODQsNiArMTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdGJzc19lbnRyeS1cXHUwMDNlYmVhY29uX2J1Zik7XFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRjYXNlIFdMQU5fRUlEX0hUX0NBUEFCSUxJVFk6XFxuK1xcdFxcdFxcdGlmIChlbGVtZW50X2xlbiBcXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcCkpXFxuK1xcdFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl9odF9jYXAgPSAoc3RydWN0IGllZWU4MDIxMV9odF9jYXAgKilcXG4gXFx0XFx0XFx0XFx0XFx0KGN1cnJlbnRfcHRyICtcXG4gXFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcbkBAIC0xMzkyLDYgKzEzOTQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9IVF9PUEVSQVRJT046XFxuK1xcdFxcdFxcdGlmIChlbGVtZW50X2xlbiBcXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbikpXFxuK1xcdFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl9odF9vcGVyID1cXG4gXFx0XFx0XFx0XFx0KHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICtcXG4gXFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcbkBAIC0xNDAwLDYgKzE0MDQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9WSFRfQ0FQQUJJTElUWTpcXG4rXFx0XFx0XFx0aWYgKGVsZW1lbnRfbGVuIFxcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCkpXFxuK1xcdFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWRpc2FibGVfMTFhYyA9IGZhbHNlO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl92aHRfY2FwID1cXG4gXFx0XFx0XFx0XFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xcbkBAIC0xNDA5LDYgKzE0MTUsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9WSFRfT1BFUkFUSU9OOlxcbitcXHRcXHRcXHRpZiAoZWxlbWVudF9sZW4gXFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV92aHRfb3BlcmF0aW9uKSlcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdFxcdFxcdGJzc19lbnRyeS1cXHUwMDNlYmNuX3ZodF9vcGVyID1cXG4gXFx0XFx0XFx0XFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xcbiBcXHRcXHRcXHRcXHRcXHQgc2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1ODowMS42MjU5NzI1MDJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk2OTUzMTEwMzE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1XSUZJRVhcIixcbiAgICBcIk1XSUZJRVhfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiLFxuICAgIFwibXdpZmlleF9maWxsX25ld19ic3NfZGVzY1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBwYXJzaW5nIGluIHRoZSBNYXJ2ZWxsIFdpRmktRXggZHJpdmVyLiBTaW5jZSB0aGlzIGRyaXZlciBzdXBwb3J0cyBVU0IgKE1XSUZJRVhfVVNCKSwgaXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGRldmljZSBlbXVsYXRpb24gdG8gaW5qZWN0IG1hbGZvcm1lZCBmaXJtd2FyZSByZXNwb25zZXMgY29udGFpbmluZyBjcmFmdGVkIElFcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0OWM2OWVjNWRlNTAzMzg4N2VmOGRhOTYyMzNlYmZiYjFkZGVmNWU5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTcgMDM6NTc6NTkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uY1xuaW5kZXggOTdjMGVjM2I4MjJlNzAuLjAxOTZjMmFkZmVlZGY3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uY1xuQEAgLTEzODQsNiArMTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdFx0XHRic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfSFRfQ0FQQUJJTElUWTpcbitcdFx0XHRpZiAoZWxlbWVudF9sZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcCkpXG4rXHRcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX2h0X2NhcCA9IChzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcCAqKVxuIFx0XHRcdFx0XHQoY3VycmVudF9wdHIgK1xuIFx0XHRcdFx0XHRzaXplb2Yoc3RydWN0IGllZWVfdHlwZXNfaGVhZGVyKSk7XG5AQCAtMTM5Miw2ICsxMzk0LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX0hUX09QRVJBVElPTjpcbitcdFx0XHRpZiAoZWxlbWVudF9sZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbikpXG4rXHRcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX2h0X29wZXIgPVxuIFx0XHRcdFx0KHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICtcbiBcdFx0XHRcdFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xuQEAgLTE0MDAsNiArMTQwNCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViZWFjb25fYnVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBXTEFOX0VJRF9WSFRfQ0FQQUJJTElUWTpcbitcdFx0XHRpZiAoZWxlbWVudF9sZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKVxuK1x0XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWRpc2FibGVfMTFhYyA9IGZhbHNlO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViY25fdmh0X2NhcCA9XG4gXHRcdFx0XHQodm9pZCAqKShjdXJyZW50X3B0ciArXG5AQCAtMTQwOSw2ICsxNDE1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0ICAgICAgYnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX1ZIVF9PUEVSQVRJT046XG4rXHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV92aHRfb3BlcmF0aW9uKSlcbitcdFx0XHRcdHJldHVybiAtRUlOVkFMO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViY25fdmh0X29wZXIgPVxuIFx0XHRcdFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xuIFx0XHRcdFx0XHQgc2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MDEuNjI1OTc0NTMzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQwMTkzOTQ0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaUZpIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jYC4gSXQgc2VlbXMgdGhleSdyZSBhZGRpbmcgYm91bmRzIGNoZWNraW5nIGluIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCwgc3BlY2lmaWNhbGx5IGZvciB0aG9zZSBIVCBhbmQgVkhUIEluZm9ybWF0aW9uIEVsZW1lbnRzIOKAkyBgV0xBTl9FSURfSFRfQ0FQQUJJTElUWWAsIGBXTEFOX0VJRF9IVF9PUEVSQVRJT05gLCBgV0xBTl9FSURfVkhUX0NBUEFCSUxJVFlgLCBhbmQgYFdMQU5fRUlEX1ZIVF9PUEVSQVRJT05gLiBTbWFydCBtb3ZlOyB0aGV5J3JlIGNvbXBhcmluZyBgZWxlbWVudF9sZW5gIGFnYWluc3QgdGhlIHNpemVzIG9mIHRoZSBjb3JyZXNwb25kaW5nIHN0cnVjdHVyZXMgdG8gcHJldmVudCBidWZmZXIgb3ZlcnJ1bnMuIFRoaXMgc2hvdWxkIGJlIGEgbmljZSwgc29saWQgZnVuY3Rpb25hbCBpbXByb3ZlbWVudCwgYWRkcmVzc2luZyBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMsIHRoZSB1c3VhbCBzdXNwZWN0cy4gSSBrbm93IHRoaXMgZHJpdmVyIGlzIGZvciBNYXJ2ZWxsIFdpRmkgY2hpcHMsIHNvIGl0J3MgYSBgbXdpZmlleGAgZHJpdmVyLlxuXG5Ob3csIG15IG1pbmQgc3RhcnRzIHJhY2luZyDigJMgaXMgdGhpcyBzb21ldGhpbmcgd2UgY2FuIHJlYWNoIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIG9yIGFyZSB3ZSBzdHVjayB3aXRoIGl0IGJlaW5nIGEgc3RyaWN0bHkgaGFyZHdhcmUtZGVwZW5kZW50IGRyaXZlcj8gYG1hYzgwMjExX2h3c2ltYCB3b24ndCBjb3ZlciBpdCwgYmVjYXVzZSBpdCdzIGhhcmR3YXJlLXNwZWNpZmljLiBXYWl0LCB5ZWFoLCB0aGlzIGlzIGEgc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyLiBIbW0sIGNhbiB3ZSBmdXp6IGl0PyBJIGtub3cgd2UgY2FuIHNvbWV0aW1lcyBmdXp6IGhhcmR3YXJlIGRyaXZlcnMsIGJ1dCBvZnRlbiBub3QgZWFzaWx5LiBVbmxlc3MgdGhlcmUncyBzb21lIGtpbmQgb2YgZW11bGF0aW9uIGxheWVyIG9yIHNvbWV0aGluZyBsaWtlIFVTQiBmdXp6aW5nIChsaWtlIHdpdGggYHZoY2lgKSwgd2UncmUgcHJvYmFibHkgZ29pbmcgdG8gaGF2ZSB0cm91YmxlLiBMZXQgbWUgc2VlLi4uIEknbGwgY2hlY2sgaWYgYG13aWZpZXhgIHVzZXMgYSBVU0IgaW50ZXJmYWNlLiBJIHZhZ3VlbHkgcmVjYWxsIHRoZXJlIGJlaW5nIGEgYHVzYi5jYCBmaWxlLi4uIHllcCwgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuY2AuIExldCdzIHRha2UgYSBsb29rIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzI0LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MDguMDI3OTE2Mjc5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxNzUyNDg3OTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oPTE1Mzg9aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTU0MC1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaDoxNTQxOmludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTQyLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZW50cnkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYz0xMTEyPW13aWZpZXhfcmV0XzgwMl8xMV9zY2FuX2dldF90bHZfcHRycyhzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xMTgxLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTE4MjppbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTE4My1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG13aWZpZXhfYnNzZGVzY3JpcHRvciAqYnNzX2VudHJ5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTEyOT1pbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTE3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MTgwOlxcdHJldHVybiBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHByaXYtXFx1MDAzZWFkYXB0ZXIsIGJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTgxLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MTUuMjAzMTcxMTMzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzYwNzE5ODc2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGtlZXBpbmcgaW4gbWluZCBJJ20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgbXdpZmlleCBVU0IgRHJpdmVyIFByZXNlbmNlKipcblxuQWxyaWdodCwgc28gdGhlIGluaXRpYWwgdGhvdWdodCB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzIHRvIGRldGVybWluZSBpZiBgbXdpZmlleGAgZXZlbiBoYXMgYSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgYXZhaWxhYmxlLiBJdCdzIGEgZnVuZGFtZW50YWwgZmlyc3Qgc3RlcC4gV2UgbmVlZCB0byBhc2NlcnRhaW4gaWYgdGhlIHN5c3RlbSBoYXMgdGhlIGNhcGFiaWxpdHkgdG8gaW50ZXJmYWNlIHdpdGggdGhpcyBwb3RlbnRpYWwgV2ktRmkgaGFyZHdhcmUgdGhyb3VnaCBVU0IuIEEgcXVpY2sgY2hlY2sgaGVyZSBzYXZlcyB0aW1lIGRvd24gdGhlIGxpbmUuIFdlIGNhbid0IHByb2NlZWQgZnVydGhlciB3aXRoIGFueSBVU0ItcmVsYXRlZCBkZWJ1Z2dpbmcgb3IgY29uZmlndXJhdGlvbiB3aXRob3V0IHZlcmlmeWluZyB0aGlzIGluaXRpYWwgY29ubmVjdGl2aXR5IG9wdGlvbi4gU28sIHRoYXQncyB3aGVyZSBJJ20gc3RhcnRpbmc6IGRvZXMgYG13aWZpZXhgIHByb3ZpZGUgdGhlIG5lY2Vzc2FyeSBVU0IgaW50ZXJmYWNlLCBhbmQgaWYgc28sIHdoYXQncyB0aGUgZHJpdmVyIHNpdHVhdGlvbj8gTGV0J3MgZGlnIGluLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTUyLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MjIuODEwMzcxOTQ4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5OTM1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiMTFhYy5jXCIsXG4gICAgXCIxMWFjLmhcIixcbiAgICBcIjExaC5jXCIsXG4gICAgXCIxMW4uY1wiLFxuICAgIFwiMTFuLmhcIixcbiAgICBcIjExbl9hZ2dyLmNcIixcbiAgICBcIjExbl9hZ2dyLmhcIixcbiAgICBcIjExbl9yeHJlb3JkZXIuY1wiLFxuICAgIFwiMTFuX3J4cmVvcmRlci5oXCIsXG4gICAgXCJjZmc4MDIxMS5jXCIsXG4gICAgXCJjZmc4MDIxMS5oXCIsXG4gICAgXCJjZnAuY1wiLFxuICAgIFwiY21kZXZ0LmNcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZGVjbC5oXCIsXG4gICAgXCJldGh0b29sLmNcIixcbiAgICBcImZ3LmhcIixcbiAgICBcImllLmNcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwiaW9jdGwuaFwiLFxuICAgIFwiam9pbi5jXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1haW4uaFwiLFxuICAgIFwicGNpZS5jXCIsXG4gICAgXCJwY2llLmhcIixcbiAgICBcInBjaWVfcXVpcmtzLmNcIixcbiAgICBcInBjaWVfcXVpcmtzLmhcIixcbiAgICBcInNjYW4uY1wiLFxuICAgIFwic2Rpby5jXCIsXG4gICAgXCJzZGlvLmhcIixcbiAgICBcInN0YV9jbWQuY1wiLFxuICAgIFwic3RhX2NtZHJlc3AuY1wiLFxuICAgIFwic3RhX2V2ZW50LmNcIixcbiAgICBcInN0YV9pb2N0bC5jXCIsXG4gICAgXCJzdGFfcnguY1wiLFxuICAgIFwic3RhX3R4LmNcIixcbiAgICBcInRkbHMuY1wiLFxuICAgIFwidHhyeC5jXCIsXG4gICAgXCJ1YXBfY21kLmNcIixcbiAgICBcInVhcF9ldmVudC5jXCIsXG4gICAgXCJ1YXBfdHhyeC5jXCIsXG4gICAgXCJ1c2IuY1wiLFxuICAgIFwidXNiLmhcIixcbiAgICBcInV0aWwuY1wiLFxuICAgIFwidXRpbC5oXCIsXG4gICAgXCJ3bW0uY1wiLFxuICAgIFwid21tLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6MjIuODEwNDczMzk4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTYxMzY5OTM0MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgV2lGaSBEcml2ZXIgUGF0Y2ggZm9yIFBvdGVudGlhbCBWdWxuZXJhYmlsaXRpZXMqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGRpZ2dpbmcgaW50byBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jYC4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIGFkZGluZyBib3VuZHMgY2hlY2tpbmcgZm9yIGEgZmV3IGltcG9ydGFudCA4MDIuMTEgZWxlbWVudHM6IGBXTEFOX0VJRF9IVF9DQVBBQklMSVRZYCwgYFdMQU5fRUlEX0hUX09QRVJBVElPTmAsIGBXTEFOX0VJRF9WSFRfQ0FQQUJJTElUWWAsIGFuZCBgV0xBTl9FSURfVkhUX09QRVJBVElPTmAuIFRoaXMgaW1tZWRpYXRlbHkgc2NyZWFtcyBwb3RlbnRpYWwgZm9yIG9mZi1ieS1vbmUgZXJyb3JzIG9yIGJ1ZmZlciBvdmVyZmxvd3MsIHdoaWNoIGlzIHByZWNpc2VseSB0aGUga2luZCBvZiB0aGluZyBJJ20gYWx3YXlzIGxvb2tpbmcgZm9yLiBUaGlzIGlzIGEgTWFydmVsbCBXaUZpIGRyaXZlciwgYG13aWZpZXhgLCB3aGljaCBtZWFucyB3ZSdyZSBkZWFsaW5nIHdpdGggaGFyZHdhcmUsIG9yIGF0IGxlYXN0IGEgc29mdHdhcmUgcmVwcmVzZW50YXRpb24gb2YgaXQuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMgYWx3YXlzIGFib3V0IHJlYWNoYWJpbGl0eTogY2FuIHRoaXMgZHJpdmVyIGV2ZW4gKmJlKiBhdHRhY2tlZCBpbiB0aGUgZW52aXJvbm1lbnRzIEknbSB0eXBpY2FsbHkgdGFyZ2V0aW5nPyBJbiBtb3N0IHZpcnR1YWxpemVkIHNldHVwcyBsaWtlIEdDRSBvciBRRU1VLCB3ZSdyZSB1bmxpa2VseSB0byBoYXZlIGRpcmVjdCBoYXJkd2FyZSBhY2Nlc3MgdG8gYSBkZWRpY2F0ZWQgV2lGaSBjYXJkLCB1bmxlc3MgaXQncyBhIFVTQiBkZXZpY2UuIE9mdGVuLCB3ZSBtaWdodCBnZXQgbHVja3kgd2l0aCBzb2Z0d2FyZSBlbXVsYXRpb24sIG9yIHBlcmhhcHMgYSBkdW1teSBob3N0IGNvbnRyb2xsZXIgKGR1bW15LWhjZC92aGNpKSBzZXR1cCBmb3IgZnV6emluZyB0aGUgVVNCIGRyaXZlci4gU28sIGlzIHRoZXJlIGEgVVNCIGNvbXBvbmVudD9cblxuQSBxdWljayBzY2FuIHNob3dzIHRoZXJlICppcyogYSBgdXNiLmNgIGFuZCBgdXNiLmhgIHJpZ2h0IHRoZXJlIGluIHRoZSBgbXdpZmlleGAgZGlyZWN0b3J5ISBFeGNlbGxlbnQuIFRoYXQncyBhIHN0cm9uZyBpbmRpY2F0b3Igd2UgbWlnaHQgYmUgYWJsZSB0byB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoIHRocm91Z2ggVVNCLiBOb3cgSSBuZWVkIHRvIGNoZWNrIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmNgIHRvIGNvbmZpcm0gaXQgcmVnaXN0ZXJzIGEgVVNCIGRyaXZlciwgdG8gYXNjZXJ0YWluIGlmIHRoaXMgaXMgYSBwYXRoIHdlIGNhbiBhY3R1YWxseSBleHBsb2l0LiBUaGlzIGNvdWxkIG9wZW4gYSB2ZXJ5IGludGVyZXN0aW5nIGF0dGFjayBzdXJmYWNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODAwLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUwLCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1ODozOC45NDc0Njk5OTNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzg3NDQ0MzksIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVzYl9yZWdpc3RlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjU4OjM5LjAyNjIyNDE0MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYxODcwOTc2NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCBwcmVzZW50ZWQgYXMgYSBzdHJlYW0gb2YgdGhvdWdodDpcblxuKipDaGVja2luZyBmb3IgVVNCIERyaXZlciBDYW5kaWRhdGVzKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQncyBnb2luZyBvbiB3aXRoIHRoaXMgVVNCIHNpdHVhdGlvbi4gTXkgZmlyc3QgbW92ZSBpcyBzdHJhaWdodGZvcndhcmQ6IEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHBvdGVudGlhbCBVU0IgZHJpdmVyIGVudHJpZXMuIEknbGwgc3RhcnQgd2l0aCB0aGUgb2J2aW91cyBjYW5kaWRhdGVzLiBJJ2xsIHNlYXJjaCBmb3IgdGhpbmdzIGxhYmVsZWQgdmVyeSBleHBsaWNpdGx5LCBsaWtlIGB1c2JfZHJpdmVyYC4gSWYgdGhhdCdzIHRvbyBzaW1wbGUsIEknbGwgYnJvYWRlbiB0aGUgbmV0IGEgYml0IGFuZCBsb29rIGZvciB2YXJpYXRpb25zIG9uIHRoYXQgdGhlbWUsIHN1Y2ggYXMgYG1vZHVsZV91c2JfZHJpdmVyYC4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiYXNlbGluZSB0byB3b3JrIGZyb20sIGEgaGFuZGxlIG9uIHRoZSBtb3N0IGZ1bmRhbWVudGFsIHBhcnRzIG9mIHRoZSBVU0IgZHJpdmVyLCB0byBzZWUgaWYgYW55dGhpbmcgaXMgaW1tZWRpYXRlbHkgYXBwYXJlbnQuIEZyb20gdGhlcmUsIEkgY2FuIGJlZ2luIG15IGludmVzdGlnYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NDEsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1ODo0NS4yMTMzMjQ4NDJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNzc0NDQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vZHVsZV91c2JfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmM9MTU4ND1zdGF0aWMgY29uc3Qgc3RydWN0IG13aWZpZXhfaWZfb3BzIHVzYl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmMtMTU5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXNiLmM6MTYwMDptb2R1bGVfdXNiX2RyaXZlcihtd2lmaWV4X3VzYl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91c2IuYy0xNjAxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1ODo0NS4yNzQxMDkzNjFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQ0NTA1OTIzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIG13aWZpZXggRHJpdmVyIFZ1bG5lcmFiaWxpdHkqKlxuXG5Pa2F5LCBzbyBJIHNlZSBpdC4gVGhlIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBmdW5jdGlvbiBpcyBkZWZpbml0ZWx5IGEgcG90ZW50aWFsIGVudHJ5IHBvaW50IGZvciBmdXp6aW5nLCBsaWtlbHkgdGhyb3VnaCBVU0IgZnV6emluZyB1dGlsaXppbmcgc29tZXRoaW5nIGxpa2Ugc3l6a2FsbGVyJ3MgYHN5el91c2JfY29ubmVjdGAgY2FsbC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGwgZ3JhcGggdG8gZGV0ZXJtaW5lIHRoZSBwb3RlbnRpYWwgaW1wYWN0LiBJdCBsb29rcyBsaWtlIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBpcyBjYWxsZWQgZnJvbSBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AsIHdoaWNoIGl0c2VsZiBpcyBjYWxsZWQgZnJvbSBgbXdpZmlleF9yZXRfODAyXzExX3NjYW5fZ2V0X3Rsdl9wdHJzYC4gVGhlIGNhbGwgdG8gYG13aWZpZXhfc2V0X21hY19hZGRyZXNzYCBpcyBhbHNvIGluIHRoZXJlLCBwZXJoYXBzLCB0aGlzIGlzIHNvbWV0aGluZyB0byBhbHNvIGJlIGNvbnNpZGVyZWQsIG9yIGF0IGxlYXN0IGNvbmZpcm1lZCBieSBjaGVja2luZyB0aGUgY2FsbCBncmFwaC4gVGhlIG5leHQgc3RlcCBpcyB0byBtZXRob2RpY2FsbHkgdHJhY2UgKmFsbCogY2FsbHMgdG8gYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIHRvIGZvcm0gYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTk5LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjU4OjUxLjcxOTE3MTczN1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU5NjkwMDM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oPTE1Mzg9aW50IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2Moc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTU0MC1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaDoxNTQxOmludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTQyLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZW50cnkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYz0xMTEyPW13aWZpZXhfcmV0XzgwMl8xMV9zY2FuX2dldF90bHZfcHRycyhzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xMTgxLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTE4MjppbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTE4My1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG13aWZpZXhfYnNzZGVzY3JpcHRvciAqYnNzX2VudHJ5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTEyOT1pbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTE3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MTgwOlxcdHJldHVybiBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHByaXYtXFx1MDAzZWFkYXB0ZXIsIGJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTgxLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTg6NTEuODc4ODY3NTY1WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMDI4NjA0ODEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6NTM0NSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTk6MDQuOTA3NDc1MzA0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzI2MDY2NzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXdpZmlleF9maWxsX25ld19ic3NfZGVzY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg9MTUzNj1pbnQgbXdpZmlleF9nZXRfYnNzX2luZm8oc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTUzNy1cXHRcXHRcXHQgc3RydWN0IG13aWZpZXhfYnNzX2luZm8gKik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaDoxNTM4OmludCBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTM5LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBjZmc4MDIxMV9ic3MgKmJzcyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM9MTY1MT1zdGF0aWMgaW50IG13aWZpZXhfc2F2ZV9oaWRkZW5fc3NpZF9jaGFubmVscyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTY2MzpcXHRyZXQgPSBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHByaXYsIGJzcywgYnNzX2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTY2NC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjg3LVxcdC8qIGJlYWNvbl9pZSBidWZmZXIgd2FzIGFsbG9jYXRlZCBpbiBmdW5jdGlvblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTY4ODpcXHQgKiBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKCkuIEZyZWUgaXQgbm93LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTY4OS1cXHQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM9MTY5NT1zdGF0aWMgaW50IG13aWZpZXhfdXBkYXRlX2N1cnJfYnNzX3BhcmFtcyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTcwNjpcXHRyZXQgPSBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHByaXYsIGJzcywgYnNzX2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTcwNy1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzI2LVxcdC8qIGJlYWNvbl9pZSBidWZmZXIgd2FzIGFsbG9jYXRlZCBpbiBmdW5jdGlvblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTcyNzpcXHQgKiBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKCkuIEZyZWUgaXQgbm93LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTcyOC1cXHQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYz03Nj1pbnQgbXdpZmlleF9yZXF1ZXN0X3NldF9tdWx0aWNhc3RfbGlzdChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTEyOC0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MTI5OmludCBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTEzMC1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2ZnODAyMTFfYnNzICpic3MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM9MzE4PWludCBtd2lmaWV4X2Jzc19zdGFydChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LCBzdHJ1Y3QgY2ZnODAyMTFfYnNzICpic3MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMzM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYzozMzc6XFx0XFx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMzM4LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtNDMyLVxcdC8qIGJlYWNvbl9pZSBidWZmZXIgd2FzIGFsbG9jYXRlZCBpbiBmdW5jdGlvblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYzo0MzM6XFx0ICogbXdpZmlleF9maWxsX25ld19ic3NfZGVzYygpLiBGcmVlIGl0IG5vdy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtNDM0LVxcdCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1OTowNS4yNDAwODc4NThaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDgwNDI4ODQ1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipWdWxuZXJhYmlsaXR5IEFzc2Vzc21lbnQ6IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUqKlxuXG5Pa2F5LCBzbyBoZXJlJ3MgdGhlIGJyZWFrZG93biBvZiB3aGF0IEknbSB0aGlua2luZy4gSSd2ZSBiZWVuIHRyYWNpbmcgZG93biB0aGUgY2FsbCBzdGFjayBhbmQgaXQncyBsb29raW5nIGxpa2UgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGlzIGEga2V5IGZ1bmN0aW9uIHRvIGNvbnNpZGVyLiBJdCdzIGNhbGxlZCBmcm9tIHR3byBwbGFjZXM6IGBtd2lmaWV4X3JldF84MDJfMTFfc2Nhbl9nZXRfdGx2X3B0cnNgIGFuZCBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AuXG5cbkFuZCwgYXMgSSBmb2xsb3cgdGhlIGNhbGxzLCBJIHNlZSB0aGF0IGBtd2lmaWV4X3JldF84MDJfMTFfc2Nhbl9nZXRfdGx2X3B0cnNgIGlzIGNhbGxlZCBmcm9tIGBtd2lmaWV4X3JldF84MDJfMTFfc2NhbmAuIFRoaXMgaXMgc2lnbmlmaWNhbnQgYmVjYXVzZSBgbXdpZmlleF9yZXRfODAyXzExX3NjYW5gIGlzIHJlc3BvbnNpYmxlIGZvciBwYXJzaW5nIHNjYW4gcmVzdWx0cyB0aGF0IGNvbWUgZGlyZWN0bHkgZnJvbSB0aGUgZmlybXdhcmUg4oCTIG9yIHBvdGVudGlhbGx5IG92ZXIgVVNCLCBkZXBlbmRpbmcgb24gdGhlIHNldHVwLlxuXG5UaGlzIGdpdmVzIG1lIGEgY2xlYXIgYXR0YWNrIHN1cmZhY2U6IGl0J3MgZGF0YSBjb21pbmcgZnJvbSB0aGUgZmlybXdhcmUgaXRzZWxmLCBvciBvdmVyIHRoZSBVU0IgaW50ZXJmYWNlLiBTbywgaWYgdGhlIGZpcm13YXJlIGlzIGNvbXByb21pc2VkLCBtYWxpY2lvdXMsIG9yIGlmIHdlIGNhbiBzdWNjZXNzZnVsbHkgZnV6eiB0aGUgVVNCIGNvbm5lY3Rpb24sIHdlIGNhbiBkaXJlY3RseSB0cmlnZ2VyIHRoZSBleGVjdXRpb24gb2YgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgLiBDb25zaWRlcmluZyB0aGUgY29udGV4dCwgdGhpcyAqYWJzb2x1dGVseSogc2VlbXMgbGlrZSBhIHJpcGUgdGFyZ2V0IGZvciBmdXp6aW5nLiBXZSBtaWdodCBiZSBhYmxlIHRvIGNyYWZ0IG1hbGljaW91cyBCU1MgZGVzY3JpcHRvcnMgdGhhdCBsZWFkIHRvIGEgY3Jhc2gsIG1lbW9yeSBjb3JydXB0aW9uLCBvciBldmVuIGFyYml0cmFyeSBjb2RlIGV4ZWN1dGlvbi5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIG5haWwgZG93biB0aGUgZXhhY3QgY29uZmlndXJhdGlvbiByZXF1aXJlbWVudHMgZm9yIHRoZSBgbXdpZmlleGAgVVNCIGRyaXZlciwgc28gdGhhdCBJIGNhbiBmaWd1cmUgb3V0IHRoZSBiZXN0IHdheSB0byB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MjIwLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTY3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjU5OjEwLjA0NDM3ODU3M1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njk1MTg2OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1XSUZJRVhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjI6Y29uZmlnIE1XSUZJRVhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6MTI6Y29uZmlnIE1XSUZJRVhfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTEzLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBTRDg3ODYvU0Q4Nzg3L1NEODc5Ny9TRDg4ODcvU0Q4ODk3L1NEODk3Ny9TRDg5NzgvU0Q4OTg3L1NEODk5N1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjI1OmNvbmZpZyBNV0lGSUVYX1BDSUVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yNi1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgUENJRSA4NzY2Lzg4OTcvODk5N1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjM3OmNvbmZpZyBNV0lGSUVYX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTM4LVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBVU0I4NzY2Lzg3OTcvODk5N1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTk6MTAuMTEzOTAyNTYyWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4MTI4MjQyMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkFuYWx5emluZyBEZXBlbmRlbmNpZXMgZm9yIFdpcmVsZXNzIERyaXZlciBNb2R1bGVzKipcblxuQWxyaWdodCwgc28gdGhlIHRhc2sgYXQgaGFuZCBpbnZvbHZlcyB3b3JraW5nIHdpdGggYE1XSUZJRVhgIGFuZCBgTVdJRklFWF9VU0JgIOKAkyB0d28gbW9kdWxlcyByZWxhdGVkIHRvIHdpcmVsZXNzIGZ1bmN0aW9uYWxpdHksIGxpa2VseSBkcml2ZXJzLiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB0aGUgZGVwZW5kZW5jeSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGVtLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBjb25maXJtIGlmIGBNV0lGSUVYX1VTQmAgYWN0dWFsbHkgKmRlcGVuZHMqIG9uIGBNV0lGSUVYYC4gSWYgaXQgZG9lcywgdGhlbiB0aGUgYnVpbGQgcHJvY2VzcywgbG9hZGluZyBvcmRlciwgYW5kIG92ZXJhbGwgbW9kdWxlIG1hbmFnZW1lbnQgbmVlZCB0byBhY2NvdW50IGZvciB0aGlzIGNyaXRpY2FsIHByZXJlcXVpc2l0ZS4gS25vd2luZyB0aGlzIHJlbGF0aW9uc2hpcCBpcyBmdW5kYW1lbnRhbCBmb3IgYSBzdGFibGUgYW5kIHByb3Blcmx5IGZ1bmN0aW9uaW5nIHdpcmVsZXNzIHN5c3RlbS4gSSBuZWVkIHRvIGRlbHZlIGludG8gdGhlIGNvZGUsIGNvbmZpZ3VyYXRpb24gZmlsZXMsIG9yIGJ1aWxkIHNjcmlwdHMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgZGVwZW5kZW5jeSBleGlzdHMuIEl0J3MgYSBrZXkgZmlyc3Qgc3RlcCBiZWZvcmUgSSBwcm9jZWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MjE1LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NTk6MTYuOTI2NzI5MTUyWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2NzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTVdJRklFWFxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgV2lGaS1FeCBEcml2ZXJcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBNYXJ2ZWxsXFxuICAgNzpcXHRcXHQgIDgwMi4xMW4vYWMgY2hpcHNldHMuXFxuICAgODpcXHRcXG4gICA5OlxcdFxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBpdCBhcyBhIG1vZHVsZSwgaXQgd2lsbCBiZSBjYWxsZWRcXG4gIDEwOlxcdFxcdCAgbXdpZmlleC5cXG4gIDExOlxcdFxcbiAgMTI6XFx0Y29uZmlnIE1XSUZJRVhfU0RJT1xcbiAgMTM6XFx0XFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFNEODc4Ni9TRDg3ODcvU0Q4Nzk3L1NEODg4Ny9TRDg4OTcvU0Q4OTc3L1NEODk3OC9TRDg5ODcvU0Q4OTk3XFxcIlxcbiAgMTQ6XFx0XFx0ZGVwZW5kcyBvbiBNV0lGSUVYIFxcdTAwMjZcXHUwMDI2IE1NQ1xcbiAgMTU6XFx0XFx0c2VsZWN0IEZXX0xPQURFUlxcbiAgMTY6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAxNzpcXHRcXHRoZWxwXFxuICAxODpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBNYXJ2ZWxsXFxuICAxOTpcXHRcXHQgIDg3ODYvODc4Ny84Nzk3Lzg4ODcvODg5Ny84OTc3Lzg5NzgvODk4Ny84OTk3IGNoaXBzZXRzIHdpdGhcXG4gIDIwOlxcdFxcdCAgU0RJTyBpbnRlcmZhY2UuIFNEODk3OCBpcyBhbHNvIGtub3duIGFzIE5YUCBJVzQxNi5cXG4gIDIxOlxcdFxcbiAgMjI6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZFxcbiAgMjM6XFx0XFx0ICBtd2lmaWV4X3NkaW8uXFxuICAyNDpcXHRcXG4gIDI1OlxcdGNvbmZpZyBNV0lGSUVYX1BDSUVcXG4gIDI2OlxcdFxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBQQ0lFIDg3NjYvODg5Ny84OTk3XFxcIlxcbiAgMjc6XFx0XFx0ZGVwZW5kcyBvbiBNV0lGSUVYIFxcdTAwMjZcXHUwMDI2IFBDSVxcbiAgMjg6XFx0XFx0c2VsZWN0IEZXX0xPQURFUlxcbiAgMjk6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAzMDpcXHRcXHRoZWxwXFxuICAzMTpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBNYXJ2ZWxsXFxuICAzMjpcXHRcXHQgIDg3NjYvODg5Ny84OTk3IGNoaXBzZXRzIHdpdGggUENJZSBpbnRlcmZhY2UuXFxuICAzMzpcXHRcXG4gIDM0OlxcdFxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBpdCBhcyBhIG1vZHVsZSwgaXQgd2lsbCBiZSBjYWxsZWRcXG4gIDM1OlxcdFxcdCAgbXdpZmlleF9wY2llLlxcbiAgMzY6XFx0XFxuICAzNzpcXHRjb25maWcgTVdJRklFWF9VU0JcXG4gIDM4OlxcdFxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBVU0I4NzY2Lzg3OTcvODk5N1xcXCJcXG4gIDM5OlxcdFxcdGRlcGVuZHMgb24gTVdJRklFWCBcXHUwMDI2XFx1MDAyNiBVU0JcXG4gIDQwOlxcdFxcdHNlbGVjdCBGV19MT0FERVJcXG4gIDQxOlxcdFxcdGhlbHBcXG4gIDQyOlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHdpcmVsZXNzIGFkYXB0ZXJzIGJhc2VkIG9uIE1hcnZlbGxcXG4gIDQzOlxcdFxcdCAgODc5Ny84OTk3IGNoaXBzZXQgd2l0aCBVU0IgaW50ZXJmYWNlLlxcbiAgNDQ6XFx0XFxuICA0NTpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXFxuICA0NjpcXHRcXHQgIG13aWZpZXhfdXNiLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo1OToxNi45MjY4MTc3MDJaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjEwNDU1MTMzMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBTdHJhdGVneSBmb3IgSW5mb3JtYXRpb24gRWxlbWVudCBQYXJzaW5nIGluIHRoZSBNYXJ2ZWxsIG13aWZpZXggV2ktRmkgRHJpdmVyKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBhIGdvb2Qgb25lLiBJdCdzIHRpZ2h0ZW5pbmcgdXAgSUUgcGFyc2luZyBpbiBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jYC4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGFkZGluZyBjaGVja3MgYWdhaW5zdCBzdHJ1Y3R1cmUgc2l6ZXMgKGBpZWVlODAyMTFfaHRfY2FwYCwgZXRjLikgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIGR1cmluZyBiZWFjb24vcHJvYmUgcmVzcG9uc2UgcHJvY2Vzc2luZy4gVGhpcyBpcyBzb2xpZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcsIGEgZ3JlYXQgcGxhY2UgdG8gbG9vayBmb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIldpcmVsZXNzIGRyaXZlciwgZXhjZWxsZW50IVwiIFdlIGhhdmUgYG13aWZpZXhgIGhlcmUsIHdoaWNoLCBhcyBJIHJlY2FsbCwgc3VwcG9ydHMgU0RJTywgUENJZSwgYW5kIFVTQi4gVGhlIGluY2x1c2lvbiBvZiBVU0Igc3VwcG9ydCAoYE1XSUZJRVhfVVNCYCkgaXMgdGhlIGtleSBoZXJlLiBTeXprYWxsZXIncyBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMsIGVzcGVjaWFsbHkgd2l0aCB0aGUgZHVtbXkgSENELCBhcmUgcGVyZmVjdCBmb3IgdGhpcy4gV2UgY2FuIGNyYWZ0IG1hbGljaW91cyBVU0IgcGFja2V0cyB0aGF0IG1pbWljIGZpcm13YXJlIHJlc3BvbnNlcywgaW5jbHVkaW5nIHRob3NlIHNjYW4gcmVzdWx0cyBhbmQgY3JhZnRlZCBJRXMgdG8gdHJpZ2dlciB0aG9zZSBib3VuZHMgY2hlY2tzLlxuXG5MZXQncyBxdWlja2x5IGNoZWNrIHJlYWNoYWJpbGl0eS4gTG9va3MgbGlrZSBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgaXMgY2FsbGVkIGJ5IGBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjYCwgd2hpY2ggaXMgaXRzZWxmIGNhbGxlZCBieSBgbXdpZmlleF9zYXZlX2hpZGRlbl9zc2lkX2NoYW5uZWxzYCwgYG13aWZpZXhfdXBkYXRlX2N1cnJfYnNzX3BhcmFtc2AsIGFuZCBgbXdpZmlleF9ic3Nfc3RhcnRgLiBBbGwgb2YgdGhlc2UgZnVuY3Rpb25zIGFyZSBpbnZvbHZlZCBpbiBzY2FubmluZyBhbmQgY29ubmVjdGluZyB0byBCU1NzLiBTaW5jZSB0aGlzIGRyaXZlciBpcyBwYXJzaW5nIElFcywgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIgaXMgZGVmaW5pdGVseSByZWFjaGFibGUsIGFuZCB0aHVzLCB2dWxuZXJhYmxlLlxuXG5SaWdodCwgYG13aWZpZXhgIGlzIGEgRnVsbE1BQyBkcml2ZXIsIHdoaWNoIG1lYW5zIGl0IHJlbGllcyBvbiB0aGUgZmlybXdhcmUgZm9yIHNjYW4gcmVzdWx0cy4gVGhhdOKAmXMgZXZlbiBiZXR0ZXI7IGlmIHdlIGNhbiBmdXp6IHRoZSBVU0IgaW50ZXJmYWNlLCB3ZSBjYW4gZmVlZCB0aGUgZHJpdmVyIG1hbGZvcm1lZCBmaXJtd2FyZSByZXNwb25zZXMgd2l0aCBjcmFmdGVkIElFcy5cblxuTGV0J3MgdmVyaWZ5IHRoZSBjb25maWdzOyBXZSdsbCBuZWVkIGBNV0lGSUVYYCBhbmQgYE1XSUZJRVhfVVNCYCB0byBlbmFibGUgdGhlIFVTQiBpbnRlcmZhY2UuIGBNV0lGSUVYX1VTQmAgaW1wbGllcyBib3RoIGBNV0lGSUVYYCBhbmQgYFVTQmAsIGFuZCB0aGUgcGF0Y2ggaXMgaW4gYHNjYW4uY2AsIHNvIHdl4oCZcmUgZ29vZC4gTm8gbmVlZCB0byB3b3JyeSBhYm91dCBgTVdJRklFWF9TRElPYCBvciBgTVdJRklFWF9QQ0lFYCBhcyBzeXprYWxsZXIncyBVU0IgZnV6emluZyBpcyB0aGUgYmVzdCBwYXRoIGhlcmUuXG5cblRoZSB0YXJnZXQgc3ltYm9sczpcbiogICBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWBcbiogICBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2BcblxuVGhlIHJlYXNvbmluZyBoZXJlIGlzIHNvbGlkOiBUaGUgcGF0Y2ggZ3VhcmRzIGFnYWluc3QgSUUgcGFyc2luZyBpc3N1ZXMsIGFuZCB0aGUgVVNCIGludGVyZmFjZSBwcm92aWRlcyBhIGRpcmVjdCBpbmplY3Rpb24gcG9pbnQgZm9yIG1hbGljaW91cyBmaXJtd2FyZSByZXNwb25zZXMuXG5cbkxldCdzIGNhbGwgYHNldC1yZXN1bHRzYC4gVGhpcyBsb29rcyBsaWtlIGEgcHJpbWUgdGFyZ2V0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo4Mjc5LCJPdXRwdXRUb2tlbnMiOjEyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg0MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjU5OjM3Ljk3MjMzNjU1WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA2NzQwMDk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNV0lGSUVYXCIsXG4gICAgXCJNV0lGSUVYX1VTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVcIixcbiAgICBcIm13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgSW5mb3JtYXRpb24gRWxlbWVudHMgKElFcykgcGFyc2luZyBpbiB0aGUgTWFydmVsbCBXaUZpLUV4IGRyaXZlci4gU2luY2UgdGhpcyBkcml2ZXIgc3VwcG9ydHMgVVNCIChNV0lGSUVYX1VTQiksIGl0IGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBkZXZpY2UgZW11bGF0aW9uIHRvIGluamVjdCBtYWxmb3JtZWQgZmlybXdhcmUgcmVzcG9uc2VzIGNvbnRhaW5pbmcgY3JhZnRlZCBJRXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVdJRklFWFwiLFxuICAgIFwiTVdJRklFWF9VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llXCIsXG4gICAgXCJtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIHBhcnNpbmcgaW4gdGhlIE1hcnZlbGwgV2lGaS1FeCBkcml2ZXIuIFNpbmNlIHRoaXMgZHJpdmVyIHN1cHBvcnRzIFVTQiAoTVdJRklFWF9VU0IpLCBpdCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0byBpbmplY3QgbWFsZm9ybWVkIGZpcm13YXJlIHJlc3BvbnNlcyBjb250YWluaW5nIGNyYWZ0ZWQgSUVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowxsv5h[1] Phase: Succeeded StartedAt: 2026-07-17 04:00:45 +0000 UTC FinishedAt: 2026-07-17 04:00:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-17 04:00:45 +0000 UTC FinishedAt: 2026-07-17 04:00:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2] Phase: Succeeded StartedAt: 2026-07-17 04:00:45 +0000 UTC FinishedAt: 2026-07-17 05:37:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-17 04:00:45 +0000 UTC FinishedAt: 2026-07-17 05:37:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-17 04:00:45 +0000 UTC FinishedAt: 2026-07-17 04:00:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-17 04:00:45 +0000 UTC FinishedAt: 2026-07-17 04:00:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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-workflowxsv5h/series-workflowxsv5h-convert-artifact-2919857148/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-17 04:00:55 +0000 UTC FinishedAt: 2026-07-17 04:47:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-17 04:00:55 +0000 UTC FinishedAt: 2026-07-17 04:47:55 +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:*9bf3f36b-6e7b-472b-9c62-c847f8347728,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-workflowxsv5h/series-workflowxsv5h-convert-artifact-2919857148/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": "106c04a6-2121-4776-9ede-d16ca8ab8cda", "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-workflowxsv5h/series-workflowxsv5h-build-action-817198890/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-17 04:00:55 +0000 UTC FinishedAt: 2026-07-17 04:47:45 +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:*9bf3f36b-6e7b-472b-9c62-c847f8347728,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-workflowxsv5h/series-workflowxsv5h-convert-artifact-2919857148/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": "106c04a6-2121-4776-9ede-d16ca8ab8cda", "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-workflowxsv5h/series-workflowxsv5h-build-action-817198890/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-17 04:47:55 +0000 UTC FinishedAt: 2026-07-17 04:47:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-17 04:47:55 +0000 UTC FinishedAt: 2026-07-17 04:47:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-17 04:47:55 +0000 UTC FinishedAt: 2026-07-17 04:48:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-17 04:47:55 +0000 UTC FinishedAt: 2026-07-17 04:48:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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-workflowxsv5h/series-workflowxsv5h-convert-artifact-3626780987/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-17 04:48:16 +0000 UTC FinishedAt: 2026-07-17 04:50:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-17 04:48:16 +0000 UTC FinishedAt: 2026-07-17 04:50:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*106c04a6-2121-4776-9ede-d16ca8ab8cda,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-workflowxsv5h/series-workflowxsv5h-build-action-817198890/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-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-17 04:50:33 +0000 UTC FinishedAt: 2026-07-17 04:50:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-17 04:50:33 +0000 UTC FinishedAt: 2026-07-17 04:50:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-17 04:50:33 +0000 UTC FinishedAt: 2026-07-17 05:31:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-17 04:50:33 +0000 UTC FinishedAt: 2026-07-17 05:31:55 +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:*9bf3f36b-6e7b-472b-9c62-c847f8347728,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-workflowxsv5h/series-workflowxsv5h-convert-artifact-3626780987/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": "2ead4ed1-db6f-49e3-bac2-735ae94bd1f1", "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-workflowxsv5h/series-workflowxsv5h-build-action-2940519519/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-17 04:50:33 +0000 UTC FinishedAt: 2026-07-17 05:31:45 +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:*9bf3f36b-6e7b-472b-9c62-c847f8347728,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-workflowxsv5h/series-workflowxsv5h-convert-artifact-3626780987/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": "2ead4ed1-db6f-49e3-bac2-735ae94bd1f1", "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-workflowxsv5h/series-workflowxsv5h-build-action-2940519519/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-17 05:31:55 +0000 UTC FinishedAt: 2026-07-17 05:31:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-17 05:31:55 +0000 UTC FinishedAt: 2026-07-17 05:31:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-17 05:31:55 +0000 UTC FinishedAt: 2026-07-17 05:34:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-17 05:31:55 +0000 UTC FinishedAt: 2026-07-17 05:33:58 +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:*2ead4ed1-db6f-49e3-bac2-735ae94bd1f1,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-workflowxsv5h/series-workflowxsv5h-build-action-2940519519/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-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-17 05:34:08 +0000 UTC FinishedAt: 2026-07-17 05:37:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-17 05:34:08 +0000 UTC FinishedAt: 2026-07-17 05:37:17 +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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"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:*106c04a6-2121-4776-9ede-d16ca8ab8cda,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2ead4ed1-db6f-49e3-bac2-735ae94bd1f1,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-workflowxsv5h/series-workflowxsv5h-build-action-817198890/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-workflowxsv5h/series-workflowxsv5h-build-action-2940519519/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-17 05:34:08 +0000 UTC FinishedAt: 2026-07-17 05:34:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-17 05:34:08 +0000 UTC FinishedAt: 2026-07-17 05:34:18 +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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"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-workflowxsv5h/series-workflowxsv5h-convert-artifact-1751285556/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-17 05:34:08 +0000 UTC FinishedAt: 2026-07-17 05:34:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-17 05:34:08 +0000 UTC FinishedAt: 2026-07-17 05:34:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-17 05:34:08 +0000 UTC FinishedAt: 2026-07-17 05:34:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-17 05:34:28 +0000 UTC FinishedAt: 2026-07-17 05:37:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxsv5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-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":["mwifiex_update_bss_desc_with_ie","mwifiex_fill_new_bss_desc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"bb7a3c28-309f-43f7-b0be-9dec4e13e60f","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-17 05:34:28 +0000 UTC FinishedAt: 2026-07-17 05:36:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*106c04a6-2121-4776-9ede-d16ca8ab8cda,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2ead4ed1-db6f-49e3-bac2-735ae94bd1f1,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-workflowxsv5h/series-workflowxsv5h-build-action-817198890/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-workflowxsv5h/series-workflowxsv5h-build-action-2940519519/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-workflowxsv5h/series-workflowxsv5h-convert-artifact-1751285556/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,}