Name: series-workflowj6wg8 Phase: Succeeded StartedAt: 2026-07-10 03:32:45 +0000 UTC FinishedAt: 2026-07-10 05:31:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[0] Phase: Succeeded StartedAt: 2026-07-10 03:32:45 +0000 UTC FinishedAt: 2026-07-10 04:04:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[0].run-triage Phase: Succeeded StartedAt: 2026-07-10 03:32:45 +0000 UTC FinishedAt: 2026-07-10 04:04:54 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MWIFIEX", "MWIFIEX_USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MWIFIEX", "MWIFIEX_USB" ], "series_id": "e8cd6d48-33ef-40e0-8916-f2ff136ed912" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mwifiex_update_bss_desc_with_ie", "mwifiex_set_sta_ht_cap" ], "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+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjAzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfc2V0X3N0YV9odF9jYXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIHZhcmlvdXMgSW5mb3JtYXRpb24gRWxlbWVudHMgKElFcykgaW4gdGhlIE1hcnZlbGwgV2lGaSBkcml2ZXIgKG13aWZpZXgpIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMgd2hlbiBwYXJzaW5nIG1hbGljaW91cyBvciBtYWxmb3JtZWQgV2lGaSBiZWFjb25zL21hbmFnZW1lbnQgZnJhbWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgZnV6emVkIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiB0aGUgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjAzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMTczZTFkNDhkMDJhYTA0MjcyZTBiZjM2ODJlMjY4ZDYwYWJkNTgyN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDEwIDA0OjAzOjUwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG5pbmRleCA5N2MwZWMzYjgyMmU3MC4uOTk3ZTdlMTk1MjViZDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG5AQCAtMTM4NCw2ICYjNDM7MTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdFx0XHRic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfSFRfQ0FQQUJJTElUWTpcbiYjNDM7XHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9jYXApKVxuJiM0MztcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViY25faHRfY2FwID0gKHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwICopXG4gXHRcdFx0XHRcdChjdXJyZW50X3B0ciAmIzQzO1xuIFx0XHRcdFx0XHRzaXplb2Yoc3RydWN0IGllZWVfdHlwZXNfaGVhZGVyKSk7XG5AQCAtMTM5Miw2ICYjNDM7MTM5NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViZWFjb25fYnVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBXTEFOX0VJRF9IVF9PUEVSQVRJT046XG4mIzQzO1x0XHRcdGlmIChlbGVtZW50X2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uKSlcbiYjNDM7XHRcdFx0XHRicmVhaztcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX2h0X29wZXIgPVxuIFx0XHRcdFx0KHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICYjNDM7XG4gXHRcdFx0XHRcdHNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTtcbkBAIC0xNDAwLDYgJiM0MzsxNDA0LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX1ZIVF9DQVBBQklMSVRZOlxuJiM0MztcdFx0XHRpZiAoZWxlbWVudF9sZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKVxuJiM0MztcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2VkaXNhYmxlXzExYWMgPSBmYWxzZTtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX3ZodF9jYXAgPVxuIFx0XHRcdFx0KHZvaWQgKikoY3VycmVudF9wdHIgJiM0MztcbkBAIC0xNDA5LDYgJiM0MzsxNDE1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0ICAgICAgYnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX1ZIVF9PUEVSQVRJT046XG4mIzQzO1x0XHRcdGlmIChlbGVtZW50X2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X29wZXJhdGlvbikpXG4mIzQzO1x0XHRcdFx0YnJlYWs7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJjbl92aHRfb3BlciA9XG4gXHRcdFx0XHQodm9pZCAqKShjdXJyZW50X3B0ciAmIzQzO1xuIFx0XHRcdFx0XHQgc2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xuQEAgLTE0MTcsNiAmIzQzOzE0MjUsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuIFx0XHRcdFx0XHQgICAgICBic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfQlNTX0NPRVhfMjA0MDpcbiYjNDM7XHRcdFx0aWYgKCFlbGVtZW50X2xlbilcbiYjNDM7XHRcdFx0XHRicmVhaztcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX2Jzc19jb18yMDQwID0gY3VycmVudF9wdHI7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJzc19jb18yMDQwX29mZnNldCA9XG4gXHRcdFx0XHQodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG5AQCAtMTQyNyw2ICYjNDM7MTQzNyw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHQodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfT1BNT0RFX05PVElGOlxuJiM0MztcdFx0XHRpZiAoIWVsZW1lbnRfbGVuKVxuJiM0MztcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2VvcGVyX21vZGUgPSAodm9pZCAqKWN1cnJlbnRfcHRyO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2VvcGVyX21vZGVfb2Zmc2V0ID1cbiBcdFx0XHRcdFx0KHUxNikoKHU4ICopYnNzX2VudHJ5LVx1MDAzZW9wZXJfbW9kZSAtXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3V0aWwuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmNcbmluZGV4IDdkMzYzMWQyMTIyMzZjLi44NDQyMjNjMDRlMmVmMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmNcbkBAIC03MjEsNyAmIzQzOzcyMSw3IEBAIG13aWZpZXhfc2V0X3N0YV9odF9jYXAoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgY29uc3QgdTggKmllcyxcbiBcbiBcdGh0X2NhcF9pZSA9ICh2b2lkICopY2ZnODAyMTFfZmluZF9pZShXTEFOX0VJRF9IVF9DQVBBQklMSVRZLCBpZXMsXG4gXHRcdFx0XHRcdCAgICAgaWVzX2xlbik7XG4tXHRpZiAoaHRfY2FwX2llKSB7XG4mIzQzO1x0aWYgKGh0X2NhcF9pZSBcdTAwMjZcdTAwMjYgaHRfY2FwX2llLVx1MDAzZWxlbiBcdTAwM2U9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcCkpIHtcbiBcdFx0aHRfY2FwID0gKHZvaWQgKikoaHRfY2FwX2llICYjNDM7IDEpO1xuIFx0XHRub2RlLVx1MDAzZWlzXzExbl9lbmFibGVkID0gMTtcbiBcdFx0bm9kZS1cdTAwM2VtYXhfYW1zZHUgPSBsZTE2X3RvX2NwdShodF9jYXAtXHUwMDNlY2FwX2luZm8pIFx1MDAyNlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjAzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfc2V0X3N0YV9odF9jYXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIHZhcmlvdXMgSW5mb3JtYXRpb24gRWxlbWVudHMgKElFcykgaW4gdGhlIE1hcnZlbGwgV2lGaSBkcml2ZXIgKG13aWZpZXgpIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMgd2hlbiBwYXJzaW5nIG1hbGljaW91cyBvciBtYWxmb3JtZWQgV2lGaSBiZWFjb25zL21hbmFnZW1lbnQgZnJhbWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgZnV6emVkIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiB0aGUgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAxNzNlMWQ0OGQwMmFhMDQyNzJlMGJmMzY4MmUyNjhkNjBhYmQ1ODI3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMTAgMDQ6MDM6NTAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYwppbmRleCA5N2MwZWMzYjgyMmU3MC4uOTk3ZTdlMTk1MjViZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYwpAQCAtMTM4NCw2ICYjNDM7MTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsCiAJCQkJCQkJYnNzX2VudHJ5LSZndDtiZWFjb25fYnVmKTsKIAkJCWJyZWFrOwogCQljYXNlIFdMQU5fRUlEX0hUX0NBUEFCSUxJVFk6CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwKSkKJiM0MzsJCQkJYnJlYWs7CiAJCQlic3NfZW50cnktJmd0O2Jjbl9odF9jYXAgPSAoc3RydWN0IGllZWU4MDIxMV9odF9jYXAgKikKIAkJCQkJKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCXNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTsKQEAgLTEzOTIsNiAmIzQzOzEzOTQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLAogCQkJCQlic3NfZW50cnktJmd0O2JlYWNvbl9idWYpOwogCQkJYnJlYWs7CiAJCWNhc2UgV0xBTl9FSURfSFRfT1BFUkFUSU9OOgomIzQzOwkJCWlmIChlbGVtZW50X2xlbiAmbHQ7IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbikpCiYjNDM7CQkJCWJyZWFrOwogCQkJYnNzX2VudHJ5LSZndDtiY25faHRfb3BlciA9CiAJCQkJKHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCXNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTsKQEAgLTE0MDAsNiAmIzQzOzE0MDQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLAogCQkJCQlic3NfZW50cnktJmd0O2JlYWNvbl9idWYpOwogCQkJYnJlYWs7CiAJCWNhc2UgV0xBTl9FSURfVkhUX0NBUEFCSUxJVFk6CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCkpCiYjNDM7CQkJCWJyZWFrOwogCQkJYnNzX2VudHJ5LSZndDtkaXNhYmxlXzExYWMgPSBmYWxzZTsKIAkJCWJzc19lbnRyeS0mZ3Q7YmNuX3ZodF9jYXAgPQogCQkJCSh2b2lkICopKGN1cnJlbnRfcHRyICYjNDM7CkBAIC0xNDA5LDYgJiM0MzsxNDE1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlciwKIAkJCQkJICAgICAgYnNzX2VudHJ5LSZndDtiZWFjb25fYnVmKTsKIAkJCWJyZWFrOwogCQljYXNlIFdMQU5fRUlEX1ZIVF9PUEVSQVRJT046CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X29wZXJhdGlvbikpCiYjNDM7CQkJCWJyZWFrOwogCQkJYnNzX2VudHJ5LSZndDtiY25fdmh0X29wZXIgPQogCQkJCSh2b2lkICopKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCSBzaXplb2Yoc3RydWN0IGllZWVfdHlwZXNfaGVhZGVyKSk7CkBAIC0xNDE3LDYgJiM0MzsxNDI1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlciwKIAkJCQkJICAgICAgYnNzX2VudHJ5LSZndDtiZWFjb25fYnVmKTsKIAkJCWJyZWFrOwogCQljYXNlIFdMQU5fRUlEX0JTU19DT0VYXzIwNDA6CiYjNDM7CQkJaWYgKCFlbGVtZW50X2xlbikKJiM0MzsJCQkJYnJlYWs7CiAJCQlic3NfZW50cnktJmd0O2Jjbl9ic3NfY29fMjA0MCA9IGN1cnJlbnRfcHRyOwogCQkJYnNzX2VudHJ5LSZndDtic3NfY29fMjA0MF9vZmZzZXQgPQogCQkJCSh1MTYpIChjdXJyZW50X3B0ciAtIGJzc19lbnRyeS0mZ3Q7YmVhY29uX2J1Zik7CkBAIC0xNDI3LDYgJiM0MzsxNDM3LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlciwKIAkJCQkodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktJmd0O2JlYWNvbl9idWYpOwogCQkJYnJlYWs7CiAJCWNhc2UgV0xBTl9FSURfT1BNT0RFX05PVElGOgomIzQzOwkJCWlmICghZWxlbWVudF9sZW4pCiYjNDM7CQkJCWJyZWFrOwogCQkJYnNzX2VudHJ5LSZndDtvcGVyX21vZGUgPSAodm9pZCAqKWN1cnJlbnRfcHRyOwogCQkJYnNzX2VudHJ5LSZndDtvcGVyX21vZGVfb2Zmc2V0ID0KIAkJCQkJKHUxNikoKHU4ICopYnNzX2VudHJ5LSZndDtvcGVyX21vZGUgLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3V0aWwuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmMKaW5kZXggN2QzNjMxZDIxMjIzNmMuLjg0NDIyM2MwNGUyZWYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmMKQEAgLTcyMSw3ICYjNDM7NzIxLDcgQEAgbXdpZmlleF9zZXRfc3RhX2h0X2NhcChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LCBjb25zdCB1OCAqaWVzLAogCiAJaHRfY2FwX2llID0gKHZvaWQgKiljZmc4MDIxMV9maW5kX2llKFdMQU5fRUlEX0hUX0NBUEFCSUxJVFksIGllcywKIAkJCQkJICAgICBpZXNfbGVuKTsKLQlpZiAoaHRfY2FwX2llKSB7CiYjNDM7CWlmIChodF9jYXBfaWUgJmFtcDsmYW1wOyBodF9jYXBfaWUtJmd0O2xlbiAmZ3Q7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9jYXApKSB7CiAJCWh0X2NhcCA9ICh2b2lkICopKGh0X2NhcF9pZSAmIzQzOyAxKTsKIAkJbm9kZS0mZ3Q7aXNfMTFuX2VuYWJsZWQgPSAxOwogCQlub2RlLSZndDttYXhfYW1zZHUgPSBsZTE2X3RvX2NwdShodF9jYXAtJmd0O2NhcF9pbmZvKSAmYW1wOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAwNDowMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTM2CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogNDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTWFydmVsbCBXaUZpIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgdG91Y2hpbmcgYG13aWZpZXhgIC0gc3BlY2lmaWNhbGx5IGBzY2FuLmNgIGFuZCBgdXRpbC5jYC4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBhZGRpbmcgYm91bmRzIGNoZWNraW5nIGZvciB2YXJpb3VzIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGluIHRoZSBNYXJ2ZWxsIFdpRmkgZHJpdmVyLiBHb29kIG1vdmUsIEkgYWx3YXlzIGFwcHJlY2lhdGUgZGVmZW5zaXZlIHByb2dyYW1taW5nIGxpa2UgdGhpcy4gVGhleSYjMzk7cmUgbWFraW5nIHN1cmUgYGVsZW1lbnRfbGVuYCBkb2VzbiYjMzk7dCBleGNlZWQgdGhlIHNpemUgb2YgdGhpbmdzIGxpa2UgYGllZWU4MDIxMV9odF9jYXBgLCBgaWVlZTgwMjExX3ZodF9jYXBgIGFuZCBzbyBvbiBpbiBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAuICBUaGF0JiMzOTtzIGEgcHJldHR5IHN0YW5kYXJkIGFwcHJvYWNoIHRvIG1pdGlnYXRlIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3dzIHdoZW4gcGFyc2luZyBpbmNvbWluZyBiZWFjb24gb3IgbWFuYWdlbWVudCBmcmFtZXMuIEkgYWxzbyBzZWUgdGhleSYjMzk7cmUgY2hlY2tpbmcgYGh0X2NhcF9pZS0mZ3Q7bGVuYCBpbiBgbXdpZmlleF9zZXRfc3RhX2h0X2NhcGAuIFNvdW5kcyBzb2xpZC4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGZpeCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgb3Igd3JpdGVzLiBUaGlzIGlzIGdvb2Qgc3R1ZmYuIEEgbWFsaWNpb3VzIGZyYW1lIHdpdGggYSBjcmFmdGVkIElFIGNvdWxkIGRlZmluaXRlbHkgY2F1c2Ugc29tZSBoZWFkYWNoZXMsIGVzcGVjaWFsbHkgaW4gYSBkcml2ZXIuIFRoZSBuZXh0IHRoaW5nIEkmIzM5O20gdGhpbmtpbmcgaXMgaG93IGNhbiB3ZSB0ZXN0IHRoaXMgYW5kIGZ1enogaXQgZWZmZWN0aXZlbHk/IFNpbmNlIHRoaXMgaXMgYSB3aXJlbGVzcyBkcml2ZXIsIGBtYWM4MDIxMV9od3NpbWAgd291bGQgYmUgdGhlIG9idmlvdXMgY2hvaWNlIGluaXRpYWxseS4gQnV0IGBtd2lmaWV4YCBpcyBoYXJkd2FyZS1zcGVjaWZpYywgc28gSSBoYXZlIHRvIHJlbWVtYmVyIHRoaXMuCgpJJiMzOTttIHdvbmRlcmluZyBpZiBpdCBjYW4gYmUgZnV6emVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIEhhcmR3YXJlIGRyaXZlcnMgYXJlIHVzdWFsbHkgYSBwYWluIHRvIGZ1enogdW5sZXNzIHRoZXJlJiMzOTtzIHNvbWUga2luZCBvZiBoYXJkd2FyZSBlbXVsYXRpb24gbGF5ZXIuIFRoZSBxdWVzdGlvbiBiZWNvbWVzLCBpcyB0aGVyZSBhIFVTQiBpbnRlcmZhY2UgZm9yIGBtd2lmaWV4YD8gTGV0JiMzOTtzIGNoZWNrLiBBaCwgdGhlcmUmIzM5O3MgYG13aWZpZXgvdXNiLmNgLiBFeGNlbGxlbnQhIFVTQiBkcml2ZXJzIGFyZSBtdWNoIGVhc2llciB0byBmdXp6IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFdlIGNvdWxkIHVzZSBkdW1teSBIQ0Qgb3IgcmF3LWdhZGdldCwgd2hpY2ggc3l6a2FsbGVyIHN1cHBvcnRzIGZvciBVU0IgZnV6emluZy4gVGhhdCYjMzk7cyBhIGdvb2QgcGF0aCB0byB0YWtlLiBTbyBpdCBzZWVtcyBsaWtlIHRoaXMgKmlzKiByZWFjaGFibGUgdmlhIFVTQiBmdXp6aW5nLiBOb3csIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCB0aGUgS2NvbmZpZyBmb3IgbXdpZmlleCB0byBzZWUgd2hhdCBjb25maWd1cmF0aW9ucyBhcmUgYXZhaWxhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjAzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNV0lGSUVYJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjI6Y29uZmlnIE1XSUZJRVhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoxMjpjb25maWcgTVdJRklFWF9TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0xMy1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFNEODc4Ni9TRDg3ODcvU0Q4Nzk3L1NEODg4Ny9TRDg4OTcvU0Q4OTc3L1NEODk3OC9TRDg5ODcvU0Q4OTk3XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoyNTpjb25maWcgTVdJRklFWF9QQ0lFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yNi1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFBDSUUgODc2Ni84ODk3Lzg5OTdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjM3OmNvbmZpZyBNV0lGSUVYX1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMzgtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBVU0I4NzY2Lzg3OTcvODk5N1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNzgKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiA3MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFdpLUZpIERyaXZlciBDb25maWd1cmF0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGNvbmZpZ3VyYXRpb25zLCBhbmQgaXQgbG9va3MgbGlrZSBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAgYXJlIHRoZSBtYWluIG9uZXMuIEEgcXVpY2sgbWVudGFsIGNoZWNr4oCmcmlnaHQsIGBNV0lGSUVYX1VTQmAgc3BlY2lmaWNhbGx5IGhhbmRsZXMgdGhlIFVTQiBpbnRlcmZhY2UuIEdvb2QgdG8ga2VlcCB0aGF0IGluIG1pbmQuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBkcml2ZXImIzM5O3MgaW50ZXJuYWxzIGFyZSBpbnRlcmFjdGluZy4gTGV0JiMzOTtzIHNlZSBpZiB0aGUgZnVuY3Rpb25zIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBhbmQgYG13aWZpZXhfc2V0X3N0YV9odF9jYXBgIGFyZSBiZWluZyBjYWxsZWQgYW5kIGluIHdoYXQgY29udGV4dHMuIEkgbmVlZCB0byB0cmFjZSB0aGUgZGF0YSBmbG93IGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMDQ6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaD0xNTM4PWludCBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTQwLVx0XHRcdCAgICAgIHN0cnVjdCBtd2lmaWV4X2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg6MTU0MTppbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTQyLVx0XHRcdFx0ICAgIHN0cnVjdCBtd2lmaWV4X2Jzc2Rlc2NyaXB0b3IgKmJzc19lbnRyeSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYz0xMTEyPW13aWZpZXhfcmV0XzgwMl8xMV9zY2FuX2dldF90bHZfcHRycyhzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTE4MS0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTE4MjppbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xMTgzLVx0XHRcdFx0ICAgIHN0cnVjdCBtd2lmaWV4X2Jzc2Rlc2NyaXB0b3IgKmJzc19lbnRyeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM9MTI5PWludCBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTE3OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYzoxODA6XHRyZXR1cm4gbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShwcml2LVx1MDAzZWFkYXB0ZXIsIGJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xODEtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwMjgKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AgQ2FsbGVycyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7V2hlcmUmIzM5O3MgdGhpcyBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AgZnVuY3Rpb24gZ2V0dGluZyBpbnZva2VkPyYjMzQ7LiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGwgcGF0aHMgdG8gdW5kZXJzdGFuZCBob3cgYW5kIHdoZW4gaXQmIzM5O3MgcG9wdWxhdGluZyB0aGUgQlNTIGRlc2NyaXB0b3IgZGF0YS4gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgaW1wbGljYXRpb25zIOKAkyB0aGlzIGZ1bmN0aW9uIGxpa2VseSBwbGF5cyBhIGNydWNpYWwgcm9sZSBpbiBzY2FubmluZywgYXNzb2NpYXRpb24sIG9yIHBvc3NpYmx5IGV2ZW4gdGhlIGluaXRpYWwgaW5pdGlhbGl6YXRpb24gb2YgbmV0d29yayBpbmZvcm1hdGlvbi4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGJyb2FkZXIgY29udGV4dCB3aXRoaW4gdGhlIE1hcnZlbGwgV2ktRmkgZHJpdmVyIGNvZGUuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNhbGwgZ3JhcGgsIGNyb3NzLXJlZmVyZW5jZSB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbiwgYW5kIHNlZSB3aGljaCBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyBhcmUgaW52b2x2ZWQuIEtub3dpbmcgdGhlIGNhbGxpbmcgY29udGV4dHMgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZSBuZXR3b3JrIGluZm9ybWF0aW9uIGlzIGdhdGhlcmVkIGFuZCB1c2VkLiBUaW1lIHRvIGdldCB0byB3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O213aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg9MTUzNj1pbnQgbXdpZmlleF9nZXRfYnNzX2luZm8oc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTM3LVx0XHRcdCBzdHJ1Y3QgbXdpZmlleF9ic3NfaW5mbyAqKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg6MTUzODppbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTM5LVx0XHRcdCAgICAgIHN0cnVjdCBjZmc4MDIxMV9ic3MgKmJzcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTE2NTU9c3RhdGljIGludCBtd2lmaWV4X3NhdmVfaGlkZGVuX3NzaWRfY2hhbm5lbHMoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE2NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE2Njc6XHRyZXQgPSBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHByaXYsIGJzcywgYnNzX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjY4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE2OTEtXHQvKiBiZWFjb25faWUgYnVmZmVyIHdhcyBhbGxvY2F0ZWQgaW4gZnVuY3Rpb25cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTY5MjpcdCAqIG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MoKS4gRnJlZSBpdCBub3cuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE2OTMtXHQgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTE2OTk9c3RhdGljIGludCBtd2lmaWV4X3VwZGF0ZV9jdXJyX2Jzc19wYXJhbXMoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE3MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE3MTA6XHRyZXQgPSBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHByaXYsIGJzcywgYnNzX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzExLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE3MzAtXHQvKiBiZWFjb25faWUgYnVmZmVyIHdhcyBhbGxvY2F0ZWQgaW4gZnVuY3Rpb25cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTczMTpcdCAqIG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MoKS4gRnJlZSBpdCBub3cuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE3MzItXHQgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM9NzY9aW50IG13aWZpZXhfcmVxdWVzdF9zZXRfbXVsdGljYXN0X2xpc3Qoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTI4LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jOjEyOTppbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTEzMC1cdFx0XHQgICAgICBzdHJ1Y3QgY2ZnODAyMTFfYnNzICpic3MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTMxOD1pbnQgbXdpZmlleF9ic3Nfc3RhcnQoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgc3RydWN0IGNmZzgwMjExX2JzcyAqYnNzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0zMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MzM3Olx0XHRyZXQgPSBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHByaXYsIGJzcywgYnNzX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTMzOC1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtNDMyLVx0LyogYmVhY29uX2llIGJ1ZmZlciB3YXMgYWxsb2NhdGVkIGluIGZ1bmN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6NDMzOlx0ICogbXdpZmlleF9maWxsX25ld19ic3NfZGVzYygpLiBGcmVlIGl0IG5vdy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy00MzQtXHQgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAwNDowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MzgwCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQlNTIERlc2NyaXB0aW9uIFVwZGF0ZSoqCgpPa2F5LCBzbyBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgaXMgY2xlYXJseSBhIGtleSBmdW5jdGlvbiBmb3IgcHJvY2Vzc2luZyBCU1MgZGVzY3JpcHRpb25zLCBidXQgd2hlcmUgZG9lcyBpdCBmaXQgd2l0aGluIHRoZSBvdmVyYWxsIGZsb3c/IFJpZ2h0LCBpdCYjMzk7cyBjYWxsZWQgZnJvbSBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AsIHdoaWNoIGl0c2VsZiBpcyBpbnZva2VkIGR1cmluZyBzZXZlcmFsIGNydWNpYWwgc3RhZ2VzOiB0aGUgaW5pdGlhbCBzdGFydHVwIG9mIGEgQlNTIHZpYSBgbXdpZmlleF9ic3Nfc3RhcnRgLCB1cGRhdGluZyBjdXJyZW50IEJTUyBwYXJhbWV0ZXJzIHdpdGggYG13aWZpZXhfdXBkYXRlX2N1cnJfYnNzX3BhcmFtc2AsIGFuZCBldmVuIHdoZW4gc2F2aW5nIGNoYW5uZWxzIGZvciBoaWRkZW4gU1NJRHMgdGhyb3VnaCBgbXdpZmlleF9zYXZlX2hpZGRlbl9zc2lkX2NoYW5uZWxzYC4gU28sIHRoaXMgc3VnZ2VzdHMgdGhhdCBpdCBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIGVzc2VudGlhbCBjb25uZWN0aW9uIGFuZCBzY2FubmluZyBwcm9jZWR1cmVzIOKAkyB0aGUgc3RhbmRhcmQgb3BlcmF0aW9ucy4gTm93LCBnaXZlbiB0aGF0IGNvbnRleHQsIEkgbmVlZCB0byBjaGVjayB0aGUgY2xvc2VseSByZWxhdGVkIGBtd2lmaWV4X3NldF9zdGFfaHRfY2FwYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMDQ6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXdpZmlleF9zZXRfc3RhX2h0X2NhcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaD0xNTkwPXZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg6MTU5MTptd2lmaWV4X3NldF9zdGFfaHRfY2FwKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsIGNvbnN0IHU4ICppZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1OTItXHRcdCAgICAgICBpbnQgaWVzX2xlbiwgc3RydWN0IG13aWZpZXhfc3RhX25vZGUgKm5vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91YXBfZXZlbnQuYz05ND1pbnQgbXdpZmlleF9wcm9jZXNzX3VhcF9ldmVudChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91YXBfZXZlbnQuYy0xNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdWFwX2V2ZW50LmM6MTQ5Olx0XHRtd2lmaWV4X3NldF9zdGFfaHRfY2FwKHByaXYsIHNpbmZvLVx1MDAzZWFzc29jX3JlcV9pZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdWFwX2V2ZW50LmMtMTUwLVx0XHRcdFx0ICAgICAgIHNpbmZvLVx1MDAzZWFzc29jX3JlcV9pZXNfbGVuLCBub2RlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jPTcxMj12b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jOjcxMzptd2lmaWV4X3NldF9zdGFfaHRfY2FwKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsIGNvbnN0IHU4ICppZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jLTcxNC1cdFx0ICAgICAgIGludCBpZXNfbGVuLCBzdHJ1Y3QgbXdpZmlleF9zdGFfbm9kZSAqbm9kZSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMDQ6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzExMQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDExMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBgbXdpZmlleF9zZXRfc3RhX2h0X2NhcGAgaW4gQVAgTW9kZSoqCgpPa2F5LCBzbyBJIHNlZSB0aGF0IGBtd2lmaWV4X3NldF9zdGFfaHRfY2FwYCBnZXRzIGNhbGxlZCB3aXRoaW4gYG13aWZpZXhfcHJvY2Vzc191YXBfZXZlbnRgLiBUaGF0IG1lYW5zIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggbWljcm8tQVAgbW9kZSwgd2hpY2ggaW1wbGllcyB0aGUgZGV2aWNlIGlzIG9wZXJhdGluZyBpbiBBUCBtb2RlLiBUaGVyZWZvcmUsIHRoZSBjb2RlICppcyogcmVhY2hhYmxlIOKAkyB0aGF0JiMzOTtzIHRoZSBmaXJzdCB0aGluZyB0byBlc3RhYmxpc2guIE5vdywgdGhlIHF1ZXN0aW9uIGlzIGhvdyB0byBhY3R1YWxseSB0cmlnZ2VyIGl0LiBJdCBsb29rcyBsaWtlIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBhcmUgYE1XSUZJRVhgIGFuZCBgTVdJRklFWF9VU0JgLCB0aGF0JiMzOTtzIGhvdyB3ZSBnZXQgdGhlcmUuIEhtbSwgaG9sZCBvbiBhIHNlY29uZOKApiBpc24mIzM5O3QgYE1XSUZJRVhfVVNCYCBhIHRyaXN0YXRlPyBXZSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kIHdoZW4gZXhhbWluaW5nIHRoZSBidWlsZCBjb25maWdzLiBBbmQsIGlzIHRoZXJlIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBpbXBhY3QgdGhlIHJlYWNoYWJpbGl0eT8gSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgZm9yIGFueSBvdGhlciByZWxhdGVkIGRlcGVuZGVuY2llcyBqdXN0IHRvIGJlIHN1cmUuIEl0JiMzOTtzIGFsd2F5cyBiZXN0IHRvIGJlIHRob3JvdWdoIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZz0yPWNvbmZpZyBNV0lGSUVYXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBXaUZpLUV4IERyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6NDpcdGRlcGVuZHMgb24gQ0ZHODAyMTFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTUtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc9MTI9Y29uZmlnIE1XSUZJRVhfU0RJT1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMTMtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBTRDg3ODYvU0Q4Nzg3L1NEODc5Ny9TRDg4ODcvU0Q4ODk3L1NEODk3Ny9TRDg5NzgvU0Q4OTg3L1NEODk5N1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6MTQ6XHRkZXBlbmRzIG9uIE1XSUZJRVggXHUwMDI2XHUwMDI2IE1NQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMTUtXHRzZWxlY3QgRldfTE9BREVSXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc9MjU9Y29uZmlnIE1XSUZJRVhfUENJRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMjYtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBQQ0lFIDg3NjYvODg5Ny84OTk3XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoyNzpcdGRlcGVuZHMgb24gTVdJRklFWCBcdTAwMjZcdTAwMjYgUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yOC1cdHNlbGVjdCBGV19MT0FERVJcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZz0zNz1jb25maWcgTVdJRklFWF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTM4LVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgVVNCODc2Ni84Nzk3Lzg5OTdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjM5Olx0ZGVwZW5kcyBvbiBNV0lGSUVYIFx1MDAyNlx1MDAyNiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTQwLVx0c2VsZWN0IEZXX0xPQURFUlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAwNDowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MDE2CgkJCQkJCQlvdXRwdXQ6IDE0MAoJCQkJCQkJdGhvdWdodHM6IDQ5OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgbXdpZmlleCBEcml2ZXIgUGF0Y2gqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgY29uZmlndXJhdGlvbnMgYE1XSUZJRVhgIGFuZCBgTVdJRklFWF9VU0JgLiBUaG9zZSBzZWVtIHRvIGJlIHRoZSBrZXkgZmxhZ3MgZm9yIHRoaXMgZHJpdmVyLiBJJiMzOTt2ZSBwaW5wb2ludGVkIGEgZmV3IGtleSBmdW5jdGlvbnMgdG8gc2NydXRpbml6ZTogYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGFuZCBgbXdpZmlleF9zZXRfc3RhX2h0X2NhcGAuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgaGFuZGxlcyBJRXMgKEluZm9ybWF0aW9uIEVsZW1lbnRzKS4KCk5vdywgbGV0JiMzOTtzIGJyb2FkZW4gdGhlIHNjb3BlIGEgYml0LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcuIEFoLCBoZXJlJiMzOTtzIGEgZ29vZCBvbmU6IGBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjYCDigJMgdGhhdCYjMzk7cyBkZWZpbml0ZWx5IHJlbGV2YW50IHNpbmNlIGl0IGNhbGxzIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYC4gQW5kIGxldCYjMzk7cyBub3QgZm9yZ2V0IGFib3V0IGBtd2lmaWV4X3Byb2Nlc3NfdWFwX2V2ZW50YCwgdGhhdCBsb29rcyBpbnRlcmVzdGluZyB0b28uCgpMZXQmIzM5O3MgcXVpY2tseSB2ZXJpZnkgdGhlIHBhdGNoIGl0c2VsZi4gT2theSwgdGhlIHJlbGV2YW50IHNuaXBwZXQgaW4gYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGFwcGVhcnMgdG8gYmUgY2hlY2tpbmcgZm9yIHRoZSBzaXplIG9mIGBzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcGAgYW5kIGJhaWxpbmcgaWYgdGhlIGVsZW1lbnQgbGVuZ3RoIGlzIGxlc3MgdGhhbiB0aGUgZXhwZWN0ZWQgc2l6ZS4gVGhpcyBsb29rcyBsaWtlIGEgc29saWQgZml4IHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMuIFRoaXMgaXMgZnVuY3Rpb25hbC4KClNvLCB0byBzdW1tYXJpemU6IGBNV0lGSUVYYCBhbmQgYE1XSUZJRVhfVVNCYCBhcmUgdGhlIGltcG9ydGFudCBjb25maWd1cmF0aW9ucywgYW5kIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBhbmQgYG13aWZpZXhfc2V0X3N0YV9odF9jYXBgIGFyZSB0aGUga2V5IGZ1bmN0aW9ucy4gUXVpY2sgY2hlY2sgdG8gbWFrZSBzdXJlIHRob3NlIGFyZW4mIzM5O3QgaW5saW5lLiBOb3BlLCBub3QgaW5saW5lLgoKTGV0JiMzOTtzIGNoZWNrIHRob3NlIGRlcGVuZGVuY2llcyByZWFsIHF1aWNrLiBgQ0ZHODAyMTFgIGFuZCBgVVNCYCBhcmUgZGVwZW5kZW5jaWVzLCBidXQgdGhleSBsb29rIGxpa2UgZ2VuZXJpYyBkZXBlbmRlbmNpZXMsIGFuZCBhcmUgbGlrZWx5IHRvIGJlIGVuYWJsZWQuIEkmIzM5O20gZ29pbmcgdG8gZm9jdXMgbXkgY2hhbmdlcyBvbiBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAgc2luY2UgdGhvc2UgbG9vayB0byBiZSBzcGVjaWZpYyB0byB0aGlzIGRyaXZlci4gT2theSwgSSYjMzk7bSByZWFkeSB0byBzZXQgdGhlc2UgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMDQ6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfc2V0X3N0YV9odF9jYXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIHZhcmlvdXMgSW5mb3JtYXRpb24gRWxlbWVudHMgKElFcykgaW4gdGhlIE1hcnZlbGwgV2lGaSBkcml2ZXIgKG13aWZpZXgpIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMgd2hlbiBwYXJzaW5nIG1hbGljaW91cyBvciBtYWxmb3JtZWQgV2lGaSBiZWFjb25zL21hbmFnZW1lbnQgZnJhbWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgZnV6emVkIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiB0aGUgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNV0lGSUVYJiMzNDssCiAgICAmIzM0O01XSUZJRVhfVVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZSYjMzQ7LAogICAgJiMzNDttd2lmaWV4X3NldF9zdGFfaHRfY2FwJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciB2YXJpb3VzIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGluIHRoZSBNYXJ2ZWxsIFdpRmkgZHJpdmVyIChtd2lmaWV4KSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMvd3JpdGVzIHdoZW4gcGFyc2luZyBtYWxpY2lvdXMgb3IgbWFsZm9ybWVkIFdpRmkgYmVhY29ucy9tYW5hZ2VtZW50IGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHJlYWNoZWQgYW5kIGZ1enplZCB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgdGhlIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDA0OjAzOjUyLjA5Nzk1NzU5MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwNTM3NDg3ODU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1XSUZJRVhcIixcbiAgICBcIk1XSUZJRVhfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiLFxuICAgIFwibXdpZmlleF9zZXRfc3RhX2h0X2NhcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciB2YXJpb3VzIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGluIHRoZSBNYXJ2ZWxsIFdpRmkgZHJpdmVyIChtd2lmaWV4KSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMvd3JpdGVzIHdoZW4gcGFyc2luZyBtYWxpY2lvdXMgb3IgbWFsZm9ybWVkIFdpRmkgYmVhY29ucy9tYW5hZ2VtZW50IGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHJlYWNoZWQgYW5kIGZ1enplZCB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgdGhlIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMDQ6MDM6NTIuMDk3OTY2NjIzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjUyNzI5OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAxNzNlMWQ0OGQwMmFhMDQyNzJlMGJmMzY4MmUyNjhkNjBhYmQ1ODI3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDEwIDA0OjAzOjUwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXFxuaW5kZXggOTdjMGVjM2I4MjJlNzAuLjk5N2U3ZTE5NTI1YmQ5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXFxuQEAgLTEzODQsNiArMTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdGJzc19lbnRyeS1cXHUwMDNlYmVhY29uX2J1Zik7XFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRjYXNlIFdMQU5fRUlEX0hUX0NBUEFCSUxJVFk6XFxuK1xcdFxcdFxcdGlmIChlbGVtZW50X2xlbiBcXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcCkpXFxuK1xcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl9odF9jYXAgPSAoc3RydWN0IGllZWU4MDIxMV9odF9jYXAgKilcXG4gXFx0XFx0XFx0XFx0XFx0KGN1cnJlbnRfcHRyICtcXG4gXFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcbkBAIC0xMzkyLDYgKzEzOTQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9IVF9PUEVSQVRJT046XFxuK1xcdFxcdFxcdGlmIChlbGVtZW50X2xlbiBcXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbikpXFxuK1xcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl9odF9vcGVyID1cXG4gXFx0XFx0XFx0XFx0KHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICtcXG4gXFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcbkBAIC0xNDAwLDYgKzE0MDQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9WSFRfQ0FQQUJJTElUWTpcXG4rXFx0XFx0XFx0aWYgKGVsZW1lbnRfbGVuIFxcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCkpXFxuK1xcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWRpc2FibGVfMTFhYyA9IGZhbHNlO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl92aHRfY2FwID1cXG4gXFx0XFx0XFx0XFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xcbkBAIC0xNDA5LDYgKzE0MTUsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9WSFRfT1BFUkFUSU9OOlxcbitcXHRcXHRcXHRpZiAoZWxlbWVudF9sZW4gXFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV92aHRfb3BlcmF0aW9uKSlcXG4rXFx0XFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdFxcdGJzc19lbnRyeS1cXHUwMDNlYmNuX3ZodF9vcGVyID1cXG4gXFx0XFx0XFx0XFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xcbiBcXHRcXHRcXHRcXHRcXHQgc2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcbkBAIC0xNDE3LDYgKzE0MjUsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9CU1NfQ09FWF8yMDQwOlxcbitcXHRcXHRcXHRpZiAoIWVsZW1lbnRfbGVuKVxcbitcXHRcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0XFx0YnNzX2VudHJ5LVxcdTAwM2ViY25fYnNzX2NvXzIwNDAgPSBjdXJyZW50X3B0cjtcXG4gXFx0XFx0XFx0YnNzX2VudHJ5LVxcdTAwM2Vic3NfY29fMjA0MF9vZmZzZXQgPVxcbiBcXHRcXHRcXHRcXHQodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbkBAIC0xNDI3LDYgKzE0MzcsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHQodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9PUE1PREVfTk9USUY6XFxuK1xcdFxcdFxcdGlmICghZWxlbWVudF9sZW4pXFxuK1xcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZW9wZXJfbW9kZSA9ICh2b2lkICopY3VycmVudF9wdHI7XFxuIFxcdFxcdFxcdGJzc19lbnRyeS1cXHUwMDNlb3Blcl9tb2RlX29mZnNldCA9XFxuIFxcdFxcdFxcdFxcdFxcdCh1MTYpKCh1OCAqKWJzc19lbnRyeS1cXHUwMDNlb3Blcl9tb2RlIC1cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3V0aWwuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmNcXG5pbmRleCA3ZDM2MzFkMjEyMjM2Yy4uODQ0MjIzYzA0ZTJlZjMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3V0aWwuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmNcXG5AQCAtNzIxLDcgKzcyMSw3IEBAIG13aWZpZXhfc2V0X3N0YV9odF9jYXAoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgY29uc3QgdTggKmllcyxcXG4gXFxuIFxcdGh0X2NhcF9pZSA9ICh2b2lkICopY2ZnODAyMTFfZmluZF9pZShXTEFOX0VJRF9IVF9DQVBBQklMSVRZLCBpZXMsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgaWVzX2xlbik7XFxuLVxcdGlmIChodF9jYXBfaWUpIHtcXG4rXFx0aWYgKGh0X2NhcF9pZSBcXHUwMDI2XFx1MDAyNiBodF9jYXBfaWUtXFx1MDAzZWxlbiBcXHUwMDNlPSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9jYXApKSB7XFxuIFxcdFxcdGh0X2NhcCA9ICh2b2lkICopKGh0X2NhcF9pZSArIDEpO1xcbiBcXHRcXHRub2RlLVxcdTAwM2Vpc18xMW5fZW5hYmxlZCA9IDE7XFxuIFxcdFxcdG5vZGUtXFx1MDAzZW1heF9hbXNkdSA9IGxlMTZfdG9fY3B1KGh0X2NhcC1cXHUwMDNlY2FwX2luZm8pIFxcdTAwMjZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMDQ6MDM6NTIuNjY0MDc4NTk1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTk3MTM1OTY0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNV0lGSUVYXCIsXG4gICAgXCJNV0lGSUVYX1VTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVcIixcbiAgICBcIm13aWZpZXhfc2V0X3N0YV9odF9jYXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgdmFyaW91cyBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBpbiB0aGUgTWFydmVsbCBXaUZpIGRyaXZlciAobXdpZmlleCkgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzL3dyaXRlcyB3aGVuIHBhcnNpbmcgbWFsaWNpb3VzIG9yIG1hbGZvcm1lZCBXaUZpIGJlYWNvbnMvbWFuYWdlbWVudCBmcmFtZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGNhbiBiZSByZWFjaGVkIGFuZCBmdXp6ZWQgdmlhIHRoZSBVU0IgaW50ZXJmYWNlIG9mIHRoZSBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMTczZTFkNDhkMDJhYTA0MjcyZTBiZjM2ODJlMjY4ZDYwYWJkNTgyN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDEwIDA0OjAzOjUwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmNcbmluZGV4IDk3YzBlYzNiODIyZTcwLi45OTdlN2UxOTUyNWJkOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmNcbkBAIC0xMzg0LDYgKzEzODQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuIFx0XHRcdFx0XHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX0hUX0NBUEFCSUxJVFk6XG4rXHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9jYXApKVxuK1x0XHRcdFx0YnJlYWs7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJjbl9odF9jYXAgPSAoc3RydWN0IGllZWU4MDIxMV9odF9jYXAgKilcbiBcdFx0XHRcdFx0KGN1cnJlbnRfcHRyICtcbiBcdFx0XHRcdFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xuQEAgLTEzOTIsNiArMTM5NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViZWFjb25fYnVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBXTEFOX0VJRF9IVF9PUEVSQVRJT046XG4rXHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9vcGVyYXRpb24pKVxuK1x0XHRcdFx0YnJlYWs7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJjbl9odF9vcGVyID1cbiBcdFx0XHRcdChzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbiAqKShjdXJyZW50X3B0ciArXG4gXHRcdFx0XHRcdHNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTtcbkBAIC0xNDAwLDYgKzE0MDQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuIFx0XHRcdFx0XHRic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfVkhUX0NBUEFCSUxJVFk6XG4rXHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV92aHRfY2FwKSlcbitcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2VkaXNhYmxlXzExYWMgPSBmYWxzZTtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX3ZodF9jYXAgPVxuIFx0XHRcdFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xuQEAgLTE0MDksNiArMTQxNSw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdCAgICAgIGJzc19lbnRyeS1cdTAwM2ViZWFjb25fYnVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBXTEFOX0VJRF9WSFRfT1BFUkFUSU9OOlxuK1x0XHRcdGlmIChlbGVtZW50X2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X29wZXJhdGlvbikpXG4rXHRcdFx0XHRicmVhaztcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX3ZodF9vcGVyID1cbiBcdFx0XHRcdCh2b2lkICopKGN1cnJlbnRfcHRyICtcbiBcdFx0XHRcdFx0IHNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTtcbkBAIC0xNDE3LDYgKzE0MjUsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuIFx0XHRcdFx0XHQgICAgICBic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfQlNTX0NPRVhfMjA0MDpcbitcdFx0XHRpZiAoIWVsZW1lbnRfbGVuKVxuK1x0XHRcdFx0YnJlYWs7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJjbl9ic3NfY29fMjA0MCA9IGN1cnJlbnRfcHRyO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2Vic3NfY29fMjA0MF9vZmZzZXQgPVxuIFx0XHRcdFx0KHUxNikgKGN1cnJlbnRfcHRyIC0gYnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuQEAgLTE0MjcsNiArMTQzNyw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHQodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfT1BNT0RFX05PVElGOlxuK1x0XHRcdGlmICghZWxlbWVudF9sZW4pXG4rXHRcdFx0XHRicmVhaztcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlb3Blcl9tb2RlID0gKHZvaWQgKiljdXJyZW50X3B0cjtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlb3Blcl9tb2RlX29mZnNldCA9XG4gXHRcdFx0XHRcdCh1MTYpKCh1OCAqKWJzc19lbnRyeS1cdTAwM2VvcGVyX21vZGUgLVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jXG5pbmRleCA3ZDM2MzFkMjEyMjM2Yy4uODQ0MjIzYzA0ZTJlZjMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jXG5AQCAtNzIxLDcgKzcyMSw3IEBAIG13aWZpZXhfc2V0X3N0YV9odF9jYXAoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgY29uc3QgdTggKmllcyxcbiBcbiBcdGh0X2NhcF9pZSA9ICh2b2lkICopY2ZnODAyMTFfZmluZF9pZShXTEFOX0VJRF9IVF9DQVBBQklMSVRZLCBpZXMsXG4gXHRcdFx0XHRcdCAgICAgaWVzX2xlbik7XG4tXHRpZiAoaHRfY2FwX2llKSB7XG4rXHRpZiAoaHRfY2FwX2llIFx1MDAyNlx1MDAyNiBodF9jYXBfaWUtXHUwMDNlbGVuIFx1MDAzZT0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwKSkge1xuIFx0XHRodF9jYXAgPSAodm9pZCAqKShodF9jYXBfaWUgKyAxKTtcbiBcdFx0bm9kZS1cdTAwM2Vpc18xMW5fZW5hYmxlZCA9IDE7XG4gXHRcdG5vZGUtXHUwMDNlbWF4X2Ftc2R1ID0gbGUxNl90b19jcHUoaHRfY2FwLVx1MDAzZWNhcF9pbmZvKSBcdTAwMjZcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDA0OjAzOjUyLjY2NDA4MDM4NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcxOTY3MjU3MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNYXJ2ZWxsIFdpRmkgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQncyB0b3VjaGluZyBgbXdpZmlleGAgLSBzcGVjaWZpY2FsbHkgYHNjYW4uY2AgYW5kIGB1dGlsLmNgLiBJdCBsb29rcyBsaWtlIHRoZXkncmUgYWRkaW5nIGJvdW5kcyBjaGVja2luZyBmb3IgdmFyaW91cyBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBpbiB0aGUgTWFydmVsbCBXaUZpIGRyaXZlci4gR29vZCBtb3ZlLCBJIGFsd2F5cyBhcHByZWNpYXRlIGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBsaWtlIHRoaXMuIFRoZXkncmUgbWFraW5nIHN1cmUgYGVsZW1lbnRfbGVuYCBkb2Vzbid0IGV4Y2VlZCB0aGUgc2l6ZSBvZiB0aGluZ3MgbGlrZSBgaWVlZTgwMjExX2h0X2NhcGAsIGBpZWVlODAyMTFfdmh0X2NhcGAgYW5kIHNvIG9uIGluIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYC4gIFRoYXQncyBhIHByZXR0eSBzdGFuZGFyZCBhcHByb2FjaCB0byBtaXRpZ2F0ZSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93cyB3aGVuIHBhcnNpbmcgaW5jb21pbmcgYmVhY29uIG9yIG1hbmFnZW1lbnQgZnJhbWVzLiBJIGFsc28gc2VlIHRoZXkncmUgY2hlY2tpbmcgYGh0X2NhcF9pZS1cdTAwM2VsZW5gIGluIGBtd2lmaWV4X3NldF9zdGFfaHRfY2FwYC4gU291bmRzIHNvbGlkLlxuXG5UaGlzIGlzIGEgZnVuY3Rpb25hbCBmaXggdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIG9yIHdyaXRlcy4gVGhpcyBpcyBnb29kIHN0dWZmLiBBIG1hbGljaW91cyBmcmFtZSB3aXRoIGEgY3JhZnRlZCBJRSBjb3VsZCBkZWZpbml0ZWx5IGNhdXNlIHNvbWUgaGVhZGFjaGVzLCBlc3BlY2lhbGx5IGluIGEgZHJpdmVyLiBUaGUgbmV4dCB0aGluZyBJJ20gdGhpbmtpbmcgaXMgaG93IGNhbiB3ZSB0ZXN0IHRoaXMgYW5kIGZ1enogaXQgZWZmZWN0aXZlbHk/IFNpbmNlIHRoaXMgaXMgYSB3aXJlbGVzcyBkcml2ZXIsIGBtYWM4MDIxMV9od3NpbWAgd291bGQgYmUgdGhlIG9idmlvdXMgY2hvaWNlIGluaXRpYWxseS4gQnV0IGBtd2lmaWV4YCBpcyBoYXJkd2FyZS1zcGVjaWZpYywgc28gSSBoYXZlIHRvIHJlbWVtYmVyIHRoaXMuXG5cbkknbSB3b25kZXJpbmcgaWYgaXQgY2FuIGJlIGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBIYXJkd2FyZSBkcml2ZXJzIGFyZSB1c3VhbGx5IGEgcGFpbiB0byBmdXp6IHVubGVzcyB0aGVyZSdzIHNvbWUga2luZCBvZiBoYXJkd2FyZSBlbXVsYXRpb24gbGF5ZXIuIFRoZSBxdWVzdGlvbiBiZWNvbWVzLCBpcyB0aGVyZSBhIFVTQiBpbnRlcmZhY2UgZm9yIGBtd2lmaWV4YD8gTGV0J3MgY2hlY2suIEFoLCB0aGVyZSdzIGBtd2lmaWV4L3VzYi5jYC4gRXhjZWxsZW50ISBVU0IgZHJpdmVycyBhcmUgbXVjaCBlYXNpZXIgdG8gZnV6eiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBXZSBjb3VsZCB1c2UgZHVtbXkgSENEIG9yIHJhdy1nYWRnZXQsIHdoaWNoIHN5emthbGxlciBzdXBwb3J0cyBmb3IgVVNCIGZ1enppbmcuIFRoYXQncyBhIGdvb2QgcGF0aCB0byB0YWtlLiBTbyBpdCBzZWVtcyBsaWtlIHRoaXMgKmlzKiByZWFjaGFibGUgdmlhIFVTQiBmdXp6aW5nLiBOb3csIGxldCdzIHRha2UgYSBsb29rIGF0IHRoZSBLY29uZmlnIGZvciBtd2lmaWV4IHRvIHNlZSB3aGF0IGNvbmZpZ3VyYXRpb25zIGFyZSBhdmFpbGFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5MzYsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MjIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQwNDowMzo1OS44NjA4MDc1OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTQ3MzAzMTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1XSUZJRVhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoyOmNvbmZpZyBNV0lGSUVYXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBXaUZpLUV4IERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjEyOmNvbmZpZyBNV0lGSUVYX1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgU0Q4Nzg2L1NEODc4Ny9TRDg3OTcvU0Q4ODg3L1NEODg5Ny9TRDg5NzcvU0Q4OTc4L1NEODk4Ny9TRDg5OTdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoyNTpjb25maWcgTVdJRklFWF9QQ0lFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMjYtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFBDSUUgODc2Ni84ODk3Lzg5OTdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzozNzpjb25maWcgTVdJRklFWF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zOC1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgVVNCODc2Ni84Nzk3Lzg5OTdcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDA0OjA0OjAwLjMxNTU0MjQwNFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MTk2MTU1NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBXaS1GaSBEcml2ZXIgQ29uZmlndXJhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgY29uZmlndXJhdGlvbnMsIGFuZCBpdCBsb29rcyBsaWtlIGBNV0lGSUVYYCBhbmQgYE1XSUZJRVhfVVNCYCBhcmUgdGhlIG1haW4gb25lcy4gQSBxdWljayBtZW50YWwgY2hlY2vigKZyaWdodCwgYE1XSUZJRVhfVVNCYCBzcGVjaWZpY2FsbHkgaGFuZGxlcyB0aGUgVVNCIGludGVyZmFjZS4gR29vZCB0byBrZWVwIHRoYXQgaW4gbWluZC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGRyaXZlcidzIGludGVybmFscyBhcmUgaW50ZXJhY3RpbmcuIExldCdzIHNlZSBpZiB0aGUgZnVuY3Rpb25zIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBhbmQgYG13aWZpZXhfc2V0X3N0YV9odF9jYXBgIGFyZSBiZWluZyBjYWxsZWQgYW5kIGluIHdoYXQgY29udGV4dHMuIEkgbmVlZCB0byB0cmFjZSB0aGUgZGF0YSBmbG93IGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyNzgsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQwNDowNDowMy4xMzUxNTkzODhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg0OTMxOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg9MTUzOD1pbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTQwLVxcdFxcdFxcdCAgICAgIHN0cnVjdCBtd2lmaWV4X2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oOjE1NDE6aW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1NDItXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtd2lmaWV4X2Jzc2Rlc2NyaXB0b3IgKmJzc19lbnRyeSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTExMTI9bXdpZmlleF9yZXRfODAyXzExX3NjYW5fZ2V0X3Rsdl9wdHJzKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTExODEtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYzoxMTgyOmludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xMTgzLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZW50cnkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM9MTI5PWludCBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYzoxODA6XFx0cmV0dXJuIG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUocHJpdi1cXHUwMDNlYWRhcHRlciwgYnNzX2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xODEtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQwNDowNDowMy4xOTM2NTU2NTdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTEwMzE3NjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AgQ2FsbGVycyoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW4uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoZXJlJ3MgdGhpcyBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AgZnVuY3Rpb24gZ2V0dGluZyBpbnZva2VkP1wiLiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGwgcGF0aHMgdG8gdW5kZXJzdGFuZCBob3cgYW5kIHdoZW4gaXQncyBwb3B1bGF0aW5nIHRoZSBCU1MgZGVzY3JpcHRvciBkYXRhLiBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucyDigJMgdGhpcyBmdW5jdGlvbiBsaWtlbHkgcGxheXMgYSBjcnVjaWFsIHJvbGUgaW4gc2Nhbm5pbmcsIGFzc29jaWF0aW9uLCBvciBwb3NzaWJseSBldmVuIHRoZSBpbml0aWFsIGluaXRpYWxpemF0aW9uIG9mIG5ldHdvcmsgaW5mb3JtYXRpb24uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBicm9hZGVyIGNvbnRleHQgd2l0aGluIHRoZSBNYXJ2ZWxsIFdpLUZpIGRyaXZlciBjb2RlLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNhbGwgZ3JhcGgsIGNyb3NzLXJlZmVyZW5jZSB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbiwgYW5kIHNlZSB3aGljaCBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyBhcmUgaW52b2x2ZWQuIEtub3dpbmcgdGhlIGNhbGxpbmcgY29udGV4dHMgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZSBuZXR3b3JrIGluZm9ybWF0aW9uIGlzIGdhdGhlcmVkIGFuZCB1c2VkLiBUaW1lIHRvIGdldCB0byB3b3JrLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDI4LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMDQ6MDQ6MDYuMzAzOTc0ODU3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2Mjk0NTE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oPTE1MzY9aW50IG13aWZpZXhfZ2V0X2Jzc19pbmZvKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1MzctXFx0XFx0XFx0IHN0cnVjdCBtd2lmaWV4X2Jzc19pbmZvICopO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg6MTUzODppbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTUzOS1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2ZnODAyMTFfYnNzICpic3MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTE2NTU9c3RhdGljIGludCBtd2lmaWV4X3NhdmVfaGlkZGVuX3NzaWRfY2hhbm5lbHMoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTY2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE2Njc6XFx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE2NjgtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTY5MS1cXHQvKiBiZWFjb25faWUgYnVmZmVyIHdhcyBhbGxvY2F0ZWQgaW4gZnVuY3Rpb25cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE2OTI6XFx0ICogbXdpZmlleF9maWxsX25ld19ic3NfZGVzYygpLiBGcmVlIGl0IG5vdy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE2OTMtXFx0ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTE2OTk9c3RhdGljIGludCBtd2lmaWV4X3VwZGF0ZV9jdXJyX2Jzc19wYXJhbXMoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTcwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE3MTA6XFx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE3MTEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTczMC1cXHQvKiBiZWFjb25faWUgYnVmZmVyIHdhcyBhbGxvY2F0ZWQgaW4gZnVuY3Rpb25cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE3MzE6XFx0ICogbXdpZmlleF9maWxsX25ld19ic3NfZGVzYygpLiBGcmVlIGl0IG5vdy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE3MzItXFx0ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM9NzY9aW50IG13aWZpZXhfcmVxdWVzdF9zZXRfbXVsdGljYXN0X2xpc3Qoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xMjgtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jOjEyOTppbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xMzAtXFx0XFx0XFx0ICAgICAgc3RydWN0IGNmZzgwMjExX2JzcyAqYnNzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTMxOD1pbnQgbXdpZmlleF9ic3Nfc3RhcnQoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgc3RydWN0IGNmZzgwMjExX2JzcyAqYnNzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTMzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MzM3OlxcdFxcdHJldCA9IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MocHJpdiwgYnNzLCBic3NfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTMzOC1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTQzMi1cXHQvKiBiZWFjb25faWUgYnVmZmVyIHdhcyBhbGxvY2F0ZWQgaW4gZnVuY3Rpb25cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6NDMzOlxcdCAqIG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MoKS4gRnJlZSBpdCBub3cuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTQzNC1cXHQgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMDQ6MDQ6MDYuMzYwMjc0MTc2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzcyNTg3MDgwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEJTUyBEZXNjcmlwdGlvbiBVcGRhdGUqKlxuXG5Pa2F5LCBzbyBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgaXMgY2xlYXJseSBhIGtleSBmdW5jdGlvbiBmb3IgcHJvY2Vzc2luZyBCU1MgZGVzY3JpcHRpb25zLCBidXQgd2hlcmUgZG9lcyBpdCBmaXQgd2l0aGluIHRoZSBvdmVyYWxsIGZsb3c/IFJpZ2h0LCBpdCdzIGNhbGxlZCBmcm9tIGBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjYCwgd2hpY2ggaXRzZWxmIGlzIGludm9rZWQgZHVyaW5nIHNldmVyYWwgY3J1Y2lhbCBzdGFnZXM6IHRoZSBpbml0aWFsIHN0YXJ0dXAgb2YgYSBCU1MgdmlhIGBtd2lmaWV4X2Jzc19zdGFydGAsIHVwZGF0aW5nIGN1cnJlbnQgQlNTIHBhcmFtZXRlcnMgd2l0aCBgbXdpZmlleF91cGRhdGVfY3Vycl9ic3NfcGFyYW1zYCwgYW5kIGV2ZW4gd2hlbiBzYXZpbmcgY2hhbm5lbHMgZm9yIGhpZGRlbiBTU0lEcyB0aHJvdWdoIGBtd2lmaWV4X3NhdmVfaGlkZGVuX3NzaWRfY2hhbm5lbHNgLiBTbywgdGhpcyBzdWdnZXN0cyB0aGF0IGl0IGlzIGludGVncmF0ZWQgaW50byB0aGUgZXNzZW50aWFsIGNvbm5lY3Rpb24gYW5kIHNjYW5uaW5nIHByb2NlZHVyZXMg4oCTIHRoZSBzdGFuZGFyZCBvcGVyYXRpb25zLiBOb3csIGdpdmVuIHRoYXQgY29udGV4dCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBjbG9zZWx5IHJlbGF0ZWQgYG13aWZpZXhfc2V0X3N0YV9odF9jYXBgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MzgwLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDA0OjA0OjEwLjA4NjE0NjUwN1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg4ODE5MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXdpZmlleF9zZXRfc3RhX2h0X2NhcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg9MTU5MD12b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaDoxNTkxOm13aWZpZXhfc2V0X3N0YV9odF9jYXAoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgY29uc3QgdTggKmllcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1OTItXFx0XFx0ICAgICAgIGludCBpZXNfbGVuLCBzdHJ1Y3QgbXdpZmlleF9zdGFfbm9kZSAqbm9kZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdWFwX2V2ZW50LmM9OTQ9aW50IG13aWZpZXhfcHJvY2Vzc191YXBfZXZlbnQoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91YXBfZXZlbnQuYy0xNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3VhcF9ldmVudC5jOjE0OTpcXHRcXHRtd2lmaWV4X3NldF9zdGFfaHRfY2FwKHByaXYsIHNpbmZvLVxcdTAwM2Vhc3NvY19yZXFfaWVzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91YXBfZXZlbnQuYy0xNTAtXFx0XFx0XFx0XFx0ICAgICAgIHNpbmZvLVxcdTAwM2Vhc3NvY19yZXFfaWVzX2xlbiwgbm9kZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jPTcxMj12b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3V0aWwuYzo3MTM6bXdpZmlleF9zZXRfc3RhX2h0X2NhcChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LCBjb25zdCB1OCAqaWVzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmMtNzE0LVxcdFxcdCAgICAgICBpbnQgaWVzX2xlbiwgc3RydWN0IG13aWZpZXhfc3RhX25vZGUgKm5vZGUpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDA0OjA0OjEwLjE0NTAzMTE3NloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDE1OTYyMTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGBtd2lmaWV4X3NldF9zdGFfaHRfY2FwYCBpbiBBUCBNb2RlKipcblxuT2theSwgc28gSSBzZWUgdGhhdCBgbXdpZmlleF9zZXRfc3RhX2h0X2NhcGAgZ2V0cyBjYWxsZWQgd2l0aGluIGBtd2lmaWV4X3Byb2Nlc3NfdWFwX2V2ZW50YC4gVGhhdCBtZWFucyB3ZSdyZSBkZWFsaW5nIHdpdGggbWljcm8tQVAgbW9kZSwgd2hpY2ggaW1wbGllcyB0aGUgZGV2aWNlIGlzIG9wZXJhdGluZyBpbiBBUCBtb2RlLiBUaGVyZWZvcmUsIHRoZSBjb2RlICppcyogcmVhY2hhYmxlIOKAkyB0aGF0J3MgdGhlIGZpcnN0IHRoaW5nIHRvIGVzdGFibGlzaC4gTm93LCB0aGUgcXVlc3Rpb24gaXMgaG93IHRvIGFjdHVhbGx5IHRyaWdnZXIgaXQuIEl0IGxvb2tzIGxpa2UgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGFyZSBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAsIHRoYXQncyBob3cgd2UgZ2V0IHRoZXJlLiBIbW0sIGhvbGQgb24gYSBzZWNvbmTigKYgaXNuJ3QgYE1XSUZJRVhfVVNCYCBhIHRyaXN0YXRlPyBXZSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kIHdoZW4gZXhhbWluaW5nIHRoZSBidWlsZCBjb25maWdzLiBBbmQsIGlzIHRoZXJlIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBpbXBhY3QgdGhlIHJlYWNoYWJpbGl0eT8gSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgZm9yIGFueSBvdGhlciByZWxhdGVkIGRlcGVuZGVuY2llcyBqdXN0IHRvIGJlIHN1cmUuIEl0J3MgYWx3YXlzIGJlc3QgdG8gYmUgdGhvcm91Z2ggaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NzExMSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQwNDowNDoxNC4xNjA5OTU2NDJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNzI4MDQ5NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnPTI9Y29uZmlnIE1XSUZJRVhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjQ6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc9MTI9Y29uZmlnIE1XSUZJRVhfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTEzLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBTRDg3ODYvU0Q4Nzg3L1NEODc5Ny9TRDg4ODcvU0Q4ODk3L1NEODk3Ny9TRDg5NzgvU0Q4OTg3L1NEODk5N1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoxNDpcXHRkZXBlbmRzIG9uIE1XSUZJRVggXFx1MDAyNlxcdTAwMjYgTU1DXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMTUtXFx0c2VsZWN0IEZXX0xPQURFUlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc9MjU9Y29uZmlnIE1XSUZJRVhfUENJRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTI2LVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBQQ0lFIDg3NjYvODg5Ny84OTk3XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjI3OlxcdGRlcGVuZHMgb24gTVdJRklFWCBcXHUwMDI2XFx1MDAyNiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yOC1cXHRzZWxlY3QgRldfTE9BREVSXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZz0zNz1jb25maWcgTVdJRklFWF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zOC1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgVVNCODc2Ni84Nzk3Lzg5OTdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6Mzk6XFx0ZGVwZW5kcyBvbiBNV0lGSUVYIFxcdTAwMjZcXHUwMDI2IFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTQwLVxcdHNlbGVjdCBGV19MT0FERVJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMDQ6MDQ6MTQuNTg4MjgwMzU2WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5NjY4MzkyNTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHlzaXMgb2YgdGhlIG13aWZpZXggRHJpdmVyIFBhdGNoKipcblxuQWxyaWdodCwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGZvY3VzIGlzIG9uIHRoZSBjb25maWd1cmF0aW9ucyBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAuIFRob3NlIHNlZW0gdG8gYmUgdGhlIGtleSBmbGFncyBmb3IgdGhpcyBkcml2ZXIuIEkndmUgcGlucG9pbnRlZCBhIGZldyBrZXkgZnVuY3Rpb25zIHRvIHNjcnV0aW5pemU6IGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBhbmQgYG13aWZpZXhfc2V0X3N0YV9odF9jYXBgLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRoYXQgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGhhbmRsZXMgSUVzIChJbmZvcm1hdGlvbiBFbGVtZW50cykuXG5cbk5vdywgbGV0J3MgYnJvYWRlbiB0aGUgc2NvcGUgYSBiaXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nLiBBaCwgaGVyZSdzIGEgZ29vZCBvbmU6IGBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjYCDigJMgdGhhdCdzIGRlZmluaXRlbHkgcmVsZXZhbnQgc2luY2UgaXQgY2FsbHMgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgLiBBbmQgbGV0J3Mgbm90IGZvcmdldCBhYm91dCBgbXdpZmlleF9wcm9jZXNzX3VhcF9ldmVudGAsIHRoYXQgbG9va3MgaW50ZXJlc3RpbmcgdG9vLlxuXG5MZXQncyBxdWlja2x5IHZlcmlmeSB0aGUgcGF0Y2ggaXRzZWxmLiBPa2F5LCB0aGUgcmVsZXZhbnQgc25pcHBldCBpbiBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgYXBwZWFycyB0byBiZSBjaGVja2luZyBmb3IgdGhlIHNpemUgb2YgYHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwYCBhbmQgYmFpbGluZyBpZiB0aGUgZWxlbWVudCBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBleHBlY3RlZCBzaXplLiBUaGlzIGxvb2tzIGxpa2UgYSBzb2xpZCBmaXggdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzL3dyaXRlcy4gVGhpcyBpcyBmdW5jdGlvbmFsLlxuXG5TbywgdG8gc3VtbWFyaXplOiBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAgYXJlIHRoZSBpbXBvcnRhbnQgY29uZmlndXJhdGlvbnMsIGFuZCBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgYW5kIGBtd2lmaWV4X3NldF9zdGFfaHRfY2FwYCBhcmUgdGhlIGtleSBmdW5jdGlvbnMuIFF1aWNrIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aG9zZSBhcmVuJ3QgaW5saW5lLiBOb3BlLCBub3QgaW5saW5lLlxuXG5MZXQncyBjaGVjayB0aG9zZSBkZXBlbmRlbmNpZXMgcmVhbCBxdWljay4gYENGRzgwMjExYCBhbmQgYFVTQmAgYXJlIGRlcGVuZGVuY2llcywgYnV0IHRoZXkgbG9vayBsaWtlIGdlbmVyaWMgZGVwZW5kZW5jaWVzLCBhbmQgYXJlIGxpa2VseSB0byBiZSBlbmFibGVkLiBJJ20gZ29pbmcgdG8gZm9jdXMgbXkgY2hhbmdlcyBvbiBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAgc2luY2UgdGhvc2UgbG9vayB0byBiZSBzcGVjaWZpYyB0byB0aGlzIGRyaXZlci4gT2theSwgSSdtIHJlYWR5IHRvIHNldCB0aGVzZSByZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MDE2LCJPdXRwdXRUb2tlbnMiOjE0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQwNDowNDoyMi41NTUxMjEwODhaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDMxMjk0OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVdJRklFWFwiLFxuICAgIFwiTVdJRklFWF9VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llXCIsXG4gICAgXCJtd2lmaWV4X3NldF9zdGFfaHRfY2FwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIHZhcmlvdXMgSW5mb3JtYXRpb24gRWxlbWVudHMgKElFcykgaW4gdGhlIE1hcnZlbGwgV2lGaSBkcml2ZXIgKG13aWZpZXgpIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMgd2hlbiBwYXJzaW5nIG1hbGljaW91cyBvciBtYWxmb3JtZWQgV2lGaSBiZWFjb25zL21hbmFnZW1lbnQgZnJhbWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgZnV6emVkIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiB0aGUgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1XSUZJRVhcIixcbiAgICBcIk1XSUZJRVhfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiLFxuICAgIFwibXdpZmlleF9zZXRfc3RhX2h0X2NhcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciB2YXJpb3VzIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGluIHRoZSBNYXJ2ZWxsIFdpRmkgZHJpdmVyIChtd2lmaWV4KSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMvd3JpdGVzIHdoZW4gcGFyc2luZyBtYWxpY2lvdXMgb3IgbWFsZm9ybWVkIFdpRmkgYmVhY29ucy9tYW5hZ2VtZW50IGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHJlYWNoZWQgYW5kIGZ1enplZCB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgdGhlIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowj6wg8[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-10 03:32:45 +0000 UTC FinishedAt: 2026-07-10 04:04:24 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MWIFIEX", "MWIFIEX_USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MWIFIEX", "MWIFIEX_USB" ], "series_id": "e8cd6d48-33ef-40e0-8916-f2ff136ed912" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mwifiex_update_bss_desc_with_ie", "mwifiex_set_sta_ht_cap" ], "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+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjAzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfc2V0X3N0YV9odF9jYXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIHZhcmlvdXMgSW5mb3JtYXRpb24gRWxlbWVudHMgKElFcykgaW4gdGhlIE1hcnZlbGwgV2lGaSBkcml2ZXIgKG13aWZpZXgpIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMgd2hlbiBwYXJzaW5nIG1hbGljaW91cyBvciBtYWxmb3JtZWQgV2lGaSBiZWFjb25zL21hbmFnZW1lbnQgZnJhbWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgZnV6emVkIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiB0aGUgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjAzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMTczZTFkNDhkMDJhYTA0MjcyZTBiZjM2ODJlMjY4ZDYwYWJkNTgyN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDEwIDA0OjAzOjUwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG5pbmRleCA5N2MwZWMzYjgyMmU3MC4uOTk3ZTdlMTk1MjViZDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXG5AQCAtMTM4NCw2ICYjNDM7MTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdFx0XHRic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfSFRfQ0FQQUJJTElUWTpcbiYjNDM7XHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9jYXApKVxuJiM0MztcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViY25faHRfY2FwID0gKHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwICopXG4gXHRcdFx0XHRcdChjdXJyZW50X3B0ciAmIzQzO1xuIFx0XHRcdFx0XHRzaXplb2Yoc3RydWN0IGllZWVfdHlwZXNfaGVhZGVyKSk7XG5AQCAtMTM5Miw2ICYjNDM7MTM5NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViZWFjb25fYnVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBXTEFOX0VJRF9IVF9PUEVSQVRJT046XG4mIzQzO1x0XHRcdGlmIChlbGVtZW50X2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uKSlcbiYjNDM7XHRcdFx0XHRicmVhaztcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX2h0X29wZXIgPVxuIFx0XHRcdFx0KHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICYjNDM7XG4gXHRcdFx0XHRcdHNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTtcbkBAIC0xNDAwLDYgJiM0MzsxNDA0LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX1ZIVF9DQVBBQklMSVRZOlxuJiM0MztcdFx0XHRpZiAoZWxlbWVudF9sZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKVxuJiM0MztcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2VkaXNhYmxlXzExYWMgPSBmYWxzZTtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX3ZodF9jYXAgPVxuIFx0XHRcdFx0KHZvaWQgKikoY3VycmVudF9wdHIgJiM0MztcbkBAIC0xNDA5LDYgJiM0MzsxNDE1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcbiBcdFx0XHRcdFx0ICAgICAgYnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX1ZIVF9PUEVSQVRJT046XG4mIzQzO1x0XHRcdGlmIChlbGVtZW50X2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X29wZXJhdGlvbikpXG4mIzQzO1x0XHRcdFx0YnJlYWs7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJjbl92aHRfb3BlciA9XG4gXHRcdFx0XHQodm9pZCAqKShjdXJyZW50X3B0ciAmIzQzO1xuIFx0XHRcdFx0XHQgc2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xuQEAgLTE0MTcsNiAmIzQzOzE0MjUsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuIFx0XHRcdFx0XHQgICAgICBic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfQlNTX0NPRVhfMjA0MDpcbiYjNDM7XHRcdFx0aWYgKCFlbGVtZW50X2xlbilcbiYjNDM7XHRcdFx0XHRicmVhaztcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX2Jzc19jb18yMDQwID0gY3VycmVudF9wdHI7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJzc19jb18yMDQwX29mZnNldCA9XG4gXHRcdFx0XHQodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG5AQCAtMTQyNyw2ICYjNDM7MTQzNyw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHQodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfT1BNT0RFX05PVElGOlxuJiM0MztcdFx0XHRpZiAoIWVsZW1lbnRfbGVuKVxuJiM0MztcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2VvcGVyX21vZGUgPSAodm9pZCAqKWN1cnJlbnRfcHRyO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2VvcGVyX21vZGVfb2Zmc2V0ID1cbiBcdFx0XHRcdFx0KHUxNikoKHU4ICopYnNzX2VudHJ5LVx1MDAzZW9wZXJfbW9kZSAtXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3V0aWwuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmNcbmluZGV4IDdkMzYzMWQyMTIyMzZjLi44NDQyMjNjMDRlMmVmMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmNcbkBAIC03MjEsNyAmIzQzOzcyMSw3IEBAIG13aWZpZXhfc2V0X3N0YV9odF9jYXAoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgY29uc3QgdTggKmllcyxcbiBcbiBcdGh0X2NhcF9pZSA9ICh2b2lkICopY2ZnODAyMTFfZmluZF9pZShXTEFOX0VJRF9IVF9DQVBBQklMSVRZLCBpZXMsXG4gXHRcdFx0XHRcdCAgICAgaWVzX2xlbik7XG4tXHRpZiAoaHRfY2FwX2llKSB7XG4mIzQzO1x0aWYgKGh0X2NhcF9pZSBcdTAwMjZcdTAwMjYgaHRfY2FwX2llLVx1MDAzZWxlbiBcdTAwM2U9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcCkpIHtcbiBcdFx0aHRfY2FwID0gKHZvaWQgKikoaHRfY2FwX2llICYjNDM7IDEpO1xuIFx0XHRub2RlLVx1MDAzZWlzXzExbl9lbmFibGVkID0gMTtcbiBcdFx0bm9kZS1cdTAwM2VtYXhfYW1zZHUgPSBsZTE2X3RvX2NwdShodF9jYXAtXHUwMDNlY2FwX2luZm8pIFx1MDAyNlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjAzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfc2V0X3N0YV9odF9jYXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIHZhcmlvdXMgSW5mb3JtYXRpb24gRWxlbWVudHMgKElFcykgaW4gdGhlIE1hcnZlbGwgV2lGaSBkcml2ZXIgKG13aWZpZXgpIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMgd2hlbiBwYXJzaW5nIG1hbGljaW91cyBvciBtYWxmb3JtZWQgV2lGaSBiZWFjb25zL21hbmFnZW1lbnQgZnJhbWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgZnV6emVkIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiB0aGUgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAxNzNlMWQ0OGQwMmFhMDQyNzJlMGJmMzY4MmUyNjhkNjBhYmQ1ODI3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMTAgMDQ6MDM6NTAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYwppbmRleCA5N2MwZWMzYjgyMmU3MC4uOTk3ZTdlMTk1MjViZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYwpAQCAtMTM4NCw2ICYjNDM7MTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsCiAJCQkJCQkJYnNzX2VudHJ5LSZndDtiZWFjb25fYnVmKTsKIAkJCWJyZWFrOwogCQljYXNlIFdMQU5fRUlEX0hUX0NBUEFCSUxJVFk6CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwKSkKJiM0MzsJCQkJYnJlYWs7CiAJCQlic3NfZW50cnktJmd0O2Jjbl9odF9jYXAgPSAoc3RydWN0IGllZWU4MDIxMV9odF9jYXAgKikKIAkJCQkJKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCXNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTsKQEAgLTEzOTIsNiAmIzQzOzEzOTQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLAogCQkJCQlic3NfZW50cnktJmd0O2JlYWNvbl9idWYpOwogCQkJYnJlYWs7CiAJCWNhc2UgV0xBTl9FSURfSFRfT1BFUkFUSU9OOgomIzQzOwkJCWlmIChlbGVtZW50X2xlbiAmbHQ7IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbikpCiYjNDM7CQkJCWJyZWFrOwogCQkJYnNzX2VudHJ5LSZndDtiY25faHRfb3BlciA9CiAJCQkJKHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCXNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTsKQEAgLTE0MDAsNiAmIzQzOzE0MDQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLAogCQkJCQlic3NfZW50cnktJmd0O2JlYWNvbl9idWYpOwogCQkJYnJlYWs7CiAJCWNhc2UgV0xBTl9FSURfVkhUX0NBUEFCSUxJVFk6CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCkpCiYjNDM7CQkJCWJyZWFrOwogCQkJYnNzX2VudHJ5LSZndDtkaXNhYmxlXzExYWMgPSBmYWxzZTsKIAkJCWJzc19lbnRyeS0mZ3Q7YmNuX3ZodF9jYXAgPQogCQkJCSh2b2lkICopKGN1cnJlbnRfcHRyICYjNDM7CkBAIC0xNDA5LDYgJiM0MzsxNDE1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlciwKIAkJCQkJICAgICAgYnNzX2VudHJ5LSZndDtiZWFjb25fYnVmKTsKIAkJCWJyZWFrOwogCQljYXNlIFdMQU5fRUlEX1ZIVF9PUEVSQVRJT046CiYjNDM7CQkJaWYgKGVsZW1lbnRfbGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X29wZXJhdGlvbikpCiYjNDM7CQkJCWJyZWFrOwogCQkJYnNzX2VudHJ5LSZndDtiY25fdmh0X29wZXIgPQogCQkJCSh2b2lkICopKGN1cnJlbnRfcHRyICYjNDM7CiAJCQkJCSBzaXplb2Yoc3RydWN0IGllZWVfdHlwZXNfaGVhZGVyKSk7CkBAIC0xNDE3LDYgJiM0MzsxNDI1LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlciwKIAkJCQkJICAgICAgYnNzX2VudHJ5LSZndDtiZWFjb25fYnVmKTsKIAkJCWJyZWFrOwogCQljYXNlIFdMQU5fRUlEX0JTU19DT0VYXzIwNDA6CiYjNDM7CQkJaWYgKCFlbGVtZW50X2xlbikKJiM0MzsJCQkJYnJlYWs7CiAJCQlic3NfZW50cnktJmd0O2Jjbl9ic3NfY29fMjA0MCA9IGN1cnJlbnRfcHRyOwogCQkJYnNzX2VudHJ5LSZndDtic3NfY29fMjA0MF9vZmZzZXQgPQogCQkJCSh1MTYpIChjdXJyZW50X3B0ciAtIGJzc19lbnRyeS0mZ3Q7YmVhY29uX2J1Zik7CkBAIC0xNDI3LDYgJiM0MzsxNDM3LDggQEAgaW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlciwKIAkJCQkodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktJmd0O2JlYWNvbl9idWYpOwogCQkJYnJlYWs7CiAJCWNhc2UgV0xBTl9FSURfT1BNT0RFX05PVElGOgomIzQzOwkJCWlmICghZWxlbWVudF9sZW4pCiYjNDM7CQkJCWJyZWFrOwogCQkJYnNzX2VudHJ5LSZndDtvcGVyX21vZGUgPSAodm9pZCAqKWN1cnJlbnRfcHRyOwogCQkJYnNzX2VudHJ5LSZndDtvcGVyX21vZGVfb2Zmc2V0ID0KIAkJCQkJKHUxNikoKHU4ICopYnNzX2VudHJ5LSZndDtvcGVyX21vZGUgLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3V0aWwuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmMKaW5kZXggN2QzNjMxZDIxMjIzNmMuLjg0NDIyM2MwNGUyZWYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmMKQEAgLTcyMSw3ICYjNDM7NzIxLDcgQEAgbXdpZmlleF9zZXRfc3RhX2h0X2NhcChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LCBjb25zdCB1OCAqaWVzLAogCiAJaHRfY2FwX2llID0gKHZvaWQgKiljZmc4MDIxMV9maW5kX2llKFdMQU5fRUlEX0hUX0NBUEFCSUxJVFksIGllcywKIAkJCQkJICAgICBpZXNfbGVuKTsKLQlpZiAoaHRfY2FwX2llKSB7CiYjNDM7CWlmIChodF9jYXBfaWUgJmFtcDsmYW1wOyBodF9jYXBfaWUtJmd0O2xlbiAmZ3Q7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9jYXApKSB7CiAJCWh0X2NhcCA9ICh2b2lkICopKGh0X2NhcF9pZSAmIzQzOyAxKTsKIAkJbm9kZS0mZ3Q7aXNfMTFuX2VuYWJsZWQgPSAxOwogCQlub2RlLSZndDttYXhfYW1zZHUgPSBsZTE2X3RvX2NwdShodF9jYXAtJmd0O2NhcF9pbmZvKSAmYW1wOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAwNDowMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTM2CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogNDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTWFydmVsbCBXaUZpIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgdG91Y2hpbmcgYG13aWZpZXhgIC0gc3BlY2lmaWNhbGx5IGBzY2FuLmNgIGFuZCBgdXRpbC5jYC4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBhZGRpbmcgYm91bmRzIGNoZWNraW5nIGZvciB2YXJpb3VzIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGluIHRoZSBNYXJ2ZWxsIFdpRmkgZHJpdmVyLiBHb29kIG1vdmUsIEkgYWx3YXlzIGFwcHJlY2lhdGUgZGVmZW5zaXZlIHByb2dyYW1taW5nIGxpa2UgdGhpcy4gVGhleSYjMzk7cmUgbWFraW5nIHN1cmUgYGVsZW1lbnRfbGVuYCBkb2VzbiYjMzk7dCBleGNlZWQgdGhlIHNpemUgb2YgdGhpbmdzIGxpa2UgYGllZWU4MDIxMV9odF9jYXBgLCBgaWVlZTgwMjExX3ZodF9jYXBgIGFuZCBzbyBvbiBpbiBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAuICBUaGF0JiMzOTtzIGEgcHJldHR5IHN0YW5kYXJkIGFwcHJvYWNoIHRvIG1pdGlnYXRlIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3dzIHdoZW4gcGFyc2luZyBpbmNvbWluZyBiZWFjb24gb3IgbWFuYWdlbWVudCBmcmFtZXMuIEkgYWxzbyBzZWUgdGhleSYjMzk7cmUgY2hlY2tpbmcgYGh0X2NhcF9pZS0mZ3Q7bGVuYCBpbiBgbXdpZmlleF9zZXRfc3RhX2h0X2NhcGAuIFNvdW5kcyBzb2xpZC4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGZpeCB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMgb3Igd3JpdGVzLiBUaGlzIGlzIGdvb2Qgc3R1ZmYuIEEgbWFsaWNpb3VzIGZyYW1lIHdpdGggYSBjcmFmdGVkIElFIGNvdWxkIGRlZmluaXRlbHkgY2F1c2Ugc29tZSBoZWFkYWNoZXMsIGVzcGVjaWFsbHkgaW4gYSBkcml2ZXIuIFRoZSBuZXh0IHRoaW5nIEkmIzM5O20gdGhpbmtpbmcgaXMgaG93IGNhbiB3ZSB0ZXN0IHRoaXMgYW5kIGZ1enogaXQgZWZmZWN0aXZlbHk/IFNpbmNlIHRoaXMgaXMgYSB3aXJlbGVzcyBkcml2ZXIsIGBtYWM4MDIxMV9od3NpbWAgd291bGQgYmUgdGhlIG9idmlvdXMgY2hvaWNlIGluaXRpYWxseS4gQnV0IGBtd2lmaWV4YCBpcyBoYXJkd2FyZS1zcGVjaWZpYywgc28gSSBoYXZlIHRvIHJlbWVtYmVyIHRoaXMuCgpJJiMzOTttIHdvbmRlcmluZyBpZiBpdCBjYW4gYmUgZnV6emVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIEhhcmR3YXJlIGRyaXZlcnMgYXJlIHVzdWFsbHkgYSBwYWluIHRvIGZ1enogdW5sZXNzIHRoZXJlJiMzOTtzIHNvbWUga2luZCBvZiBoYXJkd2FyZSBlbXVsYXRpb24gbGF5ZXIuIFRoZSBxdWVzdGlvbiBiZWNvbWVzLCBpcyB0aGVyZSBhIFVTQiBpbnRlcmZhY2UgZm9yIGBtd2lmaWV4YD8gTGV0JiMzOTtzIGNoZWNrLiBBaCwgdGhlcmUmIzM5O3MgYG13aWZpZXgvdXNiLmNgLiBFeGNlbGxlbnQhIFVTQiBkcml2ZXJzIGFyZSBtdWNoIGVhc2llciB0byBmdXp6IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFdlIGNvdWxkIHVzZSBkdW1teSBIQ0Qgb3IgcmF3LWdhZGdldCwgd2hpY2ggc3l6a2FsbGVyIHN1cHBvcnRzIGZvciBVU0IgZnV6emluZy4gVGhhdCYjMzk7cyBhIGdvb2QgcGF0aCB0byB0YWtlLiBTbyBpdCBzZWVtcyBsaWtlIHRoaXMgKmlzKiByZWFjaGFibGUgdmlhIFVTQiBmdXp6aW5nLiBOb3csIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCB0aGUgS2NvbmZpZyBmb3IgbXdpZmlleCB0byBzZWUgd2hhdCBjb25maWd1cmF0aW9ucyBhcmUgYXZhaWxhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjAzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNV0lGSUVYJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjI6Y29uZmlnIE1XSUZJRVhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoxMjpjb25maWcgTVdJRklFWF9TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0xMy1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFNEODc4Ni9TRDg3ODcvU0Q4Nzk3L1NEODg4Ny9TRDg4OTcvU0Q4OTc3L1NEODk3OC9TRDg5ODcvU0Q4OTk3XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoyNTpjb25maWcgTVdJRklFWF9QQ0lFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yNi1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFBDSUUgODc2Ni84ODk3Lzg5OTdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjM3OmNvbmZpZyBNV0lGSUVYX1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMzgtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBVU0I4NzY2Lzg3OTcvODk5N1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNzgKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiA3MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFdpLUZpIERyaXZlciBDb25maWd1cmF0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGNvbmZpZ3VyYXRpb25zLCBhbmQgaXQgbG9va3MgbGlrZSBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAgYXJlIHRoZSBtYWluIG9uZXMuIEEgcXVpY2sgbWVudGFsIGNoZWNr4oCmcmlnaHQsIGBNV0lGSUVYX1VTQmAgc3BlY2lmaWNhbGx5IGhhbmRsZXMgdGhlIFVTQiBpbnRlcmZhY2UuIEdvb2QgdG8ga2VlcCB0aGF0IGluIG1pbmQuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBkcml2ZXImIzM5O3MgaW50ZXJuYWxzIGFyZSBpbnRlcmFjdGluZy4gTGV0JiMzOTtzIHNlZSBpZiB0aGUgZnVuY3Rpb25zIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBhbmQgYG13aWZpZXhfc2V0X3N0YV9odF9jYXBgIGFyZSBiZWluZyBjYWxsZWQgYW5kIGluIHdoYXQgY29udGV4dHMuIEkgbmVlZCB0byB0cmFjZSB0aGUgZGF0YSBmbG93IGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMDQ6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaD0xNTM4PWludCBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTQwLVx0XHRcdCAgICAgIHN0cnVjdCBtd2lmaWV4X2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg6MTU0MTppbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTQyLVx0XHRcdFx0ICAgIHN0cnVjdCBtd2lmaWV4X2Jzc2Rlc2NyaXB0b3IgKmJzc19lbnRyeSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYz0xMTEyPW13aWZpZXhfcmV0XzgwMl8xMV9zY2FuX2dldF90bHZfcHRycyhzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTE4MS0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTE4MjppbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xMTgzLVx0XHRcdFx0ICAgIHN0cnVjdCBtd2lmaWV4X2Jzc2Rlc2NyaXB0b3IgKmJzc19lbnRyeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM9MTI5PWludCBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTE3OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYzoxODA6XHRyZXR1cm4gbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShwcml2LVx1MDAzZWFkYXB0ZXIsIGJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xODEtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwMjgKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AgQ2FsbGVycyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7V2hlcmUmIzM5O3MgdGhpcyBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AgZnVuY3Rpb24gZ2V0dGluZyBpbnZva2VkPyYjMzQ7LiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGwgcGF0aHMgdG8gdW5kZXJzdGFuZCBob3cgYW5kIHdoZW4gaXQmIzM5O3MgcG9wdWxhdGluZyB0aGUgQlNTIGRlc2NyaXB0b3IgZGF0YS4gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgaW1wbGljYXRpb25zIOKAkyB0aGlzIGZ1bmN0aW9uIGxpa2VseSBwbGF5cyBhIGNydWNpYWwgcm9sZSBpbiBzY2FubmluZywgYXNzb2NpYXRpb24sIG9yIHBvc3NpYmx5IGV2ZW4gdGhlIGluaXRpYWwgaW5pdGlhbGl6YXRpb24gb2YgbmV0d29yayBpbmZvcm1hdGlvbi4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGJyb2FkZXIgY29udGV4dCB3aXRoaW4gdGhlIE1hcnZlbGwgV2ktRmkgZHJpdmVyIGNvZGUuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNhbGwgZ3JhcGgsIGNyb3NzLXJlZmVyZW5jZSB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbiwgYW5kIHNlZSB3aGljaCBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyBhcmUgaW52b2x2ZWQuIEtub3dpbmcgdGhlIGNhbGxpbmcgY29udGV4dHMgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZSBuZXR3b3JrIGluZm9ybWF0aW9uIGlzIGdhdGhlcmVkIGFuZCB1c2VkLiBUaW1lIHRvIGdldCB0byB3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O213aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg9MTUzNj1pbnQgbXdpZmlleF9nZXRfYnNzX2luZm8oc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTM3LVx0XHRcdCBzdHJ1Y3QgbXdpZmlleF9ic3NfaW5mbyAqKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg6MTUzODppbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTM5LVx0XHRcdCAgICAgIHN0cnVjdCBjZmc4MDIxMV9ic3MgKmJzcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTE2NTU9c3RhdGljIGludCBtd2lmaWV4X3NhdmVfaGlkZGVuX3NzaWRfY2hhbm5lbHMoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE2NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE2Njc6XHRyZXQgPSBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHByaXYsIGJzcywgYnNzX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNjY4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE2OTEtXHQvKiBiZWFjb25faWUgYnVmZmVyIHdhcyBhbGxvY2F0ZWQgaW4gZnVuY3Rpb25cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTY5MjpcdCAqIG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MoKS4gRnJlZSBpdCBub3cuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE2OTMtXHQgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTE2OTk9c3RhdGljIGludCBtd2lmaWV4X3VwZGF0ZV9jdXJyX2Jzc19wYXJhbXMoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE3MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE3MTA6XHRyZXQgPSBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHByaXYsIGJzcywgYnNzX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xNzExLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE3MzAtXHQvKiBiZWFjb25faWUgYnVmZmVyIHdhcyBhbGxvY2F0ZWQgaW4gZnVuY3Rpb25cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmM6MTczMTpcdCAqIG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MoKS4gRnJlZSBpdCBub3cuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE3MzItXHQgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM9NzY9aW50IG13aWZpZXhfcmVxdWVzdF9zZXRfbXVsdGljYXN0X2xpc3Qoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTI4LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jOjEyOTppbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTEzMC1cdFx0XHQgICAgICBzdHJ1Y3QgY2ZnODAyMTFfYnNzICpic3MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTMxOD1pbnQgbXdpZmlleF9ic3Nfc3RhcnQoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgc3RydWN0IGNmZzgwMjExX2JzcyAqYnNzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0zMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MzM3Olx0XHRyZXQgPSBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHByaXYsIGJzcywgYnNzX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTMzOC1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtNDMyLVx0LyogYmVhY29uX2llIGJ1ZmZlciB3YXMgYWxsb2NhdGVkIGluIGZ1bmN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6NDMzOlx0ICogbXdpZmlleF9maWxsX25ld19ic3NfZGVzYygpLiBGcmVlIGl0IG5vdy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy00MzQtXHQgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAwNDowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MzgwCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQlNTIERlc2NyaXB0aW9uIFVwZGF0ZSoqCgpPa2F5LCBzbyBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgaXMgY2xlYXJseSBhIGtleSBmdW5jdGlvbiBmb3IgcHJvY2Vzc2luZyBCU1MgZGVzY3JpcHRpb25zLCBidXQgd2hlcmUgZG9lcyBpdCBmaXQgd2l0aGluIHRoZSBvdmVyYWxsIGZsb3c/IFJpZ2h0LCBpdCYjMzk7cyBjYWxsZWQgZnJvbSBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AsIHdoaWNoIGl0c2VsZiBpcyBpbnZva2VkIGR1cmluZyBzZXZlcmFsIGNydWNpYWwgc3RhZ2VzOiB0aGUgaW5pdGlhbCBzdGFydHVwIG9mIGEgQlNTIHZpYSBgbXdpZmlleF9ic3Nfc3RhcnRgLCB1cGRhdGluZyBjdXJyZW50IEJTUyBwYXJhbWV0ZXJzIHdpdGggYG13aWZpZXhfdXBkYXRlX2N1cnJfYnNzX3BhcmFtc2AsIGFuZCBldmVuIHdoZW4gc2F2aW5nIGNoYW5uZWxzIGZvciBoaWRkZW4gU1NJRHMgdGhyb3VnaCBgbXdpZmlleF9zYXZlX2hpZGRlbl9zc2lkX2NoYW5uZWxzYC4gU28sIHRoaXMgc3VnZ2VzdHMgdGhhdCBpdCBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIGVzc2VudGlhbCBjb25uZWN0aW9uIGFuZCBzY2FubmluZyBwcm9jZWR1cmVzIOKAkyB0aGUgc3RhbmRhcmQgb3BlcmF0aW9ucy4gTm93LCBnaXZlbiB0aGF0IGNvbnRleHQsIEkgbmVlZCB0byBjaGVjayB0aGUgY2xvc2VseSByZWxhdGVkIGBtd2lmaWV4X3NldF9zdGFfaHRfY2FwYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMDQ6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXdpZmlleF9zZXRfc3RhX2h0X2NhcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaD0xNTkwPXZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg6MTU5MTptd2lmaWV4X3NldF9zdGFfaHRfY2FwKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsIGNvbnN0IHU4ICppZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1OTItXHRcdCAgICAgICBpbnQgaWVzX2xlbiwgc3RydWN0IG13aWZpZXhfc3RhX25vZGUgKm5vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91YXBfZXZlbnQuYz05ND1pbnQgbXdpZmlleF9wcm9jZXNzX3VhcF9ldmVudChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91YXBfZXZlbnQuYy0xNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdWFwX2V2ZW50LmM6MTQ5Olx0XHRtd2lmaWV4X3NldF9zdGFfaHRfY2FwKHByaXYsIHNpbmZvLVx1MDAzZWFzc29jX3JlcV9pZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdWFwX2V2ZW50LmMtMTUwLVx0XHRcdFx0ICAgICAgIHNpbmZvLVx1MDAzZWFzc29jX3JlcV9pZXNfbGVuLCBub2RlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jPTcxMj12b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jOjcxMzptd2lmaWV4X3NldF9zdGFfaHRfY2FwKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsIGNvbnN0IHU4ICppZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jLTcxNC1cdFx0ICAgICAgIGludCBpZXNfbGVuLCBzdHJ1Y3QgbXdpZmlleF9zdGFfbm9kZSAqbm9kZSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMDQ6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzExMQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDExMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBgbXdpZmlleF9zZXRfc3RhX2h0X2NhcGAgaW4gQVAgTW9kZSoqCgpPa2F5LCBzbyBJIHNlZSB0aGF0IGBtd2lmaWV4X3NldF9zdGFfaHRfY2FwYCBnZXRzIGNhbGxlZCB3aXRoaW4gYG13aWZpZXhfcHJvY2Vzc191YXBfZXZlbnRgLiBUaGF0IG1lYW5zIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggbWljcm8tQVAgbW9kZSwgd2hpY2ggaW1wbGllcyB0aGUgZGV2aWNlIGlzIG9wZXJhdGluZyBpbiBBUCBtb2RlLiBUaGVyZWZvcmUsIHRoZSBjb2RlICppcyogcmVhY2hhYmxlIOKAkyB0aGF0JiMzOTtzIHRoZSBmaXJzdCB0aGluZyB0byBlc3RhYmxpc2guIE5vdywgdGhlIHF1ZXN0aW9uIGlzIGhvdyB0byBhY3R1YWxseSB0cmlnZ2VyIGl0LiBJdCBsb29rcyBsaWtlIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBhcmUgYE1XSUZJRVhgIGFuZCBgTVdJRklFWF9VU0JgLCB0aGF0JiMzOTtzIGhvdyB3ZSBnZXQgdGhlcmUuIEhtbSwgaG9sZCBvbiBhIHNlY29uZOKApiBpc24mIzM5O3QgYE1XSUZJRVhfVVNCYCBhIHRyaXN0YXRlPyBXZSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kIHdoZW4gZXhhbWluaW5nIHRoZSBidWlsZCBjb25maWdzLiBBbmQsIGlzIHRoZXJlIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBpbXBhY3QgdGhlIHJlYWNoYWJpbGl0eT8gSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgZm9yIGFueSBvdGhlciByZWxhdGVkIGRlcGVuZGVuY2llcyBqdXN0IHRvIGJlIHN1cmUuIEl0JiMzOTtzIGFsd2F5cyBiZXN0IHRvIGJlIHRob3JvdWdoIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDA0OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZz0yPWNvbmZpZyBNV0lGSUVYXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBXaUZpLUV4IERyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6NDpcdGRlcGVuZHMgb24gQ0ZHODAyMTFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTUtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc9MTI9Y29uZmlnIE1XSUZJRVhfU0RJT1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMTMtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBTRDg3ODYvU0Q4Nzg3L1NEODc5Ny9TRDg4ODcvU0Q4ODk3L1NEODk3Ny9TRDg5NzgvU0Q4OTg3L1NEODk5N1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6MTQ6XHRkZXBlbmRzIG9uIE1XSUZJRVggXHUwMDI2XHUwMDI2IE1NQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMTUtXHRzZWxlY3QgRldfTE9BREVSXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc9MjU9Y29uZmlnIE1XSUZJRVhfUENJRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMjYtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBQQ0lFIDg3NjYvODg5Ny84OTk3XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoyNzpcdGRlcGVuZHMgb24gTVdJRklFWCBcdTAwMjZcdTAwMjYgUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yOC1cdHNlbGVjdCBGV19MT0FERVJcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZz0zNz1jb25maWcgTVdJRklFWF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTM4LVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgVVNCODc2Ni84Nzk3Lzg5OTdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjM5Olx0ZGVwZW5kcyBvbiBNV0lGSUVYIFx1MDAyNlx1MDAyNiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTQwLVx0c2VsZWN0IEZXX0xPQURFUlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAwNDowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MDE2CgkJCQkJCQlvdXRwdXQ6IDE0MAoJCQkJCQkJdGhvdWdodHM6IDQ5OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgbXdpZmlleCBEcml2ZXIgUGF0Y2gqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgY29uZmlndXJhdGlvbnMgYE1XSUZJRVhgIGFuZCBgTVdJRklFWF9VU0JgLiBUaG9zZSBzZWVtIHRvIGJlIHRoZSBrZXkgZmxhZ3MgZm9yIHRoaXMgZHJpdmVyLiBJJiMzOTt2ZSBwaW5wb2ludGVkIGEgZmV3IGtleSBmdW5jdGlvbnMgdG8gc2NydXRpbml6ZTogYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGFuZCBgbXdpZmlleF9zZXRfc3RhX2h0X2NhcGAuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgaGFuZGxlcyBJRXMgKEluZm9ybWF0aW9uIEVsZW1lbnRzKS4KCk5vdywgbGV0JiMzOTtzIGJyb2FkZW4gdGhlIHNjb3BlIGEgYml0LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcuIEFoLCBoZXJlJiMzOTtzIGEgZ29vZCBvbmU6IGBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjYCDigJMgdGhhdCYjMzk7cyBkZWZpbml0ZWx5IHJlbGV2YW50IHNpbmNlIGl0IGNhbGxzIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYC4gQW5kIGxldCYjMzk7cyBub3QgZm9yZ2V0IGFib3V0IGBtd2lmaWV4X3Byb2Nlc3NfdWFwX2V2ZW50YCwgdGhhdCBsb29rcyBpbnRlcmVzdGluZyB0b28uCgpMZXQmIzM5O3MgcXVpY2tseSB2ZXJpZnkgdGhlIHBhdGNoIGl0c2VsZi4gT2theSwgdGhlIHJlbGV2YW50IHNuaXBwZXQgaW4gYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGFwcGVhcnMgdG8gYmUgY2hlY2tpbmcgZm9yIHRoZSBzaXplIG9mIGBzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcGAgYW5kIGJhaWxpbmcgaWYgdGhlIGVsZW1lbnQgbGVuZ3RoIGlzIGxlc3MgdGhhbiB0aGUgZXhwZWN0ZWQgc2l6ZS4gVGhpcyBsb29rcyBsaWtlIGEgc29saWQgZml4IHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMuIFRoaXMgaXMgZnVuY3Rpb25hbC4KClNvLCB0byBzdW1tYXJpemU6IGBNV0lGSUVYYCBhbmQgYE1XSUZJRVhfVVNCYCBhcmUgdGhlIGltcG9ydGFudCBjb25maWd1cmF0aW9ucywgYW5kIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBhbmQgYG13aWZpZXhfc2V0X3N0YV9odF9jYXBgIGFyZSB0aGUga2V5IGZ1bmN0aW9ucy4gUXVpY2sgY2hlY2sgdG8gbWFrZSBzdXJlIHRob3NlIGFyZW4mIzM5O3QgaW5saW5lLiBOb3BlLCBub3QgaW5saW5lLgoKTGV0JiMzOTtzIGNoZWNrIHRob3NlIGRlcGVuZGVuY2llcyByZWFsIHF1aWNrLiBgQ0ZHODAyMTFgIGFuZCBgVVNCYCBhcmUgZGVwZW5kZW5jaWVzLCBidXQgdGhleSBsb29rIGxpa2UgZ2VuZXJpYyBkZXBlbmRlbmNpZXMsIGFuZCBhcmUgbGlrZWx5IHRvIGJlIGVuYWJsZWQuIEkmIzM5O20gZ29pbmcgdG8gZm9jdXMgbXkgY2hhbmdlcyBvbiBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAgc2luY2UgdGhvc2UgbG9vayB0byBiZSBzcGVjaWZpYyB0byB0aGlzIGRyaXZlci4gT2theSwgSSYjMzk7bSByZWFkeSB0byBzZXQgdGhlc2UgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMDQ6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01XSUZJRVgmIzM0OywKICAgICYjMzQ7TVdJRklFWF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llJiMzNDssCiAgICAmIzM0O213aWZpZXhfc2V0X3N0YV9odF9jYXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIHZhcmlvdXMgSW5mb3JtYXRpb24gRWxlbWVudHMgKElFcykgaW4gdGhlIE1hcnZlbGwgV2lGaSBkcml2ZXIgKG13aWZpZXgpIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMgd2hlbiBwYXJzaW5nIG1hbGljaW91cyBvciBtYWxmb3JtZWQgV2lGaSBiZWFjb25zL21hbmFnZW1lbnQgZnJhbWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgZnV6emVkIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiB0aGUgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNV0lGSUVYJiMzNDssCiAgICAmIzM0O01XSUZJRVhfVVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZSYjMzQ7LAogICAgJiMzNDttd2lmaWV4X3NldF9zdGFfaHRfY2FwJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciB2YXJpb3VzIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGluIHRoZSBNYXJ2ZWxsIFdpRmkgZHJpdmVyIChtd2lmaWV4KSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMvd3JpdGVzIHdoZW4gcGFyc2luZyBtYWxpY2lvdXMgb3IgbWFsZm9ybWVkIFdpRmkgYmVhY29ucy9tYW5hZ2VtZW50IGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHJlYWNoZWQgYW5kIGZ1enplZCB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgdGhlIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDA0OjAzOjUyLjA5Nzk1NzU5MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwNTM3NDg3ODU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1XSUZJRVhcIixcbiAgICBcIk1XSUZJRVhfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiLFxuICAgIFwibXdpZmlleF9zZXRfc3RhX2h0X2NhcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciB2YXJpb3VzIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGluIHRoZSBNYXJ2ZWxsIFdpRmkgZHJpdmVyIChtd2lmaWV4KSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMvd3JpdGVzIHdoZW4gcGFyc2luZyBtYWxpY2lvdXMgb3IgbWFsZm9ybWVkIFdpRmkgYmVhY29ucy9tYW5hZ2VtZW50IGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHJlYWNoZWQgYW5kIGZ1enplZCB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgdGhlIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMDQ6MDM6NTIuMDk3OTY2NjIzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjUyNzI5OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAxNzNlMWQ0OGQwMmFhMDQyNzJlMGJmMzY4MmUyNjhkNjBhYmQ1ODI3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDEwIDA0OjAzOjUwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXFxuaW5kZXggOTdjMGVjM2I4MjJlNzAuLjk5N2U3ZTE5NTI1YmQ5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jXFxuQEAgLTEzODQsNiArMTM4NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdGJzc19lbnRyeS1cXHUwMDNlYmVhY29uX2J1Zik7XFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRjYXNlIFdMQU5fRUlEX0hUX0NBUEFCSUxJVFk6XFxuK1xcdFxcdFxcdGlmIChlbGVtZW50X2xlbiBcXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcCkpXFxuK1xcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl9odF9jYXAgPSAoc3RydWN0IGllZWU4MDIxMV9odF9jYXAgKilcXG4gXFx0XFx0XFx0XFx0XFx0KGN1cnJlbnRfcHRyICtcXG4gXFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcbkBAIC0xMzkyLDYgKzEzOTQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9IVF9PUEVSQVRJT046XFxuK1xcdFxcdFxcdGlmIChlbGVtZW50X2xlbiBcXHUwMDNjIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbikpXFxuK1xcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl9odF9vcGVyID1cXG4gXFx0XFx0XFx0XFx0KHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uICopKGN1cnJlbnRfcHRyICtcXG4gXFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcbkBAIC0xNDAwLDYgKzE0MDQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9WSFRfQ0FQQUJJTElUWTpcXG4rXFx0XFx0XFx0aWYgKGVsZW1lbnRfbGVuIFxcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCkpXFxuK1xcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWRpc2FibGVfMTFhYyA9IGZhbHNlO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZWJjbl92aHRfY2FwID1cXG4gXFx0XFx0XFx0XFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xcbkBAIC0xNDA5LDYgKzE0MTUsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9WSFRfT1BFUkFUSU9OOlxcbitcXHRcXHRcXHRpZiAoZWxlbWVudF9sZW4gXFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV92aHRfb3BlcmF0aW9uKSlcXG4rXFx0XFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdFxcdGJzc19lbnRyeS1cXHUwMDNlYmNuX3ZodF9vcGVyID1cXG4gXFx0XFx0XFx0XFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xcbiBcXHRcXHRcXHRcXHRcXHQgc2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xcbkBAIC0xNDE3LDYgKzE0MjUsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9CU1NfQ09FWF8yMDQwOlxcbitcXHRcXHRcXHRpZiAoIWVsZW1lbnRfbGVuKVxcbitcXHRcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0XFx0YnNzX2VudHJ5LVxcdTAwM2ViY25fYnNzX2NvXzIwNDAgPSBjdXJyZW50X3B0cjtcXG4gXFx0XFx0XFx0YnNzX2VudHJ5LVxcdTAwM2Vic3NfY29fMjA0MF9vZmZzZXQgPVxcbiBcXHRcXHRcXHRcXHQodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbkBAIC0xNDI3LDYgKzE0MzcsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxcbiBcXHRcXHRcXHRcXHQodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktXFx1MDAzZWJlYWNvbl9idWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBXTEFOX0VJRF9PUE1PREVfTk9USUY6XFxuK1xcdFxcdFxcdGlmICghZWxlbWVudF9sZW4pXFxuK1xcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRic3NfZW50cnktXFx1MDAzZW9wZXJfbW9kZSA9ICh2b2lkICopY3VycmVudF9wdHI7XFxuIFxcdFxcdFxcdGJzc19lbnRyeS1cXHUwMDNlb3Blcl9tb2RlX29mZnNldCA9XFxuIFxcdFxcdFxcdFxcdFxcdCh1MTYpKCh1OCAqKWJzc19lbnRyeS1cXHUwMDNlb3Blcl9tb2RlIC1cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3V0aWwuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmNcXG5pbmRleCA3ZDM2MzFkMjEyMjM2Yy4uODQ0MjIzYzA0ZTJlZjMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3V0aWwuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmNcXG5AQCAtNzIxLDcgKzcyMSw3IEBAIG13aWZpZXhfc2V0X3N0YV9odF9jYXAoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgY29uc3QgdTggKmllcyxcXG4gXFxuIFxcdGh0X2NhcF9pZSA9ICh2b2lkICopY2ZnODAyMTFfZmluZF9pZShXTEFOX0VJRF9IVF9DQVBBQklMSVRZLCBpZXMsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgaWVzX2xlbik7XFxuLVxcdGlmIChodF9jYXBfaWUpIHtcXG4rXFx0aWYgKGh0X2NhcF9pZSBcXHUwMDI2XFx1MDAyNiBodF9jYXBfaWUtXFx1MDAzZWxlbiBcXHUwMDNlPSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9jYXApKSB7XFxuIFxcdFxcdGh0X2NhcCA9ICh2b2lkICopKGh0X2NhcF9pZSArIDEpO1xcbiBcXHRcXHRub2RlLVxcdTAwM2Vpc18xMW5fZW5hYmxlZCA9IDE7XFxuIFxcdFxcdG5vZGUtXFx1MDAzZW1heF9hbXNkdSA9IGxlMTZfdG9fY3B1KGh0X2NhcC1cXHUwMDNlY2FwX2luZm8pIFxcdTAwMjZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMDQ6MDM6NTIuNjY0MDc4NTk1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTk3MTM1OTY0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNV0lGSUVYXCIsXG4gICAgXCJNV0lGSUVYX1VTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVcIixcbiAgICBcIm13aWZpZXhfc2V0X3N0YV9odF9jYXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgdmFyaW91cyBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBpbiB0aGUgTWFydmVsbCBXaUZpIGRyaXZlciAobXdpZmlleCkgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzL3dyaXRlcyB3aGVuIHBhcnNpbmcgbWFsaWNpb3VzIG9yIG1hbGZvcm1lZCBXaUZpIGJlYWNvbnMvbWFuYWdlbWVudCBmcmFtZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGNhbiBiZSByZWFjaGVkIGFuZCBmdXp6ZWQgdmlhIHRoZSBVU0IgaW50ZXJmYWNlIG9mIHRoZSBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMTczZTFkNDhkMDJhYTA0MjcyZTBiZjM2ODJlMjY4ZDYwYWJkNTgyN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDEwIDA0OjAzOjUwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmNcbmluZGV4IDk3YzBlYzNiODIyZTcwLi45OTdlN2UxOTUyNWJkOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmNcbkBAIC0xMzg0LDYgKzEzODQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuIFx0XHRcdFx0XHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIFdMQU5fRUlEX0hUX0NBUEFCSUxJVFk6XG4rXHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9jYXApKVxuK1x0XHRcdFx0YnJlYWs7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJjbl9odF9jYXAgPSAoc3RydWN0IGllZWU4MDIxMV9odF9jYXAgKilcbiBcdFx0XHRcdFx0KGN1cnJlbnRfcHRyICtcbiBcdFx0XHRcdFx0c2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVzX2hlYWRlcikpO1xuQEAgLTEzOTIsNiArMTM5NCw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdGJzc19lbnRyeS1cdTAwM2ViZWFjb25fYnVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBXTEFOX0VJRF9IVF9PUEVSQVRJT046XG4rXHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9odF9vcGVyYXRpb24pKVxuK1x0XHRcdFx0YnJlYWs7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJjbl9odF9vcGVyID1cbiBcdFx0XHRcdChzdHJ1Y3QgaWVlZTgwMjExX2h0X29wZXJhdGlvbiAqKShjdXJyZW50X3B0ciArXG4gXHRcdFx0XHRcdHNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTtcbkBAIC0xNDAwLDYgKzE0MDQsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuIFx0XHRcdFx0XHRic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfVkhUX0NBUEFCSUxJVFk6XG4rXHRcdFx0aWYgKGVsZW1lbnRfbGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV92aHRfY2FwKSlcbitcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2VkaXNhYmxlXzExYWMgPSBmYWxzZTtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX3ZodF9jYXAgPVxuIFx0XHRcdFx0KHZvaWQgKikoY3VycmVudF9wdHIgK1xuQEAgLTE0MDksNiArMTQxNSw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHRcdCAgICAgIGJzc19lbnRyeS1cdTAwM2ViZWFjb25fYnVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBXTEFOX0VJRF9WSFRfT1BFUkFUSU9OOlxuK1x0XHRcdGlmIChlbGVtZW50X2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X29wZXJhdGlvbikpXG4rXHRcdFx0XHRicmVhaztcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlYmNuX3ZodF9vcGVyID1cbiBcdFx0XHRcdCh2b2lkICopKGN1cnJlbnRfcHRyICtcbiBcdFx0XHRcdFx0IHNpemVvZihzdHJ1Y3QgaWVlZV90eXBlc19oZWFkZXIpKTtcbkBAIC0xNDE3LDYgKzE0MjUsOCBAQCBpbnQgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLFxuIFx0XHRcdFx0XHQgICAgICBic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfQlNTX0NPRVhfMjA0MDpcbitcdFx0XHRpZiAoIWVsZW1lbnRfbGVuKVxuK1x0XHRcdFx0YnJlYWs7XG4gXHRcdFx0YnNzX2VudHJ5LVx1MDAzZWJjbl9ic3NfY29fMjA0MCA9IGN1cnJlbnRfcHRyO1xuIFx0XHRcdGJzc19lbnRyeS1cdTAwM2Vic3NfY29fMjA0MF9vZmZzZXQgPVxuIFx0XHRcdFx0KHUxNikgKGN1cnJlbnRfcHRyIC0gYnNzX2VudHJ5LVx1MDAzZWJlYWNvbl9idWYpO1xuQEAgLTE0MjcsNiArMTQzNyw4IEBAIGludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXG4gXHRcdFx0XHQodTE2KSAoY3VycmVudF9wdHIgLSBic3NfZW50cnktXHUwMDNlYmVhY29uX2J1Zik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGNhc2UgV0xBTl9FSURfT1BNT0RFX05PVElGOlxuK1x0XHRcdGlmICghZWxlbWVudF9sZW4pXG4rXHRcdFx0XHRicmVhaztcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlb3Blcl9tb2RlID0gKHZvaWQgKiljdXJyZW50X3B0cjtcbiBcdFx0XHRic3NfZW50cnktXHUwMDNlb3Blcl9tb2RlX29mZnNldCA9XG4gXHRcdFx0XHRcdCh1MTYpKCh1OCAqKWJzc19lbnRyeS1cdTAwM2VvcGVyX21vZGUgLVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jXG5pbmRleCA3ZDM2MzFkMjEyMjM2Yy4uODQ0MjIzYzA0ZTJlZjMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jXG5AQCAtNzIxLDcgKzcyMSw3IEBAIG13aWZpZXhfc2V0X3N0YV9odF9jYXAoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgY29uc3QgdTggKmllcyxcbiBcbiBcdGh0X2NhcF9pZSA9ICh2b2lkICopY2ZnODAyMTFfZmluZF9pZShXTEFOX0VJRF9IVF9DQVBBQklMSVRZLCBpZXMsXG4gXHRcdFx0XHRcdCAgICAgaWVzX2xlbik7XG4tXHRpZiAoaHRfY2FwX2llKSB7XG4rXHRpZiAoaHRfY2FwX2llIFx1MDAyNlx1MDAyNiBodF9jYXBfaWUtXHUwMDNlbGVuIFx1MDAzZT0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwKSkge1xuIFx0XHRodF9jYXAgPSAodm9pZCAqKShodF9jYXBfaWUgKyAxKTtcbiBcdFx0bm9kZS1cdTAwM2Vpc18xMW5fZW5hYmxlZCA9IDE7XG4gXHRcdG5vZGUtXHUwMDNlbWF4X2Ftc2R1ID0gbGUxNl90b19jcHUoaHRfY2FwLVx1MDAzZWNhcF9pbmZvKSBcdTAwMjZcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDA0OjAzOjUyLjY2NDA4MDM4NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcxOTY3MjU3MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNYXJ2ZWxsIFdpRmkgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQncyB0b3VjaGluZyBgbXdpZmlleGAgLSBzcGVjaWZpY2FsbHkgYHNjYW4uY2AgYW5kIGB1dGlsLmNgLiBJdCBsb29rcyBsaWtlIHRoZXkncmUgYWRkaW5nIGJvdW5kcyBjaGVja2luZyBmb3IgdmFyaW91cyBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBpbiB0aGUgTWFydmVsbCBXaUZpIGRyaXZlci4gR29vZCBtb3ZlLCBJIGFsd2F5cyBhcHByZWNpYXRlIGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBsaWtlIHRoaXMuIFRoZXkncmUgbWFraW5nIHN1cmUgYGVsZW1lbnRfbGVuYCBkb2Vzbid0IGV4Y2VlZCB0aGUgc2l6ZSBvZiB0aGluZ3MgbGlrZSBgaWVlZTgwMjExX2h0X2NhcGAsIGBpZWVlODAyMTFfdmh0X2NhcGAgYW5kIHNvIG9uIGluIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYC4gIFRoYXQncyBhIHByZXR0eSBzdGFuZGFyZCBhcHByb2FjaCB0byBtaXRpZ2F0ZSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93cyB3aGVuIHBhcnNpbmcgaW5jb21pbmcgYmVhY29uIG9yIG1hbmFnZW1lbnQgZnJhbWVzLiBJIGFsc28gc2VlIHRoZXkncmUgY2hlY2tpbmcgYGh0X2NhcF9pZS1cdTAwM2VsZW5gIGluIGBtd2lmaWV4X3NldF9zdGFfaHRfY2FwYC4gU291bmRzIHNvbGlkLlxuXG5UaGlzIGlzIGEgZnVuY3Rpb25hbCBmaXggdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzIG9yIHdyaXRlcy4gVGhpcyBpcyBnb29kIHN0dWZmLiBBIG1hbGljaW91cyBmcmFtZSB3aXRoIGEgY3JhZnRlZCBJRSBjb3VsZCBkZWZpbml0ZWx5IGNhdXNlIHNvbWUgaGVhZGFjaGVzLCBlc3BlY2lhbGx5IGluIGEgZHJpdmVyLiBUaGUgbmV4dCB0aGluZyBJJ20gdGhpbmtpbmcgaXMgaG93IGNhbiB3ZSB0ZXN0IHRoaXMgYW5kIGZ1enogaXQgZWZmZWN0aXZlbHk/IFNpbmNlIHRoaXMgaXMgYSB3aXJlbGVzcyBkcml2ZXIsIGBtYWM4MDIxMV9od3NpbWAgd291bGQgYmUgdGhlIG9idmlvdXMgY2hvaWNlIGluaXRpYWxseS4gQnV0IGBtd2lmaWV4YCBpcyBoYXJkd2FyZS1zcGVjaWZpYywgc28gSSBoYXZlIHRvIHJlbWVtYmVyIHRoaXMuXG5cbkknbSB3b25kZXJpbmcgaWYgaXQgY2FuIGJlIGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBIYXJkd2FyZSBkcml2ZXJzIGFyZSB1c3VhbGx5IGEgcGFpbiB0byBmdXp6IHVubGVzcyB0aGVyZSdzIHNvbWUga2luZCBvZiBoYXJkd2FyZSBlbXVsYXRpb24gbGF5ZXIuIFRoZSBxdWVzdGlvbiBiZWNvbWVzLCBpcyB0aGVyZSBhIFVTQiBpbnRlcmZhY2UgZm9yIGBtd2lmaWV4YD8gTGV0J3MgY2hlY2suIEFoLCB0aGVyZSdzIGBtd2lmaWV4L3VzYi5jYC4gRXhjZWxsZW50ISBVU0IgZHJpdmVycyBhcmUgbXVjaCBlYXNpZXIgdG8gZnV6eiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBXZSBjb3VsZCB1c2UgZHVtbXkgSENEIG9yIHJhdy1nYWRnZXQsIHdoaWNoIHN5emthbGxlciBzdXBwb3J0cyBmb3IgVVNCIGZ1enppbmcuIFRoYXQncyBhIGdvb2QgcGF0aCB0byB0YWtlLiBTbyBpdCBzZWVtcyBsaWtlIHRoaXMgKmlzKiByZWFjaGFibGUgdmlhIFVTQiBmdXp6aW5nLiBOb3csIGxldCdzIHRha2UgYSBsb29rIGF0IHRoZSBLY29uZmlnIGZvciBtd2lmaWV4IHRvIHNlZSB3aGF0IGNvbmZpZ3VyYXRpb25zIGFyZSBhdmFpbGFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5MzYsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MjIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQwNDowMzo1OS44NjA4MDc1OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTQ3MzAzMTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1XSUZJRVhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoyOmNvbmZpZyBNV0lGSUVYXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBXaUZpLUV4IERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjEyOmNvbmZpZyBNV0lGSUVYX1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgU0Q4Nzg2L1NEODc4Ny9TRDg3OTcvU0Q4ODg3L1NEODg5Ny9TRDg5NzcvU0Q4OTc4L1NEODk4Ny9TRDg5OTdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoyNTpjb25maWcgTVdJRklFWF9QQ0lFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMjYtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgV2lGaS1FeCBEcml2ZXIgZm9yIFBDSUUgODc2Ni84ODk3Lzg5OTdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzozNzpjb25maWcgTVdJRklFWF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zOC1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgVVNCODc2Ni84Nzk3Lzg5OTdcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDA0OjA0OjAwLjMxNTU0MjQwNFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MTk2MTU1NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBXaS1GaSBEcml2ZXIgQ29uZmlndXJhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgY29uZmlndXJhdGlvbnMsIGFuZCBpdCBsb29rcyBsaWtlIGBNV0lGSUVYYCBhbmQgYE1XSUZJRVhfVVNCYCBhcmUgdGhlIG1haW4gb25lcy4gQSBxdWljayBtZW50YWwgY2hlY2vigKZyaWdodCwgYE1XSUZJRVhfVVNCYCBzcGVjaWZpY2FsbHkgaGFuZGxlcyB0aGUgVVNCIGludGVyZmFjZS4gR29vZCB0byBrZWVwIHRoYXQgaW4gbWluZC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGRyaXZlcidzIGludGVybmFscyBhcmUgaW50ZXJhY3RpbmcuIExldCdzIHNlZSBpZiB0aGUgZnVuY3Rpb25zIGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBhbmQgYG13aWZpZXhfc2V0X3N0YV9odF9jYXBgIGFyZSBiZWluZyBjYWxsZWQgYW5kIGluIHdoYXQgY29udGV4dHMuIEkgbmVlZCB0byB0cmFjZSB0aGUgZGF0YSBmbG93IGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyNzgsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQwNDowNDowMy4xMzUxNTkzODhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg0OTMxOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg9MTUzOD1pbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaC0xNTQwLVxcdFxcdFxcdCAgICAgIHN0cnVjdCBtd2lmaWV4X2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oOjE1NDE6aW50IG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1NDItXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtd2lmaWV4X2Jzc2Rlc2NyaXB0b3IgKmJzc19lbnRyeSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTExMTI9bXdpZmlleF9yZXRfODAyXzExX3NjYW5fZ2V0X3Rsdl9wdHJzKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTExODEtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYzoxMTgyOmludCBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3NjYW4uYy0xMTgzLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXdpZmlleF9ic3NkZXNjcmlwdG9yICpic3NfZW50cnkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM9MTI5PWludCBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmMtMTc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYzoxODA6XFx0cmV0dXJuIG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWUocHJpdi1cXHUwMDNlYWRhcHRlciwgYnNzX2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xODEtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQwNDowNDowMy4xOTM2NTU2NTdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTEwMzE3NjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AgQ2FsbGVycyoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW4uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoZXJlJ3MgdGhpcyBgbXdpZmlleF9maWxsX25ld19ic3NfZGVzY2AgZnVuY3Rpb24gZ2V0dGluZyBpbnZva2VkP1wiLiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGwgcGF0aHMgdG8gdW5kZXJzdGFuZCBob3cgYW5kIHdoZW4gaXQncyBwb3B1bGF0aW5nIHRoZSBCU1MgZGVzY3JpcHRvciBkYXRhLiBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucyDigJMgdGhpcyBmdW5jdGlvbiBsaWtlbHkgcGxheXMgYSBjcnVjaWFsIHJvbGUgaW4gc2Nhbm5pbmcsIGFzc29jaWF0aW9uLCBvciBwb3NzaWJseSBldmVuIHRoZSBpbml0aWFsIGluaXRpYWxpemF0aW9uIG9mIG5ldHdvcmsgaW5mb3JtYXRpb24uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBicm9hZGVyIGNvbnRleHQgd2l0aGluIHRoZSBNYXJ2ZWxsIFdpLUZpIGRyaXZlciBjb2RlLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNhbGwgZ3JhcGgsIGNyb3NzLXJlZmVyZW5jZSB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbiwgYW5kIHNlZSB3aGljaCBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyBhcmUgaW52b2x2ZWQuIEtub3dpbmcgdGhlIGNhbGxpbmcgY29udGV4dHMgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZSBuZXR3b3JrIGluZm9ybWF0aW9uIGlzIGdhdGhlcmVkIGFuZCB1c2VkLiBUaW1lIHRvIGdldCB0byB3b3JrLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDI4LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMDQ6MDQ6MDYuMzAzOTc0ODU3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2Mjk0NTE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oPTE1MzY9aW50IG13aWZpZXhfZ2V0X2Jzc19pbmZvKHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1MzctXFx0XFx0XFx0IHN0cnVjdCBtd2lmaWV4X2Jzc19pbmZvICopO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg6MTUzODppbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmgtMTUzOS1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2ZnODAyMTFfYnNzICpic3MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTE2NTU9c3RhdGljIGludCBtd2lmaWV4X3NhdmVfaGlkZGVuX3NzaWRfY2hhbm5lbHMoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTY2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE2Njc6XFx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE2NjgtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTY5MS1cXHQvKiBiZWFjb25faWUgYnVmZmVyIHdhcyBhbGxvY2F0ZWQgaW4gZnVuY3Rpb25cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE2OTI6XFx0ICogbXdpZmlleF9maWxsX25ld19ic3NfZGVzYygpLiBGcmVlIGl0IG5vdy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE2OTMtXFx0ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jPTE2OTk9c3RhdGljIGludCBtd2lmaWV4X3VwZGF0ZV9jdXJyX2Jzc19wYXJhbXMoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTcwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE3MTA6XFx0cmV0ID0gbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhwcml2LCBic3MsIGJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE3MTEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zY2FuLmMtMTczMC1cXHQvKiBiZWFjb25faWUgYnVmZmVyIHdhcyBhbGxvY2F0ZWQgaW4gZnVuY3Rpb25cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jOjE3MzE6XFx0ICogbXdpZmlleF9maWxsX25ld19ic3NfZGVzYygpLiBGcmVlIGl0IG5vdy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc2Nhbi5jLTE3MzItXFx0ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM9NzY9aW50IG13aWZpZXhfcmVxdWVzdF9zZXRfbXVsdGljYXN0X2xpc3Qoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xMjgtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jOjEyOTppbnQgbXdpZmlleF9maWxsX25ld19ic3NfZGVzYyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9zdGFfaW9jdGwuYy0xMzAtXFx0XFx0XFx0ICAgICAgc3RydWN0IGNmZzgwMjExX2JzcyAqYnNzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jPTMxOD1pbnQgbXdpZmlleF9ic3Nfc3RhcnQoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgc3RydWN0IGNmZzgwMjExX2JzcyAqYnNzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTMzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6MzM3OlxcdFxcdHJldCA9IG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MocHJpdiwgYnNzLCBic3NfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTMzOC1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTQzMi1cXHQvKiBiZWFjb25faWUgYnVmZmVyIHdhcyBhbGxvY2F0ZWQgaW4gZnVuY3Rpb25cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2lvY3RsLmM6NDMzOlxcdCAqIG13aWZpZXhfZmlsbF9uZXdfYnNzX2Rlc2MoKS4gRnJlZSBpdCBub3cuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9pb2N0bC5jLTQzNC1cXHQgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMDQ6MDQ6MDYuMzYwMjc0MTc2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzcyNTg3MDgwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEJTUyBEZXNjcmlwdGlvbiBVcGRhdGUqKlxuXG5Pa2F5LCBzbyBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgaXMgY2xlYXJseSBhIGtleSBmdW5jdGlvbiBmb3IgcHJvY2Vzc2luZyBCU1MgZGVzY3JpcHRpb25zLCBidXQgd2hlcmUgZG9lcyBpdCBmaXQgd2l0aGluIHRoZSBvdmVyYWxsIGZsb3c/IFJpZ2h0LCBpdCdzIGNhbGxlZCBmcm9tIGBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjYCwgd2hpY2ggaXRzZWxmIGlzIGludm9rZWQgZHVyaW5nIHNldmVyYWwgY3J1Y2lhbCBzdGFnZXM6IHRoZSBpbml0aWFsIHN0YXJ0dXAgb2YgYSBCU1MgdmlhIGBtd2lmaWV4X2Jzc19zdGFydGAsIHVwZGF0aW5nIGN1cnJlbnQgQlNTIHBhcmFtZXRlcnMgd2l0aCBgbXdpZmlleF91cGRhdGVfY3Vycl9ic3NfcGFyYW1zYCwgYW5kIGV2ZW4gd2hlbiBzYXZpbmcgY2hhbm5lbHMgZm9yIGhpZGRlbiBTU0lEcyB0aHJvdWdoIGBtd2lmaWV4X3NhdmVfaGlkZGVuX3NzaWRfY2hhbm5lbHNgLiBTbywgdGhpcyBzdWdnZXN0cyB0aGF0IGl0IGlzIGludGVncmF0ZWQgaW50byB0aGUgZXNzZW50aWFsIGNvbm5lY3Rpb24gYW5kIHNjYW5uaW5nIHByb2NlZHVyZXMg4oCTIHRoZSBzdGFuZGFyZCBvcGVyYXRpb25zLiBOb3csIGdpdmVuIHRoYXQgY29udGV4dCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBjbG9zZWx5IHJlbGF0ZWQgYG13aWZpZXhfc2V0X3N0YV9odF9jYXBgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MzgwLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDA0OjA0OjEwLjA4NjE0NjUwN1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg4ODE5MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXdpZmlleF9zZXRfc3RhX2h0X2NhcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmg9MTU5MD12b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uaDoxNTkxOm13aWZpZXhfc2V0X3N0YV9odF9jYXAoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgY29uc3QgdTggKmllcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5oLTE1OTItXFx0XFx0ICAgICAgIGludCBpZXNfbGVuLCBzdHJ1Y3QgbXdpZmlleF9zdGFfbm9kZSAqbm9kZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdWFwX2V2ZW50LmM9OTQ9aW50IG13aWZpZXhfcHJvY2Vzc191YXBfZXZlbnQoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91YXBfZXZlbnQuYy0xNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3VhcF9ldmVudC5jOjE0OTpcXHRcXHRtd2lmaWV4X3NldF9zdGFfaHRfY2FwKHByaXYsIHNpbmZvLVxcdTAwM2Vhc3NvY19yZXFfaWVzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91YXBfZXZlbnQuYy0xNTAtXFx0XFx0XFx0XFx0ICAgICAgIHNpbmZvLVxcdTAwM2Vhc3NvY19yZXFfaWVzX2xlbiwgbm9kZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvdXRpbC5jPTcxMj12b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3V0aWwuYzo3MTM6bXdpZmlleF9zZXRfc3RhX2h0X2NhcChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LCBjb25zdCB1OCAqaWVzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC91dGlsLmMtNzE0LVxcdFxcdCAgICAgICBpbnQgaWVzX2xlbiwgc3RydWN0IG13aWZpZXhfc3RhX25vZGUgKm5vZGUpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDA0OjA0OjEwLjE0NTAzMTE3NloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDE1OTYyMTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGBtd2lmaWV4X3NldF9zdGFfaHRfY2FwYCBpbiBBUCBNb2RlKipcblxuT2theSwgc28gSSBzZWUgdGhhdCBgbXdpZmlleF9zZXRfc3RhX2h0X2NhcGAgZ2V0cyBjYWxsZWQgd2l0aGluIGBtd2lmaWV4X3Byb2Nlc3NfdWFwX2V2ZW50YC4gVGhhdCBtZWFucyB3ZSdyZSBkZWFsaW5nIHdpdGggbWljcm8tQVAgbW9kZSwgd2hpY2ggaW1wbGllcyB0aGUgZGV2aWNlIGlzIG9wZXJhdGluZyBpbiBBUCBtb2RlLiBUaGVyZWZvcmUsIHRoZSBjb2RlICppcyogcmVhY2hhYmxlIOKAkyB0aGF0J3MgdGhlIGZpcnN0IHRoaW5nIHRvIGVzdGFibGlzaC4gTm93LCB0aGUgcXVlc3Rpb24gaXMgaG93IHRvIGFjdHVhbGx5IHRyaWdnZXIgaXQuIEl0IGxvb2tzIGxpa2UgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGFyZSBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAsIHRoYXQncyBob3cgd2UgZ2V0IHRoZXJlLiBIbW0sIGhvbGQgb24gYSBzZWNvbmTigKYgaXNuJ3QgYE1XSUZJRVhfVVNCYCBhIHRyaXN0YXRlPyBXZSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kIHdoZW4gZXhhbWluaW5nIHRoZSBidWlsZCBjb25maWdzLiBBbmQsIGlzIHRoZXJlIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBpbXBhY3QgdGhlIHJlYWNoYWJpbGl0eT8gSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgZm9yIGFueSBvdGhlciByZWxhdGVkIGRlcGVuZGVuY2llcyBqdXN0IHRvIGJlIHN1cmUuIEl0J3MgYWx3YXlzIGJlc3QgdG8gYmUgdGhvcm91Z2ggaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NzExMSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQwNDowNDoxNC4xNjA5OTU2NDJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNzI4MDQ5NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnPTI9Y29uZmlnIE1XSUZJRVhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjQ6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc9MTI9Y29uZmlnIE1XSUZJRVhfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTEzLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBTRDg3ODYvU0Q4Nzg3L1NEODc5Ny9TRDg4ODcvU0Q4ODk3L1NEODk3Ny9TRDg5NzgvU0Q4OTg3L1NEODk5N1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZzoxNDpcXHRkZXBlbmRzIG9uIE1XSUZJRVggXFx1MDAyNlxcdTAwMjYgTU1DXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWctMTUtXFx0c2VsZWN0IEZXX0xPQURFUlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc9MjU9Y29uZmlnIE1XSUZJRVhfUENJRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTI2LVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFdpRmktRXggRHJpdmVyIGZvciBQQ0lFIDg3NjYvODg5Ny84OTk3XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnOjI3OlxcdGRlcGVuZHMgb24gTVdJRklFWCBcXHUwMDI2XFx1MDAyNiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0yOC1cXHRzZWxlY3QgRldfTE9BREVSXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZz0zNz1jb25maWcgTVdJRklFWF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvS2NvbmZpZy0zOC1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBXaUZpLUV4IERyaXZlciBmb3IgVVNCODc2Ni84Nzk3Lzg5OTdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L0tjb25maWc6Mzk6XFx0ZGVwZW5kcyBvbiBNV0lGSUVYIFxcdTAwMjZcXHUwMDI2IFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9LY29uZmlnLTQwLVxcdHNlbGVjdCBGV19MT0FERVJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMDQ6MDQ6MTQuNTg4MjgwMzU2WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5NjY4MzkyNTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHlzaXMgb2YgdGhlIG13aWZpZXggRHJpdmVyIFBhdGNoKipcblxuQWxyaWdodCwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGZvY3VzIGlzIG9uIHRoZSBjb25maWd1cmF0aW9ucyBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAuIFRob3NlIHNlZW0gdG8gYmUgdGhlIGtleSBmbGFncyBmb3IgdGhpcyBkcml2ZXIuIEkndmUgcGlucG9pbnRlZCBhIGZldyBrZXkgZnVuY3Rpb25zIHRvIHNjcnV0aW5pemU6IGBtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llYCBhbmQgYG13aWZpZXhfc2V0X3N0YV9odF9jYXBgLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRoYXQgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgIGhhbmRsZXMgSUVzIChJbmZvcm1hdGlvbiBFbGVtZW50cykuXG5cbk5vdywgbGV0J3MgYnJvYWRlbiB0aGUgc2NvcGUgYSBiaXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nLiBBaCwgaGVyZSdzIGEgZ29vZCBvbmU6IGBtd2lmaWV4X2ZpbGxfbmV3X2Jzc19kZXNjYCDigJMgdGhhdCdzIGRlZmluaXRlbHkgcmVsZXZhbnQgc2luY2UgaXQgY2FsbHMgYG13aWZpZXhfdXBkYXRlX2Jzc19kZXNjX3dpdGhfaWVgLiBBbmQgbGV0J3Mgbm90IGZvcmdldCBhYm91dCBgbXdpZmlleF9wcm9jZXNzX3VhcF9ldmVudGAsIHRoYXQgbG9va3MgaW50ZXJlc3RpbmcgdG9vLlxuXG5MZXQncyBxdWlja2x5IHZlcmlmeSB0aGUgcGF0Y2ggaXRzZWxmLiBPa2F5LCB0aGUgcmVsZXZhbnQgc25pcHBldCBpbiBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgYXBwZWFycyB0byBiZSBjaGVja2luZyBmb3IgdGhlIHNpemUgb2YgYHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwYCBhbmQgYmFpbGluZyBpZiB0aGUgZWxlbWVudCBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBleHBlY3RlZCBzaXplLiBUaGlzIGxvb2tzIGxpa2UgYSBzb2xpZCBmaXggdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWRzL3dyaXRlcy4gVGhpcyBpcyBmdW5jdGlvbmFsLlxuXG5TbywgdG8gc3VtbWFyaXplOiBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAgYXJlIHRoZSBpbXBvcnRhbnQgY29uZmlndXJhdGlvbnMsIGFuZCBgbXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZWAgYW5kIGBtd2lmaWV4X3NldF9zdGFfaHRfY2FwYCBhcmUgdGhlIGtleSBmdW5jdGlvbnMuIFF1aWNrIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aG9zZSBhcmVuJ3QgaW5saW5lLiBOb3BlLCBub3QgaW5saW5lLlxuXG5MZXQncyBjaGVjayB0aG9zZSBkZXBlbmRlbmNpZXMgcmVhbCBxdWljay4gYENGRzgwMjExYCBhbmQgYFVTQmAgYXJlIGRlcGVuZGVuY2llcywgYnV0IHRoZXkgbG9vayBsaWtlIGdlbmVyaWMgZGVwZW5kZW5jaWVzLCBhbmQgYXJlIGxpa2VseSB0byBiZSBlbmFibGVkLiBJJ20gZ29pbmcgdG8gZm9jdXMgbXkgY2hhbmdlcyBvbiBgTVdJRklFWGAgYW5kIGBNV0lGSUVYX1VTQmAgc2luY2UgdGhvc2UgbG9vayB0byBiZSBzcGVjaWZpYyB0byB0aGlzIGRyaXZlci4gT2theSwgSSdtIHJlYWR5IHRvIHNldCB0aGVzZSByZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MDE2LCJPdXRwdXRUb2tlbnMiOjE0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQwNDowNDoyMi41NTUxMjEwODhaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDMxMjk0OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVdJRklFWFwiLFxuICAgIFwiTVdJRklFWF9VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtd2lmaWV4X3VwZGF0ZV9ic3NfZGVzY193aXRoX2llXCIsXG4gICAgXCJtd2lmaWV4X3NldF9zdGFfaHRfY2FwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIHZhcmlvdXMgSW5mb3JtYXRpb24gRWxlbWVudHMgKElFcykgaW4gdGhlIE1hcnZlbGwgV2lGaSBkcml2ZXIgKG13aWZpZXgpIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyByZWFkcy93cml0ZXMgd2hlbiBwYXJzaW5nIG1hbGljaW91cyBvciBtYWxmb3JtZWQgV2lGaSBiZWFjb25zL21hbmFnZW1lbnQgZnJhbWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgZnV6emVkIHZpYSB0aGUgVVNCIGludGVyZmFjZSBvZiB0aGUgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1XSUZJRVhcIixcbiAgICBcIk1XSUZJRVhfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXdpZmlleF91cGRhdGVfYnNzX2Rlc2Nfd2l0aF9pZVwiLFxuICAgIFwibXdpZmlleF9zZXRfc3RhX2h0X2NhcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciB2YXJpb3VzIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGluIHRoZSBNYXJ2ZWxsIFdpRmkgZHJpdmVyIChtd2lmaWV4KSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZHMvd3JpdGVzIHdoZW4gcGFyc2luZyBtYWxpY2lvdXMgb3IgbWFsZm9ybWVkIFdpRmkgYmVhY29ucy9tYW5hZ2VtZW50IGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHJlYWNoZWQgYW5kIGZ1enplZCB2aWEgdGhlIFVTQiBpbnRlcmZhY2Ugb2YgdGhlIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowj6wg8[1] Phase: Succeeded StartedAt: 2026-07-10 04:04:54 +0000 UTC FinishedAt: 2026-07-10 04:04:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-10 04:04:54 +0000 UTC FinishedAt: 2026-07-10 04:04:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2] Phase: Succeeded StartedAt: 2026-07-10 04:04:54 +0000 UTC FinishedAt: 2026-07-10 05:31:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-10 04:04:54 +0000 UTC FinishedAt: 2026-07-10 05:31:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-10 04:04:54 +0000 UTC FinishedAt: 2026-07-10 04:05:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-10 04:04:54 +0000 UTC FinishedAt: 2026-07-10 04:05:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowj6wg8/series-workflowj6wg8-convert-artifact-4266588815/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-10 04:05:20 +0000 UTC FinishedAt: 2026-07-10 04:35:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-10 04:05:20 +0000 UTC FinishedAt: 2026-07-10 04:35:31 +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:*82e97fea-1851-42a2-901b-b0713b71b9cf,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-workflowj6wg8/series-workflowj6wg8-convert-artifact-4266588815/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": "b5778d8b-8c67-439a-a211-d5e7dac08edd", "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-workflowj6wg8/series-workflowj6wg8-build-action-2910644181/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-10 04:05:20 +0000 UTC FinishedAt: 2026-07-10 04:35:21 +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:*82e97fea-1851-42a2-901b-b0713b71b9cf,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-workflowj6wg8/series-workflowj6wg8-convert-artifact-4266588815/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": "b5778d8b-8c67-439a-a211-d5e7dac08edd", "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-workflowj6wg8/series-workflowj6wg8-build-action-2910644181/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-10 04:35:31 +0000 UTC FinishedAt: 2026-07-10 04:35:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-10 04:35:31 +0000 UTC FinishedAt: 2026-07-10 04:35:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-10 04:35:31 +0000 UTC FinishedAt: 2026-07-10 04:35:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-10 04:35:31 +0000 UTC FinishedAt: 2026-07-10 04:35:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowj6wg8/series-workflowj6wg8-convert-artifact-2610991070/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-10 04:35:41 +0000 UTC FinishedAt: 2026-07-10 04:37:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-10 04:35:41 +0000 UTC FinishedAt: 2026-07-10 04:37:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b5778d8b-8c67-439a-a211-d5e7dac08edd,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-workflowj6wg8/series-workflowj6wg8-build-action-2910644181/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-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-10 04:37:44 +0000 UTC FinishedAt: 2026-07-10 04:37:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-10 04:37:44 +0000 UTC FinishedAt: 2026-07-10 04:37:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-10 04:37:44 +0000 UTC FinishedAt: 2026-07-10 05:26:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-10 04:37:44 +0000 UTC FinishedAt: 2026-07-10 05:26:51 +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:*82e97fea-1851-42a2-901b-b0713b71b9cf,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-workflowj6wg8/series-workflowj6wg8-convert-artifact-2610991070/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": "f5483122-ef2c-4c46-aae5-813101359880", "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-workflowj6wg8/series-workflowj6wg8-build-action-2122438834/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-10 04:37:44 +0000 UTC FinishedAt: 2026-07-10 05:26:23 +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:*82e97fea-1851-42a2-901b-b0713b71b9cf,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-workflowj6wg8/series-workflowj6wg8-convert-artifact-2610991070/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": "f5483122-ef2c-4c46-aae5-813101359880", "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-workflowj6wg8/series-workflowj6wg8-build-action-2122438834/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-10 05:26:51 +0000 UTC FinishedAt: 2026-07-10 05:26:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-10 05:26:51 +0000 UTC FinishedAt: 2026-07-10 05:26:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-10 05:26:51 +0000 UTC FinishedAt: 2026-07-10 05:29:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-10 05:26:51 +0000 UTC FinishedAt: 2026-07-10 05:29:03 +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:*f5483122-ef2c-4c46-aae5-813101359880,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-workflowj6wg8/series-workflowj6wg8-build-action-2122438834/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-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-10 05:29:13 +0000 UTC FinishedAt: 2026-07-10 05:31:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-10 05:29:13 +0000 UTC FinishedAt: 2026-07-10 05:31:53 +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_set_sta_ht_cap"],"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:*b5778d8b-8c67-439a-a211-d5e7dac08edd,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f5483122-ef2c-4c46-aae5-813101359880,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-workflowj6wg8/series-workflowj6wg8-build-action-2910644181/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-workflowj6wg8/series-workflowj6wg8-build-action-2122438834/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-10 05:29:13 +0000 UTC FinishedAt: 2026-07-10 05:30:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-10 05:29:13 +0000 UTC FinishedAt: 2026-07-10 05:29:37 +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_set_sta_ht_cap"],"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-workflowj6wg8/series-workflowj6wg8-convert-artifact-932019427/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-10 05:29:13 +0000 UTC FinishedAt: 2026-07-10 05:29:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-10 05:29:13 +0000 UTC FinishedAt: 2026-07-10 05:29:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-10 05:29:13 +0000 UTC FinishedAt: 2026-07-10 05:29:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-10 05:30:44 +0000 UTC FinishedAt: 2026-07-10 05:31:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj6wg8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mwifiex_update_bss_desc_with_ie","mwifiex_set_sta_ht_cap"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["MWIFIEX","MWIFIEX_USB"],"series_id":"e8cd6d48-33ef-40e0-8916-f2ff136ed912","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-10 05:30:44 +0000 UTC FinishedAt: 2026-07-10 05:31:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b5778d8b-8c67-439a-a211-d5e7dac08edd,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f5483122-ef2c-4c46-aae5-813101359880,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-workflowj6wg8/series-workflowj6wg8-build-action-2910644181/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-workflowj6wg8/series-workflowj6wg8-build-action-2122438834/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-workflowj6wg8/series-workflowj6wg8-convert-artifact-932019427/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,}