Name: series-workflow288gm Phase: Succeeded StartedAt: 2026-07-24 06:03:01 +0000 UTC FinishedAt: 2026-07-24 08:56:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[0] Phase: Succeeded StartedAt: 2026-07-24 06:03:01 +0000 UTC FinishedAt: 2026-07-24 06:32:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[0].run-triage Phase: Succeeded StartedAt: 2026-07-24 06:03:01 +0000 UTC FinishedAt: 2026-07-24 06:32:27 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH10K", "ATH10K_USB", "ATH10K_PCI", "ATH10K_SDIO" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH10K", "ATH10K_USB", "ATH10K_PCI", "ATH10K_SDIO" ], "series_id": "e870814a-a5fb-4a79-bb08-c9bc1cc761c2" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ath10k_wmi_tlv_op_rx", "ath10k_wmi_op_rx", "ath10k_wmi_10_1_op_rx", "ath10k_wmi_10_2_op_rx", "ath10k_wmi_10_4_op_rx", "ath10k_wmi_pull_cmd_hdr" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI0IDA2OjMxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDEwSyYjMzQ7LAogICAgJiMzNDtBVEgxMEtfVVNCJiMzNDssCiAgICAmIzM0O0FUSDEwS19QQ0kmIzM0OywKICAgICYjMzQ7QVRIMTBLX1NESU8mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthdGgxMGtfd21pX3Rsdl9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pX29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfMTBfMV9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pXzEwXzJfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV8xMF80X29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfcHVsbF9jbWRfaGRyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBhdGgxMGsgZHJpdmVyIGJ5IGludHJvZHVjaW5nIGEgaGVscGVyIGZ1bmN0aW9uIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAgdG8gc2FmZWx5IHB1bGwgdGhlIFdNSSBjb21tYW5kIGhlYWRlciBmcm9tIGFuIHNrYi4gVGhpcyBhZmZlY3RzIHRoZSBwcm9jZXNzaW5nIG9mIFdNSSBldmVudHMgcmVjZWl2ZWQgZnJvbSB0aGUgZmlybXdhcmUuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgZnV6emFibGUgdmlhIHZpcnR1YWxpemVkIGJ1c2VzIGxpa2UgVVNCIG9yIFBDSS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwNjozMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDczNDc1NGE0NzNlMWJlMGQ2ZGQwMzNiZDE0OTgzYjJlNDc4ZWI4ZTBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAyNCAwNjozMTo0MCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLXRsdi5jXG5pbmRleCAwMWYyZDFmYTlkN2Q5Mi4uMjcyZGFiMzdkYzE5NGYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmNcbkBAIC02MzgsMTQgJiM0Mzs2MzgsMTAgQEAgc3RhdGljIGludCBhdGgxMGtfd21pX3Rsdl9ldmVudF9wZWVyX2RlbGV0ZV9yZXNwKHN0cnVjdCBhdGgxMGsgKmFyLFxuIFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfdGx2X29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbi1cdHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcbi1cdGVudW0gd21pX3Rsdl9ldmVudF9pZCBpZDtcbiBcdGJvb2wgY29uc3VtZWQ7XG4mIzQzO1x0dTMyIGlkO1xuIFxuLVx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXHUwMDNlZGF0YTtcbi1cdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVx1MDAzZWNtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7XG4tXG4tXHRpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTClcbiYjNDM7XHRpZiAoIWF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHNrYiwgXHUwMDI2aWQpKVxuIFx0XHRnb3RvIG91dDtcbiBcbiBcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXHUwMDNlZGF0YSwgc2tiLVx1MDAzZWxlbik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNcbmluZGV4IGU1NzU4OGMxOWM4MDBjLi4yOTZhODkxMDY3MzYxOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNcbkBAIC01ODczLDE1ICYjNDM7NTg3MywyNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX3dtaV9xdWV1ZV9zZXRfY292ZXJhZ2VfY2xhc3Nfd29yayhzdHJ1Y3QgYXRoMTBrICphcilcbiBcdH1cbiB9XG4gXG4tc3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiYjNDM7Ym9vbCBhdGgxMGtfd21pX3B1bGxfY21kX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmlkKVxuIHtcbi1cdHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcbi1cdGVudW0gd21pX2V2ZW50X2lkIGlkO1xuJiM0MztcdGNvbnN0IHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcbiBcbi1cdGNtZF9oZHIgPSAoc3RydWN0IHdtaV9jbWRfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4tXHRpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xuJiM0MztcdGNtZF9oZHIgPSBza2JfcHVsbF9kYXRhKHNrYiwgc2l6ZW9mKCpjbWRfaGRyKSk7XG4mIzQzO1x0aWYgKCFjbWRfaGRyKVxuJiM0MztcdFx0cmV0dXJuIGZhbHNlO1xuJiM0MztcbiYjNDM7XHQqaWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHRydWU7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyB2b2lkIGF0aDEwa193bWlfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4mIzQzO3tcbiYjNDM7XHR1MzIgaWQ7XG4gXG4tXHRpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTClcbiYjNDM7XHRpZiAoIWF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHNrYiwgXHUwMDI2aWQpKVxuIFx0XHRnb3RvIG91dDtcbiBcbiBcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXHUwMDNlZGF0YSwgc2tiLVx1MDAzZWxlbik7XG5AQCAtNjAwMiwxNCAmIzQzOzYwMTEsMTAgQEAgc3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcbiBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzFfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuLVx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xuLVx0ZW51bSB3bWlfMTB4X2V2ZW50X2lkIGlkO1xuIFx0Ym9vbCBjb25zdW1lZDtcbiYjNDM7XHR1MzIgaWQ7XG4gXG4tXHRjbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi1cdTAwM2VkYXRhO1xuLVx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcbi1cbi1cdGlmIChza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSA9PSBOVUxMKVxuJiM0MztcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcdTAwMjZpZCkpXG4gXHRcdGdvdG8gb3V0O1xuIFxuIFx0dHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuKTtcbkBAIC02MTMzLDE0ICYjNDM7NjEzOCwxMCBAQCBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzFfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4gXG4gc3RhdGljIHZvaWQgYXRoMTBrX3dtaV8xMF8yX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbi1cdHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcbi1cdGVudW0gd21pXzEwXzJfZXZlbnRfaWQgaWQ7XG4gXHRib29sIGNvbnN1bWVkO1xuJiM0MztcdHUzMiBpZDtcbiBcbi1cdGNtZF9oZHIgPSAoc3RydWN0IHdtaV9jbWRfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4tXHRpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xuLVxuLVx0aWYgKHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpID09IE5VTEwpXG4mIzQzO1x0aWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsIFx1MDAyNmlkKSlcbiBcdFx0Z290byBvdXQ7XG4gXG4gXHR0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLVx1MDAzZWRhdGEsIHNrYi1cdTAwM2VsZW4pO1xuQEAgLTYyODIsMTQgJiM0Mzs2MjgzLDEwIEBAIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMl9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcbiBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzRfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuLVx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xuLVx0ZW51bSB3bWlfMTBfNF9ldmVudF9pZCBpZDtcbiBcdGJvb2wgY29uc3VtZWQ7XG4mIzQzO1x0dTMyIGlkO1xuIFxuLVx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXHUwMDNlZGF0YTtcbi1cdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVx1MDAzZWNtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7XG4tXG4tXHRpZiAoIXNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpKVxuJiM0MztcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcdTAwMjZpZCkpXG4gXHRcdGdvdG8gb3V0O1xuIFxuIFx0dHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuaW5kZXggN2Y1MGExZGU2Yjk3OGUuLjRlY2M5NDcxMmY3NjIxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuQEAgLTc0NDAsNiAmIzQzOzc0NDAsNyBAQCBzdHJ1Y3QgYXRoMTBrX3ZpZjtcbiBzdHJ1Y3QgYXRoMTBrX2Z3X3N0YXRzX3BkZXY7XG4gc3RydWN0IGF0aDEwa19md19zdGF0c19wZWVyO1xuIHN0cnVjdCBhdGgxMGtfZndfc3RhdHM7XG4mIzQzO3N0cnVjdCBza19idWZmO1xuIFxuIGludCBhdGgxMGtfd21pX2F0dGFjaChzdHJ1Y3QgYXRoMTBrICphcik7XG4gdm9pZCBhdGgxMGtfd21pX2RldGFjaChzdHJ1Y3QgYXRoMTBrICphcik7XG5AQCAtNzQ0OSw2ICYjNDM7NzQ1MCw3IEBAIGludCBhdGgxMGtfd21pX3dhaXRfZm9yX3VuaWZpZWRfcmVhZHkoc3RydWN0IGF0aDEwayAqYXIpO1xuIFxuIHN0cnVjdCBza19idWZmICphdGgxMGtfd21pX2FsbG9jX3NrYihzdHJ1Y3QgYXRoMTBrICphciwgdTMyIGxlbik7XG4gaW50IGF0aDEwa193bWlfY29ubmVjdChzdHJ1Y3QgYXRoMTBrICphcik7XG4mIzQzO2Jvb2wgYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICppZCk7XG4gXG4gaW50IGF0aDEwa193bWlfY21kX3NlbmQoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBjbWRfaWQpO1xuIGludCBhdGgxMGtfd21pX2NtZF9zZW5kX25vd2FpdChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwNjozMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRIMTBLJiMzNDssCiAgICAmIzM0O0FUSDEwS19VU0ImIzM0OywKICAgICYjMzQ7QVRIMTBLX1BDSSYjMzQ7LAogICAgJiMzNDtBVEgxMEtfU0RJTyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2F0aDEwa193bWlfdGx2X29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV8xMF8xX29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfMTBfMl9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pXzEwXzRfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV9wdWxsX2NtZF9oZHImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGF0aDEwayBkcml2ZXIgYnkgaW50cm9kdWNpbmcgYSBoZWxwZXIgZnVuY3Rpb24gYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYCB0byBzYWZlbHkgcHVsbCB0aGUgV01JIGNvbW1hbmQgaGVhZGVyIGZyb20gYW4gc2tiLiBUaGlzIGFmZmVjdHMgdGhlIHByb2Nlc3Npbmcgb2YgV01JIGV2ZW50cyByZWNlaXZlZCBmcm9tIHRoZSBmaXJtd2FyZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCBmdXp6YWJsZSB2aWEgdmlydHVhbGl6ZWQgYnVzZXMgbGlrZSBVU0Igb3IgUENJLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA3MzQ3NTRhNDczZTFiZTBkNmRkMDMzYmQxNDk4M2IyZTQ3OGViOGUwCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMjQgMDY6MzE6NDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLXRsdi5jCmluZGV4IDAxZjJkMWZhOWQ3ZDkyLi4yNzJkYWIzN2RjMTk0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmMKQEAgLTYzOCwxNCAmIzQzOzYzOCwxMCBAQCBzdGF0aWMgaW50IGF0aDEwa193bWlfdGx2X2V2ZW50X3BlZXJfZGVsZXRlX3Jlc3Aoc3RydWN0IGF0aDEwayAqYXIsCiAKIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfdGx2X29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjsKLQllbnVtIHdtaV90bHZfZXZlbnRfaWQgaWQ7CiAJYm9vbCBjb25zdW1lZDsKJiM0MzsJdTMyIGlkOwogCi0JY21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItJmd0O2RhdGE7Ci0JaWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItJmd0O2NtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7Ci0KLQlpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTCkKJiM0MzsJaWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsICZhbXA7aWQpKQogCQlnb3RvIG91dDsKIAogCXRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItJmd0O2RhdGEsIHNrYi0mZ3Q7bGVuKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jCmluZGV4IGU1NzU4OGMxOWM4MDBjLi4yOTZhODkxMDY3MzYxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jCkBAIC01ODczLDE1ICYjNDM7NTg3MywyNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX3dtaV9xdWV1ZV9zZXRfY292ZXJhZ2VfY2xhc3Nfd29yayhzdHJ1Y3QgYXRoMTBrICphcikKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGF0aDEwa193bWlfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpCiYjNDM7Ym9vbCBhdGgxMGtfd21pX3B1bGxfY21kX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmlkKQogewotCXN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjsKLQllbnVtIHdtaV9ldmVudF9pZCBpZDsKJiM0MzsJY29uc3Qgc3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyOwogCi0JY21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItJmd0O2RhdGE7Ci0JaWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItJmd0O2NtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7CiYjNDM7CWNtZF9oZHIgPSBza2JfcHVsbF9kYXRhKHNrYiwgc2l6ZW9mKCpjbWRfaGRyKSk7CiYjNDM7CWlmICghY21kX2hkcikKJiM0MzsJCXJldHVybiBmYWxzZTsKJiM0MzsKJiM0MzsJKmlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLSZndDtjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpOwomIzQzOwomIzQzOwlyZXR1cm4gdHJ1ZTsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYikKJiM0Mzt7CiYjNDM7CXUzMiBpZDsKIAotCWlmIChza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSA9PSBOVUxMKQomIzQzOwlpZiAoIWF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHNrYiwgJmFtcDtpZCkpCiAJCWdvdG8gb3V0OwogCiAJdHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi0mZ3Q7ZGF0YSwgc2tiLSZndDtsZW4pOwpAQCAtNjAwMiwxNCAmIzQzOzYwMTEsMTAgQEAgc3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogc3RhdGljIHZvaWQgYXRoMTBrX3dtaV8xMF8xX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjsKLQllbnVtIHdtaV8xMHhfZXZlbnRfaWQgaWQ7CiAJYm9vbCBjb25zdW1lZDsKJiM0MzsJdTMyIGlkOwogCi0JY21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItJmd0O2RhdGE7Ci0JaWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItJmd0O2NtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7Ci0KLQlpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTCkKJiM0MzsJaWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsICZhbXA7aWQpKQogCQlnb3RvIG91dDsKIAogCXRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItJmd0O2RhdGEsIHNrYi0mZ3Q7bGVuKTsKQEAgLTYxMzMsMTQgJiM0Mzs2MTM4LDEwIEBAIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogc3RhdGljIHZvaWQgYXRoMTBrX3dtaV8xMF8yX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjsKLQllbnVtIHdtaV8xMF8yX2V2ZW50X2lkIGlkOwogCWJvb2wgY29uc3VtZWQ7CiYjNDM7CXUzMiBpZDsKIAotCWNtZF9oZHIgPSAoc3RydWN0IHdtaV9jbWRfaGRyICopc2tiLSZndDtkYXRhOwotCWlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLSZndDtjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpOwotCi0JaWYgKHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpID09IE5VTEwpCiYjNDM7CWlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCAmYW1wO2lkKSkKIAkJZ290byBvdXQ7CiAKIAl0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLSZndDtkYXRhLCBza2ItJmd0O2xlbik7CkBAIC02MjgyLDE0ICYjNDM7NjI4MywxMCBAQCBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzJfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpCiAKIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfNF9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7Ci0JZW51bSB3bWlfMTBfNF9ldmVudF9pZCBpZDsKIAlib29sIGNvbnN1bWVkOwomIzQzOwl1MzIgaWQ7CiAKLQljbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi0mZ3Q7ZGF0YTsKLQlpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci0mZ3Q7Y21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTsKLQotCWlmICghc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkpCiYjNDM7CWlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCAmYW1wO2lkKSkKIAkJZ290byBvdXQ7CiAKIAl0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLSZndDtkYXRhLCBza2ItJmd0O2xlbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaAppbmRleCA3ZjUwYTFkZTZiOTc4ZS4uNGVjYzk0NzEyZjc2MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaApAQCAtNzQ0MCw2ICYjNDM7NzQ0MCw3IEBAIHN0cnVjdCBhdGgxMGtfdmlmOwogc3RydWN0IGF0aDEwa19md19zdGF0c19wZGV2Owogc3RydWN0IGF0aDEwa19md19zdGF0c19wZWVyOwogc3RydWN0IGF0aDEwa19md19zdGF0czsKJiM0MztzdHJ1Y3Qgc2tfYnVmZjsKIAogaW50IGF0aDEwa193bWlfYXR0YWNoKHN0cnVjdCBhdGgxMGsgKmFyKTsKIHZvaWQgYXRoMTBrX3dtaV9kZXRhY2goc3RydWN0IGF0aDEwayAqYXIpOwpAQCAtNzQ0OSw2ICYjNDM7NzQ1MCw3IEBAIGludCBhdGgxMGtfd21pX3dhaXRfZm9yX3VuaWZpZWRfcmVhZHkoc3RydWN0IGF0aDEwayAqYXIpOwogCiBzdHJ1Y3Qgc2tfYnVmZiAqYXRoMTBrX3dtaV9hbGxvY19za2Ioc3RydWN0IGF0aDEwayAqYXIsIHUzMiBsZW4pOwogaW50IGF0aDEwa193bWlfY29ubmVjdChzdHJ1Y3QgYXRoMTBrICphcik7CiYjNDM7Ym9vbCBhdGgxMGtfd21pX3B1bGxfY21kX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmlkKTsKIAogaW50IGF0aDEwa193bWlfY21kX3NlbmQoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBjbWRfaWQpOwogaW50IGF0aDEwa193bWlfY21kX3NlbmRfbm93YWl0KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwNjozMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTM5CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNTExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgYXRoMTBrYCwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jYCBhbmQgYHdtaS10bHYuY2AuIEl0IHNlZW1zIGxpa2UgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGZpeCDigJMgdGhleSYjMzk7cmUgaW50cm9kdWNpbmcgYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYC4gVGhlIG9yaWdpbmFsIGNvZGUsIGFzIEkmIzM5O20gc2VlaW5nIGl0LCBoYWQgYSBjbGFzc2ljIG92ZXJzaWdodDogYWNjZXNzaW5nIGBza2ItJmd0O2RhdGFgIGRpcmVjdGx5ICpiZWZvcmUqIGNoZWNraW5nIGlmIHRoZSBgc2tiYCBhY3R1YWxseSBoYXMgZW5vdWdoIGRhdGEuIEl0IHdhcyBkb2luZyBzb21ldGhpbmcgbGlrZSB0aGlzOgoKYGBgYwoJY21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItJmd0O2RhdGE7CglpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci0mZ3Q7Y21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTsKCglpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTCkKCQlnb3RvIG91dDsKYGBgCgpXaGljaCwgaWYgdGhlIGBza2JgIHdhcyB0b28gc21hbGwsIGNvdWxkIGxlYWQgdG8gYSByZWFsbHkgbmFzdHkgb3V0LW9mLWJvdW5kcyByZWFkLiBUaGUgbmV3IGNvZGUgaXMgc2FmZXIsIHVzaW5nIGBza2JfcHVsbF9kYXRhYCB3aGljaCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgZGF0YSBvciBOVUxMLCBpZiB0aGVyZSBpc24mIzM5O3QgZW5vdWdoIGRhdGEuIFRoZSBuZXcgY29kZSBpczoKCmBgYGMKYm9vbCBhdGgxMGtfd21pX3B1bGxfY21kX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmlkKQp7Cgljb25zdCBzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7CgoJY21kX2hkciA9IHNrYl9wdWxsX2RhdGEoc2tiLCBzaXplb2YoKmNtZF9oZHIpKTsKCWlmICghY21kX2hkcikKCQlyZXR1cm4gZmFsc2U7CgoJKmlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLSZndDtjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpOwoKCXJldHVybiB0cnVlOwp9CmBgYAoKR29vZCBjYXRjaCwgdGhpcyBpcyBhIHByZXR0eSBzdGFuZGFyZCwgYnV0IGltcG9ydGFudCwgZGVmZW5zaXZlIHByb2dyYW1taW5nIHByYWN0aWNlIHRvIHByZXZlbnQgbWVtb3J5IGNvcnJ1cHRpb24uCgpOb3csIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0aGlzLiBTaW5jZSBgYXRoMTBrYCBpcyBhIGRyaXZlciBmb3IgQXRoZXJvcyB3aXJlbGVzcyBjYXJkcywgaXQmIzM5O3MgdHlwaWNhbGx5IGEgUENJL1VTQiBkcml2ZXIsIEkmIzM5O20gd29uZGVyaW5nIGlmIHRoaXMgaXMgYSB2dWxuZXJhYmxlIGNvZGUgcGF0aCBpbiBhIGZ1enphYmxlIGVudmlyb25tZW50LiBJJiMzOTttIGNvbnNpZGVyaW5nIGlmIHRoaXMgaXMgc29tZXRoaW5nIHdlIGNhbiByZWFjaCBpbiBhIHZpcnR1YWxpemVkIGNvbnRleHQuIEkga25vdyBkcml2ZXJzIHdpdGggdmlydHVhbGl6ZWQgYnVzZXMgYXJlIG9mdGVuIGdvb2QgdGFyZ2V0cy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgc3l6a2FsbGVyIGNhbiBldmVuIHRlc3QgdGhlIGRyaXZlci4KClNvLCBgYXRoMTBrYCBoYXMgUENJLCBTRElPLCBVU0IsIGFuZCBTTk9DIGJhY2tlbmRzLiBJJiMzOTtsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgYXRoMTBrIFVTQiBpcyBzdXBwb3J0ZWQsIHRvIGFzc2VzcyB0aGUgZXhwb3N1cmUuIExldCBtZSB1c2UgYGdyZXBwZXJgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG1lbnRpb25zIG9mIGBhdGgxMGtfdXNiYCBvciBhbnl0aGluZyBzaW1pbGFyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDA2OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDEwa191c2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvTWFrZWZpbGU9MzQ9YXRoMTBrX3NkaW8teSAmIzQzOz0gc2Rpby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL01ha2VmaWxlLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfQVRIMTBLX1VTQikgJiM0Mzs9IGF0aDEwa191c2Iub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9NYWtlZmlsZTozNzphdGgxMGtfdXNiLXkgJiM0Mzs9IHVzYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL01ha2VmaWxlLTM4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjE4OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfcG9zdF9yZWN2X3RyYW5zZmVycyhzdHJ1Y3QgYXRoMTBrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTk6XHRcdFx0XHRcdCAgIHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnJlY3ZfcGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM9MzU9c3RhdGljIHN0cnVjdCBhdGgxMGtfdXJiX2NvbnRleHQgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNjphdGgxMGtfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUoc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU3OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfZnJlZV91cmJfdG9fcGlwZShzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlICpwaXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01OC1cdFx0XHRcdFx0c3RydWN0IGF0aDEwa191cmJfY29udGV4dCAqdXJiX2NvbnRleHQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzQ6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9jbGVhbnVwX3JlY3ZfdXJiKHN0cnVjdCBhdGgxMGtfdXJiX2NvbnRleHQgKnVyYl9jb250ZXh0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6Nzk6XHRhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUodXJiX2NvbnRleHQtXHUwMDNlcGlwZSwgdXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo4MjpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX2ZyZWVfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDEwayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjgzOlx0XHRcdFx0XHQgICBzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlICpwaXBlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDQtXHRmb3IgKDs7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNTpcdFx0dXJiX2NvbnRleHQgPSBhdGgxMGtfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUocGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTE0OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfY2xlYW51cF9waXBlX3Jlc291cmNlcyhzdHJ1Y3QgYXRoMTBrICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTE1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTE2Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExNy1cdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTE5LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTBLX1VTQl9QSVBFX01BWDsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEyMDpcdFx0YXRoMTBrX3VzYl9mcmVlX3BpcGVfcmVzb3VyY2VzKGFyLCBcdTAwMjZhcl91c2ItXHUwMDNlcGlwZXNbaV0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMjEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMjU6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9yZWN2X2NvbXBsZXRlKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTI2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTI3LVx0c3RydWN0IGF0aDEwa191cmJfY29udGV4dCAqdXJiX2NvbnRleHQgPSB1cmItXHUwMDNlY29udGV4dDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTI4Olx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSA9IHVyYl9jb250ZXh0LVx1MDAzZXBpcGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEyOS1cdHN0cnVjdCBhdGgxMGsgKmFyID0gcGlwZS1cdTAwM2Vhcl91c2ItXHUwMDNlYXI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xNzItY2xlYW51cF9yZWN2X3VyYjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTczOlx0YXRoMTBrX3VzYl9jbGVhbnVwX3JlY3ZfdXJiKHVyYl9jb250ZXh0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTc0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTc3LVx0XHQvKiBvdXIgZnJlZSB1cmJzIGFyZSBwaWxpbmcgdXAsIHBvc3QgbW9yZSB0cmFuc2ZlcnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTc4Olx0XHRhdGgxMGtfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoYXIsIHBpcGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xNzktXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjE4MjpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3RyYW5zbWl0X2NvbXBsZXRlKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTgzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTg0LVx0c3RydWN0IGF0aDEwa191cmJfY29udGV4dCAqdXJiX2NvbnRleHQgPSB1cmItXHUwMDNlY29udGV4dDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTg1Olx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSA9IHVyYl9jb250ZXh0LVx1MDAzZXBpcGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTE4Ni1cdHN0cnVjdCBhdGgxMGsgKmFyID0gcGlwZS1cdTAwM2Vhcl91c2ItXHUwMDNlYXI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xOTYtXHR1cmJfY29udGV4dC1cdTAwM2Vza2IgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxOTc6XHRhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUodXJiX2NvbnRleHQtXHUwMDNlcGlwZSwgdXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xOTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yMDQtLyogcGlwZSBvcGVyYXRpb25zICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjIwNTpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoc3RydWN0IGF0aDEwayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjIwNjpcdFx0XHRcdFx0ICAgc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcmVjdl9waXBlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yMDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjEyLVx0Zm9yICg7Oykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyMTM6XHRcdHVyYl9jb250ZXh0ID0gYXRoMTBrX3VzYl9hbGxvY191cmJfZnJvbV9waXBlKHJlY3ZfcGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIxNC1cdFx0aWYgKCF1cmJfY29udGV4dClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIyOS1cdFx0XHRcdCAgQVRIMTBLX1VTQl9SWF9CVUZGRVJfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MjMwOlx0XHRcdFx0ICBhdGgxMGtfdXNiX3JlY3ZfY29tcGxldGUsIHVyYl9jb250ZXh0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjMxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjU0LWVycjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MjU1Olx0YXRoMTBrX3VzYl9jbGVhbnVwX3JlY3ZfdXJiKHVyYl9jb250ZXh0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjU2LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyNTg6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9mbHVzaF9hbGwoc3RydWN0IGF0aDEwayAqYXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI1OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI2MDpcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yNjEtXHRpbnQgaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MjcxOnN0YXRpYyB2b2lkIGF0aDEwa191c2Jfc3RhcnRfcmVjdl9waXBlcyhzdHJ1Y3QgYXRoMTBrICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjcyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MjczOlx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI3NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6Mjc3Olx0YXRoMTBrX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKGFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yNzgtXHRcdFx0XHQgICAgICAgXHUwMDI2YXJfdXNiLVx1MDAzZXBpcGVzW0FUSDEwS19VU0JfUElQRV9SWF9EQVRBXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI4MTpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3R4X2NvbXBsZXRlKHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yODIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyOTI6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9yeF9jb21wbGV0ZShzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjkzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzYwOnN0YXRpYyB2b2lkIGF0aDEwa191c2JfaW9fY29tcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzYxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzYyOlx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSA9IGNvbnRhaW5lcl9vZih3b3JrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNjM6XHRcdFx0XHRcdFx0ICAgIHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM2NC1cdFx0XHRcdFx0XHQgICAgaW9fY29tcGxldGVfd29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zNjktXHRcdGlmIChwaXBlLVx1MDAzZWZsYWdzIFx1MDAyNiBBVEgxMEtfVVNCX1BJUEVfRkxBR19UWClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzcwOlx0XHRcdGF0aDEwa191c2JfdHhfY29tcGxldGUoYXIsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM3MS1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzI6XHRcdFx0YXRoMTBrX3VzYl9yeF9jb21wbGV0ZShhciwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzczLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzY6I2RlZmluZSBBVEgxMEtfVVNCX01BWF9ESUFHX0NNRCAoc2l6ZW9mKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzc6I2RlZmluZSBBVEgxMEtfVVNCX01BWF9ESUFHX1JFU1AgKHNpemVvZihzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzk6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9kZXN0cm95KHN0cnVjdCBhdGgxMGsgKmFyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zODAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozODE6XHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozODM6XHRhdGgxMGtfdXNiX2ZsdXNoX2FsbChhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjM4NDpcdGF0aDEwa191c2JfY2xlYW51cF9waXBlX3Jlc291cmNlcyhhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM4NS1cdHVzYl9zZXRfaW50ZmRhdGEoYXJfdXNiLVx1MDAzZWludGVyZmFjZSwgTlVMTCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjM5MTpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX3N0YXJ0KHN0cnVjdCBhdGgxMGsgKmFyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zOTIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zOTMtXHRpbnQgaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6Mzk0Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzk2LVx0YXRoMTBrX2NvcmVfbmFwaV9lbmFibGUoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozOTc6XHRhdGgxMGtfdXNiX3N0YXJ0X3JlY3ZfcGlwZXMoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zOTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQwOTpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX3R4X3NnKHN0cnVjdCBhdGgxMGsgKmFyLCB1OCBwaXBlX2lkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00MTAtXHRcdFx0XHRzdHJ1Y3QgYXRoMTBrX2hpZl9zZ19pdGVtICppdGVtcywgaW50IG5faXRlbXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQxMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQxMjpcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0MTM6XHRzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlICpwaXBlID0gXHUwMDI2YXJfdXNiLVx1MDAzZXBpcGVzW3BpcGVfaWRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00MTQtXHRzdHJ1Y3QgYXRoMTBrX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQxOS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIG5faXRlbXM7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQyMDpcdFx0dXJiX2NvbnRleHQgPSBhdGgxMGtfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUocGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQyMS1cdFx0aWYgKCF1cmJfY29udGV4dCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDM5LVx0XHRcdFx0ICBza2ItXHUwMDNlbGVuLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0NDA6XHRcdFx0XHQgIGF0aDEwa191c2JfdHJhbnNtaXRfY29tcGxldGUsIHVyYl9jb250ZXh0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDQxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDYzLWVycl9mcmVlX3VyYl90b19waXBlOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0NjQ6XHRhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUodXJiX2NvbnRleHQtXHUwMDNlcGlwZSwgdXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NjUtZXJyOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0Njk6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9oaWZfc3RvcChzdHJ1Y3QgYXRoMTBrICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDcwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDcxOlx0YXRoMTBrX3VzYl9mbHVzaF9hbGwoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NzItXHRhdGgxMGtfY29yZV9uYXBpX3N5bmNfZGlzYWJsZShhcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQ3NTpzdGF0aWMgdTE2IGF0aDEwa191c2JfaGlmX2dldF9mcmVlX3F1ZXVlX251bWJlcihzdHJ1Y3QgYXRoMTBrICphciwgdTggcGlwZV9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDc2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDc3Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ3OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDgyOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoc3RydWN0IGF0aDEwayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ4My1cdFx0XHRcdCAgICAgIHU4IHJlcSwgdTE2IHZhbHVlLCB1MTYgaW5kZXgsIHZvaWQgKmRhdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00ODUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0ODY6XHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDg3LVx0dTggKmJ1ZiA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjUxNjpzdGF0aWMgaW50IGF0aDEwa191c2Jfc3VibWl0X2N0cmxfaW4oc3RydWN0IGF0aDEwayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTUxNy1cdFx0XHRcdCAgICAgdTggcmVxLCB1MTYgdmFsdWUsIHUxNiBpbmRleCwgdm9pZCAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTUxOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjUyMDpcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01MjEtXHR1OCAqYnVmID0gTlVMTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTUyOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9jdHJsX21zZ19leGNoYW5nZShzdHJ1Y3QgYXRoMTBrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTUzLVx0XHRcdFx0XHR1OCByZXFfdmFsLCB1OCAqcmVxX2J1ZiwgdTMyIHJlcV9sZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NTktXHQvKiBzZW5kIGNvbW1hbmQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTYwOlx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoYXIsIHJlcV92YWwsIDAsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU2MS1cdFx0XHRcdFx0IHJlcV9idWYsIHJlcV9sZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTY2LVx0aWYgKHJlc3BfYnVmKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU2NzpcdFx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9pbihhciwgcmVzcF92YWwsIDAsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU2OC1cdFx0XHRcdFx0XHRyZXNwX2J1ZiwgKnJlc3BfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTc4OnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9oaWZfZGlhZ19yZWFkKHN0cnVjdCBhdGgxMGsgKmFyLCB1MzIgYWRkcmVzcywgdm9pZCAqYnVmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NzktXHRcdFx0XHQgICAgc2l6ZV90IGJ1Zl9sZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU4MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU4MTpcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1ODI6XHRzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfY21kX3JlYWQgKmNtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTgzLVx0dTMyIHJlc3BfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTg1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1ODY6XHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01ODctXHRcdHJldHVybiAtRUlOVkFMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU4OTpcdGNtZCA9IChzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfY21kX3JlYWQgKilhcl91c2ItXHUwMDNlZGlhZ19jbWRfYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01OTAtXHRtZW1zZXQoY21kLCAwLCBzaXplb2YoKmNtZCkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTkyLVx0Y21kLVx1MDAzZWFkZHJlc3MgPSBjcHVfdG9fbGUzMihhZGRyZXNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTkzOlx0cmVzcF9sZW4gPSBzaXplb2Yoc3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTk1Olx0cmV0ID0gYXRoMTBrX3VzYl9jdHJsX21zZ19leGNoYW5nZShhcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTk2LVx0XHRcdFx0XHQgICBBVEgxMEtfVVNCX0NPTlRST0xfUkVRX0RJQUdfQ01ELFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2MDQ6XHRpZiAocmVzcF9sZW4gIT0gc2l6ZW9mKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MDUtXHRcdHJldHVybiAtRU1TR1NJWkU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MDctXHRtZW1jcHkoYnVmLCBhcl91c2ItXHUwMDNlZGlhZ19yZXNwX2J1ZmZlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjA4Olx0ICAgICAgIHNpemVvZihzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYwOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjEzOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9oaWZfZGlhZ193cml0ZShzdHJ1Y3QgYXRoMTBrICphciwgdTMyIGFkZHJlc3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYxNC1cdFx0XHRcdCAgICAgY29uc3Qgdm9pZCAqZGF0YSwgaW50IG5ieXRlcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjE1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjE2Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjYxNzpcdHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUgKmNtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjE4LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYyMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjIzOlx0Y21kID0gKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUgKilhcl91c2ItXHUwMDNlZGlhZ19jbWRfYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MjQtXHRtZW1zZXQoY21kLCAwLCBzaXplb2YoKmNtZCkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2Mjk6XHRyZXQgPSBhdGgxMGtfdXNiX2N0cmxfbXNnX2V4Y2hhbmdlKGFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MzAtXHRcdFx0XHRcdCAgIEFUSDEwS19VU0JfQ09OVFJPTF9SRVFfRElBR19DTUQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjY0MDpzdGF0aWMgaW50IGF0aDEwa191c2JfYm1pX2V4Y2hhbmdlX21zZyhzdHJ1Y3QgYXRoMTBrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjQxLVx0XHRcdFx0ICAgICAgIHZvaWQgKnJlcSwgdTMyIHJlcV9sZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NDYtXHRpZiAocmVxKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjY0NzpcdFx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTY0OC1cdFx0XHRcdFx0XHQgQVRIMTBLX1VTQl9DT05UUk9MX1JFUV9TRU5EX0JNSV9DTUQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NTgtXHRpZiAocmVzcCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2NTk6XHRcdHJldCA9IGF0aDEwa191c2Jfc3VibWl0X2N0cmxfaW4oYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTY2MC1cdFx0XHRcdFx0XHRBVEgxMEtfVVNCX0NPTlRST0xfUkVRX1JFQ1ZfQk1JX1JFU1AsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjY3MzpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX2hpZl9nZXRfZGVmYXVsdF9waXBlKHN0cnVjdCBhdGgxMGsgKmFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NzQtXHRcdFx0XHRcdCAgICB1OCAqdWxfcGlwZSwgdTggKmRsX3BpcGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjY4MDpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX21hcF9zZXJ2aWNlX3RvX3BpcGUoc3RydWN0IGF0aDEwayAqYXIsIHUxNiBzdmNfaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTY4MS1cdFx0XHRcdFx0ICAgICAgdTggKnVsX3BpcGUsIHU4ICpkbF9waXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MDQ6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl9wb3dlcl91cChzdHJ1Y3QgYXRoMTBrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzA1LVx0XHRcdFx0ICAgZW51bSBhdGgxMGtfZmlybXdhcmVfbW9kZSBmd19tb2RlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MTA6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9oaWZfcG93ZXJfZG93bihzdHJ1Y3QgYXRoMTBrICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzExLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzEyOlx0YXRoMTBrX3VzYl9mbHVzaF9hbGwoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MTMtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MTc6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl9zdXNwZW5kKHN0cnVjdCBhdGgxMGsgKmFyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MjI6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl9yZXN1bWUoc3RydWN0IGF0aDEwayAqYXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTcyMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjcyODpzdGF0aWMgY29uc3Qgc3RydWN0IGF0aDEwa19oaWZfb3BzIGF0aDEwa191c2JfaGlmX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzI5Olx0LnR4X3NnXHRcdFx0PSBhdGgxMGtfdXNiX2hpZl90eF9zZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzMwOlx0LmRpYWdfcmVhZFx0XHQ9IGF0aDEwa191c2JfaGlmX2RpYWdfcmVhZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzMxOlx0LmRpYWdfd3JpdGVcdFx0PSBhdGgxMGtfdXNiX2hpZl9kaWFnX3dyaXRlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MzI6XHQuZXhjaGFuZ2VfYm1pX21zZ1x0PSBhdGgxMGtfdXNiX2JtaV9leGNoYW5nZV9tc2csXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczMzpcdC5zdGFydFx0XHRcdD0gYXRoMTBrX3VzYl9oaWZfc3RhcnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczNDpcdC5zdG9wXHRcdFx0PSBhdGgxMGtfdXNiX2hpZl9zdG9wLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MzU6XHQubWFwX3NlcnZpY2VfdG9fcGlwZVx0PSBhdGgxMGtfdXNiX2hpZl9tYXBfc2VydmljZV90b19waXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MzY6XHQuZ2V0X2RlZmF1bHRfcGlwZVx0PSBhdGgxMGtfdXNiX2hpZl9nZXRfZGVmYXVsdF9waXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3Mzc6XHQuZ2V0X2ZyZWVfcXVldWVfbnVtYmVyXHQ9IGF0aDEwa191c2JfaGlmX2dldF9mcmVlX3F1ZXVlX251bWJlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM4Olx0LnBvd2VyX3VwXHRcdD0gYXRoMTBrX3VzYl9oaWZfcG93ZXJfdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczOTpcdC5wb3dlcl9kb3duXHRcdD0gYXRoMTBrX3VzYl9oaWZfcG93ZXJfZG93bixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzQwLSNpZmRlZiBDT05GSUdfUE1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzQxOlx0LnN1c3BlbmRcdFx0PSBhdGgxMGtfdXNiX2hpZl9zdXNwZW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3NDI6XHQucmVzdW1lXHRcdFx0PSBhdGgxMGtfdXNiX2hpZl9yZXN1bWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc0My0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzQ2OnN0YXRpYyB1OCBhdGgxMGtfdXNiX2dldF9sb2dpY2FsX3BpcGVfbnVtKHU4IGVwX2FkZHJlc3MsIGludCAqdXJiX2NvdW50KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03NDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3OTE6c3RhdGljIGludCBhdGgxMGtfdXNiX2FsbG9jX3BpcGVfcmVzb3VyY2VzKHN0cnVjdCBhdGgxMGsgKmFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3OTI6XHRcdFx0XHRcdCAgIHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnBpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc5My1cdFx0XHRcdFx0ICAgaW50IHVyYl9jbnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MTEtXHRcdHBpcGUtXHUwMDNldXJiX2FsbG9jJiM0MzsmIzQzOztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODEyOlx0XHRhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUocGlwZSwgdXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MTMtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjgyMzpzdGF0aWMgaW50IGF0aDEwa191c2Jfc2V0dXBfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDEwayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgyNC1cdFx0XHRcdFx0ICAgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODI1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODI2Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgyNy1cdHN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmlmYWNlX2Rlc2MgPSBpbnRlcmZhY2UtXHUwMDNlY3VyX2FsdHNldHRpbmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgyOC1cdHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZW5kcG9pbnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjgyOTpcdHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnBpcGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgzMC1cdGludCByZXQsIGksIHVyYmNvdW50O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODcxLVx0XHRwaXBlX251bSA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjg3MjpcdFx0ICAgIGF0aDEwa191c2JfZ2V0X2xvZ2ljYWxfcGlwZV9udW0oZW5kcG9pbnQtXHUwMDNlYkVuZHBvaW50QWRkcmVzcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODczLVx0XHRcdFx0XHRcdCAgICBcdTAwMjZ1cmJjb3VudCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjkyNTpcdFx0cmV0ID0gYXRoMTBrX3VzYl9hbGxvY19waXBlX3Jlc291cmNlcyhhciwgcGlwZSwgdXJiY291bnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MjYtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjkzMzpzdGF0aWMgaW50IGF0aDEwa191c2JfY3JlYXRlKHN0cnVjdCBhdGgxMGsgKmFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MzQtXHRcdFx0ICAgICBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MzUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo5MzY6XHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTM3LVx0c3RydWN0IHVzYl9kZXZpY2UgKmRldiA9IGludGVyZmFjZV90b191c2JkZXYoaW50ZXJmYWNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTM4Olx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTM5LVx0aW50IHJldCwgaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk0OC1cdFx0SU5JVF9XT1JLKFx1MDAyNnBpcGUtXHUwMDNlaW9fY29tcGxldGVfd29yayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTQ5Olx0XHRcdCAgYXRoMTBrX3VzYl9pb19jb21wX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NTAtXHRcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2cGlwZS1cdTAwM2Vpb19jb21wX3F1ZXVlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTY2Olx0cmV0ID0gYXRoMTBrX3VzYl9zZXR1cF9waXBlX3Jlc291cmNlcyhhciwgaW50ZXJmYWNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTY3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk3Mi1lcnI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjk3MzpcdGF0aDEwa191c2JfZGVzdHJveShhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk3NC1cdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjk3NzpzdGF0aWMgaW50IGF0aDEwa191c2JfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqY3R4LCBpbnQgYnVkZ2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05Nzgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTkxLS8qIGF0aDEwayB1c2IgZHJpdmVyIHJlZ2lzdGVyZWQgZnVuY3Rpb25zICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjk5MjpzdGF0aWMgaW50IGF0aDEwa191c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTkzLVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05OTUtXHRzdHJ1Y3QgYXRoMTBrICphcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTk2Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTk3LVx0c3RydWN0IHVzYl9kZXZpY2UgKmRldiA9IGludGVyZmFjZV90b191c2JkZXYoaW50ZXJmYWNlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwMTAtXHRhciA9IGF0aDEwa19jb3JlX2NyZWF0ZShzaXplb2YoKmFyX3VzYiksIFx1MDAyNmRldi1cdTAwM2VkZXYsIEFUSDEwS19CVVNfVVNCLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDExOlx0XHRcdFx0aHdfcmV2LCBcdTAwMjZhdGgxMGtfdXNiX2hpZl9vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDEyLVx0aWYgKCFhcikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTAxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTAxNzpcdG5ldGlmX25hcGlfYWRkKGFyLVx1MDAzZW5hcGlfZGV2LCBcdTAwMjZhci1cdTAwM2VuYXBpLCBhdGgxMGtfdXNiX25hcGlfcG9sbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwMTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDI2Olx0YXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTAyNzpcdHJldCA9IGF0aDEwa191c2JfY3JlYXRlKGFyLCBpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDI4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNTEtZXJyX3VzYl9kZXN0cm95OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDUyOlx0YXRoMTBrX3VzYl9kZXN0cm95KGFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA1My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNjA6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDYyOlx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA2My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNjktXHRuZXRpZl9uYXBpX2RlbChcdTAwMjZhcl91c2ItXHUwMDNlYXItXHUwMDNlbmFwaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNzA6XHRhdGgxMGtfdXNiX2Rlc3Ryb3koYXJfdXNiLVx1MDAzZWFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA3MS1cdGF0aDEwa19jb3JlX2Rlc3Ryb3koYXJfdXNiLVx1MDAzZWFyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNzY6c3RhdGljIGludCBhdGgxMGtfdXNiX3BtX3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA3Ny1cdFx0XHRcdCBwbV9tZXNzYWdlX3QgbWVzc2FnZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA3OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNzk6XHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gdXNiX2dldF9pbnRmZGF0YShpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDgxOlx0YXRoMTBrX3VzYl9mbHVzaF9hbGwoYXJfdXNiLVx1MDAzZWFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA4Mi1cdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA4NTpzdGF0aWMgaW50IGF0aDEwa191c2JfcG1fcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwODYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDg3Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50ZXJmYWNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA4OC1cdHN0cnVjdCBhdGgxMGsgKmFyID0gYXJfdXNiLVx1MDAzZWFyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDg5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDkwOlx0YXRoMTBrX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKGFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDkxLVx0XHRcdFx0ICAgICAgIFx1MDAyNmFyX3VzYi1cdTAwM2VwaXBlc1tBVEgxMEtfVVNCX1BJUEVfUlhfREFUQV0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA5ODojZGVmaW5lIGF0aDEwa191c2JfcG1fc3VzcGVuZCBOVUxMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwOTk6I2RlZmluZSBhdGgxMGtfdXNiX3BtX3Jlc3VtZSBOVUxMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMTAzLS8qIHRhYmxlIG9mIGRldmljZXMgdGhhdCB3b3JrIHdpdGggdGhpcyBkcml2ZXIgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTEwNDpzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYXRoMTBrX3VzYl9pZHNbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEwNS1cdHtVU0JfREVWSUNFKDB4MTNiMSwgMHgwMDQyKX0sIC8qIExpbmtzeXMgV1VTQjYxMDBNICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMTA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTA5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBhdGgxMGtfdXNiX2lkcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjExMTE6c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIGF0aDEwa191c2JfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTEyOlx0Lm5hbWUgPSBcJiMzNDthdGgxMGtfdXNiXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTEzOlx0LnByb2JlID0gYXRoMTBrX3VzYl9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTExNDpcdC5zdXNwZW5kID0gYXRoMTBrX3VzYl9wbV9zdXNwZW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTE1Olx0LnJlc3VtZSA9IGF0aDEwa191c2JfcG1fcmVzdW1lLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTE2Olx0LmRpc2Nvbm5lY3QgPSBhdGgxMGtfdXNiX2Rpc2Nvbm5lY3QsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjExMTc6XHQuaWRfdGFibGUgPSBhdGgxMGtfdXNiX2lkcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTExOC1cdC5zdXBwb3J0c19hdXRvc3VzcGVuZCA9IHRydWUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMTIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTIyOm1vZHVsZV91c2JfZHJpdmVyKGF0aDEwa191c2JfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEyMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo0NDpzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNDUtXHRfX2xlMzIgY21kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oOjUxOnN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfcmVhZCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTUyLVx0X19sZTMyIGNtZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo1NjpzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNTctXHR1OCB2YWx1ZVs0XTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTYwLS8qIHR4L3J4IHBpcGVzIGZvciB1c2IgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6NjE6ZW51bSBhdGgxMGtfdXNiX3BpcGVfaWQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC02Mi1cdEFUSDEwS19VU0JfUElQRV9UWF9DVFJMID0gMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo3MzpzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNzQtXHRzdHJ1Y3QgbGlzdF9oZWFkIHVyYl9saXN0X2hlYWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC04Mi1cdHU4IGxvZ2ljYWxfcGlwZV9udW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oOjgzOlx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtODQtXHR1MTYgbWF4X3BhY2tldF9zaXplO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtOTItLyogdXNiIGRldmljZSBvYmplY3QgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6OTM6c3RydWN0IGF0aDEwa191c2Ige1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC05NC1cdC8qIHByb3RlY3RzIHBpcGUtXHUwMDNldXJiX2xpc3RfaGVhZCBhbmQgIHBpcGUtXHUwMDNldXJiX2NudCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtOTgtXHRzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo5OTpcdHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgcGlwZXNbQVRIMTBLX1VTQl9QSVBFX01BWF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTEwMC1cdHU4ICpkaWFnX2NtZF9idWZmZXI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaD0xMDY9c3RydWN0IGF0aDEwa191cmJfY29udGV4dCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTEwNy1cdHN0cnVjdCBsaXN0X2hlYWQgbGluaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6MTA4Olx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtMTA5LVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTExMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6MTEzOnN0YXRpYyBpbmxpbmUgc3RydWN0IGF0aDEwa191c2IgKmF0aDEwa191c2JfcHJpdihzdHJ1Y3QgYXRoMTBrICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtMTE0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6MTE1Olx0cmV0dXJuIChzdHJ1Y3QgYXRoMTBrX3VzYiAqKWFyLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC0xMTYtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDA2OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NDQ0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMjA3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgUG90ZW50aWFsOiBhdGgxMGsgRHJpdmVyKioKCk9rYXksIHNvIEkgc2VlIHRoYXQgYENPTkZJR19BVEgxMEtfVVNCYCBpcyBwcmVzZW50LiBUaGF0JiMzOTtzIGdvb2Q7IGl0IG1lYW5zIHdlIGNhbiBkZWZpbml0ZWx5IGZ1enogdGhpcyBvdmVyIFVTQi4gVGhlIGV4aXN0ZW5jZSBvZiBgQ09ORklHX0FUSDEwS19QQ0lgIGFuZCBgQ09ORklHX0FUSDEwS19TRElPYCBmdXJ0aGVyIGV4cGFuZHMgb3VyIGF0dGFjayBzdXJmYWNlLgoKVGhlIGNoYW5nZXMgYXJlIGNlbnRlcmVkIGluIGB3bWkuY2AgYW5kIGB3bWktdGx2LmNgLiBSaWdodCwgdGhvc2UgZmlsZXMgaGFuZGxlIHRoZSBXTUkgcHJvdG9jb2wg4oCTIHRoZSBXaXJlbGVzcyBNb2R1bGUgSW50ZXJmYWNlLCB3aGljaCBtZWFucyB0aGV5JiMzOTtyZSByZXNwb25zaWJsZSBmb3IgcHJvY2Vzc2luZyBwYWNrZXRzIGNvbWluZyBmcm9tIHRoZSBmaXJtd2FyZS4gU2luY2Ugd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBmdXp6aW5nLCBzcGVjaWZpY2FsbHkgd2l0aCB0aGUgYWJpbGl0eSB0byBzaW11bGF0ZSB0aGUgZmlybXdhcmUgb3IgaW5qZWN0IHBhY2tldHMgZnJvbSB0aGUgaG9zdCBzaWRlLCBsaWtlIHZpYSBVU0Igb3IgUENJLCBJIGtub3cgdGhpcyBjb2RlIHBhdGggaXMgZGVmaW5pdGVseSByZWFjaGFibGUgYW5kIHNob3VsZCBiZSBxdWl0ZSBmdXp6YWJsZS4KCkkgbmVlZCB0byBjb25maXJtIHdoaWNoIGNvbmZpZ3MgYXJlIGludm9sdmVkLCBzbywgbGV0JiMzOTtzIHNlZS4gSSYjMzk7bGwgbmVlZCBgQ09ORklHX0FUSDEwS2AsIG9mIGNvdXJzZS4gQWxzbyBgQ09ORklHX0FUSDEwS19VU0JgLCBgQ09ORklHX0FUSDEwS19QQ0lgLCBgQ09ORklHX0FUSDEwS19TRElPYCBhbmQgYENPTkZJR19BVEgxMEtfU05PQ2AuCgpOb3csIGxldCYjMzk7cyB2ZXJpZnkgdGhhdCB0aGUgYmFzZSBgQ09ORklHX0FUSDEwS2AgYW5kIGl0cyBkZXBlbmRlbmNpZXMgYXJlIGNvbmZpZ3VyZWQgYXMgZXhwZWN0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDY6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEFUSDEwSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBJU0NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzoyOmNvbmZpZyBBVEgxMEtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyA4MDIuMTFhYyB3aXJlbGVzcyBjYXJkcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjE1OmNvbmZpZyBBVEgxMEtfQ0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0xNi1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0xNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzoxODpjb25maWcgQVRIMTBLX1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTE5LVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyBhdGgxMGsgUENJIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6MjQ6Y29uZmlnIEFUSDEwS19BSEJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGgxMGsgQUhCIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6MzA6Y29uZmlnIEFUSDEwS19TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMzEtXHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDEwayBTRElPIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6MzY6Y29uZmlnIEFUSDEwS19VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0zNy1cdHRyaXN0YXRlIFwmIzM0O0F0aGVyb3MgYXRoMTBrIFVTQiBzdXBwb3J0IChFWFBFUklNRU5UQUwpXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjQzOmNvbmZpZyBBVEgxMEtfU05PQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTQ0LVx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gYXRoMTBrIFNOT0Mgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzo1Njpjb25maWcgQVRIMTBLX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctNTctXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoMTBrIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy02My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzo2NDpjb25maWcgQVRIMTBLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy02NS1cdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGgxMGsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjcyOmNvbmZpZyBBVEgxMEtfTEVEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTczLVx0Ym9vbFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy03Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzo3ODpjb25maWcgQVRIMTBLX1NQRUNUUkFMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctNzktXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoMTBrIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy04NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzo4Njpjb25maWcgQVRIMTBLX1RSQUNJTkdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy04Ny1cdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGgxMGsgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjkzOmNvbmZpZyBBVEgxMEtfREZTX0NFUlRJRklFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTk0LVx0Ym9vbCBcJiMzNDtBdGhlcm9zIERGUyBzdXBwb3J0IGZvciBjZXJ0aWZpZWQgcGxhdGZvcm1zXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDY6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwNTEKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBXTUkgRXZlbnQgSGFuZGxlcnMqKgoKT2theSwgc28gdGhlIHRhc2sgYXQgaGFuZCBpcyB0byB0aWdodGVuIHVwIHRoZSBzZWN1cml0eSBhcm91bmQgaG93IHdlIGhhbmRsZSBXTUkgZXZlbnRzIGNvbWluZyBpbiBmcm9tIHRoZSBmaXJtd2FyZSwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYXRoMTBrIGRyaXZlci4gUmlnaHQsIEkgbmVlZCB0byBmb2N1cyBvbiBmdXp6aW5nLiBUaGUga2V5IGZ1bmN0aW9ucyB0byB0YXJnZXQgYXJlIHRoZSBvbmVzIHRoYXQgYWN0dWFsbHkgKnByb2Nlc3MqIHRob3NlIGluY29taW5nIGV2ZW50cy4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIHRoZSBwcmltYXJ5IHRhcmdldHM6CgoqICAgYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYAoqICAgYGF0aDEwa193bWlfb3BfcnhgCiogICBgYXRoMTBrX3dtaV8xMF8xX29wX3J4YAoqICAgYGF0aDEwa193bWlfMTBfMl9vcF9yeGAKKiAgIGBhdGgxMGtfd21pXzEwXzRfb3BfcnhgCiogICBgYXRoMTBrX3dtaV90bHZfb3BfcnhgCgpUaGVzZSBhcmUgYWxsIHJlY2VwdGlvbiBoYW5kbGVycywgYW5kIHRoYXQgbWFrZXMgdGhlbSBwcmltZSBjYW5kaWRhdGVzIGZvciBmdXp6aW5nLiBUaGV5JiMzOTtyZSB3aGVyZSB3ZSB0YWtlIHBvdGVudGlhbGx5IG1hbGljaW91cyBkYXRhIGZyb20gdGhlIGZpcm13YXJlLCBwYXJzZSBpdCwgYW5kIGFjdCBvbiBpdC4gQSB3ZWxsLWNyYWZ0ZWQgZnV6eiBpbnB1dCBjb3VsZCBsZWFkIHRvIGNyYXNoZXMsIG1lbW9yeSBjb3JydXB0aW9uLCBvciBldmVuIG1vcmUgc2VyaW91cyBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGRlZGljYXRlIHRpbWUgdG8gdGVzdGluZyB0aGVzZSBmdW5jdGlvbnMuIEZpcnN0LCBJJiMzOTtsbCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGF0aDEwa193bWlfb3BfcnhgIGFuZCBzZWUgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBvdGhlcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDY6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTBrX3dtaV9vcF9yeCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYz01ODc2PWJvb2wgYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jLTU4ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jOjU4ODk6c3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMtNTg5MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYz05MTQ1PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgd21pX29wcyB3bWlfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYzo5MTQ2Olx0LnJ4ID0gYXRoMTBrX3dtaV9vcF9yeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMtOTE0Ny1cdC5tYXBfc3ZjID0gd21pX21haW5fc3ZjX21hcCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwNjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDgzNwoJCQkJCQkJb3V0cHV0OiAyNDgKCQkJCQkJCXRob3VnaHRzOiAzMDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVnVsbmVyYWJpbGl0eSBGaXhlcyBpbiBhdGgxMGsgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHNldCBvZiBjaGFuZ2VzIGhlcmUsIGFuZCB0aGUgY29yZSBvZiBpdCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IHdpdGhpbiB0aGUgYGF0aDEwa2AgZHJpdmVyLiBUaGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBhcmU6IGBhdGgxMGtfd21pX29wX3J4YCwgYGF0aDEwa193bWlfMTBfMV9vcF9yeGAsIGBhdGgxMGtfd21pXzEwXzJfb3BfcnhgLCBgYXRoMTBrX3dtaV8xMF80X29wX3J4YCwgYGF0aDEwa193bWlfdGx2X29wX3J4YCwgYW5kIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAuIFRoZXNlIGFyZSBhbGwgcmVsYXRlZCB0byBob3cgdGhlIGRyaXZlciBoYW5kbGVzIGluY29taW5nIFdNSSAoV2lyZWxlc3MgTWFuYWdlbWVudCBJbnRlcmZhY2UpIG9wZXJhdGlvbnMsIGFuZCBpdCBsb29rcyBsaWtlIGEgcmVhZCBwYXN0IGFsbG9jYXRlZCBtZW1vcnkgd2FzIHBvc3NpYmxlIHVuZGVyIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMuCgpUbyBwcm9wZXJseSB2YWxpZGF0ZSB0aGlzIGZpeCBhbmQgbWFrZSBpdCBlYXNpZXIgdG8gdGVzdCwgSSBzaG91bGQgZW5hYmxlIHRoZSBgQVRIMTBLYCBhbmQgYEFUSDEwS19VU0JgIGNvbmZpZ3MuIFVTQiBpcyBnZW5lcmFsbHkgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZyB0aGVzZSB0eXBlcyBvZiB2dWxuZXJhYmlsaXRpZXMsIHNpbmNlIGl0JiMzOTtzIGVhc2llciB0byBzZXQgdXAgYSBmdXp6aW5nIGVudmlyb25tZW50LiBJIG1pZ2h0IGFsc28gY29uc2lkZXIgZW5hYmxpbmcgYEFUSDEwS19QQ0lgIGFuZCBgQVRIMTBLX1NESU9gIHRvIGVuc3VyZSB3aWRlciBjb3ZlcmFnZS4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJiMzOTtsbCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IEkmIzM5O3ZlIGdvdCB0aGUgZXhhY3QgZnVuY3Rpb24gbmFtZXMgY29ycmVjdDogYGF0aDEwa193bWlfdGx2X29wX3J4YCwgYGF0aDEwa193bWlfb3BfcnhgLCBgYXRoMTBrX3dtaV8xMF8xX29wX3J4YCwgYGF0aDEwa193bWlfMTBfMl9vcF9yeGAsIGBhdGgxMGtfd21pXzEwXzRfb3BfcnhgLCBgYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHJgLiBZZXAsIHRoYXQmIzM5O3MgcmlnaHQuCgpOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AgYW5kIG1vdmUgZm9yd2FyZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDY6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDEwSyYjMzQ7LAogICAgJiMzNDtBVEgxMEtfVVNCJiMzNDssCiAgICAmIzM0O0FUSDEwS19QQ0kmIzM0OywKICAgICYjMzQ7QVRIMTBLX1NESU8mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthdGgxMGtfd21pX3Rsdl9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pX29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfMTBfMV9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pXzEwXzJfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV8xMF80X29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfcHVsbF9jbWRfaGRyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBhdGgxMGsgZHJpdmVyIGJ5IGludHJvZHVjaW5nIGEgaGVscGVyIGZ1bmN0aW9uIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAgdG8gc2FmZWx5IHB1bGwgdGhlIFdNSSBjb21tYW5kIGhlYWRlciBmcm9tIGFuIHNrYi4gVGhpcyBhZmZlY3RzIHRoZSBwcm9jZXNzaW5nIG9mIFdNSSBldmVudHMgcmVjZWl2ZWQgZnJvbSB0aGUgZmlybXdhcmUuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgZnV6emFibGUgdmlhIHZpcnR1YWxpemVkIGJ1c2VzIGxpa2UgVVNCIG9yIFBDSS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRIMTBLJiMzNDssCiAgICAmIzM0O0FUSDEwS19VU0ImIzM0OywKICAgICYjMzQ7QVRIMTBLX1BDSSYjMzQ7LAogICAgJiMzNDtBVEgxMEtfU0RJTyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2F0aDEwa193bWlfdGx2X29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV8xMF8xX29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfMTBfMl9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pXzEwXzRfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV9wdWxsX2NtZF9oZHImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGF0aDEwayBkcml2ZXIgYnkgaW50cm9kdWNpbmcgYSBoZWxwZXIgZnVuY3Rpb24gYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYCB0byBzYWZlbHkgcHVsbCB0aGUgV01JIGNvbW1hbmQgaGVhZGVyIGZyb20gYW4gc2tiLiBUaGlzIGFmZmVjdHMgdGhlIHByb2Nlc3Npbmcgb2YgV01JIGV2ZW50cyByZWNlaXZlZCBmcm9tIHRoZSBmaXJtd2FyZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCBmdXp6YWJsZSB2aWEgdmlydHVhbGl6ZWQgYnVzZXMgbGlrZSBVU0Igb3IgUENJLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjRUMDY6MzE6NDEuNTM0MzY1NjM2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQzNTMwODgwMzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQVRIMTBLXCIsXG4gICAgXCJBVEgxMEtfVVNCXCIsXG4gICAgXCJBVEgxMEtfUENJXCIsXG4gICAgXCJBVEgxMEtfU0RJT1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImF0aDEwa193bWlfdGx2X29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pX29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pXzEwXzFfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfMTBfMl9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV8xMF80X29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pX3B1bGxfY21kX2hkclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBhdGgxMGsgZHJpdmVyIGJ5IGludHJvZHVjaW5nIGEgaGVscGVyIGZ1bmN0aW9uIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAgdG8gc2FmZWx5IHB1bGwgdGhlIFdNSSBjb21tYW5kIGhlYWRlciBmcm9tIGFuIHNrYi4gVGhpcyBhZmZlY3RzIHRoZSBwcm9jZXNzaW5nIG9mIFdNSSBldmVudHMgcmVjZWl2ZWQgZnJvbSB0aGUgZmlybXdhcmUuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgZnV6emFibGUgdmlhIHZpcnR1YWxpemVkIGJ1c2VzIGxpa2UgVVNCIG9yIFBDSS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDY6MzE6NDEuNTM0MzcxOTk2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozODI3NDEzMzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3MzQ3NTRhNDczZTFiZTBkNmRkMDMzYmQxNDk4M2IyZTQ3OGViOGUwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDI0IDA2OjMxOjQwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLXRsdi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmNcXG5pbmRleCAwMWYyZDFmYTlkN2Q5Mi4uMjcyZGFiMzdkYzE5NGYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuY1xcbkBAIC02MzgsMTQgKzYzOCwxMCBAQCBzdGF0aWMgaW50IGF0aDEwa193bWlfdGx2X2V2ZW50X3BlZXJfZGVsZXRlX3Jlc3Aoc3RydWN0IGF0aDEwayAqYXIsXFxuIFxcbiBzdGF0aWMgdm9pZCBhdGgxMGtfd21pX3Rsdl9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4ge1xcbi1cXHRzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XFxuLVxcdGVudW0gd21pX3Rsdl9ldmVudF9pZCBpZDtcXG4gXFx0Ym9vbCBjb25zdW1lZDtcXG4rXFx0dTMyIGlkO1xcbiBcXG4tXFx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXFx1MDAzZWRhdGE7XFxuLVxcdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVxcdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xcbi1cXG4tXFx0aWYgKHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpID09IE5VTEwpXFxuK1xcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcXHUwMDI2aWQpKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuIFxcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNcXG5pbmRleCBlNTc1ODhjMTljODAwYy4uMjk2YTg5MTA2NzM2MTkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNcXG5AQCAtNTg3MywxNSArNTg3MywyNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX3dtaV9xdWV1ZV9zZXRfY292ZXJhZ2VfY2xhc3Nfd29yayhzdHJ1Y3QgYXRoMTBrICphcilcXG4gXFx0fVxcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCBhdGgxMGtfd21pX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbitib29sIGF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaWQpXFxuIHtcXG4tXFx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xcbi1cXHRlbnVtIHdtaV9ldmVudF9pZCBpZDtcXG4rXFx0Y29uc3Qgc3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xcbiBcXG4tXFx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXFx1MDAzZWRhdGE7XFxuLVxcdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVxcdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xcbitcXHRjbWRfaGRyID0gc2tiX3B1bGxfZGF0YShza2IsIHNpemVvZigqY21kX2hkcikpO1xcbitcXHRpZiAoIWNtZF9oZHIpXFxuK1xcdFxcdHJldHVybiBmYWxzZTtcXG4rXFxuK1xcdCppZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcXG4rXFxuK1xcdHJldHVybiB0cnVlO1xcbit9XFxuK1xcbitzdGF0aWMgdm9pZCBhdGgxMGtfd21pX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbit7XFxuK1xcdHUzMiBpZDtcXG4gXFxuLVxcdGlmIChza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSA9PSBOVUxMKVxcbitcXHRpZiAoIWF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHNrYiwgXFx1MDAyNmlkKSlcXG4gXFx0XFx0Z290byBvdXQ7XFxuIFxcbiBcXHR0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLVxcdTAwM2VkYXRhLCBza2ItXFx1MDAzZWxlbik7XFxuQEAgLTYwMDIsMTQgKzYwMTEsMTAgQEAgc3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gXFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4ge1xcbi1cXHRzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XFxuLVxcdGVudW0gd21pXzEweF9ldmVudF9pZCBpZDtcXG4gXFx0Ym9vbCBjb25zdW1lZDtcXG4rXFx0dTMyIGlkO1xcbiBcXG4tXFx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXFx1MDAzZWRhdGE7XFxuLVxcdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVxcdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xcbi1cXG4tXFx0aWYgKHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpID09IE5VTEwpXFxuK1xcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcXHUwMDI2aWQpKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuIFxcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuKTtcXG5AQCAtNjEzMywxNCArNjEzOCwxMCBAQCBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzFfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXFxuIFxcbiBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzJfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXFxuIHtcXG4tXFx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xcbi1cXHRlbnVtIHdtaV8xMF8yX2V2ZW50X2lkIGlkO1xcbiBcXHRib29sIGNvbnN1bWVkO1xcbitcXHR1MzIgaWQ7XFxuIFxcbi1cXHRjbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi1cXHUwMDNlZGF0YTtcXG4tXFx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXFx1MDAzZWNtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7XFxuLVxcbi1cXHRpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTClcXG4rXFx0aWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsIFxcdTAwMjZpZCkpXFxuIFxcdFxcdGdvdG8gb3V0O1xcbiBcXG4gXFx0dHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi1cXHUwMDNlZGF0YSwgc2tiLVxcdTAwM2VsZW4pO1xcbkBAIC02MjgyLDE0ICs2MjgzLDEwIEBAIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMl9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gXFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfNF9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4ge1xcbi1cXHRzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XFxuLVxcdGVudW0gd21pXzEwXzRfZXZlbnRfaWQgaWQ7XFxuIFxcdGJvb2wgY29uc3VtZWQ7XFxuK1xcdHUzMiBpZDtcXG4gXFxuLVxcdGNtZF9oZHIgPSAoc3RydWN0IHdtaV9jbWRfaGRyICopc2tiLVxcdTAwM2VkYXRhO1xcbi1cXHRpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcXG4tXFxuLVxcdGlmICghc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkpXFxuK1xcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcXHUwMDI2aWQpKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuIFxcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmhcXG5pbmRleCA3ZjUwYTFkZTZiOTc4ZS4uNGVjYzk0NzEyZjc2MjEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmhcXG5AQCAtNzQ0MCw2ICs3NDQwLDcgQEAgc3RydWN0IGF0aDEwa192aWY7XFxuIHN0cnVjdCBhdGgxMGtfZndfc3RhdHNfcGRldjtcXG4gc3RydWN0IGF0aDEwa19md19zdGF0c19wZWVyO1xcbiBzdHJ1Y3QgYXRoMTBrX2Z3X3N0YXRzO1xcbitzdHJ1Y3Qgc2tfYnVmZjtcXG4gXFxuIGludCBhdGgxMGtfd21pX2F0dGFjaChzdHJ1Y3QgYXRoMTBrICphcik7XFxuIHZvaWQgYXRoMTBrX3dtaV9kZXRhY2goc3RydWN0IGF0aDEwayAqYXIpO1xcbkBAIC03NDQ5LDYgKzc0NTAsNyBAQCBpbnQgYXRoMTBrX3dtaV93YWl0X2Zvcl91bmlmaWVkX3JlYWR5KHN0cnVjdCBhdGgxMGsgKmFyKTtcXG4gXFxuIHN0cnVjdCBza19idWZmICphdGgxMGtfd21pX2FsbG9jX3NrYihzdHJ1Y3QgYXRoMTBrICphciwgdTMyIGxlbik7XFxuIGludCBhdGgxMGtfd21pX2Nvbm5lY3Qoc3RydWN0IGF0aDEwayAqYXIpO1xcbitib29sIGF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaWQpO1xcbiBcXG4gaW50IGF0aDEwa193bWlfY21kX3NlbmQoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBjbWRfaWQpO1xcbiBpbnQgYXRoMTBrX3dtaV9jbWRfc2VuZF9ub3dhaXQoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDA2OjMxOjQxLjkxNzY5MzI3NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjMzOTY5NzUyMDkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUSDEwS1wiLFxuICAgIFwiQVRIMTBLX1VTQlwiLFxuICAgIFwiQVRIMTBLX1BDSVwiLFxuICAgIFwiQVRIMTBLX1NESU9cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhdGgxMGtfd21pX3Rsdl9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV8xMF8xX29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pXzEwXzJfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfMTBfNF9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgdnVsbmVyYWJpbGl0eSBpbiB0aGUgYXRoMTBrIGRyaXZlciBieSBpbnRyb2R1Y2luZyBhIGhlbHBlciBmdW5jdGlvbiBgYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHJgIHRvIHNhZmVseSBwdWxsIHRoZSBXTUkgY29tbWFuZCBoZWFkZXIgZnJvbSBhbiBza2IuIFRoaXMgYWZmZWN0cyB0aGUgcHJvY2Vzc2luZyBvZiBXTUkgZXZlbnRzIHJlY2VpdmVkIGZyb20gdGhlIGZpcm13YXJlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgYW5kIGZ1enphYmxlIHZpYSB2aXJ0dWFsaXplZCBidXNlcyBsaWtlIFVTQiBvciBQQ0kuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzM0NzU0YTQ3M2UxYmUwZDZkZDAzM2JkMTQ5ODNiMmU0NzhlYjhlMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDI0IDA2OjMxOjQwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuY1xuaW5kZXggMDFmMmQxZmE5ZDdkOTIuLjI3MmRhYjM3ZGMxOTRmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLXRsdi5jXG5AQCAtNjM4LDE0ICs2MzgsMTAgQEAgc3RhdGljIGludCBhdGgxMGtfd21pX3Rsdl9ldmVudF9wZWVyX2RlbGV0ZV9yZXNwKHN0cnVjdCBhdGgxMGsgKmFyLFxuIFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfdGx2X29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbi1cdHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcbi1cdGVudW0gd21pX3Rsdl9ldmVudF9pZCBpZDtcbiBcdGJvb2wgY29uc3VtZWQ7XG4rXHR1MzIgaWQ7XG4gXG4tXHRjbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi1cdTAwM2VkYXRhO1xuLVx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcbi1cbi1cdGlmIChza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSA9PSBOVUxMKVxuK1x0aWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsIFx1MDAyNmlkKSlcbiBcdFx0Z290byBvdXQ7XG4gXG4gXHR0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLVx1MDAzZWRhdGEsIHNrYi1cdTAwM2VsZW4pO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jXG5pbmRleCBlNTc1ODhjMTljODAwYy4uMjk2YTg5MTA2NzM2MTkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jXG5AQCAtNTg3MywxNSArNTg3MywyNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX3dtaV9xdWV1ZV9zZXRfY292ZXJhZ2VfY2xhc3Nfd29yayhzdHJ1Y3QgYXRoMTBrICphcilcbiBcdH1cbiB9XG4gXG4tc3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbitib29sIGF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaWQpXG4ge1xuLVx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xuLVx0ZW51bSB3bWlfZXZlbnRfaWQgaWQ7XG4rXHRjb25zdCBzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XG4gXG4tXHRjbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi1cdTAwM2VkYXRhO1xuLVx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcbitcdGNtZF9oZHIgPSBza2JfcHVsbF9kYXRhKHNrYiwgc2l6ZW9mKCpjbWRfaGRyKSk7XG4rXHRpZiAoIWNtZF9oZHIpXG4rXHRcdHJldHVybiBmYWxzZTtcbitcbitcdCppZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xuK1xuK1x0cmV0dXJuIHRydWU7XG4rfVxuK1xuK3N0YXRpYyB2b2lkIGF0aDEwa193bWlfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4re1xuK1x0dTMyIGlkO1xuIFxuLVx0aWYgKHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpID09IE5VTEwpXG4rXHRpZiAoIWF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHNrYiwgXHUwMDI2aWQpKVxuIFx0XHRnb3RvIG91dDtcbiBcbiBcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXHUwMDNlZGF0YSwgc2tiLVx1MDAzZWxlbik7XG5AQCAtNjAwMiwxNCArNjAxMSwxMCBAQCBzdGF0aWMgdm9pZCBhdGgxMGtfd21pX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4tXHRzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XG4tXHRlbnVtIHdtaV8xMHhfZXZlbnRfaWQgaWQ7XG4gXHRib29sIGNvbnN1bWVkO1xuK1x0dTMyIGlkO1xuIFxuLVx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXHUwMDNlZGF0YTtcbi1cdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVx1MDAzZWNtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7XG4tXG4tXHRpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTClcbitcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcdTAwMjZpZCkpXG4gXHRcdGdvdG8gb3V0O1xuIFxuIFx0dHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuKTtcbkBAIC02MTMzLDE0ICs2MTM4LDEwIEBAIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcbiBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzJfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuLVx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xuLVx0ZW51bSB3bWlfMTBfMl9ldmVudF9pZCBpZDtcbiBcdGJvb2wgY29uc3VtZWQ7XG4rXHR1MzIgaWQ7XG4gXG4tXHRjbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi1cdTAwM2VkYXRhO1xuLVx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcbi1cbi1cdGlmIChza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSA9PSBOVUxMKVxuK1x0aWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsIFx1MDAyNmlkKSlcbiBcdFx0Z290byBvdXQ7XG4gXG4gXHR0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLVx1MDAzZWRhdGEsIHNrYi1cdTAwM2VsZW4pO1xuQEAgLTYyODIsMTQgKzYyODMsMTAgQEAgc3RhdGljIHZvaWQgYXRoMTBrX3dtaV8xMF8yX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfNF9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4tXHRzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XG4tXHRlbnVtIHdtaV8xMF80X2V2ZW50X2lkIGlkO1xuIFx0Ym9vbCBjb25zdW1lZDtcbitcdHUzMiBpZDtcbiBcbi1cdGNtZF9oZHIgPSAoc3RydWN0IHdtaV9jbWRfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4tXHRpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xuLVxuLVx0aWYgKCFza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSlcbitcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcdTAwMjZpZCkpXG4gXHRcdGdvdG8gb3V0O1xuIFxuIFx0dHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuaW5kZXggN2Y1MGExZGU2Yjk3OGUuLjRlY2M5NDcxMmY3NjIxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuQEAgLTc0NDAsNiArNzQ0MCw3IEBAIHN0cnVjdCBhdGgxMGtfdmlmO1xuIHN0cnVjdCBhdGgxMGtfZndfc3RhdHNfcGRldjtcbiBzdHJ1Y3QgYXRoMTBrX2Z3X3N0YXRzX3BlZXI7XG4gc3RydWN0IGF0aDEwa19md19zdGF0cztcbitzdHJ1Y3Qgc2tfYnVmZjtcbiBcbiBpbnQgYXRoMTBrX3dtaV9hdHRhY2goc3RydWN0IGF0aDEwayAqYXIpO1xuIHZvaWQgYXRoMTBrX3dtaV9kZXRhY2goc3RydWN0IGF0aDEwayAqYXIpO1xuQEAgLTc0NDksNiArNzQ1MCw3IEBAIGludCBhdGgxMGtfd21pX3dhaXRfZm9yX3VuaWZpZWRfcmVhZHkoc3RydWN0IGF0aDEwayAqYXIpO1xuIFxuIHN0cnVjdCBza19idWZmICphdGgxMGtfd21pX2FsbG9jX3NrYihzdHJ1Y3QgYXRoMTBrICphciwgdTMyIGxlbik7XG4gaW50IGF0aDEwa193bWlfY29ubmVjdChzdHJ1Y3QgYXRoMTBrICphcik7XG4rYm9vbCBhdGgxMGtfd21pX3B1bGxfY21kX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmlkKTtcbiBcbiBpbnQgYXRoMTBrX3dtaV9jbWRfc2VuZChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIGNtZF9pZCk7XG4gaW50IGF0aDEwa193bWlfY21kX3NlbmRfbm93YWl0KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDY6MzE6NDEuOTE3Njk0MzE1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTM4NjA5NDIzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhdGgxMGtgLCBzcGVjaWZpY2FsbHkgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNgIGFuZCBgd21pLXRsdi5jYC4gSXQgc2VlbXMgbGlrZSBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgZml4IOKAkyB0aGV5J3JlIGludHJvZHVjaW5nIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAuIFRoZSBvcmlnaW5hbCBjb2RlLCBhcyBJJ20gc2VlaW5nIGl0LCBoYWQgYSBjbGFzc2ljIG92ZXJzaWdodDogYWNjZXNzaW5nIGBza2ItXHUwMDNlZGF0YWAgZGlyZWN0bHkgKmJlZm9yZSogY2hlY2tpbmcgaWYgdGhlIGBza2JgIGFjdHVhbGx5IGhhcyBlbm91Z2ggZGF0YS4gSXQgd2FzIGRvaW5nIHNvbWV0aGluZyBsaWtlIHRoaXM6XG5cbmBgYGNcblx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXHUwMDNlZGF0YTtcblx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcblxuXHRpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTClcblx0XHRnb3RvIG91dDtcbmBgYFxuXG5XaGljaCwgaWYgdGhlIGBza2JgIHdhcyB0b28gc21hbGwsIGNvdWxkIGxlYWQgdG8gYSByZWFsbHkgbmFzdHkgb3V0LW9mLWJvdW5kcyByZWFkLiBUaGUgbmV3IGNvZGUgaXMgc2FmZXIsIHVzaW5nIGBza2JfcHVsbF9kYXRhYCB3aGljaCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgZGF0YSBvciBOVUxMLCBpZiB0aGVyZSBpc24ndCBlbm91Z2ggZGF0YS4gVGhlIG5ldyBjb2RlIGlzOlxuXG5gYGBjXG5ib29sIGF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaWQpXG57XG5cdGNvbnN0IHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcblxuXHRjbWRfaGRyID0gc2tiX3B1bGxfZGF0YShza2IsIHNpemVvZigqY21kX2hkcikpO1xuXHRpZiAoIWNtZF9oZHIpXG5cdFx0cmV0dXJuIGZhbHNlO1xuXG5cdCppZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xuXG5cdHJldHVybiB0cnVlO1xufVxuYGBgXG5cbkdvb2QgY2F0Y2gsIHRoaXMgaXMgYSBwcmV0dHkgc3RhbmRhcmQsIGJ1dCBpbXBvcnRhbnQsIGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBwcmFjdGljZSB0byBwcmV2ZW50IG1lbW9yeSBjb3JydXB0aW9uLlxuXG5Ob3csIEknbSB0aGlua2luZyBhYm91dCBmdXp6aW5nIHRoaXMuIFNpbmNlIGBhdGgxMGtgIGlzIGEgZHJpdmVyIGZvciBBdGhlcm9zIHdpcmVsZXNzIGNhcmRzLCBpdCdzIHR5cGljYWxseSBhIFBDSS9VU0IgZHJpdmVyLCBJJ20gd29uZGVyaW5nIGlmIHRoaXMgaXMgYSB2dWxuZXJhYmxlIGNvZGUgcGF0aCBpbiBhIGZ1enphYmxlIGVudmlyb25tZW50LiBJJ20gY29uc2lkZXJpbmcgaWYgdGhpcyBpcyBzb21ldGhpbmcgd2UgY2FuIHJlYWNoIGluIGEgdmlydHVhbGl6ZWQgY29udGV4dC4gSSBrbm93IGRyaXZlcnMgd2l0aCB2aXJ0dWFsaXplZCBidXNlcyBhcmUgb2Z0ZW4gZ29vZCB0YXJnZXRzLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBzeXprYWxsZXIgY2FuIGV2ZW4gdGVzdCB0aGUgZHJpdmVyLlxuXG5TbywgYGF0aDEwa2AgaGFzIFBDSSwgU0RJTywgVVNCLCBhbmQgU05PQyBiYWNrZW5kcy4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgYXRoMTBrIFVTQiBpcyBzdXBwb3J0ZWQsIHRvIGFzc2VzcyB0aGUgZXhwb3N1cmUuIExldCBtZSB1c2UgYGdyZXBwZXJgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG1lbnRpb25zIG9mIGBhdGgxMGtfdXNiYCBvciBhbnl0aGluZyBzaW1pbGFyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTM5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTExLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDY6MzE6NTEuMzAzNzkyMDM4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4NDUzOTU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEwa191c2JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEwa1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL01ha2VmaWxlPTM0PWF0aDEwa19zZGlvLXkgKz0gc2Rpby5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9NYWtlZmlsZS0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL01ha2VmaWxlOjM2Om9iai0kKENPTkZJR19BVEgxMEtfVVNCKSArPSBhdGgxMGtfdXNiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL01ha2VmaWxlOjM3OmF0aDEwa191c2IteSArPSB1c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvTWFrZWZpbGUtMzgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTg6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKHN0cnVjdCBhdGgxMGsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTk6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcmVjdl9waXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYz0zNT1zdGF0aWMgc3RydWN0IGF0aDEwa191cmJfY29udGV4dCAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNjphdGgxMGtfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUoc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1NzpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUoc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU4LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBhdGgxMGtfdXJiX2NvbnRleHQgKnVyYl9jb250ZXh0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjc0OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfY2xlYW51cF9yZWN2X3VyYihzdHJ1Y3QgYXRoMTBrX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3OTpcXHRhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUodXJiX2NvbnRleHQtXFx1MDAzZXBpcGUsIHVyYl9jb250ZXh0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgwLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODI6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9mcmVlX3BpcGVfcmVzb3VyY2VzKHN0cnVjdCBhdGgxMGsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODM6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTg0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA0LVxcdGZvciAoOzspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNTpcXHRcXHR1cmJfY29udGV4dCA9IGF0aDEwa191c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShwaXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTE0OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfY2xlYW51cF9waXBlX3Jlc291cmNlcyhzdHJ1Y3QgYXRoMTBrICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTY6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMTctXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExOS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTBLX1VTQl9QSVBFX01BWDsgaSsrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTIwOlxcdFxcdGF0aDEwa191c2JfZnJlZV9waXBlX3Jlc291cmNlcyhhciwgXFx1MDAyNmFyX3VzYi1cXHUwMDNlcGlwZXNbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTIxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTI1OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfcmVjdl9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMjYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTI3LVxcdHN0cnVjdCBhdGgxMGtfdXJiX2NvbnRleHQgKnVyYl9jb250ZXh0ID0gdXJiLVxcdTAwM2Vjb250ZXh0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTI4OlxcdHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnBpcGUgPSB1cmJfY29udGV4dC1cXHUwMDNlcGlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEyOS1cXHRzdHJ1Y3QgYXRoMTBrICphciA9IHBpcGUtXFx1MDAzZWFyX3VzYi1cXHUwMDNlYXI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTE3Mi1jbGVhbnVwX3JlY3ZfdXJiOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTczOlxcdGF0aDEwa191c2JfY2xlYW51cF9yZWN2X3VyYih1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTE3Ny1cXHRcXHQvKiBvdXIgZnJlZSB1cmJzIGFyZSBwaWxpbmcgdXAsIHBvc3QgbW9yZSB0cmFuc2ZlcnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjE3ODpcXHRcXHRhdGgxMGtfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoYXIsIHBpcGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTc5LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTgyOnN0YXRpYyB2b2lkIGF0aDEwa191c2JfdHJhbnNtaXRfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTgzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTE4NC1cXHRzdHJ1Y3QgYXRoMTBrX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dCA9IHVyYi1cXHUwMDNlY29udGV4dDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjE4NTpcXHRzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlICpwaXBlID0gdXJiX2NvbnRleHQtXFx1MDAzZXBpcGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xODYtXFx0c3RydWN0IGF0aDEwayAqYXIgPSBwaXBlLVxcdTAwM2Vhcl91c2ItXFx1MDAzZWFyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xOTYtXFx0dXJiX2NvbnRleHQtXFx1MDAzZXNrYiA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxOTc6XFx0YXRoMTBrX3VzYl9mcmVlX3VyYl90b19waXBlKHVyYl9jb250ZXh0LVxcdTAwM2VwaXBlLCB1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xOTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIwNC0vKiBwaXBlIG9wZXJhdGlvbnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjIwNTpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyMDY6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcmVjdl9waXBlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjA3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjEyLVxcdGZvciAoOzspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjIxMzpcXHRcXHR1cmJfY29udGV4dCA9IGF0aDEwa191c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShyZWN2X3BpcGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjE0LVxcdFxcdGlmICghdXJiX2NvbnRleHQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIyOS1cXHRcXHRcXHRcXHQgIEFUSDEwS19VU0JfUlhfQlVGRkVSX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyMzA6XFx0XFx0XFx0XFx0ICBhdGgxMGtfdXNiX3JlY3ZfY29tcGxldGUsIHVyYl9jb250ZXh0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIzMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjU0LWVycjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI1NTpcXHRhdGgxMGtfdXNiX2NsZWFudXBfcmVjdl91cmIodXJiX2NvbnRleHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjU2LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI1ODpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX2ZsdXNoX2FsbChzdHJ1Y3QgYXRoMTBrICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI1OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyNjA6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yNjEtXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI3MTpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3N0YXJ0X3JlY3ZfcGlwZXMoc3RydWN0IGF0aDEwayAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yNzIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MjczOlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjc0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyNzc6XFx0YXRoMTBrX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKGFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjc4LVxcdFxcdFxcdFxcdCAgICAgICBcXHUwMDI2YXJfdXNiLVxcdTAwM2VwaXBlc1tBVEgxMEtfVVNCX1BJUEVfUlhfREFUQV0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyODE6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl90eF9jb21wbGV0ZShzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI4Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI5MjpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3J4X2NvbXBsZXRlKHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzYwOnN0YXRpYyB2b2lkIGF0aDEwa191c2JfaW9fY29tcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM2MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNjI6XFx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSA9IGNvbnRhaW5lcl9vZih3b3JrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzYzOlxcdFxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzY0LVxcdFxcdFxcdFxcdFxcdFxcdCAgICBpb19jb21wbGV0ZV93b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzY5LVxcdFxcdGlmIChwaXBlLVxcdTAwM2VmbGFncyBcXHUwMDI2IEFUSDEwS19VU0JfUElQRV9GTEFHX1RYKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzcwOlxcdFxcdFxcdGF0aDEwa191c2JfdHhfY29tcGxldGUoYXIsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zNzEtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzcyOlxcdFxcdFxcdGF0aDEwa191c2JfcnhfY29tcGxldGUoYXIsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zNzMtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzY6I2RlZmluZSBBVEgxMEtfVVNCX01BWF9ESUFHX0NNRCAoc2l6ZW9mKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6Mzc3OiNkZWZpbmUgQVRIMTBLX1VTQl9NQVhfRElBR19SRVNQIChzaXplb2Yoc3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzk6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9kZXN0cm95KHN0cnVjdCBhdGgxMGsgKmFyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzgwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjM4MTpcXHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM4Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjM4MzpcXHRhdGgxMGtfdXNiX2ZsdXNoX2FsbChhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozODQ6XFx0YXRoMTBrX3VzYl9jbGVhbnVwX3BpcGVfcmVzb3VyY2VzKGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM4NS1cXHR1c2Jfc2V0X2ludGZkYXRhKGFyX3VzYi1cXHUwMDNlaW50ZXJmYWNlLCBOVUxMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzkxOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9oaWZfc3RhcnQoc3RydWN0IGF0aDEwayAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zOTIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzkzLVxcdGludCBpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6Mzk0OlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzk2LVxcdGF0aDEwa19jb3JlX25hcGlfZW5hYmxlKGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjM5NzpcXHRhdGgxMGtfdXNiX3N0YXJ0X3JlY3ZfcGlwZXMoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzk4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00MDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0MDk6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl90eF9zZyhzdHJ1Y3QgYXRoMTBrICphciwgdTggcGlwZV9pZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQxMC1cXHRcXHRcXHRcXHRzdHJ1Y3QgYXRoMTBrX2hpZl9zZ19pdGVtICppdGVtcywgaW50IG5faXRlbXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00MTEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDEyOlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDEzOlxcdHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnBpcGUgPSBcXHUwMDI2YXJfdXNiLVxcdTAwM2VwaXBlc1twaXBlX2lkXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQxNC1cXHRzdHJ1Y3QgYXRoMTBrX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDE5LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBuX2l0ZW1zOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQyMDpcXHRcXHR1cmJfY29udGV4dCA9IGF0aDEwa191c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShwaXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQyMS1cXHRcXHRpZiAoIXVyYl9jb250ZXh0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQzOS1cXHRcXHRcXHRcXHQgIHNrYi1cXHUwMDNlbGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDQwOlxcdFxcdFxcdFxcdCAgYXRoMTBrX3VzYl90cmFuc21pdF9jb21wbGV0ZSwgdXJiX2NvbnRleHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDQxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NjMtZXJyX2ZyZWVfdXJiX3RvX3BpcGU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0NjQ6XFx0YXRoMTBrX3VzYl9mcmVlX3VyYl90b19waXBlKHVyYl9jb250ZXh0LVxcdTAwM2VwaXBlLCB1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NjUtZXJyOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0Njk6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9oaWZfc3RvcChzdHJ1Y3QgYXRoMTBrICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ3MC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0NzE6XFx0YXRoMTBrX3VzYl9mbHVzaF9hbGwoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDcyLVxcdGF0aDEwa19jb3JlX25hcGlfc3luY19kaXNhYmxlKGFyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDc1OnN0YXRpYyB1MTYgYXRoMTBrX3VzYl9oaWZfZ2V0X2ZyZWVfcXVldWVfbnVtYmVyKHN0cnVjdCBhdGgxMGsgKmFyLCB1OCBwaXBlX2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDc2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQ3NzpcXHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ3OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDgyOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00ODMtXFx0XFx0XFx0XFx0ICAgICAgdTggcmVxLCB1MTYgdmFsdWUsIHUxNiBpbmRleCwgdm9pZCAqZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDg1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQ4NjpcXHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ4Ny1cXHR1OCAqYnVmID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTE2OnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9pbihzdHJ1Y3QgYXRoMTBrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTUxNy1cXHRcXHRcXHRcXHQgICAgIHU4IHJlcSwgdTE2IHZhbHVlLCB1MTYgaW5kZXgsIHZvaWQgKmRhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTUxOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1MjA6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01MjEtXFx0dTggKmJ1ZiA9IE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU1MjpzdGF0aWMgaW50IGF0aDEwa191c2JfY3RybF9tc2dfZXhjaGFuZ2Uoc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NTMtXFx0XFx0XFx0XFx0XFx0dTggcmVxX3ZhbCwgdTggKnJlcV9idWYsIHUzMiByZXFfbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NTktXFx0Lyogc2VuZCBjb21tYW5kICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1NjA6XFx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoYXIsIHJlcV92YWwsIDAsIDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NjEtXFx0XFx0XFx0XFx0XFx0IHJlcV9idWYsIHJlcV9sZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NjYtXFx0aWYgKHJlc3BfYnVmKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1Njc6XFx0XFx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9pbihhciwgcmVzcF92YWwsIDAsIDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NjgtXFx0XFx0XFx0XFx0XFx0XFx0cmVzcF9idWYsICpyZXNwX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU3ODpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX2RpYWdfcmVhZChzdHJ1Y3QgYXRoMTBrICphciwgdTMyIGFkZHJlc3MsIHZvaWQgKmJ1ZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU3OS1cXHRcXHRcXHRcXHQgICAgc2l6ZV90IGJ1Zl9sZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01ODAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTgxOlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTgyOlxcdHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfcmVhZCAqY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTgzLVxcdHUzMiByZXNwX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTg1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTg2OlxcdGlmIChidWZfbGVuIFxcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTg3LVxcdFxcdHJldHVybiAtRUlOVkFMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTg5OlxcdGNtZCA9IChzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfY21kX3JlYWQgKilhcl91c2ItXFx1MDAzZWRpYWdfY21kX2J1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU5MC1cXHRtZW1zZXQoY21kLCAwLCBzaXplb2YoKmNtZCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01OTItXFx0Y21kLVxcdTAwM2VhZGRyZXNzID0gY3B1X3RvX2xlMzIoYWRkcmVzcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1OTM6XFx0cmVzcF9sZW4gPSBzaXplb2Yoc3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01OTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1OTU6XFx0cmV0ID0gYXRoMTBrX3VzYl9jdHJsX21zZ19leGNoYW5nZShhcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU5Ni1cXHRcXHRcXHRcXHRcXHQgICBBVEgxMEtfVVNCX0NPTlRST0xfUkVRX0RJQUdfQ01ELFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2MDQ6XFx0aWYgKHJlc3BfbGVuICE9IHNpemVvZihzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYwNS1cXHRcXHRyZXR1cm4gLUVNU0dTSVpFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MDctXFx0bWVtY3B5KGJ1ZiwgYXJfdXNiLVxcdTAwM2VkaWFnX3Jlc3BfYnVmZmVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjA4OlxcdCAgICAgICBzaXplb2Yoc3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjA5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2MTM6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl9kaWFnX3dyaXRlKHN0cnVjdCBhdGgxMGsgKmFyLCB1MzIgYWRkcmVzcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYxNC1cXHRcXHRcXHRcXHQgICAgIGNvbnN0IHZvaWQgKmRhdGEsIGludCBuYnl0ZXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MTUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjE2OlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjE3OlxcdHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUgKmNtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYxOC1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2MjM6XFx0Y21kID0gKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUgKilhcl91c2ItXFx1MDAzZWRpYWdfY21kX2J1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYyNC1cXHRtZW1zZXQoY21kLCAwLCBzaXplb2YoKmNtZCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2Mjk6XFx0cmV0ID0gYXRoMTBrX3VzYl9jdHJsX21zZ19leGNoYW5nZShhcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYzMC1cXHRcXHRcXHRcXHRcXHQgICBBVEgxMEtfVVNCX0NPTlRST0xfUkVRX0RJQUdfQ01ELFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2NDA6c3RhdGljIGludCBhdGgxMGtfdXNiX2JtaV9leGNoYW5nZV9tc2coc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NDEtXFx0XFx0XFx0XFx0ICAgICAgIHZvaWQgKnJlcSwgdTMyIHJlcV9sZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTY0Ni1cXHRpZiAocmVxKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2NDc6XFx0XFx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NDgtXFx0XFx0XFx0XFx0XFx0XFx0IEFUSDEwS19VU0JfQ09OVFJPTF9SRVFfU0VORF9CTUlfQ01ELFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NTgtXFx0aWYgKHJlc3ApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjY1OTpcXHRcXHRyZXQgPSBhdGgxMGtfdXNiX3N1Ym1pdF9jdHJsX2luKGFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjYwLVxcdFxcdFxcdFxcdFxcdFxcdEFUSDEwS19VU0JfQ09OVFJPTF9SRVFfUkVDVl9CTUlfUkVTUCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjczOnN0YXRpYyB2b2lkIGF0aDEwa191c2JfaGlmX2dldF9kZWZhdWx0X3BpcGUoc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NzQtXFx0XFx0XFx0XFx0XFx0ICAgIHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjgwOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9oaWZfbWFwX3NlcnZpY2VfdG9fcGlwZShzdHJ1Y3QgYXRoMTBrICphciwgdTE2IHN2Y19pZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTY4MS1cXHRcXHRcXHRcXHRcXHQgICAgICB1OCAqdWxfcGlwZSwgdTggKmRsX3BpcGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTcwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjcwNDpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX3Bvd2VyX3VwKHN0cnVjdCBhdGgxMGsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzA1LVxcdFxcdFxcdFxcdCAgIGVudW0gYXRoMTBrX2Zpcm13YXJlX21vZGUgZndfbW9kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzEwOnN0YXRpYyB2b2lkIGF0aDEwa191c2JfaGlmX3Bvd2VyX2Rvd24oc3RydWN0IGF0aDEwayAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MTEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzEyOlxcdGF0aDEwa191c2JfZmx1c2hfYWxsKGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTcxMy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTcxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjcxNzpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX3N1c3BlbmQoc3RydWN0IGF0aDEwayAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MjI6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl9yZXN1bWUoc3RydWN0IGF0aDEwayAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3Mjg6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMGtfaGlmX29wcyBhdGgxMGtfdXNiX2hpZl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3Mjk6XFx0LnR4X3NnXFx0XFx0XFx0PSBhdGgxMGtfdXNiX2hpZl90eF9zZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczMDpcXHQuZGlhZ19yZWFkXFx0XFx0PSBhdGgxMGtfdXNiX2hpZl9kaWFnX3JlYWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MzE6XFx0LmRpYWdfd3JpdGVcXHRcXHQ9IGF0aDEwa191c2JfaGlmX2RpYWdfd3JpdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MzI6XFx0LmV4Y2hhbmdlX2JtaV9tc2dcXHQ9IGF0aDEwa191c2JfYm1pX2V4Y2hhbmdlX21zZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczMzpcXHQuc3RhcnRcXHRcXHRcXHQ9IGF0aDEwa191c2JfaGlmX3N0YXJ0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM0OlxcdC5zdG9wXFx0XFx0XFx0PSBhdGgxMGtfdXNiX2hpZl9zdG9wLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM1OlxcdC5tYXBfc2VydmljZV90b19waXBlXFx0PSBhdGgxMGtfdXNiX2hpZl9tYXBfc2VydmljZV90b19waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM2OlxcdC5nZXRfZGVmYXVsdF9waXBlXFx0PSBhdGgxMGtfdXNiX2hpZl9nZXRfZGVmYXVsdF9waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM3OlxcdC5nZXRfZnJlZV9xdWV1ZV9udW1iZXJcXHQ9IGF0aDEwa191c2JfaGlmX2dldF9mcmVlX3F1ZXVlX251bWJlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczODpcXHQucG93ZXJfdXBcXHRcXHQ9IGF0aDEwa191c2JfaGlmX3Bvd2VyX3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM5OlxcdC5wb3dlcl9kb3duXFx0XFx0PSBhdGgxMGtfdXNiX2hpZl9wb3dlcl9kb3duLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzQwLSNpZmRlZiBDT05GSUdfUE1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjc0MTpcXHQuc3VzcGVuZFxcdFxcdD0gYXRoMTBrX3VzYl9oaWZfc3VzcGVuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjc0MjpcXHQucmVzdW1lXFx0XFx0XFx0PSBhdGgxMGtfdXNiX2hpZl9yZXN1bWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03NDMtI2VuZGlmXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjc0NjpzdGF0aWMgdTggYXRoMTBrX3VzYl9nZXRfbG9naWNhbF9waXBlX251bSh1OCBlcF9hZGRyZXNzLCBpbnQgKnVyYl9jb3VudClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjc5MTpzdGF0aWMgaW50IGF0aDEwa191c2JfYWxsb2NfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3OTI6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc5My1cXHRcXHRcXHRcXHRcXHQgICBpbnQgdXJiX2NudClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODExLVxcdFxcdHBpcGUtXFx1MDAzZXVyYl9hbGxvYysrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODEyOlxcdFxcdGF0aDEwa191c2JfZnJlZV91cmJfdG9fcGlwZShwaXBlLCB1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MTMtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo4MjM6c3RhdGljIGludCBhdGgxMGtfdXNiX3NldHVwX3BpcGVfcmVzb3VyY2VzKHN0cnVjdCBhdGgxMGsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODI0LVxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MjUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODI2OlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODI3LVxcdHN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmlmYWNlX2Rlc2MgPSBpbnRlcmZhY2UtXFx1MDAzZWN1cl9hbHRzZXR0aW5nO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODI4LVxcdHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZW5kcG9pbnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo4Mjk6XFx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgzMC1cXHRpbnQgcmV0LCBpLCB1cmJjb3VudDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODcxLVxcdFxcdHBpcGVfbnVtID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjg3MjpcXHRcXHQgICAgYXRoMTBrX3VzYl9nZXRfbG9naWNhbF9waXBlX251bShlbmRwb2ludC1cXHUwMDNlYkVuZHBvaW50QWRkcmVzcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTg3My1cXHRcXHRcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnVyYmNvdW50KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTI1OlxcdFxcdHJldCA9IGF0aDEwa191c2JfYWxsb2NfcGlwZV9yZXNvdXJjZXMoYXIsIHBpcGUsIHVyYmNvdW50KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTkyNi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo5MzM6c3RhdGljIGludCBhdGgxMGtfdXNiX2NyZWF0ZShzdHJ1Y3QgYXRoMTBrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTkzNC1cXHRcXHRcXHQgICAgIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MzUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTM2OlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTM3LVxcdHN0cnVjdCB1c2JfZGV2aWNlICpkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo5Mzg6XFx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTkzOS1cXHRpbnQgcmV0LCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NDgtXFx0XFx0SU5JVF9XT1JLKFxcdTAwMjZwaXBlLVxcdTAwM2Vpb19jb21wbGV0ZV93b3JrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTQ5OlxcdFxcdFxcdCAgYXRoMTBrX3VzYl9pb19jb21wX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTUwLVxcdFxcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNnBpcGUtXFx1MDAzZWlvX2NvbXBfcXVldWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo5NjY6XFx0cmV0ID0gYXRoMTBrX3VzYl9zZXR1cF9waXBlX3Jlc291cmNlcyhhciwgaW50ZXJmYWNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk2Ny1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NzItZXJyOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTczOlxcdGF0aDEwa191c2JfZGVzdHJveShhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NzQtXFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTc3OnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpjdHgsIGludCBidWRnZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05Nzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05OTEtLyogYXRoMTBrIHVzYiBkcml2ZXIgcmVnaXN0ZXJlZCBmdW5jdGlvbnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjk5MjpzdGF0aWMgaW50IGF0aDEwa191c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk5My1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05OTUtXFx0c3RydWN0IGF0aDEwayAqYXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo5OTY6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk5Ny1cXHRzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRlcmZhY2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDEwLVxcdGFyID0gYXRoMTBrX2NvcmVfY3JlYXRlKHNpemVvZigqYXJfdXNiKSwgXFx1MDAyNmRldi1cXHUwMDNlZGV2LCBBVEgxMEtfQlVTX1VTQixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwMTE6XFx0XFx0XFx0XFx0aHdfcmV2LCBcXHUwMDI2YXRoMTBrX3VzYl9oaWZfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwMTItXFx0aWYgKCFhcikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTAxNzpcXHRuZXRpZl9uYXBpX2FkZChhci1cXHUwMDNlbmFwaV9kZXYsIFxcdTAwMjZhci1cXHUwMDNlbmFwaSwgYXRoMTBrX3VzYl9uYXBpX3BvbGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTAxOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTAyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwMjY6XFx0YXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwMjc6XFx0cmV0ID0gYXRoMTBrX3VzYl9jcmVhdGUoYXIsIGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDI4LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNTEtZXJyX3VzYl9kZXN0cm95OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA1MjpcXHRhdGgxMGtfdXNiX2Rlc3Ryb3koYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA1My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNjA6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDYxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNjI6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNjMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNjktXFx0bmV0aWZfbmFwaV9kZWwoXFx1MDAyNmFyX3VzYi1cXHUwMDNlYXItXFx1MDAzZW5hcGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA3MDpcXHRhdGgxMGtfdXNiX2Rlc3Ryb3koYXJfdXNiLVxcdTAwM2Vhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDcxLVxcdGF0aDEwa19jb3JlX2Rlc3Ryb3koYXJfdXNiLVxcdTAwM2Vhcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDc2OnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9wbV9zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDc3LVxcdFxcdFxcdFxcdCBwbV9tZXNzYWdlX3QgbWVzc2FnZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNzgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA3OTpcXHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gdXNiX2dldF9pbnRmZGF0YShpbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwODE6XFx0YXRoMTBrX3VzYl9mbHVzaF9hbGwoYXJfdXNiLVxcdTAwM2Vhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDgyLVxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA4NTpzdGF0aWMgaW50IGF0aDEwa191c2JfcG1fcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDg2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwODc6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50ZXJmYWNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwODgtXFx0c3RydWN0IGF0aDEwayAqYXIgPSBhcl91c2ItXFx1MDAzZWFyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA4OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwOTA6XFx0YXRoMTBrX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKGFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA5MS1cXHRcXHRcXHRcXHQgICAgICAgXFx1MDAyNmFyX3VzYi1cXHUwMDNlcGlwZXNbQVRIMTBLX1VTQl9QSVBFX1JYX0RBVEFdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwOTg6I2RlZmluZSBhdGgxMGtfdXNiX3BtX3N1c3BlbmQgTlVMTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA5OTojZGVmaW5lIGF0aDEwa191c2JfcG1fcmVzdW1lIE5VTExcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMDMtLyogdGFibGUgb2YgZGV2aWNlcyB0aGF0IHdvcmsgd2l0aCB0aGlzIGRyaXZlciAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTEwNDpzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYXRoMTBrX3VzYl9pZHNbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMDUtXFx0e1VTQl9ERVZJQ0UoMHgxM2IxLCAweDAwNDIpfSwgLyogTGlua3N5cyBXVVNCNjEwME0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjExMDk6TU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIGF0aDEwa191c2JfaWRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTExOnN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBhdGgxMGtfdXNiX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjExMTI6XFx0Lm5hbWUgPSBcXFwiYXRoMTBrX3VzYlxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTEzOlxcdC5wcm9iZSA9IGF0aDEwa191c2JfcHJvYmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTE0OlxcdC5zdXNwZW5kID0gYXRoMTBrX3VzYl9wbV9zdXNwZW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTExNTpcXHQucmVzdW1lID0gYXRoMTBrX3VzYl9wbV9yZXN1bWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTE2OlxcdC5kaXNjb25uZWN0ID0gYXRoMTBrX3VzYl9kaXNjb25uZWN0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTExNzpcXHQuaWRfdGFibGUgPSBhdGgxMGtfdXNiX2lkcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMTgtXFx0LnN1cHBvcnRzX2F1dG9zdXNwZW5kID0gdHJ1ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEyMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjExMjI6bW9kdWxlX3VzYl9kcml2ZXIoYXRoMTBrX3VzYl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo0NDpzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTQ1LVxcdF9fbGUzMiBjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6NTE6c3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX2NtZF9yZWFkIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTUyLVxcdF9fbGUzMiBjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6NTY6c3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC01Ny1cXHR1OCB2YWx1ZVs0XTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNjAtLyogdHgvcnggcGlwZXMgZm9yIHVzYiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6NjE6ZW51bSBhdGgxMGtfdXNiX3BpcGVfaWQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNjItXFx0QVRIMTBLX1VTQl9QSVBFX1RYX0NUUkwgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC03Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oOjczOnN0cnVjdCBhdGgxMGtfdXNiX3BpcGUge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNzQtXFx0c3RydWN0IGxpc3RfaGVhZCB1cmJfbGlzdF9oZWFkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC04Mi1cXHR1OCBsb2dpY2FsX3BpcGVfbnVtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6ODM6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTg0LVxcdHUxNiBtYXhfcGFja2V0X3NpemU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTkyLS8qIHVzYiBkZXZpY2Ugb2JqZWN0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo5MzpzdHJ1Y3QgYXRoMTBrX3VzYiB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC05NC1cXHQvKiBwcm90ZWN0cyBwaXBlLVxcdTAwM2V1cmJfbGlzdF9oZWFkIGFuZCAgcGlwZS1cXHUwMDNldXJiX2NudCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC05OC1cXHRzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6OTk6XFx0c3RydWN0IGF0aDEwa191c2JfcGlwZSBwaXBlc1tBVEgxMEtfVVNCX1BJUEVfTUFYXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTEwMC1cXHR1OCAqZGlhZ19jbWRfYnVmZmVyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaD0xMDY9c3RydWN0IGF0aDEwa191cmJfY29udGV4dCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC0xMDctXFx0c3RydWN0IGxpc3RfaGVhZCBsaW5rO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6MTA4OlxcdHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnBpcGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC0xMDktXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtMTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6MTEzOnN0YXRpYyBpbmxpbmUgc3RydWN0IGF0aDEwa191c2IgKmF0aDEwa191c2JfcHJpdihzdHJ1Y3QgYXRoMTBrICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTExNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDoxMTU6XFx0cmV0dXJuIChzdHJ1Y3QgYXRoMTBrX3VzYiAqKWFyLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTExNi19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDA2OjMxOjUxLjM2MjI1MTUwN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0ODgxMTM4NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBQb3RlbnRpYWw6IGF0aDEwayBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGF0IGBDT05GSUdfQVRIMTBLX1VTQmAgaXMgcHJlc2VudC4gVGhhdCdzIGdvb2Q7IGl0IG1lYW5zIHdlIGNhbiBkZWZpbml0ZWx5IGZ1enogdGhpcyBvdmVyIFVTQi4gVGhlIGV4aXN0ZW5jZSBvZiBgQ09ORklHX0FUSDEwS19QQ0lgIGFuZCBgQ09ORklHX0FUSDEwS19TRElPYCBmdXJ0aGVyIGV4cGFuZHMgb3VyIGF0dGFjayBzdXJmYWNlLlxuXG5UaGUgY2hhbmdlcyBhcmUgY2VudGVyZWQgaW4gYHdtaS5jYCBhbmQgYHdtaS10bHYuY2AuIFJpZ2h0LCB0aG9zZSBmaWxlcyBoYW5kbGUgdGhlIFdNSSBwcm90b2NvbCDigJMgdGhlIFdpcmVsZXNzIE1vZHVsZSBJbnRlcmZhY2UsIHdoaWNoIG1lYW5zIHRoZXkncmUgcmVzcG9uc2libGUgZm9yIHByb2Nlc3NpbmcgcGFja2V0cyBjb21pbmcgZnJvbSB0aGUgZmlybXdhcmUuIFNpbmNlIHdlJ3JlIGRlYWxpbmcgd2l0aCBmdXp6aW5nLCBzcGVjaWZpY2FsbHkgd2l0aCB0aGUgYWJpbGl0eSB0byBzaW11bGF0ZSB0aGUgZmlybXdhcmUgb3IgaW5qZWN0IHBhY2tldHMgZnJvbSB0aGUgaG9zdCBzaWRlLCBsaWtlIHZpYSBVU0Igb3IgUENJLCBJIGtub3cgdGhpcyBjb2RlIHBhdGggaXMgZGVmaW5pdGVseSByZWFjaGFibGUgYW5kIHNob3VsZCBiZSBxdWl0ZSBmdXp6YWJsZS5cblxuSSBuZWVkIHRvIGNvbmZpcm0gd2hpY2ggY29uZmlncyBhcmUgaW52b2x2ZWQsIHNvLCBsZXQncyBzZWUuIEknbGwgbmVlZCBgQ09ORklHX0FUSDEwS2AsIG9mIGNvdXJzZS4gQWxzbyBgQ09ORklHX0FUSDEwS19VU0JgLCBgQ09ORklHX0FUSDEwS19QQ0lgLCBgQ09ORklHX0FUSDEwS19TRElPYCBhbmQgYENPTkZJR19BVEgxMEtfU05PQ2AuXG5cbk5vdywgbGV0J3MgdmVyaWZ5IHRoYXQgdGhlIGJhc2UgYENPTkZJR19BVEgxMEtgIGFuZCBpdHMgZGVwZW5kZW5jaWVzIGFyZSBjb25maWd1cmVkIGFzIGV4cGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODQ0NCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwNjozMTo1Ny44NTAzNjczOTZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjMwNzU5NDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEFUSDEwS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjI6Y29uZmlnIEFUSDEwS1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIDgwMi4xMWFjIHdpcmVsZXNzIGNhcmRzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjE1OmNvbmZpZyBBVEgxMEtfQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMTYtXFx0Ym9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0xNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6MTg6Y29uZmlnIEFUSDEwS19QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIkF0aGVyb3MgYXRoMTBrIFBDSSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzoyNDpjb25maWcgQVRIMTBLX0FIQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDEwayBBSEIgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0yOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6MzA6Y29uZmlnIEFUSDEwS19TRElPXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTMxLVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDEwayBTRElPIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjM2OmNvbmZpZyBBVEgxMEtfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTM3LVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDEwayBVU0Igc3VwcG9ydCAoRVhQRVJJTUVOVEFMKVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6NDM6Y29uZmlnIEFUSDEwS19TTk9DXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTQ0LVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBhdGgxMGsgU05PQyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzo1Njpjb25maWcgQVRIMTBLX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTU3LVxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoMTBrIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy02My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6NjQ6Y29uZmlnIEFUSDEwS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTY1LVxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoMTBrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6NzI6Y29uZmlnIEFUSDEwS19MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTczLVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy03Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6Nzg6Y29uZmlnIEFUSDEwS19TUEVDVFJBTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy03OS1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDEwayBzcGVjdHJhbCBzY2FuIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjg2OmNvbmZpZyBBVEgxMEtfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy04Ny1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDEwayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctOTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjkzOmNvbmZpZyBBVEgxMEtfREZTX0NFUlRJRklFRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy05NC1cXHRib29sIFxcXCJBdGhlcm9zIERGUyBzdXBwb3J0IGZvciBjZXJ0aWZpZWQgcGxhdGZvcm1zXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwNjozMTo1Ny45MTM0NDczNzRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NjA0NjA2OTc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgV01JIEV2ZW50IEhhbmRsZXJzKipcblxuT2theSwgc28gdGhlIHRhc2sgYXQgaGFuZCBpcyB0byB0aWdodGVuIHVwIHRoZSBzZWN1cml0eSBhcm91bmQgaG93IHdlIGhhbmRsZSBXTUkgZXZlbnRzIGNvbWluZyBpbiBmcm9tIHRoZSBmaXJtd2FyZSwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYXRoMTBrIGRyaXZlci4gUmlnaHQsIEkgbmVlZCB0byBmb2N1cyBvbiBmdXp6aW5nLiBUaGUga2V5IGZ1bmN0aW9ucyB0byB0YXJnZXQgYXJlIHRoZSBvbmVzIHRoYXQgYWN0dWFsbHkgKnByb2Nlc3MqIHRob3NlIGluY29taW5nIGV2ZW50cy4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIHRoZSBwcmltYXJ5IHRhcmdldHM6XG5cbiogICBgYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHJgXG4qICAgYGF0aDEwa193bWlfb3BfcnhgXG4qICAgYGF0aDEwa193bWlfMTBfMV9vcF9yeGBcbiogICBgYXRoMTBrX3dtaV8xMF8yX29wX3J4YFxuKiAgIGBhdGgxMGtfd21pXzEwXzRfb3BfcnhgXG4qICAgYGF0aDEwa193bWlfdGx2X29wX3J4YFxuXG5UaGVzZSBhcmUgYWxsIHJlY2VwdGlvbiBoYW5kbGVycywgYW5kIHRoYXQgbWFrZXMgdGhlbSBwcmltZSBjYW5kaWRhdGVzIGZvciBmdXp6aW5nLiBUaGV5J3JlIHdoZXJlIHdlIHRha2UgcG90ZW50aWFsbHkgbWFsaWNpb3VzIGRhdGEgZnJvbSB0aGUgZmlybXdhcmUsIHBhcnNlIGl0LCBhbmQgYWN0IG9uIGl0LiBBIHdlbGwtY3JhZnRlZCBmdXp6IGlucHV0IGNvdWxkIGxlYWQgdG8gY3Jhc2hlcywgbWVtb3J5IGNvcnJ1cHRpb24sIG9yIGV2ZW4gbW9yZSBzZXJpb3VzIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZGVkaWNhdGUgdGltZSB0byB0ZXN0aW5nIHRoZXNlIGZ1bmN0aW9ucy4gRmlyc3QsIEknbGwgdGFrZSBhIGNsb3NlciBsb29rIGF0IGBhdGgxMGtfd21pX29wX3J4YCBhbmQgc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgb3RoZXJzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA1MSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwNjozMjowNS41MTgwNTYwM1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODg3NDQyMzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTBrX3dtaV9vcF9yeFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmM9NTg3Nj1ib29sIGF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jLTU4ODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYzo1ODg5OnN0YXRpYyB2b2lkIGF0aDEwa193bWlfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYy01ODkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmM9OTE0NT1zdGF0aWMgY29uc3Qgc3RydWN0IHdtaV9vcHMgd21pX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jOjkxNDY6XFx0LnJ4ID0gYXRoMTBrX3dtaV9vcF9yeCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jLTkxNDctXFx0Lm1hcF9zdmMgPSB3bWlfbWFpbl9zdmNfbWFwLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwNjozMjowNS44MDY4MTI2NzJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDAwNjYxODQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipWdWxuZXJhYmlsaXR5IEZpeGVzIGluIGF0aDEwayBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHNldCBvZiBjaGFuZ2VzIGhlcmUsIGFuZCB0aGUgY29yZSBvZiBpdCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IHdpdGhpbiB0aGUgYGF0aDEwa2AgZHJpdmVyLiBUaGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBhcmU6IGBhdGgxMGtfd21pX29wX3J4YCwgYGF0aDEwa193bWlfMTBfMV9vcF9yeGAsIGBhdGgxMGtfd21pXzEwXzJfb3BfcnhgLCBgYXRoMTBrX3dtaV8xMF80X29wX3J4YCwgYGF0aDEwa193bWlfdGx2X29wX3J4YCwgYW5kIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAuIFRoZXNlIGFyZSBhbGwgcmVsYXRlZCB0byBob3cgdGhlIGRyaXZlciBoYW5kbGVzIGluY29taW5nIFdNSSAoV2lyZWxlc3MgTWFuYWdlbWVudCBJbnRlcmZhY2UpIG9wZXJhdGlvbnMsIGFuZCBpdCBsb29rcyBsaWtlIGEgcmVhZCBwYXN0IGFsbG9jYXRlZCBtZW1vcnkgd2FzIHBvc3NpYmxlIHVuZGVyIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMuXG5cblRvIHByb3Blcmx5IHZhbGlkYXRlIHRoaXMgZml4IGFuZCBtYWtlIGl0IGVhc2llciB0byB0ZXN0LCBJIHNob3VsZCBlbmFibGUgdGhlIGBBVEgxMEtgIGFuZCBgQVRIMTBLX1VTQmAgY29uZmlncy4gVVNCIGlzIGdlbmVyYWxseSBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nIHRoZXNlIHR5cGVzIG9mIHZ1bG5lcmFiaWxpdGllcywgc2luY2UgaXQncyBlYXNpZXIgdG8gc2V0IHVwIGEgZnV6emluZyBlbnZpcm9ubWVudC4gSSBtaWdodCBhbHNvIGNvbnNpZGVyIGVuYWJsaW5nIGBBVEgxMEtfUENJYCBhbmQgYEFUSDEwS19TRElPYCB0byBlbnN1cmUgd2lkZXIgY292ZXJhZ2UuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJ2xsIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgSSd2ZSBnb3QgdGhlIGV4YWN0IGZ1bmN0aW9uIG5hbWVzIGNvcnJlY3Q6IGBhdGgxMGtfd21pX3Rsdl9vcF9yeGAsIGBhdGgxMGtfd21pX29wX3J4YCwgYGF0aDEwa193bWlfMTBfMV9vcF9yeGAsIGBhdGgxMGtfd21pXzEwXzJfb3BfcnhgLCBgYXRoMTBrX3dtaV8xMF80X29wX3J4YCwgYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYC4gWWVwLCB0aGF0J3MgcmlnaHQuXG5cbk5vdywgbGV0J3MgY2FsbCBgc2V0LXJlc3VsdHNgIGFuZCBtb3ZlIGZvcndhcmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwODM3LCJPdXRwdXRUb2tlbnMiOjI0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwNjozMjoxNS44MTM0MzQxNzdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NDAwODk2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQVRIMTBLXCIsXG4gICAgXCJBVEgxMEtfVVNCXCIsXG4gICAgXCJBVEgxMEtfUENJXCIsXG4gICAgXCJBVEgxMEtfU0RJT1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImF0aDEwa193bWlfdGx2X29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pX29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pXzEwXzFfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfMTBfMl9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV8xMF80X29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pX3B1bGxfY21kX2hkclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBhdGgxMGsgZHJpdmVyIGJ5IGludHJvZHVjaW5nIGEgaGVscGVyIGZ1bmN0aW9uIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAgdG8gc2FmZWx5IHB1bGwgdGhlIFdNSSBjb21tYW5kIGhlYWRlciBmcm9tIGFuIHNrYi4gVGhpcyBhZmZlY3RzIHRoZSBwcm9jZXNzaW5nIG9mIFdNSSBldmVudHMgcmVjZWl2ZWQgZnJvbSB0aGUgZmlybXdhcmUuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgZnV6emFibGUgdmlhIHZpcnR1YWxpemVkIGJ1c2VzIGxpa2UgVVNCIG9yIFBDSS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBVEgxMEtcIixcbiAgICBcIkFUSDEwS19VU0JcIixcbiAgICBcIkFUSDEwS19QQ0lcIixcbiAgICBcIkFUSDEwS19TRElPXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXRoMTBrX3dtaV90bHZfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfMTBfMV9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV8xMF8yX29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pXzEwXzRfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfcHVsbF9jbWRfaGRyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGF0aDEwayBkcml2ZXIgYnkgaW50cm9kdWNpbmcgYSBoZWxwZXIgZnVuY3Rpb24gYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYCB0byBzYWZlbHkgcHVsbCB0aGUgV01JIGNvbW1hbmQgaGVhZGVyIGZyb20gYW4gc2tiLiBUaGlzIGFmZmVjdHMgdGhlIHByb2Nlc3Npbmcgb2YgV01JIGV2ZW50cyByZWNlaXZlZCBmcm9tIHRoZSBmaXJtd2FyZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCBmdXp6YWJsZSB2aWEgdmlydHVhbGl6ZWQgYnVzZXMgbGlrZSBVU0Igb3IgUENJLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow288gm[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-24 06:03:01 +0000 UTC FinishedAt: 2026-07-24 06:32:18 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH10K", "ATH10K_USB", "ATH10K_PCI", "ATH10K_SDIO" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH10K", "ATH10K_USB", "ATH10K_PCI", "ATH10K_SDIO" ], "series_id": "e870814a-a5fb-4a79-bb08-c9bc1cc761c2" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ath10k_wmi_tlv_op_rx", "ath10k_wmi_op_rx", "ath10k_wmi_10_1_op_rx", "ath10k_wmi_10_2_op_rx", "ath10k_wmi_10_4_op_rx", "ath10k_wmi_pull_cmd_hdr" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI0IDA2OjMxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDEwSyYjMzQ7LAogICAgJiMzNDtBVEgxMEtfVVNCJiMzNDssCiAgICAmIzM0O0FUSDEwS19QQ0kmIzM0OywKICAgICYjMzQ7QVRIMTBLX1NESU8mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthdGgxMGtfd21pX3Rsdl9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pX29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfMTBfMV9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pXzEwXzJfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV8xMF80X29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfcHVsbF9jbWRfaGRyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBhdGgxMGsgZHJpdmVyIGJ5IGludHJvZHVjaW5nIGEgaGVscGVyIGZ1bmN0aW9uIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAgdG8gc2FmZWx5IHB1bGwgdGhlIFdNSSBjb21tYW5kIGhlYWRlciBmcm9tIGFuIHNrYi4gVGhpcyBhZmZlY3RzIHRoZSBwcm9jZXNzaW5nIG9mIFdNSSBldmVudHMgcmVjZWl2ZWQgZnJvbSB0aGUgZmlybXdhcmUuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgZnV6emFibGUgdmlhIHZpcnR1YWxpemVkIGJ1c2VzIGxpa2UgVVNCIG9yIFBDSS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwNjozMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDczNDc1NGE0NzNlMWJlMGQ2ZGQwMzNiZDE0OTgzYjJlNDc4ZWI4ZTBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAyNCAwNjozMTo0MCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLXRsdi5jXG5pbmRleCAwMWYyZDFmYTlkN2Q5Mi4uMjcyZGFiMzdkYzE5NGYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmNcbkBAIC02MzgsMTQgJiM0Mzs2MzgsMTAgQEAgc3RhdGljIGludCBhdGgxMGtfd21pX3Rsdl9ldmVudF9wZWVyX2RlbGV0ZV9yZXNwKHN0cnVjdCBhdGgxMGsgKmFyLFxuIFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfdGx2X29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbi1cdHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcbi1cdGVudW0gd21pX3Rsdl9ldmVudF9pZCBpZDtcbiBcdGJvb2wgY29uc3VtZWQ7XG4mIzQzO1x0dTMyIGlkO1xuIFxuLVx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXHUwMDNlZGF0YTtcbi1cdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVx1MDAzZWNtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7XG4tXG4tXHRpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTClcbiYjNDM7XHRpZiAoIWF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHNrYiwgXHUwMDI2aWQpKVxuIFx0XHRnb3RvIG91dDtcbiBcbiBcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXHUwMDNlZGF0YSwgc2tiLVx1MDAzZWxlbik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNcbmluZGV4IGU1NzU4OGMxOWM4MDBjLi4yOTZhODkxMDY3MzYxOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNcbkBAIC01ODczLDE1ICYjNDM7NTg3MywyNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX3dtaV9xdWV1ZV9zZXRfY292ZXJhZ2VfY2xhc3Nfd29yayhzdHJ1Y3QgYXRoMTBrICphcilcbiBcdH1cbiB9XG4gXG4tc3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiYjNDM7Ym9vbCBhdGgxMGtfd21pX3B1bGxfY21kX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmlkKVxuIHtcbi1cdHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcbi1cdGVudW0gd21pX2V2ZW50X2lkIGlkO1xuJiM0MztcdGNvbnN0IHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcbiBcbi1cdGNtZF9oZHIgPSAoc3RydWN0IHdtaV9jbWRfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4tXHRpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xuJiM0MztcdGNtZF9oZHIgPSBza2JfcHVsbF9kYXRhKHNrYiwgc2l6ZW9mKCpjbWRfaGRyKSk7XG4mIzQzO1x0aWYgKCFjbWRfaGRyKVxuJiM0MztcdFx0cmV0dXJuIGZhbHNlO1xuJiM0MztcbiYjNDM7XHQqaWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHRydWU7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyB2b2lkIGF0aDEwa193bWlfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4mIzQzO3tcbiYjNDM7XHR1MzIgaWQ7XG4gXG4tXHRpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTClcbiYjNDM7XHRpZiAoIWF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHNrYiwgXHUwMDI2aWQpKVxuIFx0XHRnb3RvIG91dDtcbiBcbiBcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXHUwMDNlZGF0YSwgc2tiLVx1MDAzZWxlbik7XG5AQCAtNjAwMiwxNCAmIzQzOzYwMTEsMTAgQEAgc3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcbiBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzFfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuLVx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xuLVx0ZW51bSB3bWlfMTB4X2V2ZW50X2lkIGlkO1xuIFx0Ym9vbCBjb25zdW1lZDtcbiYjNDM7XHR1MzIgaWQ7XG4gXG4tXHRjbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi1cdTAwM2VkYXRhO1xuLVx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcbi1cbi1cdGlmIChza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSA9PSBOVUxMKVxuJiM0MztcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcdTAwMjZpZCkpXG4gXHRcdGdvdG8gb3V0O1xuIFxuIFx0dHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuKTtcbkBAIC02MTMzLDE0ICYjNDM7NjEzOCwxMCBAQCBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzFfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4gXG4gc3RhdGljIHZvaWQgYXRoMTBrX3dtaV8xMF8yX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbi1cdHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcbi1cdGVudW0gd21pXzEwXzJfZXZlbnRfaWQgaWQ7XG4gXHRib29sIGNvbnN1bWVkO1xuJiM0MztcdHUzMiBpZDtcbiBcbi1cdGNtZF9oZHIgPSAoc3RydWN0IHdtaV9jbWRfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4tXHRpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xuLVxuLVx0aWYgKHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpID09IE5VTEwpXG4mIzQzO1x0aWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsIFx1MDAyNmlkKSlcbiBcdFx0Z290byBvdXQ7XG4gXG4gXHR0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLVx1MDAzZWRhdGEsIHNrYi1cdTAwM2VsZW4pO1xuQEAgLTYyODIsMTQgJiM0Mzs2MjgzLDEwIEBAIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMl9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcbiBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzRfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuLVx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xuLVx0ZW51bSB3bWlfMTBfNF9ldmVudF9pZCBpZDtcbiBcdGJvb2wgY29uc3VtZWQ7XG4mIzQzO1x0dTMyIGlkO1xuIFxuLVx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXHUwMDNlZGF0YTtcbi1cdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVx1MDAzZWNtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7XG4tXG4tXHRpZiAoIXNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpKVxuJiM0MztcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcdTAwMjZpZCkpXG4gXHRcdGdvdG8gb3V0O1xuIFxuIFx0dHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuaW5kZXggN2Y1MGExZGU2Yjk3OGUuLjRlY2M5NDcxMmY3NjIxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuQEAgLTc0NDAsNiAmIzQzOzc0NDAsNyBAQCBzdHJ1Y3QgYXRoMTBrX3ZpZjtcbiBzdHJ1Y3QgYXRoMTBrX2Z3X3N0YXRzX3BkZXY7XG4gc3RydWN0IGF0aDEwa19md19zdGF0c19wZWVyO1xuIHN0cnVjdCBhdGgxMGtfZndfc3RhdHM7XG4mIzQzO3N0cnVjdCBza19idWZmO1xuIFxuIGludCBhdGgxMGtfd21pX2F0dGFjaChzdHJ1Y3QgYXRoMTBrICphcik7XG4gdm9pZCBhdGgxMGtfd21pX2RldGFjaChzdHJ1Y3QgYXRoMTBrICphcik7XG5AQCAtNzQ0OSw2ICYjNDM7NzQ1MCw3IEBAIGludCBhdGgxMGtfd21pX3dhaXRfZm9yX3VuaWZpZWRfcmVhZHkoc3RydWN0IGF0aDEwayAqYXIpO1xuIFxuIHN0cnVjdCBza19idWZmICphdGgxMGtfd21pX2FsbG9jX3NrYihzdHJ1Y3QgYXRoMTBrICphciwgdTMyIGxlbik7XG4gaW50IGF0aDEwa193bWlfY29ubmVjdChzdHJ1Y3QgYXRoMTBrICphcik7XG4mIzQzO2Jvb2wgYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICppZCk7XG4gXG4gaW50IGF0aDEwa193bWlfY21kX3NlbmQoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBjbWRfaWQpO1xuIGludCBhdGgxMGtfd21pX2NtZF9zZW5kX25vd2FpdChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwNjozMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRIMTBLJiMzNDssCiAgICAmIzM0O0FUSDEwS19VU0ImIzM0OywKICAgICYjMzQ7QVRIMTBLX1BDSSYjMzQ7LAogICAgJiMzNDtBVEgxMEtfU0RJTyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2F0aDEwa193bWlfdGx2X29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV8xMF8xX29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfMTBfMl9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pXzEwXzRfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV9wdWxsX2NtZF9oZHImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGF0aDEwayBkcml2ZXIgYnkgaW50cm9kdWNpbmcgYSBoZWxwZXIgZnVuY3Rpb24gYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYCB0byBzYWZlbHkgcHVsbCB0aGUgV01JIGNvbW1hbmQgaGVhZGVyIGZyb20gYW4gc2tiLiBUaGlzIGFmZmVjdHMgdGhlIHByb2Nlc3Npbmcgb2YgV01JIGV2ZW50cyByZWNlaXZlZCBmcm9tIHRoZSBmaXJtd2FyZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCBmdXp6YWJsZSB2aWEgdmlydHVhbGl6ZWQgYnVzZXMgbGlrZSBVU0Igb3IgUENJLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA3MzQ3NTRhNDczZTFiZTBkNmRkMDMzYmQxNDk4M2IyZTQ3OGViOGUwCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMjQgMDY6MzE6NDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLXRsdi5jCmluZGV4IDAxZjJkMWZhOWQ3ZDkyLi4yNzJkYWIzN2RjMTk0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmMKQEAgLTYzOCwxNCAmIzQzOzYzOCwxMCBAQCBzdGF0aWMgaW50IGF0aDEwa193bWlfdGx2X2V2ZW50X3BlZXJfZGVsZXRlX3Jlc3Aoc3RydWN0IGF0aDEwayAqYXIsCiAKIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfdGx2X29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjsKLQllbnVtIHdtaV90bHZfZXZlbnRfaWQgaWQ7CiAJYm9vbCBjb25zdW1lZDsKJiM0MzsJdTMyIGlkOwogCi0JY21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItJmd0O2RhdGE7Ci0JaWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItJmd0O2NtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7Ci0KLQlpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTCkKJiM0MzsJaWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsICZhbXA7aWQpKQogCQlnb3RvIG91dDsKIAogCXRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItJmd0O2RhdGEsIHNrYi0mZ3Q7bGVuKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jCmluZGV4IGU1NzU4OGMxOWM4MDBjLi4yOTZhODkxMDY3MzYxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jCkBAIC01ODczLDE1ICYjNDM7NTg3MywyNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX3dtaV9xdWV1ZV9zZXRfY292ZXJhZ2VfY2xhc3Nfd29yayhzdHJ1Y3QgYXRoMTBrICphcikKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGF0aDEwa193bWlfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpCiYjNDM7Ym9vbCBhdGgxMGtfd21pX3B1bGxfY21kX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmlkKQogewotCXN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjsKLQllbnVtIHdtaV9ldmVudF9pZCBpZDsKJiM0MzsJY29uc3Qgc3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyOwogCi0JY21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItJmd0O2RhdGE7Ci0JaWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItJmd0O2NtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7CiYjNDM7CWNtZF9oZHIgPSBza2JfcHVsbF9kYXRhKHNrYiwgc2l6ZW9mKCpjbWRfaGRyKSk7CiYjNDM7CWlmICghY21kX2hkcikKJiM0MzsJCXJldHVybiBmYWxzZTsKJiM0MzsKJiM0MzsJKmlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLSZndDtjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpOwomIzQzOwomIzQzOwlyZXR1cm4gdHJ1ZTsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYikKJiM0Mzt7CiYjNDM7CXUzMiBpZDsKIAotCWlmIChza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSA9PSBOVUxMKQomIzQzOwlpZiAoIWF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHNrYiwgJmFtcDtpZCkpCiAJCWdvdG8gb3V0OwogCiAJdHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi0mZ3Q7ZGF0YSwgc2tiLSZndDtsZW4pOwpAQCAtNjAwMiwxNCAmIzQzOzYwMTEsMTAgQEAgc3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogc3RhdGljIHZvaWQgYXRoMTBrX3dtaV8xMF8xX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjsKLQllbnVtIHdtaV8xMHhfZXZlbnRfaWQgaWQ7CiAJYm9vbCBjb25zdW1lZDsKJiM0MzsJdTMyIGlkOwogCi0JY21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItJmd0O2RhdGE7Ci0JaWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItJmd0O2NtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7Ci0KLQlpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTCkKJiM0MzsJaWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsICZhbXA7aWQpKQogCQlnb3RvIG91dDsKIAogCXRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItJmd0O2RhdGEsIHNrYi0mZ3Q7bGVuKTsKQEAgLTYxMzMsMTQgJiM0Mzs2MTM4LDEwIEBAIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogc3RhdGljIHZvaWQgYXRoMTBrX3dtaV8xMF8yX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjsKLQllbnVtIHdtaV8xMF8yX2V2ZW50X2lkIGlkOwogCWJvb2wgY29uc3VtZWQ7CiYjNDM7CXUzMiBpZDsKIAotCWNtZF9oZHIgPSAoc3RydWN0IHdtaV9jbWRfaGRyICopc2tiLSZndDtkYXRhOwotCWlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLSZndDtjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpOwotCi0JaWYgKHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpID09IE5VTEwpCiYjNDM7CWlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCAmYW1wO2lkKSkKIAkJZ290byBvdXQ7CiAKIAl0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLSZndDtkYXRhLCBza2ItJmd0O2xlbik7CkBAIC02MjgyLDE0ICYjNDM7NjI4MywxMCBAQCBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzJfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpCiAKIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfNF9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7Ci0JZW51bSB3bWlfMTBfNF9ldmVudF9pZCBpZDsKIAlib29sIGNvbnN1bWVkOwomIzQzOwl1MzIgaWQ7CiAKLQljbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi0mZ3Q7ZGF0YTsKLQlpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci0mZ3Q7Y21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTsKLQotCWlmICghc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkpCiYjNDM7CWlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCAmYW1wO2lkKSkKIAkJZ290byBvdXQ7CiAKIAl0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLSZndDtkYXRhLCBza2ItJmd0O2xlbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaAppbmRleCA3ZjUwYTFkZTZiOTc4ZS4uNGVjYzk0NzEyZjc2MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaApAQCAtNzQ0MCw2ICYjNDM7NzQ0MCw3IEBAIHN0cnVjdCBhdGgxMGtfdmlmOwogc3RydWN0IGF0aDEwa19md19zdGF0c19wZGV2Owogc3RydWN0IGF0aDEwa19md19zdGF0c19wZWVyOwogc3RydWN0IGF0aDEwa19md19zdGF0czsKJiM0MztzdHJ1Y3Qgc2tfYnVmZjsKIAogaW50IGF0aDEwa193bWlfYXR0YWNoKHN0cnVjdCBhdGgxMGsgKmFyKTsKIHZvaWQgYXRoMTBrX3dtaV9kZXRhY2goc3RydWN0IGF0aDEwayAqYXIpOwpAQCAtNzQ0OSw2ICYjNDM7NzQ1MCw3IEBAIGludCBhdGgxMGtfd21pX3dhaXRfZm9yX3VuaWZpZWRfcmVhZHkoc3RydWN0IGF0aDEwayAqYXIpOwogCiBzdHJ1Y3Qgc2tfYnVmZiAqYXRoMTBrX3dtaV9hbGxvY19za2Ioc3RydWN0IGF0aDEwayAqYXIsIHUzMiBsZW4pOwogaW50IGF0aDEwa193bWlfY29ubmVjdChzdHJ1Y3QgYXRoMTBrICphcik7CiYjNDM7Ym9vbCBhdGgxMGtfd21pX3B1bGxfY21kX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmlkKTsKIAogaW50IGF0aDEwa193bWlfY21kX3NlbmQoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBjbWRfaWQpOwogaW50IGF0aDEwa193bWlfY21kX3NlbmRfbm93YWl0KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwNjozMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTM5CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNTExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgYXRoMTBrYCwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jYCBhbmQgYHdtaS10bHYuY2AuIEl0IHNlZW1zIGxpa2UgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGZpeCDigJMgdGhleSYjMzk7cmUgaW50cm9kdWNpbmcgYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYC4gVGhlIG9yaWdpbmFsIGNvZGUsIGFzIEkmIzM5O20gc2VlaW5nIGl0LCBoYWQgYSBjbGFzc2ljIG92ZXJzaWdodDogYWNjZXNzaW5nIGBza2ItJmd0O2RhdGFgIGRpcmVjdGx5ICpiZWZvcmUqIGNoZWNraW5nIGlmIHRoZSBgc2tiYCBhY3R1YWxseSBoYXMgZW5vdWdoIGRhdGEuIEl0IHdhcyBkb2luZyBzb21ldGhpbmcgbGlrZSB0aGlzOgoKYGBgYwoJY21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItJmd0O2RhdGE7CglpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci0mZ3Q7Y21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTsKCglpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTCkKCQlnb3RvIG91dDsKYGBgCgpXaGljaCwgaWYgdGhlIGBza2JgIHdhcyB0b28gc21hbGwsIGNvdWxkIGxlYWQgdG8gYSByZWFsbHkgbmFzdHkgb3V0LW9mLWJvdW5kcyByZWFkLiBUaGUgbmV3IGNvZGUgaXMgc2FmZXIsIHVzaW5nIGBza2JfcHVsbF9kYXRhYCB3aGljaCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgZGF0YSBvciBOVUxMLCBpZiB0aGVyZSBpc24mIzM5O3QgZW5vdWdoIGRhdGEuIFRoZSBuZXcgY29kZSBpczoKCmBgYGMKYm9vbCBhdGgxMGtfd21pX3B1bGxfY21kX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmlkKQp7Cgljb25zdCBzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7CgoJY21kX2hkciA9IHNrYl9wdWxsX2RhdGEoc2tiLCBzaXplb2YoKmNtZF9oZHIpKTsKCWlmICghY21kX2hkcikKCQlyZXR1cm4gZmFsc2U7CgoJKmlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLSZndDtjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpOwoKCXJldHVybiB0cnVlOwp9CmBgYAoKR29vZCBjYXRjaCwgdGhpcyBpcyBhIHByZXR0eSBzdGFuZGFyZCwgYnV0IGltcG9ydGFudCwgZGVmZW5zaXZlIHByb2dyYW1taW5nIHByYWN0aWNlIHRvIHByZXZlbnQgbWVtb3J5IGNvcnJ1cHRpb24uCgpOb3csIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0aGlzLiBTaW5jZSBgYXRoMTBrYCBpcyBhIGRyaXZlciBmb3IgQXRoZXJvcyB3aXJlbGVzcyBjYXJkcywgaXQmIzM5O3MgdHlwaWNhbGx5IGEgUENJL1VTQiBkcml2ZXIsIEkmIzM5O20gd29uZGVyaW5nIGlmIHRoaXMgaXMgYSB2dWxuZXJhYmxlIGNvZGUgcGF0aCBpbiBhIGZ1enphYmxlIGVudmlyb25tZW50LiBJJiMzOTttIGNvbnNpZGVyaW5nIGlmIHRoaXMgaXMgc29tZXRoaW5nIHdlIGNhbiByZWFjaCBpbiBhIHZpcnR1YWxpemVkIGNvbnRleHQuIEkga25vdyBkcml2ZXJzIHdpdGggdmlydHVhbGl6ZWQgYnVzZXMgYXJlIG9mdGVuIGdvb2QgdGFyZ2V0cy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgc3l6a2FsbGVyIGNhbiBldmVuIHRlc3QgdGhlIGRyaXZlci4KClNvLCBgYXRoMTBrYCBoYXMgUENJLCBTRElPLCBVU0IsIGFuZCBTTk9DIGJhY2tlbmRzLiBJJiMzOTtsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgYXRoMTBrIFVTQiBpcyBzdXBwb3J0ZWQsIHRvIGFzc2VzcyB0aGUgZXhwb3N1cmUuIExldCBtZSB1c2UgYGdyZXBwZXJgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG1lbnRpb25zIG9mIGBhdGgxMGtfdXNiYCBvciBhbnl0aGluZyBzaW1pbGFyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDA2OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDEwa191c2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvTWFrZWZpbGU9MzQ9YXRoMTBrX3NkaW8teSAmIzQzOz0gc2Rpby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL01ha2VmaWxlLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfQVRIMTBLX1VTQikgJiM0Mzs9IGF0aDEwa191c2Iub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9NYWtlZmlsZTozNzphdGgxMGtfdXNiLXkgJiM0Mzs9IHVzYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL01ha2VmaWxlLTM4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjE4OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfcG9zdF9yZWN2X3RyYW5zZmVycyhzdHJ1Y3QgYXRoMTBrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTk6XHRcdFx0XHRcdCAgIHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnJlY3ZfcGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM9MzU9c3RhdGljIHN0cnVjdCBhdGgxMGtfdXJiX2NvbnRleHQgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNjphdGgxMGtfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUoc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU3OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfZnJlZV91cmJfdG9fcGlwZShzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlICpwaXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01OC1cdFx0XHRcdFx0c3RydWN0IGF0aDEwa191cmJfY29udGV4dCAqdXJiX2NvbnRleHQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzQ6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9jbGVhbnVwX3JlY3ZfdXJiKHN0cnVjdCBhdGgxMGtfdXJiX2NvbnRleHQgKnVyYl9jb250ZXh0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6Nzk6XHRhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUodXJiX2NvbnRleHQtXHUwMDNlcGlwZSwgdXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo4MjpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX2ZyZWVfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDEwayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjgzOlx0XHRcdFx0XHQgICBzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlICpwaXBlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDQtXHRmb3IgKDs7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNTpcdFx0dXJiX2NvbnRleHQgPSBhdGgxMGtfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUocGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTE0OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfY2xlYW51cF9waXBlX3Jlc291cmNlcyhzdHJ1Y3QgYXRoMTBrICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTE1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTE2Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExNy1cdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTE5LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTBLX1VTQl9QSVBFX01BWDsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEyMDpcdFx0YXRoMTBrX3VzYl9mcmVlX3BpcGVfcmVzb3VyY2VzKGFyLCBcdTAwMjZhcl91c2ItXHUwMDNlcGlwZXNbaV0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMjEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMjU6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9yZWN2X2NvbXBsZXRlKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTI2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTI3LVx0c3RydWN0IGF0aDEwa191cmJfY29udGV4dCAqdXJiX2NvbnRleHQgPSB1cmItXHUwMDNlY29udGV4dDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTI4Olx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSA9IHVyYl9jb250ZXh0LVx1MDAzZXBpcGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEyOS1cdHN0cnVjdCBhdGgxMGsgKmFyID0gcGlwZS1cdTAwM2Vhcl91c2ItXHUwMDNlYXI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xNzItY2xlYW51cF9yZWN2X3VyYjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTczOlx0YXRoMTBrX3VzYl9jbGVhbnVwX3JlY3ZfdXJiKHVyYl9jb250ZXh0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTc0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTc3LVx0XHQvKiBvdXIgZnJlZSB1cmJzIGFyZSBwaWxpbmcgdXAsIHBvc3QgbW9yZSB0cmFuc2ZlcnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTc4Olx0XHRhdGgxMGtfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoYXIsIHBpcGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xNzktXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjE4MjpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3RyYW5zbWl0X2NvbXBsZXRlKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTgzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTg0LVx0c3RydWN0IGF0aDEwa191cmJfY29udGV4dCAqdXJiX2NvbnRleHQgPSB1cmItXHUwMDNlY29udGV4dDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTg1Olx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSA9IHVyYl9jb250ZXh0LVx1MDAzZXBpcGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTE4Ni1cdHN0cnVjdCBhdGgxMGsgKmFyID0gcGlwZS1cdTAwM2Vhcl91c2ItXHUwMDNlYXI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xOTYtXHR1cmJfY29udGV4dC1cdTAwM2Vza2IgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxOTc6XHRhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUodXJiX2NvbnRleHQtXHUwMDNlcGlwZSwgdXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xOTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yMDQtLyogcGlwZSBvcGVyYXRpb25zICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjIwNTpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoc3RydWN0IGF0aDEwayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjIwNjpcdFx0XHRcdFx0ICAgc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcmVjdl9waXBlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yMDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjEyLVx0Zm9yICg7Oykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyMTM6XHRcdHVyYl9jb250ZXh0ID0gYXRoMTBrX3VzYl9hbGxvY191cmJfZnJvbV9waXBlKHJlY3ZfcGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIxNC1cdFx0aWYgKCF1cmJfY29udGV4dClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIyOS1cdFx0XHRcdCAgQVRIMTBLX1VTQl9SWF9CVUZGRVJfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MjMwOlx0XHRcdFx0ICBhdGgxMGtfdXNiX3JlY3ZfY29tcGxldGUsIHVyYl9jb250ZXh0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjMxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjU0LWVycjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MjU1Olx0YXRoMTBrX3VzYl9jbGVhbnVwX3JlY3ZfdXJiKHVyYl9jb250ZXh0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjU2LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyNTg6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9mbHVzaF9hbGwoc3RydWN0IGF0aDEwayAqYXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI1OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI2MDpcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yNjEtXHRpbnQgaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MjcxOnN0YXRpYyB2b2lkIGF0aDEwa191c2Jfc3RhcnRfcmVjdl9waXBlcyhzdHJ1Y3QgYXRoMTBrICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjcyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MjczOlx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI3NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6Mjc3Olx0YXRoMTBrX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKGFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yNzgtXHRcdFx0XHQgICAgICAgXHUwMDI2YXJfdXNiLVx1MDAzZXBpcGVzW0FUSDEwS19VU0JfUElQRV9SWF9EQVRBXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI4MTpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3R4X2NvbXBsZXRlKHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yODIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyOTI6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9yeF9jb21wbGV0ZShzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjkzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzYwOnN0YXRpYyB2b2lkIGF0aDEwa191c2JfaW9fY29tcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzYxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzYyOlx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSA9IGNvbnRhaW5lcl9vZih3b3JrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNjM6XHRcdFx0XHRcdFx0ICAgIHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM2NC1cdFx0XHRcdFx0XHQgICAgaW9fY29tcGxldGVfd29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zNjktXHRcdGlmIChwaXBlLVx1MDAzZWZsYWdzIFx1MDAyNiBBVEgxMEtfVVNCX1BJUEVfRkxBR19UWClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzcwOlx0XHRcdGF0aDEwa191c2JfdHhfY29tcGxldGUoYXIsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM3MS1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzI6XHRcdFx0YXRoMTBrX3VzYl9yeF9jb21wbGV0ZShhciwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzczLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzY6I2RlZmluZSBBVEgxMEtfVVNCX01BWF9ESUFHX0NNRCAoc2l6ZW9mKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzc6I2RlZmluZSBBVEgxMEtfVVNCX01BWF9ESUFHX1JFU1AgKHNpemVvZihzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzk6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9kZXN0cm95KHN0cnVjdCBhdGgxMGsgKmFyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zODAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozODE6XHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozODM6XHRhdGgxMGtfdXNiX2ZsdXNoX2FsbChhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjM4NDpcdGF0aDEwa191c2JfY2xlYW51cF9waXBlX3Jlc291cmNlcyhhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM4NS1cdHVzYl9zZXRfaW50ZmRhdGEoYXJfdXNiLVx1MDAzZWludGVyZmFjZSwgTlVMTCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjM5MTpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX3N0YXJ0KHN0cnVjdCBhdGgxMGsgKmFyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zOTIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zOTMtXHRpbnQgaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6Mzk0Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzk2LVx0YXRoMTBrX2NvcmVfbmFwaV9lbmFibGUoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozOTc6XHRhdGgxMGtfdXNiX3N0YXJ0X3JlY3ZfcGlwZXMoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zOTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQwOTpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX3R4X3NnKHN0cnVjdCBhdGgxMGsgKmFyLCB1OCBwaXBlX2lkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00MTAtXHRcdFx0XHRzdHJ1Y3QgYXRoMTBrX2hpZl9zZ19pdGVtICppdGVtcywgaW50IG5faXRlbXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQxMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQxMjpcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0MTM6XHRzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlICpwaXBlID0gXHUwMDI2YXJfdXNiLVx1MDAzZXBpcGVzW3BpcGVfaWRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00MTQtXHRzdHJ1Y3QgYXRoMTBrX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQxOS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIG5faXRlbXM7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQyMDpcdFx0dXJiX2NvbnRleHQgPSBhdGgxMGtfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUocGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQyMS1cdFx0aWYgKCF1cmJfY29udGV4dCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDM5LVx0XHRcdFx0ICBza2ItXHUwMDNlbGVuLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0NDA6XHRcdFx0XHQgIGF0aDEwa191c2JfdHJhbnNtaXRfY29tcGxldGUsIHVyYl9jb250ZXh0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDQxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDYzLWVycl9mcmVlX3VyYl90b19waXBlOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0NjQ6XHRhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUodXJiX2NvbnRleHQtXHUwMDNlcGlwZSwgdXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NjUtZXJyOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0Njk6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9oaWZfc3RvcChzdHJ1Y3QgYXRoMTBrICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDcwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDcxOlx0YXRoMTBrX3VzYl9mbHVzaF9hbGwoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NzItXHRhdGgxMGtfY29yZV9uYXBpX3N5bmNfZGlzYWJsZShhcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQ3NTpzdGF0aWMgdTE2IGF0aDEwa191c2JfaGlmX2dldF9mcmVlX3F1ZXVlX251bWJlcihzdHJ1Y3QgYXRoMTBrICphciwgdTggcGlwZV9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDc2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDc3Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ3OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDgyOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoc3RydWN0IGF0aDEwayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ4My1cdFx0XHRcdCAgICAgIHU4IHJlcSwgdTE2IHZhbHVlLCB1MTYgaW5kZXgsIHZvaWQgKmRhdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00ODUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0ODY6XHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDg3LVx0dTggKmJ1ZiA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjUxNjpzdGF0aWMgaW50IGF0aDEwa191c2Jfc3VibWl0X2N0cmxfaW4oc3RydWN0IGF0aDEwayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTUxNy1cdFx0XHRcdCAgICAgdTggcmVxLCB1MTYgdmFsdWUsIHUxNiBpbmRleCwgdm9pZCAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTUxOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjUyMDpcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01MjEtXHR1OCAqYnVmID0gTlVMTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTUyOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9jdHJsX21zZ19leGNoYW5nZShzdHJ1Y3QgYXRoMTBrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTUzLVx0XHRcdFx0XHR1OCByZXFfdmFsLCB1OCAqcmVxX2J1ZiwgdTMyIHJlcV9sZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NTktXHQvKiBzZW5kIGNvbW1hbmQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTYwOlx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoYXIsIHJlcV92YWwsIDAsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU2MS1cdFx0XHRcdFx0IHJlcV9idWYsIHJlcV9sZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTY2LVx0aWYgKHJlc3BfYnVmKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU2NzpcdFx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9pbihhciwgcmVzcF92YWwsIDAsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU2OC1cdFx0XHRcdFx0XHRyZXNwX2J1ZiwgKnJlc3BfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTc4OnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9oaWZfZGlhZ19yZWFkKHN0cnVjdCBhdGgxMGsgKmFyLCB1MzIgYWRkcmVzcywgdm9pZCAqYnVmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NzktXHRcdFx0XHQgICAgc2l6ZV90IGJ1Zl9sZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU4MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU4MTpcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1ODI6XHRzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfY21kX3JlYWQgKmNtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTgzLVx0dTMyIHJlc3BfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTg1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1ODY6XHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01ODctXHRcdHJldHVybiAtRUlOVkFMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU4OTpcdGNtZCA9IChzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfY21kX3JlYWQgKilhcl91c2ItXHUwMDNlZGlhZ19jbWRfYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01OTAtXHRtZW1zZXQoY21kLCAwLCBzaXplb2YoKmNtZCkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTkyLVx0Y21kLVx1MDAzZWFkZHJlc3MgPSBjcHVfdG9fbGUzMihhZGRyZXNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTkzOlx0cmVzcF9sZW4gPSBzaXplb2Yoc3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTk1Olx0cmV0ID0gYXRoMTBrX3VzYl9jdHJsX21zZ19leGNoYW5nZShhcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTk2LVx0XHRcdFx0XHQgICBBVEgxMEtfVVNCX0NPTlRST0xfUkVRX0RJQUdfQ01ELFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2MDQ6XHRpZiAocmVzcF9sZW4gIT0gc2l6ZW9mKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MDUtXHRcdHJldHVybiAtRU1TR1NJWkU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MDctXHRtZW1jcHkoYnVmLCBhcl91c2ItXHUwMDNlZGlhZ19yZXNwX2J1ZmZlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjA4Olx0ICAgICAgIHNpemVvZihzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYwOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjEzOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9oaWZfZGlhZ193cml0ZShzdHJ1Y3QgYXRoMTBrICphciwgdTMyIGFkZHJlc3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYxNC1cdFx0XHRcdCAgICAgY29uc3Qgdm9pZCAqZGF0YSwgaW50IG5ieXRlcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjE1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjE2Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjYxNzpcdHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUgKmNtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjE4LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYyMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjIzOlx0Y21kID0gKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUgKilhcl91c2ItXHUwMDNlZGlhZ19jbWRfYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MjQtXHRtZW1zZXQoY21kLCAwLCBzaXplb2YoKmNtZCkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2Mjk6XHRyZXQgPSBhdGgxMGtfdXNiX2N0cmxfbXNnX2V4Y2hhbmdlKGFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MzAtXHRcdFx0XHRcdCAgIEFUSDEwS19VU0JfQ09OVFJPTF9SRVFfRElBR19DTUQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjY0MDpzdGF0aWMgaW50IGF0aDEwa191c2JfYm1pX2V4Y2hhbmdlX21zZyhzdHJ1Y3QgYXRoMTBrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjQxLVx0XHRcdFx0ICAgICAgIHZvaWQgKnJlcSwgdTMyIHJlcV9sZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NDYtXHRpZiAocmVxKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjY0NzpcdFx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTY0OC1cdFx0XHRcdFx0XHQgQVRIMTBLX1VTQl9DT05UUk9MX1JFUV9TRU5EX0JNSV9DTUQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NTgtXHRpZiAocmVzcCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2NTk6XHRcdHJldCA9IGF0aDEwa191c2Jfc3VibWl0X2N0cmxfaW4oYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTY2MC1cdFx0XHRcdFx0XHRBVEgxMEtfVVNCX0NPTlRST0xfUkVRX1JFQ1ZfQk1JX1JFU1AsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjY3MzpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX2hpZl9nZXRfZGVmYXVsdF9waXBlKHN0cnVjdCBhdGgxMGsgKmFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NzQtXHRcdFx0XHRcdCAgICB1OCAqdWxfcGlwZSwgdTggKmRsX3BpcGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjY4MDpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX21hcF9zZXJ2aWNlX3RvX3BpcGUoc3RydWN0IGF0aDEwayAqYXIsIHUxNiBzdmNfaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTY4MS1cdFx0XHRcdFx0ICAgICAgdTggKnVsX3BpcGUsIHU4ICpkbF9waXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MDQ6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl9wb3dlcl91cChzdHJ1Y3QgYXRoMTBrICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzA1LVx0XHRcdFx0ICAgZW51bSBhdGgxMGtfZmlybXdhcmVfbW9kZSBmd19tb2RlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MTA6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9oaWZfcG93ZXJfZG93bihzdHJ1Y3QgYXRoMTBrICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzExLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzEyOlx0YXRoMTBrX3VzYl9mbHVzaF9hbGwoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MTMtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MTc6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl9zdXNwZW5kKHN0cnVjdCBhdGgxMGsgKmFyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MjI6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl9yZXN1bWUoc3RydWN0IGF0aDEwayAqYXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTcyMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjcyODpzdGF0aWMgY29uc3Qgc3RydWN0IGF0aDEwa19oaWZfb3BzIGF0aDEwa191c2JfaGlmX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzI5Olx0LnR4X3NnXHRcdFx0PSBhdGgxMGtfdXNiX2hpZl90eF9zZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzMwOlx0LmRpYWdfcmVhZFx0XHQ9IGF0aDEwa191c2JfaGlmX2RpYWdfcmVhZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzMxOlx0LmRpYWdfd3JpdGVcdFx0PSBhdGgxMGtfdXNiX2hpZl9kaWFnX3dyaXRlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MzI6XHQuZXhjaGFuZ2VfYm1pX21zZ1x0PSBhdGgxMGtfdXNiX2JtaV9leGNoYW5nZV9tc2csXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczMzpcdC5zdGFydFx0XHRcdD0gYXRoMTBrX3VzYl9oaWZfc3RhcnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczNDpcdC5zdG9wXHRcdFx0PSBhdGgxMGtfdXNiX2hpZl9zdG9wLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MzU6XHQubWFwX3NlcnZpY2VfdG9fcGlwZVx0PSBhdGgxMGtfdXNiX2hpZl9tYXBfc2VydmljZV90b19waXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MzY6XHQuZ2V0X2RlZmF1bHRfcGlwZVx0PSBhdGgxMGtfdXNiX2hpZl9nZXRfZGVmYXVsdF9waXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3Mzc6XHQuZ2V0X2ZyZWVfcXVldWVfbnVtYmVyXHQ9IGF0aDEwa191c2JfaGlmX2dldF9mcmVlX3F1ZXVlX251bWJlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM4Olx0LnBvd2VyX3VwXHRcdD0gYXRoMTBrX3VzYl9oaWZfcG93ZXJfdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczOTpcdC5wb3dlcl9kb3duXHRcdD0gYXRoMTBrX3VzYl9oaWZfcG93ZXJfZG93bixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzQwLSNpZmRlZiBDT05GSUdfUE1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzQxOlx0LnN1c3BlbmRcdFx0PSBhdGgxMGtfdXNiX2hpZl9zdXNwZW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3NDI6XHQucmVzdW1lXHRcdFx0PSBhdGgxMGtfdXNiX2hpZl9yZXN1bWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc0My0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzQ2OnN0YXRpYyB1OCBhdGgxMGtfdXNiX2dldF9sb2dpY2FsX3BpcGVfbnVtKHU4IGVwX2FkZHJlc3MsIGludCAqdXJiX2NvdW50KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03NDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3OTE6c3RhdGljIGludCBhdGgxMGtfdXNiX2FsbG9jX3BpcGVfcmVzb3VyY2VzKHN0cnVjdCBhdGgxMGsgKmFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3OTI6XHRcdFx0XHRcdCAgIHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnBpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc5My1cdFx0XHRcdFx0ICAgaW50IHVyYl9jbnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MTEtXHRcdHBpcGUtXHUwMDNldXJiX2FsbG9jJiM0MzsmIzQzOztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODEyOlx0XHRhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUocGlwZSwgdXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MTMtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjgyMzpzdGF0aWMgaW50IGF0aDEwa191c2Jfc2V0dXBfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDEwayAqYXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgyNC1cdFx0XHRcdFx0ICAgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODI1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODI2Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgyNy1cdHN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmlmYWNlX2Rlc2MgPSBpbnRlcmZhY2UtXHUwMDNlY3VyX2FsdHNldHRpbmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgyOC1cdHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZW5kcG9pbnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjgyOTpcdHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnBpcGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgzMC1cdGludCByZXQsIGksIHVyYmNvdW50O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODcxLVx0XHRwaXBlX251bSA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjg3MjpcdFx0ICAgIGF0aDEwa191c2JfZ2V0X2xvZ2ljYWxfcGlwZV9udW0oZW5kcG9pbnQtXHUwMDNlYkVuZHBvaW50QWRkcmVzcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODczLVx0XHRcdFx0XHRcdCAgICBcdTAwMjZ1cmJjb3VudCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjkyNTpcdFx0cmV0ID0gYXRoMTBrX3VzYl9hbGxvY19waXBlX3Jlc291cmNlcyhhciwgcGlwZSwgdXJiY291bnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MjYtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjkzMzpzdGF0aWMgaW50IGF0aDEwa191c2JfY3JlYXRlKHN0cnVjdCBhdGgxMGsgKmFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MzQtXHRcdFx0ICAgICBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MzUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo5MzY6XHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTM3LVx0c3RydWN0IHVzYl9kZXZpY2UgKmRldiA9IGludGVyZmFjZV90b191c2JkZXYoaW50ZXJmYWNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTM4Olx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTM5LVx0aW50IHJldCwgaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk0OC1cdFx0SU5JVF9XT1JLKFx1MDAyNnBpcGUtXHUwMDNlaW9fY29tcGxldGVfd29yayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTQ5Olx0XHRcdCAgYXRoMTBrX3VzYl9pb19jb21wX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NTAtXHRcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2cGlwZS1cdTAwM2Vpb19jb21wX3F1ZXVlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTY2Olx0cmV0ID0gYXRoMTBrX3VzYl9zZXR1cF9waXBlX3Jlc291cmNlcyhhciwgaW50ZXJmYWNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTY3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk3Mi1lcnI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjk3MzpcdGF0aDEwa191c2JfZGVzdHJveShhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk3NC1cdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjk3NzpzdGF0aWMgaW50IGF0aDEwa191c2JfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqY3R4LCBpbnQgYnVkZ2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05Nzgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTkxLS8qIGF0aDEwayB1c2IgZHJpdmVyIHJlZ2lzdGVyZWQgZnVuY3Rpb25zICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjk5MjpzdGF0aWMgaW50IGF0aDEwa191c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTkzLVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05OTUtXHRzdHJ1Y3QgYXRoMTBrICphcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTk2Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTk3LVx0c3RydWN0IHVzYl9kZXZpY2UgKmRldiA9IGludGVyZmFjZV90b191c2JkZXYoaW50ZXJmYWNlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwMTAtXHRhciA9IGF0aDEwa19jb3JlX2NyZWF0ZShzaXplb2YoKmFyX3VzYiksIFx1MDAyNmRldi1cdTAwM2VkZXYsIEFUSDEwS19CVVNfVVNCLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDExOlx0XHRcdFx0aHdfcmV2LCBcdTAwMjZhdGgxMGtfdXNiX2hpZl9vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDEyLVx0aWYgKCFhcikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTAxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTAxNzpcdG5ldGlmX25hcGlfYWRkKGFyLVx1MDAzZW5hcGlfZGV2LCBcdTAwMjZhci1cdTAwM2VuYXBpLCBhdGgxMGtfdXNiX25hcGlfcG9sbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwMTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDI2Olx0YXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTAyNzpcdHJldCA9IGF0aDEwa191c2JfY3JlYXRlKGFyLCBpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDI4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNTEtZXJyX3VzYl9kZXN0cm95OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDUyOlx0YXRoMTBrX3VzYl9kZXN0cm95KGFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA1My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNjA6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDYyOlx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA2My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNjktXHRuZXRpZl9uYXBpX2RlbChcdTAwMjZhcl91c2ItXHUwMDNlYXItXHUwMDNlbmFwaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNzA6XHRhdGgxMGtfdXNiX2Rlc3Ryb3koYXJfdXNiLVx1MDAzZWFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA3MS1cdGF0aDEwa19jb3JlX2Rlc3Ryb3koYXJfdXNiLVx1MDAzZWFyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNzY6c3RhdGljIGludCBhdGgxMGtfdXNiX3BtX3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA3Ny1cdFx0XHRcdCBwbV9tZXNzYWdlX3QgbWVzc2FnZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA3OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNzk6XHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gdXNiX2dldF9pbnRmZGF0YShpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDgxOlx0YXRoMTBrX3VzYl9mbHVzaF9hbGwoYXJfdXNiLVx1MDAzZWFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA4Mi1cdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA4NTpzdGF0aWMgaW50IGF0aDEwa191c2JfcG1fcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwODYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDg3Olx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50ZXJmYWNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA4OC1cdHN0cnVjdCBhdGgxMGsgKmFyID0gYXJfdXNiLVx1MDAzZWFyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDg5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDkwOlx0YXRoMTBrX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKGFyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDkxLVx0XHRcdFx0ICAgICAgIFx1MDAyNmFyX3VzYi1cdTAwM2VwaXBlc1tBVEgxMEtfVVNCX1BJUEVfUlhfREFUQV0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA5ODojZGVmaW5lIGF0aDEwa191c2JfcG1fc3VzcGVuZCBOVUxMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwOTk6I2RlZmluZSBhdGgxMGtfdXNiX3BtX3Jlc3VtZSBOVUxMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMTAzLS8qIHRhYmxlIG9mIGRldmljZXMgdGhhdCB3b3JrIHdpdGggdGhpcyBkcml2ZXIgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTEwNDpzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYXRoMTBrX3VzYl9pZHNbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEwNS1cdHtVU0JfREVWSUNFKDB4MTNiMSwgMHgwMDQyKX0sIC8qIExpbmtzeXMgV1VTQjYxMDBNICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMTA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTA5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBhdGgxMGtfdXNiX2lkcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjExMTE6c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIGF0aDEwa191c2JfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTEyOlx0Lm5hbWUgPSBcJiMzNDthdGgxMGtfdXNiXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTEzOlx0LnByb2JlID0gYXRoMTBrX3VzYl9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTExNDpcdC5zdXNwZW5kID0gYXRoMTBrX3VzYl9wbV9zdXNwZW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTE1Olx0LnJlc3VtZSA9IGF0aDEwa191c2JfcG1fcmVzdW1lLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTE2Olx0LmRpc2Nvbm5lY3QgPSBhdGgxMGtfdXNiX2Rpc2Nvbm5lY3QsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjExMTc6XHQuaWRfdGFibGUgPSBhdGgxMGtfdXNiX2lkcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTExOC1cdC5zdXBwb3J0c19hdXRvc3VzcGVuZCA9IHRydWUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMTIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTIyOm1vZHVsZV91c2JfZHJpdmVyKGF0aDEwa191c2JfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEyMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo0NDpzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNDUtXHRfX2xlMzIgY21kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oOjUxOnN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfcmVhZCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTUyLVx0X19sZTMyIGNtZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo1NjpzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNTctXHR1OCB2YWx1ZVs0XTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTYwLS8qIHR4L3J4IHBpcGVzIGZvciB1c2IgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6NjE6ZW51bSBhdGgxMGtfdXNiX3BpcGVfaWQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC02Mi1cdEFUSDEwS19VU0JfUElQRV9UWF9DVFJMID0gMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo3MzpzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNzQtXHRzdHJ1Y3QgbGlzdF9oZWFkIHVyYl9saXN0X2hlYWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC04Mi1cdHU4IGxvZ2ljYWxfcGlwZV9udW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oOjgzOlx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtODQtXHR1MTYgbWF4X3BhY2tldF9zaXplO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtOTItLyogdXNiIGRldmljZSBvYmplY3QgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6OTM6c3RydWN0IGF0aDEwa191c2Ige1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC05NC1cdC8qIHByb3RlY3RzIHBpcGUtXHUwMDNldXJiX2xpc3RfaGVhZCBhbmQgIHBpcGUtXHUwMDNldXJiX2NudCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtOTgtXHRzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo5OTpcdHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgcGlwZXNbQVRIMTBLX1VTQl9QSVBFX01BWF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTEwMC1cdHU4ICpkaWFnX2NtZF9idWZmZXI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaD0xMDY9c3RydWN0IGF0aDEwa191cmJfY29udGV4dCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTEwNy1cdHN0cnVjdCBsaXN0X2hlYWQgbGluaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6MTA4Olx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtMTA5LVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTExMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6MTEzOnN0YXRpYyBpbmxpbmUgc3RydWN0IGF0aDEwa191c2IgKmF0aDEwa191c2JfcHJpdihzdHJ1Y3QgYXRoMTBrICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtMTE0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6MTE1Olx0cmV0dXJuIChzdHJ1Y3QgYXRoMTBrX3VzYiAqKWFyLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC0xMTYtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDA2OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NDQ0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMjA3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgUG90ZW50aWFsOiBhdGgxMGsgRHJpdmVyKioKCk9rYXksIHNvIEkgc2VlIHRoYXQgYENPTkZJR19BVEgxMEtfVVNCYCBpcyBwcmVzZW50LiBUaGF0JiMzOTtzIGdvb2Q7IGl0IG1lYW5zIHdlIGNhbiBkZWZpbml0ZWx5IGZ1enogdGhpcyBvdmVyIFVTQi4gVGhlIGV4aXN0ZW5jZSBvZiBgQ09ORklHX0FUSDEwS19QQ0lgIGFuZCBgQ09ORklHX0FUSDEwS19TRElPYCBmdXJ0aGVyIGV4cGFuZHMgb3VyIGF0dGFjayBzdXJmYWNlLgoKVGhlIGNoYW5nZXMgYXJlIGNlbnRlcmVkIGluIGB3bWkuY2AgYW5kIGB3bWktdGx2LmNgLiBSaWdodCwgdGhvc2UgZmlsZXMgaGFuZGxlIHRoZSBXTUkgcHJvdG9jb2wg4oCTIHRoZSBXaXJlbGVzcyBNb2R1bGUgSW50ZXJmYWNlLCB3aGljaCBtZWFucyB0aGV5JiMzOTtyZSByZXNwb25zaWJsZSBmb3IgcHJvY2Vzc2luZyBwYWNrZXRzIGNvbWluZyBmcm9tIHRoZSBmaXJtd2FyZS4gU2luY2Ugd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBmdXp6aW5nLCBzcGVjaWZpY2FsbHkgd2l0aCB0aGUgYWJpbGl0eSB0byBzaW11bGF0ZSB0aGUgZmlybXdhcmUgb3IgaW5qZWN0IHBhY2tldHMgZnJvbSB0aGUgaG9zdCBzaWRlLCBsaWtlIHZpYSBVU0Igb3IgUENJLCBJIGtub3cgdGhpcyBjb2RlIHBhdGggaXMgZGVmaW5pdGVseSByZWFjaGFibGUgYW5kIHNob3VsZCBiZSBxdWl0ZSBmdXp6YWJsZS4KCkkgbmVlZCB0byBjb25maXJtIHdoaWNoIGNvbmZpZ3MgYXJlIGludm9sdmVkLCBzbywgbGV0JiMzOTtzIHNlZS4gSSYjMzk7bGwgbmVlZCBgQ09ORklHX0FUSDEwS2AsIG9mIGNvdXJzZS4gQWxzbyBgQ09ORklHX0FUSDEwS19VU0JgLCBgQ09ORklHX0FUSDEwS19QQ0lgLCBgQ09ORklHX0FUSDEwS19TRElPYCBhbmQgYENPTkZJR19BVEgxMEtfU05PQ2AuCgpOb3csIGxldCYjMzk7cyB2ZXJpZnkgdGhhdCB0aGUgYmFzZSBgQ09ORklHX0FUSDEwS2AgYW5kIGl0cyBkZXBlbmRlbmNpZXMgYXJlIGNvbmZpZ3VyZWQgYXMgZXhwZWN0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDY6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEFUSDEwSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBJU0NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzoyOmNvbmZpZyBBVEgxMEtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyA4MDIuMTFhYyB3aXJlbGVzcyBjYXJkcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjE1OmNvbmZpZyBBVEgxMEtfQ0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0xNi1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0xNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzoxODpjb25maWcgQVRIMTBLX1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTE5LVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyBhdGgxMGsgUENJIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6MjQ6Y29uZmlnIEFUSDEwS19BSEJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGgxMGsgQUhCIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6MzA6Y29uZmlnIEFUSDEwS19TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMzEtXHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDEwayBTRElPIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6MzY6Y29uZmlnIEFUSDEwS19VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0zNy1cdHRyaXN0YXRlIFwmIzM0O0F0aGVyb3MgYXRoMTBrIFVTQiBzdXBwb3J0IChFWFBFUklNRU5UQUwpXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjQzOmNvbmZpZyBBVEgxMEtfU05PQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTQ0LVx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gYXRoMTBrIFNOT0Mgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzo1Njpjb25maWcgQVRIMTBLX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctNTctXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoMTBrIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy02My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzo2NDpjb25maWcgQVRIMTBLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy02NS1cdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGgxMGsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjcyOmNvbmZpZyBBVEgxMEtfTEVEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTczLVx0Ym9vbFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy03Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzo3ODpjb25maWcgQVRIMTBLX1NQRUNUUkFMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctNzktXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoMTBrIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy04NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzo4Njpjb25maWcgQVRIMTBLX1RSQUNJTkdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy04Ny1cdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGgxMGsgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjkzOmNvbmZpZyBBVEgxMEtfREZTX0NFUlRJRklFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTk0LVx0Ym9vbCBcJiMzNDtBdGhlcm9zIERGUyBzdXBwb3J0IGZvciBjZXJ0aWZpZWQgcGxhdGZvcm1zXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDY6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwNTEKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBXTUkgRXZlbnQgSGFuZGxlcnMqKgoKT2theSwgc28gdGhlIHRhc2sgYXQgaGFuZCBpcyB0byB0aWdodGVuIHVwIHRoZSBzZWN1cml0eSBhcm91bmQgaG93IHdlIGhhbmRsZSBXTUkgZXZlbnRzIGNvbWluZyBpbiBmcm9tIHRoZSBmaXJtd2FyZSwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYXRoMTBrIGRyaXZlci4gUmlnaHQsIEkgbmVlZCB0byBmb2N1cyBvbiBmdXp6aW5nLiBUaGUga2V5IGZ1bmN0aW9ucyB0byB0YXJnZXQgYXJlIHRoZSBvbmVzIHRoYXQgYWN0dWFsbHkgKnByb2Nlc3MqIHRob3NlIGluY29taW5nIGV2ZW50cy4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIHRoZSBwcmltYXJ5IHRhcmdldHM6CgoqICAgYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYAoqICAgYGF0aDEwa193bWlfb3BfcnhgCiogICBgYXRoMTBrX3dtaV8xMF8xX29wX3J4YAoqICAgYGF0aDEwa193bWlfMTBfMl9vcF9yeGAKKiAgIGBhdGgxMGtfd21pXzEwXzRfb3BfcnhgCiogICBgYXRoMTBrX3dtaV90bHZfb3BfcnhgCgpUaGVzZSBhcmUgYWxsIHJlY2VwdGlvbiBoYW5kbGVycywgYW5kIHRoYXQgbWFrZXMgdGhlbSBwcmltZSBjYW5kaWRhdGVzIGZvciBmdXp6aW5nLiBUaGV5JiMzOTtyZSB3aGVyZSB3ZSB0YWtlIHBvdGVudGlhbGx5IG1hbGljaW91cyBkYXRhIGZyb20gdGhlIGZpcm13YXJlLCBwYXJzZSBpdCwgYW5kIGFjdCBvbiBpdC4gQSB3ZWxsLWNyYWZ0ZWQgZnV6eiBpbnB1dCBjb3VsZCBsZWFkIHRvIGNyYXNoZXMsIG1lbW9yeSBjb3JydXB0aW9uLCBvciBldmVuIG1vcmUgc2VyaW91cyBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGRlZGljYXRlIHRpbWUgdG8gdGVzdGluZyB0aGVzZSBmdW5jdGlvbnMuIEZpcnN0LCBJJiMzOTtsbCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGF0aDEwa193bWlfb3BfcnhgIGFuZCBzZWUgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBvdGhlcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDY6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTBrX3dtaV9vcF9yeCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYz01ODc2PWJvb2wgYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jLTU4ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jOjU4ODk6c3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMtNTg5MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYz05MTQ1PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgd21pX29wcyB3bWlfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYzo5MTQ2Olx0LnJ4ID0gYXRoMTBrX3dtaV9vcF9yeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMtOTE0Ny1cdC5tYXBfc3ZjID0gd21pX21haW5fc3ZjX21hcCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwNjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDgzNwoJCQkJCQkJb3V0cHV0OiAyNDgKCQkJCQkJCXRob3VnaHRzOiAzMDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVnVsbmVyYWJpbGl0eSBGaXhlcyBpbiBhdGgxMGsgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHNldCBvZiBjaGFuZ2VzIGhlcmUsIGFuZCB0aGUgY29yZSBvZiBpdCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IHdpdGhpbiB0aGUgYGF0aDEwa2AgZHJpdmVyLiBUaGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBhcmU6IGBhdGgxMGtfd21pX29wX3J4YCwgYGF0aDEwa193bWlfMTBfMV9vcF9yeGAsIGBhdGgxMGtfd21pXzEwXzJfb3BfcnhgLCBgYXRoMTBrX3dtaV8xMF80X29wX3J4YCwgYGF0aDEwa193bWlfdGx2X29wX3J4YCwgYW5kIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAuIFRoZXNlIGFyZSBhbGwgcmVsYXRlZCB0byBob3cgdGhlIGRyaXZlciBoYW5kbGVzIGluY29taW5nIFdNSSAoV2lyZWxlc3MgTWFuYWdlbWVudCBJbnRlcmZhY2UpIG9wZXJhdGlvbnMsIGFuZCBpdCBsb29rcyBsaWtlIGEgcmVhZCBwYXN0IGFsbG9jYXRlZCBtZW1vcnkgd2FzIHBvc3NpYmxlIHVuZGVyIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMuCgpUbyBwcm9wZXJseSB2YWxpZGF0ZSB0aGlzIGZpeCBhbmQgbWFrZSBpdCBlYXNpZXIgdG8gdGVzdCwgSSBzaG91bGQgZW5hYmxlIHRoZSBgQVRIMTBLYCBhbmQgYEFUSDEwS19VU0JgIGNvbmZpZ3MuIFVTQiBpcyBnZW5lcmFsbHkgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZyB0aGVzZSB0eXBlcyBvZiB2dWxuZXJhYmlsaXRpZXMsIHNpbmNlIGl0JiMzOTtzIGVhc2llciB0byBzZXQgdXAgYSBmdXp6aW5nIGVudmlyb25tZW50LiBJIG1pZ2h0IGFsc28gY29uc2lkZXIgZW5hYmxpbmcgYEFUSDEwS19QQ0lgIGFuZCBgQVRIMTBLX1NESU9gIHRvIGVuc3VyZSB3aWRlciBjb3ZlcmFnZS4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJiMzOTtsbCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IEkmIzM5O3ZlIGdvdCB0aGUgZXhhY3QgZnVuY3Rpb24gbmFtZXMgY29ycmVjdDogYGF0aDEwa193bWlfdGx2X29wX3J4YCwgYGF0aDEwa193bWlfb3BfcnhgLCBgYXRoMTBrX3dtaV8xMF8xX29wX3J4YCwgYGF0aDEwa193bWlfMTBfMl9vcF9yeGAsIGBhdGgxMGtfd21pXzEwXzRfb3BfcnhgLCBgYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHJgLiBZZXAsIHRoYXQmIzM5O3MgcmlnaHQuCgpOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AgYW5kIG1vdmUgZm9yd2FyZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDY6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDEwSyYjMzQ7LAogICAgJiMzNDtBVEgxMEtfVVNCJiMzNDssCiAgICAmIzM0O0FUSDEwS19QQ0kmIzM0OywKICAgICYjMzQ7QVRIMTBLX1NESU8mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthdGgxMGtfd21pX3Rsdl9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pX29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfMTBfMV9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pXzEwXzJfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV8xMF80X29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfcHVsbF9jbWRfaGRyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBhdGgxMGsgZHJpdmVyIGJ5IGludHJvZHVjaW5nIGEgaGVscGVyIGZ1bmN0aW9uIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAgdG8gc2FmZWx5IHB1bGwgdGhlIFdNSSBjb21tYW5kIGhlYWRlciBmcm9tIGFuIHNrYi4gVGhpcyBhZmZlY3RzIHRoZSBwcm9jZXNzaW5nIG9mIFdNSSBldmVudHMgcmVjZWl2ZWQgZnJvbSB0aGUgZmlybXdhcmUuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgZnV6emFibGUgdmlhIHZpcnR1YWxpemVkIGJ1c2VzIGxpa2UgVVNCIG9yIFBDSS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRIMTBLJiMzNDssCiAgICAmIzM0O0FUSDEwS19VU0ImIzM0OywKICAgICYjMzQ7QVRIMTBLX1BDSSYjMzQ7LAogICAgJiMzNDtBVEgxMEtfU0RJTyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2F0aDEwa193bWlfdGx2X29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV8xMF8xX29wX3J4JiMzNDssCiAgICAmIzM0O2F0aDEwa193bWlfMTBfMl9vcF9yeCYjMzQ7LAogICAgJiMzNDthdGgxMGtfd21pXzEwXzRfb3BfcngmIzM0OywKICAgICYjMzQ7YXRoMTBrX3dtaV9wdWxsX2NtZF9oZHImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGF0aDEwayBkcml2ZXIgYnkgaW50cm9kdWNpbmcgYSBoZWxwZXIgZnVuY3Rpb24gYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYCB0byBzYWZlbHkgcHVsbCB0aGUgV01JIGNvbW1hbmQgaGVhZGVyIGZyb20gYW4gc2tiLiBUaGlzIGFmZmVjdHMgdGhlIHByb2Nlc3Npbmcgb2YgV01JIGV2ZW50cyByZWNlaXZlZCBmcm9tIHRoZSBmaXJtd2FyZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCBmdXp6YWJsZSB2aWEgdmlydHVhbGl6ZWQgYnVzZXMgbGlrZSBVU0Igb3IgUENJLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjRUMDY6MzE6NDEuNTM0MzY1NjM2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQzNTMwODgwMzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQVRIMTBLXCIsXG4gICAgXCJBVEgxMEtfVVNCXCIsXG4gICAgXCJBVEgxMEtfUENJXCIsXG4gICAgXCJBVEgxMEtfU0RJT1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImF0aDEwa193bWlfdGx2X29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pX29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pXzEwXzFfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfMTBfMl9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV8xMF80X29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pX3B1bGxfY21kX2hkclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBhdGgxMGsgZHJpdmVyIGJ5IGludHJvZHVjaW5nIGEgaGVscGVyIGZ1bmN0aW9uIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAgdG8gc2FmZWx5IHB1bGwgdGhlIFdNSSBjb21tYW5kIGhlYWRlciBmcm9tIGFuIHNrYi4gVGhpcyBhZmZlY3RzIHRoZSBwcm9jZXNzaW5nIG9mIFdNSSBldmVudHMgcmVjZWl2ZWQgZnJvbSB0aGUgZmlybXdhcmUuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgZnV6emFibGUgdmlhIHZpcnR1YWxpemVkIGJ1c2VzIGxpa2UgVVNCIG9yIFBDSS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDY6MzE6NDEuNTM0MzcxOTk2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozODI3NDEzMzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3MzQ3NTRhNDczZTFiZTBkNmRkMDMzYmQxNDk4M2IyZTQ3OGViOGUwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDI0IDA2OjMxOjQwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLXRsdi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmNcXG5pbmRleCAwMWYyZDFmYTlkN2Q5Mi4uMjcyZGFiMzdkYzE5NGYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuY1xcbkBAIC02MzgsMTQgKzYzOCwxMCBAQCBzdGF0aWMgaW50IGF0aDEwa193bWlfdGx2X2V2ZW50X3BlZXJfZGVsZXRlX3Jlc3Aoc3RydWN0IGF0aDEwayAqYXIsXFxuIFxcbiBzdGF0aWMgdm9pZCBhdGgxMGtfd21pX3Rsdl9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4ge1xcbi1cXHRzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XFxuLVxcdGVudW0gd21pX3Rsdl9ldmVudF9pZCBpZDtcXG4gXFx0Ym9vbCBjb25zdW1lZDtcXG4rXFx0dTMyIGlkO1xcbiBcXG4tXFx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXFx1MDAzZWRhdGE7XFxuLVxcdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVxcdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xcbi1cXG4tXFx0aWYgKHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpID09IE5VTEwpXFxuK1xcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcXHUwMDI2aWQpKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuIFxcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNcXG5pbmRleCBlNTc1ODhjMTljODAwYy4uMjk2YTg5MTA2NzM2MTkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNcXG5AQCAtNTg3MywxNSArNTg3MywyNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX3dtaV9xdWV1ZV9zZXRfY292ZXJhZ2VfY2xhc3Nfd29yayhzdHJ1Y3QgYXRoMTBrICphcilcXG4gXFx0fVxcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCBhdGgxMGtfd21pX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbitib29sIGF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaWQpXFxuIHtcXG4tXFx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xcbi1cXHRlbnVtIHdtaV9ldmVudF9pZCBpZDtcXG4rXFx0Y29uc3Qgc3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xcbiBcXG4tXFx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXFx1MDAzZWRhdGE7XFxuLVxcdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVxcdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xcbitcXHRjbWRfaGRyID0gc2tiX3B1bGxfZGF0YShza2IsIHNpemVvZigqY21kX2hkcikpO1xcbitcXHRpZiAoIWNtZF9oZHIpXFxuK1xcdFxcdHJldHVybiBmYWxzZTtcXG4rXFxuK1xcdCppZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcXG4rXFxuK1xcdHJldHVybiB0cnVlO1xcbit9XFxuK1xcbitzdGF0aWMgdm9pZCBhdGgxMGtfd21pX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbit7XFxuK1xcdHUzMiBpZDtcXG4gXFxuLVxcdGlmIChza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSA9PSBOVUxMKVxcbitcXHRpZiAoIWF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHNrYiwgXFx1MDAyNmlkKSlcXG4gXFx0XFx0Z290byBvdXQ7XFxuIFxcbiBcXHR0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLVxcdTAwM2VkYXRhLCBza2ItXFx1MDAzZWxlbik7XFxuQEAgLTYwMDIsMTQgKzYwMTEsMTAgQEAgc3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gXFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4ge1xcbi1cXHRzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XFxuLVxcdGVudW0gd21pXzEweF9ldmVudF9pZCBpZDtcXG4gXFx0Ym9vbCBjb25zdW1lZDtcXG4rXFx0dTMyIGlkO1xcbiBcXG4tXFx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXFx1MDAzZWRhdGE7XFxuLVxcdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVxcdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xcbi1cXG4tXFx0aWYgKHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpID09IE5VTEwpXFxuK1xcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcXHUwMDI2aWQpKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuIFxcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuKTtcXG5AQCAtNjEzMywxNCArNjEzOCwxMCBAQCBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzFfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXFxuIFxcbiBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzJfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXFxuIHtcXG4tXFx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xcbi1cXHRlbnVtIHdtaV8xMF8yX2V2ZW50X2lkIGlkO1xcbiBcXHRib29sIGNvbnN1bWVkO1xcbitcXHR1MzIgaWQ7XFxuIFxcbi1cXHRjbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi1cXHUwMDNlZGF0YTtcXG4tXFx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXFx1MDAzZWNtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7XFxuLVxcbi1cXHRpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTClcXG4rXFx0aWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsIFxcdTAwMjZpZCkpXFxuIFxcdFxcdGdvdG8gb3V0O1xcbiBcXG4gXFx0dHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi1cXHUwMDNlZGF0YSwgc2tiLVxcdTAwM2VsZW4pO1xcbkBAIC02MjgyLDE0ICs2MjgzLDEwIEBAIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMl9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gXFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfNF9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4ge1xcbi1cXHRzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XFxuLVxcdGVudW0gd21pXzEwXzRfZXZlbnRfaWQgaWQ7XFxuIFxcdGJvb2wgY29uc3VtZWQ7XFxuK1xcdHUzMiBpZDtcXG4gXFxuLVxcdGNtZF9oZHIgPSAoc3RydWN0IHdtaV9jbWRfaGRyICopc2tiLVxcdTAwM2VkYXRhO1xcbi1cXHRpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcXG4tXFxuLVxcdGlmICghc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkpXFxuK1xcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcXHUwMDI2aWQpKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuIFxcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmhcXG5pbmRleCA3ZjUwYTFkZTZiOTc4ZS4uNGVjYzk0NzEyZjc2MjEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmhcXG5AQCAtNzQ0MCw2ICs3NDQwLDcgQEAgc3RydWN0IGF0aDEwa192aWY7XFxuIHN0cnVjdCBhdGgxMGtfZndfc3RhdHNfcGRldjtcXG4gc3RydWN0IGF0aDEwa19md19zdGF0c19wZWVyO1xcbiBzdHJ1Y3QgYXRoMTBrX2Z3X3N0YXRzO1xcbitzdHJ1Y3Qgc2tfYnVmZjtcXG4gXFxuIGludCBhdGgxMGtfd21pX2F0dGFjaChzdHJ1Y3QgYXRoMTBrICphcik7XFxuIHZvaWQgYXRoMTBrX3dtaV9kZXRhY2goc3RydWN0IGF0aDEwayAqYXIpO1xcbkBAIC03NDQ5LDYgKzc0NTAsNyBAQCBpbnQgYXRoMTBrX3dtaV93YWl0X2Zvcl91bmlmaWVkX3JlYWR5KHN0cnVjdCBhdGgxMGsgKmFyKTtcXG4gXFxuIHN0cnVjdCBza19idWZmICphdGgxMGtfd21pX2FsbG9jX3NrYihzdHJ1Y3QgYXRoMTBrICphciwgdTMyIGxlbik7XFxuIGludCBhdGgxMGtfd21pX2Nvbm5lY3Qoc3RydWN0IGF0aDEwayAqYXIpO1xcbitib29sIGF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaWQpO1xcbiBcXG4gaW50IGF0aDEwa193bWlfY21kX3NlbmQoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBjbWRfaWQpO1xcbiBpbnQgYXRoMTBrX3dtaV9jbWRfc2VuZF9ub3dhaXQoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDA2OjMxOjQxLjkxNzY5MzI3NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjMzOTY5NzUyMDkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUSDEwS1wiLFxuICAgIFwiQVRIMTBLX1VTQlwiLFxuICAgIFwiQVRIMTBLX1BDSVwiLFxuICAgIFwiQVRIMTBLX1NESU9cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhdGgxMGtfd21pX3Rsdl9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV8xMF8xX29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pXzEwXzJfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfMTBfNF9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgdnVsbmVyYWJpbGl0eSBpbiB0aGUgYXRoMTBrIGRyaXZlciBieSBpbnRyb2R1Y2luZyBhIGhlbHBlciBmdW5jdGlvbiBgYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHJgIHRvIHNhZmVseSBwdWxsIHRoZSBXTUkgY29tbWFuZCBoZWFkZXIgZnJvbSBhbiBza2IuIFRoaXMgYWZmZWN0cyB0aGUgcHJvY2Vzc2luZyBvZiBXTUkgZXZlbnRzIHJlY2VpdmVkIGZyb20gdGhlIGZpcm13YXJlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgYW5kIGZ1enphYmxlIHZpYSB2aXJ0dWFsaXplZCBidXNlcyBsaWtlIFVTQiBvciBQQ0kuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzM0NzU0YTQ3M2UxYmUwZDZkZDAzM2JkMTQ5ODNiMmU0NzhlYjhlMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDI0IDA2OjMxOjQwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuY1xuaW5kZXggMDFmMmQxZmE5ZDdkOTIuLjI3MmRhYjM3ZGMxOTRmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLXRsdi5jXG5AQCAtNjM4LDE0ICs2MzgsMTAgQEAgc3RhdGljIGludCBhdGgxMGtfd21pX3Rsdl9ldmVudF9wZWVyX2RlbGV0ZV9yZXNwKHN0cnVjdCBhdGgxMGsgKmFyLFxuIFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfdGx2X29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbi1cdHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcbi1cdGVudW0gd21pX3Rsdl9ldmVudF9pZCBpZDtcbiBcdGJvb2wgY29uc3VtZWQ7XG4rXHR1MzIgaWQ7XG4gXG4tXHRjbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi1cdTAwM2VkYXRhO1xuLVx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcbi1cbi1cdGlmIChza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSA9PSBOVUxMKVxuK1x0aWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsIFx1MDAyNmlkKSlcbiBcdFx0Z290byBvdXQ7XG4gXG4gXHR0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLVx1MDAzZWRhdGEsIHNrYi1cdTAwM2VsZW4pO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jXG5pbmRleCBlNTc1ODhjMTljODAwYy4uMjk2YTg5MTA2NzM2MTkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jXG5AQCAtNTg3MywxNSArNTg3MywyNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX3dtaV9xdWV1ZV9zZXRfY292ZXJhZ2VfY2xhc3Nfd29yayhzdHJ1Y3QgYXRoMTBrICphcilcbiBcdH1cbiB9XG4gXG4tc3RhdGljIHZvaWQgYXRoMTBrX3dtaV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbitib29sIGF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaWQpXG4ge1xuLVx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xuLVx0ZW51bSB3bWlfZXZlbnRfaWQgaWQ7XG4rXHRjb25zdCBzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XG4gXG4tXHRjbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi1cdTAwM2VkYXRhO1xuLVx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcbitcdGNtZF9oZHIgPSBza2JfcHVsbF9kYXRhKHNrYiwgc2l6ZW9mKCpjbWRfaGRyKSk7XG4rXHRpZiAoIWNtZF9oZHIpXG4rXHRcdHJldHVybiBmYWxzZTtcbitcbitcdCppZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xuK1xuK1x0cmV0dXJuIHRydWU7XG4rfVxuK1xuK3N0YXRpYyB2b2lkIGF0aDEwa193bWlfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4re1xuK1x0dTMyIGlkO1xuIFxuLVx0aWYgKHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3bWlfY21kX2hkcikpID09IE5VTEwpXG4rXHRpZiAoIWF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHNrYiwgXHUwMDI2aWQpKVxuIFx0XHRnb3RvIG91dDtcbiBcbiBcdHRyYWNlX2F0aDEwa193bWlfZXZlbnQoYXIsIGlkLCBza2ItXHUwMDNlZGF0YSwgc2tiLVx1MDAzZWxlbik7XG5AQCAtNjAwMiwxNCArNjAxMSwxMCBAQCBzdGF0aWMgdm9pZCBhdGgxMGtfd21pX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4tXHRzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XG4tXHRlbnVtIHdtaV8xMHhfZXZlbnRfaWQgaWQ7XG4gXHRib29sIGNvbnN1bWVkO1xuK1x0dTMyIGlkO1xuIFxuLVx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXHUwMDNlZGF0YTtcbi1cdGlkID0gTVMoX19sZTMyX3RvX2NwdShjbWRfaGRyLVx1MDAzZWNtZF9pZCksIFdNSV9DTURfSERSX0NNRF9JRCk7XG4tXG4tXHRpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTClcbitcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcdTAwMjZpZCkpXG4gXHRcdGdvdG8gb3V0O1xuIFxuIFx0dHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuKTtcbkBAIC02MTMzLDE0ICs2MTM4LDEwIEBAIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfMV9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcbiBzdGF0aWMgdm9pZCBhdGgxMGtfd21pXzEwXzJfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuLVx0c3RydWN0IHdtaV9jbWRfaGRyICpjbWRfaGRyO1xuLVx0ZW51bSB3bWlfMTBfMl9ldmVudF9pZCBpZDtcbiBcdGJvb2wgY29uc3VtZWQ7XG4rXHR1MzIgaWQ7XG4gXG4tXHRjbWRfaGRyID0gKHN0cnVjdCB3bWlfY21kX2hkciAqKXNrYi1cdTAwM2VkYXRhO1xuLVx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcbi1cbi1cdGlmIChza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSA9PSBOVUxMKVxuK1x0aWYgKCFhdGgxMGtfd21pX3B1bGxfY21kX2hkcihza2IsIFx1MDAyNmlkKSlcbiBcdFx0Z290byBvdXQ7XG4gXG4gXHR0cmFjZV9hdGgxMGtfd21pX2V2ZW50KGFyLCBpZCwgc2tiLVx1MDAzZWRhdGEsIHNrYi1cdTAwM2VsZW4pO1xuQEAgLTYyODIsMTQgKzYyODMsMTAgQEAgc3RhdGljIHZvaWQgYXRoMTBrX3dtaV8xMF8yX29wX3J4KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFxuIHN0YXRpYyB2b2lkIGF0aDEwa193bWlfMTBfNF9vcF9yeChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4tXHRzdHJ1Y3Qgd21pX2NtZF9oZHIgKmNtZF9oZHI7XG4tXHRlbnVtIHdtaV8xMF80X2V2ZW50X2lkIGlkO1xuIFx0Ym9vbCBjb25zdW1lZDtcbitcdHUzMiBpZDtcbiBcbi1cdGNtZF9oZHIgPSAoc3RydWN0IHdtaV9jbWRfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4tXHRpZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xuLVxuLVx0aWYgKCFza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3Qgd21pX2NtZF9oZHIpKSlcbitcdGlmICghYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHIoc2tiLCBcdTAwMjZpZCkpXG4gXHRcdGdvdG8gb3V0O1xuIFxuIFx0dHJhY2VfYXRoMTBrX3dtaV9ldmVudChhciwgaWQsIHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuaW5kZXggN2Y1MGExZGU2Yjk3OGUuLjRlY2M5NDcxMmY3NjIxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaFxuQEAgLTc0NDAsNiArNzQ0MCw3IEBAIHN0cnVjdCBhdGgxMGtfdmlmO1xuIHN0cnVjdCBhdGgxMGtfZndfc3RhdHNfcGRldjtcbiBzdHJ1Y3QgYXRoMTBrX2Z3X3N0YXRzX3BlZXI7XG4gc3RydWN0IGF0aDEwa19md19zdGF0cztcbitzdHJ1Y3Qgc2tfYnVmZjtcbiBcbiBpbnQgYXRoMTBrX3dtaV9hdHRhY2goc3RydWN0IGF0aDEwayAqYXIpO1xuIHZvaWQgYXRoMTBrX3dtaV9kZXRhY2goc3RydWN0IGF0aDEwayAqYXIpO1xuQEAgLTc0NDksNiArNzQ1MCw3IEBAIGludCBhdGgxMGtfd21pX3dhaXRfZm9yX3VuaWZpZWRfcmVhZHkoc3RydWN0IGF0aDEwayAqYXIpO1xuIFxuIHN0cnVjdCBza19idWZmICphdGgxMGtfd21pX2FsbG9jX3NrYihzdHJ1Y3QgYXRoMTBrICphciwgdTMyIGxlbik7XG4gaW50IGF0aDEwa193bWlfY29ubmVjdChzdHJ1Y3QgYXRoMTBrICphcik7XG4rYm9vbCBhdGgxMGtfd21pX3B1bGxfY21kX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmlkKTtcbiBcbiBpbnQgYXRoMTBrX3dtaV9jbWRfc2VuZChzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIGNtZF9pZCk7XG4gaW50IGF0aDEwa193bWlfY21kX3NlbmRfbm93YWl0KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDY6MzE6NDEuOTE3Njk0MzE1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTM4NjA5NDIzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhdGgxMGtgLCBzcGVjaWZpY2FsbHkgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmNgIGFuZCBgd21pLXRsdi5jYC4gSXQgc2VlbXMgbGlrZSBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgZml4IOKAkyB0aGV5J3JlIGludHJvZHVjaW5nIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAuIFRoZSBvcmlnaW5hbCBjb2RlLCBhcyBJJ20gc2VlaW5nIGl0LCBoYWQgYSBjbGFzc2ljIG92ZXJzaWdodDogYWNjZXNzaW5nIGBza2ItXHUwMDNlZGF0YWAgZGlyZWN0bHkgKmJlZm9yZSogY2hlY2tpbmcgaWYgdGhlIGBza2JgIGFjdHVhbGx5IGhhcyBlbm91Z2ggZGF0YS4gSXQgd2FzIGRvaW5nIHNvbWV0aGluZyBsaWtlIHRoaXM6XG5cbmBgYGNcblx0Y21kX2hkciA9IChzdHJ1Y3Qgd21pX2NtZF9oZHIgKilza2ItXHUwMDNlZGF0YTtcblx0aWQgPSBNUyhfX2xlMzJfdG9fY3B1KGNtZF9oZHItXHUwMDNlY21kX2lkKSwgV01JX0NNRF9IRFJfQ01EX0lEKTtcblxuXHRpZiAoc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHdtaV9jbWRfaGRyKSkgPT0gTlVMTClcblx0XHRnb3RvIG91dDtcbmBgYFxuXG5XaGljaCwgaWYgdGhlIGBza2JgIHdhcyB0b28gc21hbGwsIGNvdWxkIGxlYWQgdG8gYSByZWFsbHkgbmFzdHkgb3V0LW9mLWJvdW5kcyByZWFkLiBUaGUgbmV3IGNvZGUgaXMgc2FmZXIsIHVzaW5nIGBza2JfcHVsbF9kYXRhYCB3aGljaCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgZGF0YSBvciBOVUxMLCBpZiB0aGVyZSBpc24ndCBlbm91Z2ggZGF0YS4gVGhlIG5ldyBjb2RlIGlzOlxuXG5gYGBjXG5ib29sIGF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaWQpXG57XG5cdGNvbnN0IHN0cnVjdCB3bWlfY21kX2hkciAqY21kX2hkcjtcblxuXHRjbWRfaGRyID0gc2tiX3B1bGxfZGF0YShza2IsIHNpemVvZigqY21kX2hkcikpO1xuXHRpZiAoIWNtZF9oZHIpXG5cdFx0cmV0dXJuIGZhbHNlO1xuXG5cdCppZCA9IE1TKF9fbGUzMl90b19jcHUoY21kX2hkci1cdTAwM2VjbWRfaWQpLCBXTUlfQ01EX0hEUl9DTURfSUQpO1xuXG5cdHJldHVybiB0cnVlO1xufVxuYGBgXG5cbkdvb2QgY2F0Y2gsIHRoaXMgaXMgYSBwcmV0dHkgc3RhbmRhcmQsIGJ1dCBpbXBvcnRhbnQsIGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBwcmFjdGljZSB0byBwcmV2ZW50IG1lbW9yeSBjb3JydXB0aW9uLlxuXG5Ob3csIEknbSB0aGlua2luZyBhYm91dCBmdXp6aW5nIHRoaXMuIFNpbmNlIGBhdGgxMGtgIGlzIGEgZHJpdmVyIGZvciBBdGhlcm9zIHdpcmVsZXNzIGNhcmRzLCBpdCdzIHR5cGljYWxseSBhIFBDSS9VU0IgZHJpdmVyLCBJJ20gd29uZGVyaW5nIGlmIHRoaXMgaXMgYSB2dWxuZXJhYmxlIGNvZGUgcGF0aCBpbiBhIGZ1enphYmxlIGVudmlyb25tZW50LiBJJ20gY29uc2lkZXJpbmcgaWYgdGhpcyBpcyBzb21ldGhpbmcgd2UgY2FuIHJlYWNoIGluIGEgdmlydHVhbGl6ZWQgY29udGV4dC4gSSBrbm93IGRyaXZlcnMgd2l0aCB2aXJ0dWFsaXplZCBidXNlcyBhcmUgb2Z0ZW4gZ29vZCB0YXJnZXRzLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBzeXprYWxsZXIgY2FuIGV2ZW4gdGVzdCB0aGUgZHJpdmVyLlxuXG5TbywgYGF0aDEwa2AgaGFzIFBDSSwgU0RJTywgVVNCLCBhbmQgU05PQyBiYWNrZW5kcy4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgYXRoMTBrIFVTQiBpcyBzdXBwb3J0ZWQsIHRvIGFzc2VzcyB0aGUgZXhwb3N1cmUuIExldCBtZSB1c2UgYGdyZXBwZXJgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG1lbnRpb25zIG9mIGBhdGgxMGtfdXNiYCBvciBhbnl0aGluZyBzaW1pbGFyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTM5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTExLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDY6MzE6NTEuMzAzNzkyMDM4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4NDUzOTU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEwa191c2JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEwa1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL01ha2VmaWxlPTM0PWF0aDEwa19zZGlvLXkgKz0gc2Rpby5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9NYWtlZmlsZS0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL01ha2VmaWxlOjM2Om9iai0kKENPTkZJR19BVEgxMEtfVVNCKSArPSBhdGgxMGtfdXNiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL01ha2VmaWxlOjM3OmF0aDEwa191c2IteSArPSB1c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvTWFrZWZpbGUtMzgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTg6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKHN0cnVjdCBhdGgxMGsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTk6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcmVjdl9waXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYz0zNT1zdGF0aWMgc3RydWN0IGF0aDEwa191cmJfY29udGV4dCAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNjphdGgxMGtfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUoc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1NzpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUoc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU4LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBhdGgxMGtfdXJiX2NvbnRleHQgKnVyYl9jb250ZXh0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjc0OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfY2xlYW51cF9yZWN2X3VyYihzdHJ1Y3QgYXRoMTBrX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3OTpcXHRhdGgxMGtfdXNiX2ZyZWVfdXJiX3RvX3BpcGUodXJiX2NvbnRleHQtXFx1MDAzZXBpcGUsIHVyYl9jb250ZXh0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgwLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODI6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9mcmVlX3BpcGVfcmVzb3VyY2VzKHN0cnVjdCBhdGgxMGsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODM6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTg0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA0LVxcdGZvciAoOzspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNTpcXHRcXHR1cmJfY29udGV4dCA9IGF0aDEwa191c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShwaXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTE0OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfY2xlYW51cF9waXBlX3Jlc291cmNlcyhzdHJ1Y3QgYXRoMTBrICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTY6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMTctXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExOS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTBLX1VTQl9QSVBFX01BWDsgaSsrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTIwOlxcdFxcdGF0aDEwa191c2JfZnJlZV9waXBlX3Jlc291cmNlcyhhciwgXFx1MDAyNmFyX3VzYi1cXHUwMDNlcGlwZXNbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTIxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTI1OnN0YXRpYyB2b2lkIGF0aDEwa191c2JfcmVjdl9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMjYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTI3LVxcdHN0cnVjdCBhdGgxMGtfdXJiX2NvbnRleHQgKnVyYl9jb250ZXh0ID0gdXJiLVxcdTAwM2Vjb250ZXh0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTI4OlxcdHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnBpcGUgPSB1cmJfY29udGV4dC1cXHUwMDNlcGlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEyOS1cXHRzdHJ1Y3QgYXRoMTBrICphciA9IHBpcGUtXFx1MDAzZWFyX3VzYi1cXHUwMDNlYXI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTE3Mi1jbGVhbnVwX3JlY3ZfdXJiOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTczOlxcdGF0aDEwa191c2JfY2xlYW51cF9yZWN2X3VyYih1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTE3Ny1cXHRcXHQvKiBvdXIgZnJlZSB1cmJzIGFyZSBwaWxpbmcgdXAsIHBvc3QgbW9yZSB0cmFuc2ZlcnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjE3ODpcXHRcXHRhdGgxMGtfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoYXIsIHBpcGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTc5LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTgyOnN0YXRpYyB2b2lkIGF0aDEwa191c2JfdHJhbnNtaXRfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTgzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTE4NC1cXHRzdHJ1Y3QgYXRoMTBrX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dCA9IHVyYi1cXHUwMDNlY29udGV4dDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjE4NTpcXHRzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlICpwaXBlID0gdXJiX2NvbnRleHQtXFx1MDAzZXBpcGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xODYtXFx0c3RydWN0IGF0aDEwayAqYXIgPSBwaXBlLVxcdTAwM2Vhcl91c2ItXFx1MDAzZWFyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xOTYtXFx0dXJiX2NvbnRleHQtXFx1MDAzZXNrYiA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxOTc6XFx0YXRoMTBrX3VzYl9mcmVlX3VyYl90b19waXBlKHVyYl9jb250ZXh0LVxcdTAwM2VwaXBlLCB1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xOTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIwNC0vKiBwaXBlIG9wZXJhdGlvbnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjIwNTpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyMDY6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcmVjdl9waXBlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjA3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjEyLVxcdGZvciAoOzspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjIxMzpcXHRcXHR1cmJfY29udGV4dCA9IGF0aDEwa191c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShyZWN2X3BpcGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjE0LVxcdFxcdGlmICghdXJiX2NvbnRleHQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIyOS1cXHRcXHRcXHRcXHQgIEFUSDEwS19VU0JfUlhfQlVGRkVSX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyMzA6XFx0XFx0XFx0XFx0ICBhdGgxMGtfdXNiX3JlY3ZfY29tcGxldGUsIHVyYl9jb250ZXh0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTIzMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjU0LWVycjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI1NTpcXHRhdGgxMGtfdXNiX2NsZWFudXBfcmVjdl91cmIodXJiX2NvbnRleHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjU2LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI1ODpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX2ZsdXNoX2FsbChzdHJ1Y3QgYXRoMTBrICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI1OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyNjA6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yNjEtXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI3MTpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3N0YXJ0X3JlY3ZfcGlwZXMoc3RydWN0IGF0aDEwayAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yNzIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MjczOlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjc0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyNzc6XFx0YXRoMTBrX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKGFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjc4LVxcdFxcdFxcdFxcdCAgICAgICBcXHUwMDI2YXJfdXNiLVxcdTAwM2VwaXBlc1tBVEgxMEtfVVNCX1BJUEVfUlhfREFUQV0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0yODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoyODE6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl90eF9jb21wbGV0ZShzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI4Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTI5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjI5MjpzdGF0aWMgdm9pZCBhdGgxMGtfdXNiX3J4X2NvbXBsZXRlKHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMjkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzYwOnN0YXRpYyB2b2lkIGF0aDEwa191c2JfaW9fY29tcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM2MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNjI6XFx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSA9IGNvbnRhaW5lcl9vZih3b3JrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzYzOlxcdFxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgYXRoMTBrX3VzYl9waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzY0LVxcdFxcdFxcdFxcdFxcdFxcdCAgICBpb19jb21wbGV0ZV93b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzY5LVxcdFxcdGlmIChwaXBlLVxcdTAwM2VmbGFncyBcXHUwMDI2IEFUSDEwS19VU0JfUElQRV9GTEFHX1RYKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzcwOlxcdFxcdFxcdGF0aDEwa191c2JfdHhfY29tcGxldGUoYXIsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zNzEtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzcyOlxcdFxcdFxcdGF0aDEwa191c2JfcnhfY29tcGxldGUoYXIsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zNzMtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzY6I2RlZmluZSBBVEgxMEtfVVNCX01BWF9ESUFHX0NNRCAoc2l6ZW9mKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6Mzc3OiNkZWZpbmUgQVRIMTBLX1VTQl9NQVhfRElBR19SRVNQIChzaXplb2Yoc3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozNzk6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9kZXN0cm95KHN0cnVjdCBhdGgxMGsgKmFyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzgwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjM4MTpcXHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM4Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjM4MzpcXHRhdGgxMGtfdXNiX2ZsdXNoX2FsbChhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzozODQ6XFx0YXRoMTBrX3VzYl9jbGVhbnVwX3BpcGVfcmVzb3VyY2VzKGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTM4NS1cXHR1c2Jfc2V0X2ludGZkYXRhKGFyX3VzYi1cXHUwMDNlaW50ZXJmYWNlLCBOVUxMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MzkxOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9oaWZfc3RhcnQoc3RydWN0IGF0aDEwayAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0zOTIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzkzLVxcdGludCBpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6Mzk0OlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzk2LVxcdGF0aDEwa19jb3JlX25hcGlfZW5hYmxlKGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjM5NzpcXHRhdGgxMGtfdXNiX3N0YXJ0X3JlY3ZfcGlwZXMoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMzk4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00MDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0MDk6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl90eF9zZyhzdHJ1Y3QgYXRoMTBrICphciwgdTggcGlwZV9pZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQxMC1cXHRcXHRcXHRcXHRzdHJ1Y3QgYXRoMTBrX2hpZl9zZ19pdGVtICppdGVtcywgaW50IG5faXRlbXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00MTEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDEyOlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDEzOlxcdHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnBpcGUgPSBcXHUwMDI2YXJfdXNiLVxcdTAwM2VwaXBlc1twaXBlX2lkXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQxNC1cXHRzdHJ1Y3QgYXRoMTBrX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDE5LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBuX2l0ZW1zOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQyMDpcXHRcXHR1cmJfY29udGV4dCA9IGF0aDEwa191c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShwaXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQyMS1cXHRcXHRpZiAoIXVyYl9jb250ZXh0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQzOS1cXHRcXHRcXHRcXHQgIHNrYi1cXHUwMDNlbGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDQwOlxcdFxcdFxcdFxcdCAgYXRoMTBrX3VzYl90cmFuc21pdF9jb21wbGV0ZSwgdXJiX2NvbnRleHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDQxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NjMtZXJyX2ZyZWVfdXJiX3RvX3BpcGU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0NjQ6XFx0YXRoMTBrX3VzYl9mcmVlX3VyYl90b19waXBlKHVyYl9jb250ZXh0LVxcdTAwM2VwaXBlLCB1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NjUtZXJyOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00NjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0Njk6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9oaWZfc3RvcChzdHJ1Y3QgYXRoMTBrICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ3MC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo0NzE6XFx0YXRoMTBrX3VzYl9mbHVzaF9hbGwoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDcyLVxcdGF0aDEwa19jb3JlX25hcGlfc3luY19kaXNhYmxlKGFyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDc1OnN0YXRpYyB1MTYgYXRoMTBrX3VzYl9oaWZfZ2V0X2ZyZWVfcXVldWVfbnVtYmVyKHN0cnVjdCBhdGgxMGsgKmFyLCB1OCBwaXBlX2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDc2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQ3NzpcXHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ3OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NDgyOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy00ODMtXFx0XFx0XFx0XFx0ICAgICAgdTggcmVxLCB1MTYgdmFsdWUsIHUxNiBpbmRleCwgdm9pZCAqZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNDg1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjQ4NjpcXHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTQ4Ny1cXHR1OCAqYnVmID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTE2OnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9pbihzdHJ1Y3QgYXRoMTBrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTUxNy1cXHRcXHRcXHRcXHQgICAgIHU4IHJlcSwgdTE2IHZhbHVlLCB1MTYgaW5kZXgsIHZvaWQgKmRhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTUxOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1MjA6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IGF0aDEwa191c2JfcHJpdihhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01MjEtXFx0dTggKmJ1ZiA9IE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU1MjpzdGF0aWMgaW50IGF0aDEwa191c2JfY3RybF9tc2dfZXhjaGFuZ2Uoc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NTMtXFx0XFx0XFx0XFx0XFx0dTggcmVxX3ZhbCwgdTggKnJlcV9idWYsIHUzMiByZXFfbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NTktXFx0Lyogc2VuZCBjb21tYW5kICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1NjA6XFx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoYXIsIHJlcV92YWwsIDAsIDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NjEtXFx0XFx0XFx0XFx0XFx0IHJlcV9idWYsIHJlcV9sZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NjYtXFx0aWYgKHJlc3BfYnVmKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1Njc6XFx0XFx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9pbihhciwgcmVzcF92YWwsIDAsIDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01NjgtXFx0XFx0XFx0XFx0XFx0XFx0cmVzcF9idWYsICpyZXNwX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjU3ODpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX2RpYWdfcmVhZChzdHJ1Y3QgYXRoMTBrICphciwgdTMyIGFkZHJlc3MsIHZvaWQgKmJ1ZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU3OS1cXHRcXHRcXHRcXHQgICAgc2l6ZV90IGJ1Zl9sZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01ODAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTgxOlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTgyOlxcdHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfcmVhZCAqY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTgzLVxcdHUzMiByZXNwX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTg1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTg2OlxcdGlmIChidWZfbGVuIFxcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTg3LVxcdFxcdHJldHVybiAtRUlOVkFMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNTg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NTg5OlxcdGNtZCA9IChzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfY21kX3JlYWQgKilhcl91c2ItXFx1MDAzZWRpYWdfY21kX2J1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU5MC1cXHRtZW1zZXQoY21kLCAwLCBzaXplb2YoKmNtZCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01OTItXFx0Y21kLVxcdTAwM2VhZGRyZXNzID0gY3B1X3RvX2xlMzIoYWRkcmVzcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1OTM6XFx0cmVzcF9sZW4gPSBzaXplb2Yoc3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy01OTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo1OTU6XFx0cmV0ID0gYXRoMTBrX3VzYl9jdHJsX21zZ19leGNoYW5nZShhcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTU5Ni1cXHRcXHRcXHRcXHRcXHQgICBBVEgxMEtfVVNCX0NPTlRST0xfUkVRX0RJQUdfQ01ELFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2MDQ6XFx0aWYgKHJlc3BfbGVuICE9IHNpemVvZihzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYwNS1cXHRcXHRyZXR1cm4gLUVNU0dTSVpFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MDctXFx0bWVtY3B5KGJ1ZiwgYXJfdXNiLVxcdTAwM2VkaWFnX3Jlc3BfYnVmZmVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjA4OlxcdCAgICAgICBzaXplb2Yoc3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjA5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2MTM6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl9kaWFnX3dyaXRlKHN0cnVjdCBhdGgxMGsgKmFyLCB1MzIgYWRkcmVzcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYxNC1cXHRcXHRcXHRcXHQgICAgIGNvbnN0IHZvaWQgKmRhdGEsIGludCBuYnl0ZXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MTUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjE2OlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjE3OlxcdHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUgKmNtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYxOC1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2MjM6XFx0Y21kID0gKHN0cnVjdCBhdGgxMGtfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUgKilhcl91c2ItXFx1MDAzZWRpYWdfY21kX2J1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYyNC1cXHRtZW1zZXQoY21kLCAwLCBzaXplb2YoKmNtZCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2Mjk6XFx0cmV0ID0gYXRoMTBrX3VzYl9jdHJsX21zZ19leGNoYW5nZShhcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTYzMC1cXHRcXHRcXHRcXHRcXHQgICBBVEgxMEtfVVNCX0NPTlRST0xfUkVRX0RJQUdfQ01ELFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02MzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2NDA6c3RhdGljIGludCBhdGgxMGtfdXNiX2JtaV9leGNoYW5nZV9tc2coc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NDEtXFx0XFx0XFx0XFx0ICAgICAgIHZvaWQgKnJlcSwgdTMyIHJlcV9sZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTY0Ni1cXHRpZiAocmVxKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo2NDc6XFx0XFx0cmV0ID0gYXRoMTBrX3VzYl9zdWJtaXRfY3RybF9vdXQoYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NDgtXFx0XFx0XFx0XFx0XFx0XFx0IEFUSDEwS19VU0JfQ09OVFJPTF9SRVFfU0VORF9CTUlfQ01ELFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NTgtXFx0aWYgKHJlc3ApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjY1OTpcXHRcXHRyZXQgPSBhdGgxMGtfdXNiX3N1Ym1pdF9jdHJsX2luKGFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjYwLVxcdFxcdFxcdFxcdFxcdFxcdEFUSDEwS19VU0JfQ09OVFJPTF9SRVFfUkVDVl9CTUlfUkVTUCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjczOnN0YXRpYyB2b2lkIGF0aDEwa191c2JfaGlmX2dldF9kZWZhdWx0X3BpcGUoc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy02NzQtXFx0XFx0XFx0XFx0XFx0ICAgIHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNjc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NjgwOnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9oaWZfbWFwX3NlcnZpY2VfdG9fcGlwZShzdHJ1Y3QgYXRoMTBrICphciwgdTE2IHN2Y19pZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTY4MS1cXHRcXHRcXHRcXHRcXHQgICAgICB1OCAqdWxfcGlwZSwgdTggKmRsX3BpcGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTcwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjcwNDpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX3Bvd2VyX3VwKHN0cnVjdCBhdGgxMGsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzA1LVxcdFxcdFxcdFxcdCAgIGVudW0gYXRoMTBrX2Zpcm13YXJlX21vZGUgZndfbW9kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzEwOnN0YXRpYyB2b2lkIGF0aDEwa191c2JfaGlmX3Bvd2VyX2Rvd24oc3RydWN0IGF0aDEwayAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MTEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzEyOlxcdGF0aDEwa191c2JfZmx1c2hfYWxsKGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTcxMy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTcxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjcxNzpzdGF0aWMgaW50IGF0aDEwa191c2JfaGlmX3N1c3BlbmQoc3RydWN0IGF0aDEwayAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MjI6c3RhdGljIGludCBhdGgxMGtfdXNiX2hpZl9yZXN1bWUoc3RydWN0IGF0aDEwayAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03MjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3Mjg6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMGtfaGlmX29wcyBhdGgxMGtfdXNiX2hpZl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3Mjk6XFx0LnR4X3NnXFx0XFx0XFx0PSBhdGgxMGtfdXNiX2hpZl90eF9zZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczMDpcXHQuZGlhZ19yZWFkXFx0XFx0PSBhdGgxMGtfdXNiX2hpZl9kaWFnX3JlYWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MzE6XFx0LmRpYWdfd3JpdGVcXHRcXHQ9IGF0aDEwa191c2JfaGlmX2RpYWdfd3JpdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3MzI6XFx0LmV4Y2hhbmdlX2JtaV9tc2dcXHQ9IGF0aDEwa191c2JfYm1pX2V4Y2hhbmdlX21zZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczMzpcXHQuc3RhcnRcXHRcXHRcXHQ9IGF0aDEwa191c2JfaGlmX3N0YXJ0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM0OlxcdC5zdG9wXFx0XFx0XFx0PSBhdGgxMGtfdXNiX2hpZl9zdG9wLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM1OlxcdC5tYXBfc2VydmljZV90b19waXBlXFx0PSBhdGgxMGtfdXNiX2hpZl9tYXBfc2VydmljZV90b19waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM2OlxcdC5nZXRfZGVmYXVsdF9waXBlXFx0PSBhdGgxMGtfdXNiX2hpZl9nZXRfZGVmYXVsdF9waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM3OlxcdC5nZXRfZnJlZV9xdWV1ZV9udW1iZXJcXHQ9IGF0aDEwa191c2JfaGlmX2dldF9mcmVlX3F1ZXVlX251bWJlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjczODpcXHQucG93ZXJfdXBcXHRcXHQ9IGF0aDEwa191c2JfaGlmX3Bvd2VyX3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6NzM5OlxcdC5wb3dlcl9kb3duXFx0XFx0PSBhdGgxMGtfdXNiX2hpZl9wb3dlcl9kb3duLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtNzQwLSNpZmRlZiBDT05GSUdfUE1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjc0MTpcXHQuc3VzcGVuZFxcdFxcdD0gYXRoMTBrX3VzYl9oaWZfc3VzcGVuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjc0MjpcXHQucmVzdW1lXFx0XFx0XFx0PSBhdGgxMGtfdXNiX2hpZl9yZXN1bWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy03NDMtI2VuZGlmXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjc0NjpzdGF0aWMgdTggYXRoMTBrX3VzYl9nZXRfbG9naWNhbF9waXBlX251bSh1OCBlcF9hZGRyZXNzLCBpbnQgKnVyYl9jb3VudClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjc5MTpzdGF0aWMgaW50IGF0aDEwa191c2JfYWxsb2NfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDEwayAqYXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo3OTI6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTc5My1cXHRcXHRcXHRcXHRcXHQgICBpbnQgdXJiX2NudClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODExLVxcdFxcdHBpcGUtXFx1MDAzZXVyYl9hbGxvYysrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODEyOlxcdFxcdGF0aDEwa191c2JfZnJlZV91cmJfdG9fcGlwZShwaXBlLCB1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MTMtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo4MjM6c3RhdGljIGludCBhdGgxMGtfdXNiX3NldHVwX3BpcGVfcmVzb3VyY2VzKHN0cnVjdCBhdGgxMGsgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODI0LVxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy04MjUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6ODI2OlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODI3LVxcdHN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmlmYWNlX2Rlc2MgPSBpbnRlcmZhY2UtXFx1MDAzZWN1cl9hbHRzZXR0aW5nO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODI4LVxcdHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZW5kcG9pbnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo4Mjk6XFx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTgzMC1cXHRpbnQgcmV0LCBpLCB1cmJjb3VudDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtODcxLVxcdFxcdHBpcGVfbnVtID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjg3MjpcXHRcXHQgICAgYXRoMTBrX3VzYl9nZXRfbG9naWNhbF9waXBlX251bShlbmRwb2ludC1cXHUwMDNlYkVuZHBvaW50QWRkcmVzcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTg3My1cXHRcXHRcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnVyYmNvdW50KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTI1OlxcdFxcdHJldCA9IGF0aDEwa191c2JfYWxsb2NfcGlwZV9yZXNvdXJjZXMoYXIsIHBpcGUsIHVyYmNvdW50KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTkyNi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo5MzM6c3RhdGljIGludCBhdGgxMGtfdXNiX2NyZWF0ZShzdHJ1Y3QgYXRoMTBrICphcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTkzNC1cXHRcXHRcXHQgICAgIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05MzUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTM2OlxcdHN0cnVjdCBhdGgxMGtfdXNiICphcl91c2IgPSBhdGgxMGtfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTM3LVxcdHN0cnVjdCB1c2JfZGV2aWNlICpkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo5Mzg6XFx0c3RydWN0IGF0aDEwa191c2JfcGlwZSAqcGlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTkzOS1cXHRpbnQgcmV0LCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NDgtXFx0XFx0SU5JVF9XT1JLKFxcdTAwMjZwaXBlLVxcdTAwM2Vpb19jb21wbGV0ZV93b3JrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTQ5OlxcdFxcdFxcdCAgYXRoMTBrX3VzYl9pb19jb21wX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTUwLVxcdFxcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNnBpcGUtXFx1MDAzZWlvX2NvbXBfcXVldWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo5NjY6XFx0cmV0ID0gYXRoMTBrX3VzYl9zZXR1cF9waXBlX3Jlc291cmNlcyhhciwgaW50ZXJmYWNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk2Ny1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NzItZXJyOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTczOlxcdGF0aDEwa191c2JfZGVzdHJveShhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05NzQtXFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtOTc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6OTc3OnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpjdHgsIGludCBidWRnZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05Nzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05OTEtLyogYXRoMTBrIHVzYiBkcml2ZXIgcmVnaXN0ZXJlZCBmdW5jdGlvbnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjk5MjpzdGF0aWMgaW50IGF0aDEwa191c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk5My1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy05OTUtXFx0c3RydWN0IGF0aDEwayAqYXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzo5OTY6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTk5Ny1cXHRzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRlcmZhY2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDEwLVxcdGFyID0gYXRoMTBrX2NvcmVfY3JlYXRlKHNpemVvZigqYXJfdXNiKSwgXFx1MDAyNmRldi1cXHUwMDNlZGV2LCBBVEgxMEtfQlVTX1VTQixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwMTE6XFx0XFx0XFx0XFx0aHdfcmV2LCBcXHUwMDI2YXRoMTBrX3VzYl9oaWZfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwMTItXFx0aWYgKCFhcikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTAxNzpcXHRuZXRpZl9uYXBpX2FkZChhci1cXHUwMDNlbmFwaV9kZXYsIFxcdTAwMjZhci1cXHUwMDNlbmFwaSwgYXRoMTBrX3VzYl9uYXBpX3BvbGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTAxOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTAyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwMjY6XFx0YXJfdXNiID0gYXRoMTBrX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwMjc6XFx0cmV0ID0gYXRoMTBrX3VzYl9jcmVhdGUoYXIsIGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDI4LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNTEtZXJyX3VzYl9kZXN0cm95OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA1MjpcXHRhdGgxMGtfdXNiX2Rlc3Ryb3koYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA1My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNjA6c3RhdGljIHZvaWQgYXRoMTBrX3VzYl9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDYxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwNjI6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNjMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNjktXFx0bmV0aWZfbmFwaV9kZWwoXFx1MDAyNmFyX3VzYi1cXHUwMDNlYXItXFx1MDAzZW5hcGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA3MDpcXHRhdGgxMGtfdXNiX2Rlc3Ryb3koYXJfdXNiLVxcdTAwM2Vhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDcxLVxcdGF0aDEwa19jb3JlX2Rlc3Ryb3koYXJfdXNiLVxcdTAwM2Vhcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMDc2OnN0YXRpYyBpbnQgYXRoMTBrX3VzYl9wbV9zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDc3LVxcdFxcdFxcdFxcdCBwbV9tZXNzYWdlX3QgbWVzc2FnZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwNzgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA3OTpcXHRzdHJ1Y3QgYXRoMTBrX3VzYiAqYXJfdXNiID0gdXNiX2dldF9pbnRmZGF0YShpbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwODE6XFx0YXRoMTBrX3VzYl9mbHVzaF9hbGwoYXJfdXNiLVxcdTAwM2Vhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDgyLVxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA4NTpzdGF0aWMgaW50IGF0aDEwa191c2JfcG1fcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYy0xMDg2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwODc6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50ZXJmYWNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTEwODgtXFx0c3RydWN0IGF0aDEwayAqYXIgPSBhcl91c2ItXFx1MDAzZWFyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA4OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwOTA6XFx0YXRoMTBrX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKGFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA5MS1cXHRcXHRcXHRcXHQgICAgICAgXFx1MDAyNmFyX3VzYi1cXHUwMDNlcGlwZXNbQVRIMTBLX1VTQl9QSVBFX1JYX0RBVEFdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTA5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjEwOTg6I2RlZmluZSBhdGgxMGtfdXNiX3BtX3N1c3BlbmQgTlVMTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTA5OTojZGVmaW5lIGF0aDEwa191c2JfcG1fcmVzdW1lIE5VTExcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMDMtLyogdGFibGUgb2YgZGV2aWNlcyB0aGF0IHdvcmsgd2l0aCB0aGlzIGRyaXZlciAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTEwNDpzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYXRoMTBrX3VzYl9pZHNbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMDUtXFx0e1VTQl9ERVZJQ0UoMHgxM2IxLCAweDAwNDIpfSwgLyogTGlua3N5cyBXVVNCNjEwME0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjExMDk6TU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIGF0aDEwa191c2JfaWRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTExOnN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBhdGgxMGtfdXNiX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjExMTI6XFx0Lm5hbWUgPSBcXFwiYXRoMTBrX3VzYlxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTEzOlxcdC5wcm9iZSA9IGF0aDEwa191c2JfcHJvYmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTE0OlxcdC5zdXNwZW5kID0gYXRoMTBrX3VzYl9wbV9zdXNwZW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTExNTpcXHQucmVzdW1lID0gYXRoMTBrX3VzYl9wbV9yZXN1bWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuYzoxMTE2OlxcdC5kaXNjb25uZWN0ID0gYXRoMTBrX3VzYl9kaXNjb25uZWN0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmM6MTExNzpcXHQuaWRfdGFibGUgPSBhdGgxMGtfdXNiX2lkcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jLTExMTgtXFx0LnN1cHBvcnRzX2F1dG9zdXNwZW5kID0gdHJ1ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEyMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5jOjExMjI6bW9kdWxlX3VzYl9kcml2ZXIoYXRoMTBrX3VzYl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmMtMTEyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo0NDpzdHJ1Y3QgYXRoMTBrX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTQ1LVxcdF9fbGUzMiBjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6NTE6c3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX2NtZF9yZWFkIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTUyLVxcdF9fbGUzMiBjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6NTY6c3RydWN0IGF0aDEwa191c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC01Ny1cXHR1OCB2YWx1ZVs0XTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNjAtLyogdHgvcnggcGlwZXMgZm9yIHVzYiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6NjE6ZW51bSBhdGgxMGtfdXNiX3BpcGVfaWQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNjItXFx0QVRIMTBLX1VTQl9QSVBFX1RYX0NUUkwgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC03Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oOjczOnN0cnVjdCBhdGgxMGtfdXNiX3BpcGUge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtNzQtXFx0c3RydWN0IGxpc3RfaGVhZCB1cmJfbGlzdF9oZWFkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC04Mi1cXHR1OCBsb2dpY2FsX3BpcGVfbnVtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6ODM6XFx0c3RydWN0IGF0aDEwa191c2IgKmFyX3VzYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTg0LVxcdHUxNiBtYXhfcGFja2V0X3NpemU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTkyLS8qIHVzYiBkZXZpY2Ugb2JqZWN0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDo5MzpzdHJ1Y3QgYXRoMTBrX3VzYiB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC05NC1cXHQvKiBwcm90ZWN0cyBwaXBlLVxcdTAwM2V1cmJfbGlzdF9oZWFkIGFuZCAgcGlwZS1cXHUwMDNldXJiX2NudCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC05OC1cXHRzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6OTk6XFx0c3RydWN0IGF0aDEwa191c2JfcGlwZSBwaXBlc1tBVEgxMEtfVVNCX1BJUEVfTUFYXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTEwMC1cXHR1OCAqZGlhZ19jbWRfYnVmZmVyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaD0xMDY9c3RydWN0IGF0aDEwa191cmJfY29udGV4dCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC0xMDctXFx0c3RydWN0IGxpc3RfaGVhZCBsaW5rO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6MTA4OlxcdHN0cnVjdCBhdGgxMGtfdXNiX3BpcGUgKnBpcGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaC0xMDktXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmgtMTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdXNiLmg6MTEzOnN0YXRpYyBpbmxpbmUgc3RydWN0IGF0aDEwa191c2IgKmF0aDEwa191c2JfcHJpdihzdHJ1Y3QgYXRoMTBrICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTExNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway91c2IuaDoxMTU6XFx0cmV0dXJuIChzdHJ1Y3QgYXRoMTBrX3VzYiAqKWFyLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3VzYi5oLTExNi19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDA2OjMxOjUxLjM2MjI1MTUwN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0ODgxMTM4NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBQb3RlbnRpYWw6IGF0aDEwayBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGF0IGBDT05GSUdfQVRIMTBLX1VTQmAgaXMgcHJlc2VudC4gVGhhdCdzIGdvb2Q7IGl0IG1lYW5zIHdlIGNhbiBkZWZpbml0ZWx5IGZ1enogdGhpcyBvdmVyIFVTQi4gVGhlIGV4aXN0ZW5jZSBvZiBgQ09ORklHX0FUSDEwS19QQ0lgIGFuZCBgQ09ORklHX0FUSDEwS19TRElPYCBmdXJ0aGVyIGV4cGFuZHMgb3VyIGF0dGFjayBzdXJmYWNlLlxuXG5UaGUgY2hhbmdlcyBhcmUgY2VudGVyZWQgaW4gYHdtaS5jYCBhbmQgYHdtaS10bHYuY2AuIFJpZ2h0LCB0aG9zZSBmaWxlcyBoYW5kbGUgdGhlIFdNSSBwcm90b2NvbCDigJMgdGhlIFdpcmVsZXNzIE1vZHVsZSBJbnRlcmZhY2UsIHdoaWNoIG1lYW5zIHRoZXkncmUgcmVzcG9uc2libGUgZm9yIHByb2Nlc3NpbmcgcGFja2V0cyBjb21pbmcgZnJvbSB0aGUgZmlybXdhcmUuIFNpbmNlIHdlJ3JlIGRlYWxpbmcgd2l0aCBmdXp6aW5nLCBzcGVjaWZpY2FsbHkgd2l0aCB0aGUgYWJpbGl0eSB0byBzaW11bGF0ZSB0aGUgZmlybXdhcmUgb3IgaW5qZWN0IHBhY2tldHMgZnJvbSB0aGUgaG9zdCBzaWRlLCBsaWtlIHZpYSBVU0Igb3IgUENJLCBJIGtub3cgdGhpcyBjb2RlIHBhdGggaXMgZGVmaW5pdGVseSByZWFjaGFibGUgYW5kIHNob3VsZCBiZSBxdWl0ZSBmdXp6YWJsZS5cblxuSSBuZWVkIHRvIGNvbmZpcm0gd2hpY2ggY29uZmlncyBhcmUgaW52b2x2ZWQsIHNvLCBsZXQncyBzZWUuIEknbGwgbmVlZCBgQ09ORklHX0FUSDEwS2AsIG9mIGNvdXJzZS4gQWxzbyBgQ09ORklHX0FUSDEwS19VU0JgLCBgQ09ORklHX0FUSDEwS19QQ0lgLCBgQ09ORklHX0FUSDEwS19TRElPYCBhbmQgYENPTkZJR19BVEgxMEtfU05PQ2AuXG5cbk5vdywgbGV0J3MgdmVyaWZ5IHRoYXQgdGhlIGJhc2UgYENPTkZJR19BVEgxMEtgIGFuZCBpdHMgZGVwZW5kZW5jaWVzIGFyZSBjb25maWd1cmVkIGFzIGV4cGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODQ0NCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwNjozMTo1Ny44NTAzNjczOTZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjMwNzU5NDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEFUSDEwS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjI6Y29uZmlnIEFUSDEwS1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIDgwMi4xMWFjIHdpcmVsZXNzIGNhcmRzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjE1OmNvbmZpZyBBVEgxMEtfQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMTYtXFx0Ym9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0xNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6MTg6Y29uZmlnIEFUSDEwS19QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIkF0aGVyb3MgYXRoMTBrIFBDSSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzoyNDpjb25maWcgQVRIMTBLX0FIQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDEwayBBSEIgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy0yOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6MzA6Y29uZmlnIEFUSDEwS19TRElPXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTMxLVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDEwayBTRElPIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjM2OmNvbmZpZyBBVEgxMEtfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTM3LVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDEwayBVU0Igc3VwcG9ydCAoRVhQRVJJTUVOVEFMKVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6NDM6Y29uZmlnIEFUSDEwS19TTk9DXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTQ0LVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBhdGgxMGsgU05PQyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZzo1Njpjb25maWcgQVRIMTBLX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTU3LVxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoMTBrIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy02My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6NjQ6Y29uZmlnIEFUSDEwS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTY1LVxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoMTBrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6NzI6Y29uZmlnIEFUSDEwS19MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnLTczLVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy03Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWc6Nzg6Y29uZmlnIEFUSDEwS19TUEVDVFJBTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy03OS1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDEwayBzcGVjdHJhbCBzY2FuIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjg2OmNvbmZpZyBBVEgxMEtfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy04Ny1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDEwayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL0tjb25maWctOTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9LY29uZmlnOjkzOmNvbmZpZyBBVEgxMEtfREZTX0NFUlRJRklFRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvS2NvbmZpZy05NC1cXHRib29sIFxcXCJBdGhlcm9zIERGUyBzdXBwb3J0IGZvciBjZXJ0aWZpZWQgcGxhdGZvcm1zXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwNjozMTo1Ny45MTM0NDczNzRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NjA0NjA2OTc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgV01JIEV2ZW50IEhhbmRsZXJzKipcblxuT2theSwgc28gdGhlIHRhc2sgYXQgaGFuZCBpcyB0byB0aWdodGVuIHVwIHRoZSBzZWN1cml0eSBhcm91bmQgaG93IHdlIGhhbmRsZSBXTUkgZXZlbnRzIGNvbWluZyBpbiBmcm9tIHRoZSBmaXJtd2FyZSwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYXRoMTBrIGRyaXZlci4gUmlnaHQsIEkgbmVlZCB0byBmb2N1cyBvbiBmdXp6aW5nLiBUaGUga2V5IGZ1bmN0aW9ucyB0byB0YXJnZXQgYXJlIHRoZSBvbmVzIHRoYXQgYWN0dWFsbHkgKnByb2Nlc3MqIHRob3NlIGluY29taW5nIGV2ZW50cy4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIHRoZSBwcmltYXJ5IHRhcmdldHM6XG5cbiogICBgYXRoMTBrX3dtaV9wdWxsX2NtZF9oZHJgXG4qICAgYGF0aDEwa193bWlfb3BfcnhgXG4qICAgYGF0aDEwa193bWlfMTBfMV9vcF9yeGBcbiogICBgYXRoMTBrX3dtaV8xMF8yX29wX3J4YFxuKiAgIGBhdGgxMGtfd21pXzEwXzRfb3BfcnhgXG4qICAgYGF0aDEwa193bWlfdGx2X29wX3J4YFxuXG5UaGVzZSBhcmUgYWxsIHJlY2VwdGlvbiBoYW5kbGVycywgYW5kIHRoYXQgbWFrZXMgdGhlbSBwcmltZSBjYW5kaWRhdGVzIGZvciBmdXp6aW5nLiBUaGV5J3JlIHdoZXJlIHdlIHRha2UgcG90ZW50aWFsbHkgbWFsaWNpb3VzIGRhdGEgZnJvbSB0aGUgZmlybXdhcmUsIHBhcnNlIGl0LCBhbmQgYWN0IG9uIGl0LiBBIHdlbGwtY3JhZnRlZCBmdXp6IGlucHV0IGNvdWxkIGxlYWQgdG8gY3Jhc2hlcywgbWVtb3J5IGNvcnJ1cHRpb24sIG9yIGV2ZW4gbW9yZSBzZXJpb3VzIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZGVkaWNhdGUgdGltZSB0byB0ZXN0aW5nIHRoZXNlIGZ1bmN0aW9ucy4gRmlyc3QsIEknbGwgdGFrZSBhIGNsb3NlciBsb29rIGF0IGBhdGgxMGtfd21pX29wX3J4YCBhbmQgc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgb3RoZXJzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA1MSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwNjozMjowNS41MTgwNTYwM1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODg3NDQyMzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTBrX3dtaV9vcF9yeFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmM9NTg3Nj1ib29sIGF0aDEwa193bWlfcHVsbF9jbWRfaGRyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jLTU4ODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYzo1ODg5OnN0YXRpYyB2b2lkIGF0aDEwa193bWlfb3Bfcngoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYy01ODkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmM9OTE0NT1zdGF0aWMgY29uc3Qgc3RydWN0IHdtaV9vcHMgd21pX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jOjkxNDY6XFx0LnJ4ID0gYXRoMTBrX3dtaV9vcF9yeCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jLTkxNDctXFx0Lm1hcF9zdmMgPSB3bWlfbWFpbl9zdmNfbWFwLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwNjozMjowNS44MDY4MTI2NzJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDAwNjYxODQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipWdWxuZXJhYmlsaXR5IEZpeGVzIGluIGF0aDEwayBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHNldCBvZiBjaGFuZ2VzIGhlcmUsIGFuZCB0aGUgY29yZSBvZiBpdCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IHdpdGhpbiB0aGUgYGF0aDEwa2AgZHJpdmVyLiBUaGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBhcmU6IGBhdGgxMGtfd21pX29wX3J4YCwgYGF0aDEwa193bWlfMTBfMV9vcF9yeGAsIGBhdGgxMGtfd21pXzEwXzJfb3BfcnhgLCBgYXRoMTBrX3dtaV8xMF80X29wX3J4YCwgYGF0aDEwa193bWlfdGx2X29wX3J4YCwgYW5kIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAuIFRoZXNlIGFyZSBhbGwgcmVsYXRlZCB0byBob3cgdGhlIGRyaXZlciBoYW5kbGVzIGluY29taW5nIFdNSSAoV2lyZWxlc3MgTWFuYWdlbWVudCBJbnRlcmZhY2UpIG9wZXJhdGlvbnMsIGFuZCBpdCBsb29rcyBsaWtlIGEgcmVhZCBwYXN0IGFsbG9jYXRlZCBtZW1vcnkgd2FzIHBvc3NpYmxlIHVuZGVyIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMuXG5cblRvIHByb3Blcmx5IHZhbGlkYXRlIHRoaXMgZml4IGFuZCBtYWtlIGl0IGVhc2llciB0byB0ZXN0LCBJIHNob3VsZCBlbmFibGUgdGhlIGBBVEgxMEtgIGFuZCBgQVRIMTBLX1VTQmAgY29uZmlncy4gVVNCIGlzIGdlbmVyYWxseSBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nIHRoZXNlIHR5cGVzIG9mIHZ1bG5lcmFiaWxpdGllcywgc2luY2UgaXQncyBlYXNpZXIgdG8gc2V0IHVwIGEgZnV6emluZyBlbnZpcm9ubWVudC4gSSBtaWdodCBhbHNvIGNvbnNpZGVyIGVuYWJsaW5nIGBBVEgxMEtfUENJYCBhbmQgYEFUSDEwS19TRElPYCB0byBlbnN1cmUgd2lkZXIgY292ZXJhZ2UuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJ2xsIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgSSd2ZSBnb3QgdGhlIGV4YWN0IGZ1bmN0aW9uIG5hbWVzIGNvcnJlY3Q6IGBhdGgxMGtfd21pX3Rsdl9vcF9yeGAsIGBhdGgxMGtfd21pX29wX3J4YCwgYGF0aDEwa193bWlfMTBfMV9vcF9yeGAsIGBhdGgxMGtfd21pXzEwXzJfb3BfcnhgLCBgYXRoMTBrX3dtaV8xMF80X29wX3J4YCwgYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYC4gWWVwLCB0aGF0J3MgcmlnaHQuXG5cbk5vdywgbGV0J3MgY2FsbCBgc2V0LXJlc3VsdHNgIGFuZCBtb3ZlIGZvcndhcmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwODM3LCJPdXRwdXRUb2tlbnMiOjI0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwNjozMjoxNS44MTM0MzQxNzdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NDAwODk2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQVRIMTBLXCIsXG4gICAgXCJBVEgxMEtfVVNCXCIsXG4gICAgXCJBVEgxMEtfUENJXCIsXG4gICAgXCJBVEgxMEtfU0RJT1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImF0aDEwa193bWlfdGx2X29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pX29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pXzEwXzFfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfMTBfMl9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV8xMF80X29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pX3B1bGxfY21kX2hkclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBhdGgxMGsgZHJpdmVyIGJ5IGludHJvZHVjaW5nIGEgaGVscGVyIGZ1bmN0aW9uIGBhdGgxMGtfd21pX3B1bGxfY21kX2hkcmAgdG8gc2FmZWx5IHB1bGwgdGhlIFdNSSBjb21tYW5kIGhlYWRlciBmcm9tIGFuIHNrYi4gVGhpcyBhZmZlY3RzIHRoZSBwcm9jZXNzaW5nIG9mIFdNSSBldmVudHMgcmVjZWl2ZWQgZnJvbSB0aGUgZmlybXdhcmUuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgZnV6emFibGUgdmlhIHZpcnR1YWxpemVkIGJ1c2VzIGxpa2UgVVNCIG9yIFBDSS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBVEgxMEtcIixcbiAgICBcIkFUSDEwS19VU0JcIixcbiAgICBcIkFUSDEwS19QQ0lcIixcbiAgICBcIkFUSDEwS19TRElPXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXRoMTBrX3dtaV90bHZfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfMTBfMV9vcF9yeFwiLFxuICAgIFwiYXRoMTBrX3dtaV8xMF8yX29wX3J4XCIsXG4gICAgXCJhdGgxMGtfd21pXzEwXzRfb3BfcnhcIixcbiAgICBcImF0aDEwa193bWlfcHVsbF9jbWRfaGRyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGF0aDEwayBkcml2ZXIgYnkgaW50cm9kdWNpbmcgYSBoZWxwZXIgZnVuY3Rpb24gYGF0aDEwa193bWlfcHVsbF9jbWRfaGRyYCB0byBzYWZlbHkgcHVsbCB0aGUgV01JIGNvbW1hbmQgaGVhZGVyIGZyb20gYW4gc2tiLiBUaGlzIGFmZmVjdHMgdGhlIHByb2Nlc3Npbmcgb2YgV01JIGV2ZW50cyByZWNlaXZlZCBmcm9tIHRoZSBmaXJtd2FyZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCBmdXp6YWJsZSB2aWEgdmlydHVhbGl6ZWQgYnVzZXMgbGlrZSBVU0Igb3IgUENJLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow288gm[1] Phase: Succeeded StartedAt: 2026-07-24 06:32:27 +0000 UTC FinishedAt: 2026-07-24 06:32:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-24 06:32:27 +0000 UTC FinishedAt: 2026-07-24 06:32:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2] Phase: Succeeded StartedAt: 2026-07-24 06:32:27 +0000 UTC FinishedAt: 2026-07-24 08:56:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-24 06:32:27 +0000 UTC FinishedAt: 2026-07-24 08:56:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-24 06:32:27 +0000 UTC FinishedAt: 2026-07-24 06:32:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-24 06:32:27 +0000 UTC FinishedAt: 2026-07-24 06:32:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow288gm/series-workflow288gm-convert-artifact-2102255741/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-24 06:32:38 +0000 UTC FinishedAt: 2026-07-24 07:14:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-24 06:32:38 +0000 UTC FinishedAt: 2026-07-24 07:14:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*860aa837-2e13-4acb-8bb9-fd2ae0242a8c,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-workflow288gm/series-workflow288gm-convert-artifact-2102255741/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": "b9c10b20-1d67-4cb9-b74d-8bcfbb9bd90f", "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-workflow288gm/series-workflow288gm-build-action-2823997875/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-24 06:32:38 +0000 UTC FinishedAt: 2026-07-24 07:14:40 +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:*860aa837-2e13-4acb-8bb9-fd2ae0242a8c,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-workflow288gm/series-workflow288gm-convert-artifact-2102255741/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": "b9c10b20-1d67-4cb9-b74d-8bcfbb9bd90f", "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-workflow288gm/series-workflow288gm-build-action-2823997875/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-24 07:14:54 +0000 UTC FinishedAt: 2026-07-24 07:14:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-24 07:14:54 +0000 UTC FinishedAt: 2026-07-24 07:14:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-24 07:14:54 +0000 UTC FinishedAt: 2026-07-24 07:15:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-24 07:14:54 +0000 UTC FinishedAt: 2026-07-24 07:15:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow288gm/series-workflow288gm-convert-artifact-927972312/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-24 07:15:10 +0000 UTC FinishedAt: 2026-07-24 07:17:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-24 07:15:10 +0000 UTC FinishedAt: 2026-07-24 07:16:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b9c10b20-1d67-4cb9-b74d-8bcfbb9bd90f,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-workflow288gm/series-workflow288gm-build-action-2823997875/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-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-24 07:17:10 +0000 UTC FinishedAt: 2026-07-24 07:17:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-24 07:17:11 +0000 UTC FinishedAt: 2026-07-24 07:17:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-24 07:17:11 +0000 UTC FinishedAt: 2026-07-24 08:01:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-24 07:17:11 +0000 UTC FinishedAt: 2026-07-24 08:01:31 +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:*860aa837-2e13-4acb-8bb9-fd2ae0242a8c,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-workflow288gm/series-workflow288gm-convert-artifact-927972312/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": "4475a797-d880-43fa-a27c-65f527883f8a", "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-workflow288gm/series-workflow288gm-build-action-2684052804/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-24 07:17:11 +0000 UTC FinishedAt: 2026-07-24 08:01:21 +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:*860aa837-2e13-4acb-8bb9-fd2ae0242a8c,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-workflow288gm/series-workflow288gm-convert-artifact-927972312/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": "4475a797-d880-43fa-a27c-65f527883f8a", "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-workflow288gm/series-workflow288gm-build-action-2684052804/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-24 08:01:31 +0000 UTC FinishedAt: 2026-07-24 08:01:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-24 08:01:31 +0000 UTC FinishedAt: 2026-07-24 08:01:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-24 08:01:31 +0000 UTC FinishedAt: 2026-07-24 08:04:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-24 08:01:31 +0000 UTC FinishedAt: 2026-07-24 08:03:52 +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:*4475a797-d880-43fa-a27c-65f527883f8a,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-workflow288gm/series-workflow288gm-build-action-2684052804/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-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-24 08:04:02 +0000 UTC FinishedAt: 2026-07-24 08:56:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-24 08:04:02 +0000 UTC FinishedAt: 2026-07-24 08:56:33 +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":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"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:*b9c10b20-1d67-4cb9-b74d-8bcfbb9bd90f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4475a797-d880-43fa-a27c-65f527883f8a,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-workflow288gm/series-workflow288gm-build-action-2823997875/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-workflow288gm/series-workflow288gm-build-action-2684052804/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-24 08:04:02 +0000 UTC FinishedAt: 2026-07-24 08:04:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-24 08:04:02 +0000 UTC FinishedAt: 2026-07-24 08:04:06 +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":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"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-workflow288gm/series-workflow288gm-convert-artifact-2407871665/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-24 08:04:02 +0000 UTC FinishedAt: 2026-07-24 08:04:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-24 08:04:02 +0000 UTC FinishedAt: 2026-07-24 08:04:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-24 08:04:02 +0000 UTC FinishedAt: 2026-07-24 08:04:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-24 08:04:12 +0000 UTC FinishedAt: 2026-07-24 08:56:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow288gm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath10k_wmi_tlv_op_rx","ath10k_wmi_op_rx","ath10k_wmi_10_1_op_rx","ath10k_wmi_10_2_op_rx","ath10k_wmi_10_4_op_rx","ath10k_wmi_pull_cmd_hdr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH10K","ATH10K_USB","ATH10K_PCI","ATH10K_SDIO"],"series_id":"e870814a-a5fb-4a79-bb08-c9bc1cc761c2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-24 08:04:12 +0000 UTC FinishedAt: 2026-07-24 08:56:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b9c10b20-1d67-4cb9-b74d-8bcfbb9bd90f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4475a797-d880-43fa-a27c-65f527883f8a,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-workflow288gm/series-workflow288gm-build-action-2823997875/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-workflow288gm/series-workflow288gm-build-action-2684052804/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-workflow288gm/series-workflow288gm-convert-artifact-2407871665/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,}