Name: series-workflow58d2b Phase: Succeeded StartedAt: 2026-06-30 12:53:29 +0000 UTC FinishedAt: 2026-06-30 14:05:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[0] Phase: Succeeded StartedAt: 2026-06-30 12:53:29 +0000 UTC FinishedAt: 2026-06-30 13:05:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[0].run-triage Phase: Succeeded StartedAt: 2026-06-30 12:53:29 +0000 UTC FinishedAt: 2026-06-30 13:05:47 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "795f1b1a91ae13ebc012a364075e42f486a1cafe", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7925U", "MT7925E" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "795f1b1a91ae13ebc012a364075e42f486a1cafe", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7925U", "MT7925E" ], "series_id": "f37927de-99c5-4593-9b2b-dd87501d38d0" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt7925_sta_pre_rcu_remove" ], "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+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjAzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyNVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1RSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBmdW5jdGlvbmFsIGxvZ2ljIGZvciBSQ1UgcmVtb3ZhbCBvZiBzdGF0aW9ucyBpbiB0aGUgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciwgaW5jbHVkaW5nIGhhbmRsaW5nIGZvciBNdWx0aS1MaW5rIERldmljZXMgKE1MRCkuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGR1bW15IEhDRCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTM6MDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzYWI2NDE0ZDczMzNkMGQ0MDNjYTZlMDlmYTBjMzE5Y2ZmZmFjZDVhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTM6MDM6MjEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXG5pbmRleCA3M2QzNzIyNzM5ZDBhOC4uZTNmYjYzOTJlZGEyNGEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xuQEAgLTI0MTAsNiAmIzQzOzI0MTAsNDAgQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NoYW5uZWxfc3dpdGNoX3J4X2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiBcdH1cbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIG10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4mIzQzO1x0XHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbiYjNDM7XHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IG10NzZfcGh5ICpwaHkgPSBody1cdTAwM2Vwcml2O1xuJiM0MztcdHN0cnVjdCBtdDc2X2RldiAqZGV2ID0gcGh5LVx1MDAzZWRldjtcbiYjNDM7XHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkID0gKHN0cnVjdCBtdDc2X3djaWQgKilzdGEtXHUwMDNlZHJ2X3ByaXY7XG4mIzQzO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2ZGV2LVx1MDAzZW11dGV4KTtcbiYjNDM7XHRzcGluX2xvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXN0YXR1c19sb2NrKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGllZWU4MDIxMV92aWZfaXNfbWxkKHZpZikpIHtcbiYjNDM7XHRcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLVx1MDAzZWRydl9wcml2O1xuJiM0MztcdFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG4mIzQzO1x0XHR1bnNpZ25lZCBsb25nIHZhbGlkID0gbXZpZi1cdTAwM2V2YWxpZF9saW5rcztcbiYjNDM7XHRcdHN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rO1xuJiM0MztcdFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XG4mIzQzO1xuJiM0MztcdFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcdTAwMjZ2YWxpZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XG4mIzQzO1x0XHRcdG1saW5rID0gbXQ3OTJ4X3N0YV90b19saW5rKG1zdGEsIGxpbmtfaWQpO1xuJiM0MztcdFx0XHRpZiAoIW1saW5rIHx8ICFtbGluay1cdTAwM2V3Y2lkLnN0YSlcbiYjNDM7XHRcdFx0XHRjb250aW51ZTtcbiYjNDM7XHRcdFx0aWYgKG1saW5rLVx1MDAzZXdjaWQuaWR4IFx1MDAzYyBBUlJBWV9TSVpFKGRldi1cdTAwM2V3Y2lkKSlcbiYjNDM7XHRcdFx0XHRyY3VfYXNzaWduX3BvaW50ZXIoZGV2LVx1MDAzZXdjaWRbbWxpbmstXHUwMDNld2NpZC5pZHhdLFxuJiM0MztcdFx0XHRcdFx0XHQgICBOVUxMKTtcbiYjNDM7XHRcdH1cbiYjNDM7XHR9IGVsc2Uge1xuJiM0MztcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKGRldi1cdTAwM2V3Y2lkW3djaWQtXHUwMDNlaWR4XSwgTlVMTCk7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlc3RhdHVzX2xvY2spO1xuJiM0MztcdG11dGV4X3VubG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuJiM0Mzt9XG4mIzQzO1xuIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkyNV9vcHMgPSB7XG4gXHQudHggPSBtdDc5MnhfdHgsXG4gXHQuc3RhcnQgPSBtdDc5MjVfc3RhcnQsXG5AQCAtMjQyMiw3ICYjNDM7MjQ1Niw3IEBAIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkyNV9vcHMgPSB7XG4gXHQuc3RhcnRfYXAgPSBtdDc5MjVfc3RhcnRfYXAsXG4gXHQuc3RvcF9hcCA9IG10NzkyNV9zdG9wX2FwLFxuIFx0LnN0YV9zdGF0ZSA9IG10NzZfc3RhX3N0YXRlLFxuLVx0LnN0YV9wcmVfcmN1X3JlbW92ZSA9IG10NzZfc3RhX3ByZV9yY3VfcmVtb3ZlLFxuJiM0MztcdC5zdGFfcHJlX3JjdV9yZW1vdmUgPSBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlLFxuIFx0LnNldF9rZXkgPSBtdDc5MjVfc2V0X2tleSxcbiBcdC5zdGFfc2V0X2RlY2FwX29mZmxvYWQgPSBtdDc5MjVfc3RhX3NldF9kZWNhcF9vZmZsb2FkLFxuICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjAzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyNVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1RSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBmdW5jdGlvbmFsIGxvZ2ljIGZvciBSQ1UgcmVtb3ZhbCBvZiBzdGF0aW9ucyBpbiB0aGUgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciwgaW5jbHVkaW5nIGhhbmRsaW5nIGZvciBNdWx0aS1MaW5rIERldmljZXMgKE1MRCkuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGR1bW15IEhDRCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDNhYjY0MTRkNzMzM2QwZDQwM2NhNmUwOWZhMGMzMTljZmZmYWNkNWEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAzMCAxMzowMzoyMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYwppbmRleCA3M2QzNzIyNzM5ZDBhOC4uZTNmYjYzOTJlZGEyNGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMKQEAgLTI0MTAsNiAmIzQzOzI0MTAsNDAgQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NoYW5uZWxfc3dpdGNoX3J4X2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKIAl9CiB9CiAKJiM0MztzdGF0aWMgdm9pZCBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LAomIzQzOwkJCQkgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLAomIzQzOwkJCQkgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKQomIzQzO3sKJiM0MzsJc3RydWN0IG10NzZfcGh5ICpwaHkgPSBody0mZ3Q7cHJpdjsKJiM0MzsJc3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktJmd0O2RldjsKJiM0MzsJc3RydWN0IG10NzZfd2NpZCAqd2NpZCA9IChzdHJ1Y3QgbXQ3Nl93Y2lkICopc3RhLSZndDtkcnZfcHJpdjsKJiM0MzsKJiM0MzsJbXV0ZXhfbG9jaygmYW1wO2Rldi0mZ3Q7bXV0ZXgpOwomIzQzOwlzcGluX2xvY2tfYmgoJmFtcDtkZXYtJmd0O3N0YXR1c19sb2NrKTsKJiM0MzsKJiM0MzsJaWYgKGllZWU4MDIxMV92aWZfaXNfbWxkKHZpZikpIHsKJiM0MzsJCXN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLSZndDtkcnZfcHJpdjsKJiM0MzsJCXN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLSZndDtkcnZfcHJpdjsKJiM0MzsJCXVuc2lnbmVkIGxvbmcgdmFsaWQgPSBtdmlmLSZndDt2YWxpZF9saW5rczsKJiM0MzsJCXN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rOwomIzQzOwkJdW5zaWduZWQgaW50IGxpbmtfaWQ7CiYjNDM7CiYjNDM7CQlmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsICZhbXA7dmFsaWQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykgewomIzQzOwkJCW1saW5rID0gbXQ3OTJ4X3N0YV90b19saW5rKG1zdGEsIGxpbmtfaWQpOwomIzQzOwkJCWlmICghbWxpbmsgfHwgIW1saW5rLSZndDt3Y2lkLnN0YSkKJiM0MzsJCQkJY29udGludWU7CiYjNDM7CQkJaWYgKG1saW5rLSZndDt3Y2lkLmlkeCAmbHQ7IEFSUkFZX1NJWkUoZGV2LSZndDt3Y2lkKSkKJiM0MzsJCQkJcmN1X2Fzc2lnbl9wb2ludGVyKGRldi0mZ3Q7d2NpZFttbGluay0mZ3Q7d2NpZC5pZHhdLAomIzQzOwkJCQkJCSAgIE5VTEwpOwomIzQzOwkJfQomIzQzOwl9IGVsc2UgewomIzQzOwkJcmN1X2Fzc2lnbl9wb2ludGVyKGRldi0mZ3Q7d2NpZFt3Y2lkLSZndDtpZHhdLCBOVUxMKTsKJiM0MzsJfQomIzQzOwomIzQzOwlzcGluX3VubG9ja19iaCgmYW1wO2Rldi0mZ3Q7c3RhdHVzX2xvY2spOwomIzQzOwltdXRleF91bmxvY2soJmFtcDtkZXYtJmd0O211dGV4KTsKJiM0Mzt9CiYjNDM7CiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5MjVfb3BzID0gewogCS50eCA9IG10NzkyeF90eCwKIAkuc3RhcnQgPSBtdDc5MjVfc3RhcnQsCkBAIC0yNDIyLDcgJiM0MzsyNDU2LDcgQEAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTI1X29wcyA9IHsKIAkuc3RhcnRfYXAgPSBtdDc5MjVfc3RhcnRfYXAsCiAJLnN0b3BfYXAgPSBtdDc5MjVfc3RvcF9hcCwKIAkuc3RhX3N0YXRlID0gbXQ3Nl9zdGFfc3RhdGUsCi0JLnN0YV9wcmVfcmN1X3JlbW92ZSA9IG10NzZfc3RhX3ByZV9yY3VfcmVtb3ZlLAomIzQzOwkuc3RhX3ByZV9yY3VfcmVtb3ZlID0gbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZSwKIAkuc2V0X2tleSA9IG10NzkyNV9zZXRfa2V5LAogCS5zdGFfc2V0X2RlY2FwX29mZmxvYWQgPSBtdDc5MjVfc3RhX3NldF9kZWNhcF9vZmZsb2FkLAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjAzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NjMKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyNjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNVDc5MjUgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jYC4gSXQmIzM5O3MgYWRkaW5nIGBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlYCBhbmQgbGlua2luZyBpdCB1cCB0byBgLnN0YV9wcmVfcmN1X3JlbW92ZWAgd2l0aGluIGBtdDc5MjVfb3BzYC4gU3RhbmRhcmQgc3R1ZmYsIHNldHRpbmcgdXAgYSBob29rIGZvciBzdGF0aW9uIHJlbW92YWwsIG5vdGhpbmcgaW1tZWRpYXRlbHkgYWxhcm1pbmcuIFRoaXMgaXMgdGhlIE1lZGlhdGVrIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIHJhaXNlcyB0aGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGluIG15IG1pbmQ6IGNhbiBJIGFjdHVhbGx5IHRyaWdnZXIgdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBXaXJlbGVzcyBkcml2ZXJzIGFyZSBub3RvcmlvdXNseSBoYXJkd2FyZS1zcGVjaWZpYywgdXN1YWxseSByZXF1aXJpbmcgdGhlIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZSBvciBhIHJvYnVzdCBlbXVsYXRvci4KCk1hYzgwMjExX2h3c2ltIGNvbWVzIHRvIG1pbmQsIGJ1dCB0aGF0JiMzOTtzIGEgKmdlbmVyaWMqIG1hYzgwMjExIGVtdWxhdG9yLiBJdCB3b3VsZG4mIzM5O3QgZGlyZWN0bHkgZW11bGF0ZSB0aGUgTVQ3OTI1IHNwZWNpZmljYWxseS4gVW5sZXNzIHRoZXJlJiMzOTtzIHNvbWUgb2JzY3VyZSBVU0Igb3IgUENJIGVtdWxhdG9yIG91dCB0aGVyZSBmb3IgdGhlIE1UNzkyNS4uLiB3YWl0LCBpcyB0aGlzIGRldmljZSBVU0I/IElmIHNvLCBJIGNvdWxkIHBvdGVudGlhbGx5IGZ1enogaXQgd2l0aCBhIGR1bW15IEhDRCwgYXMgU3l6a2FsbGVyIGRvZXMgaGF2ZSBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMuIEkgbmVlZCB0byBxdWlja2x5IGNoZWNrLiBJJiMzOTtsbCBmaXJlIHVwIGBncmVwcGVyYCBhbmQgc2VlIGlmIGBtdDc5MjVgIGFwcGVhcnMgaW4gdGhlIFVTQiBzZWN0aW9uIHdpdGhpbiB0aGF0IGRyaXZlciBwYXRoLiBMZXQmIzM5O3Mgc2VlIGlmIHRoaXMgaXMgc29tZXRoaW5nIEkgY2FuIGFjdHVhbGx5IGhpdCBlYXNpbHkgaW4gYSB2aXJ0dWFsIHNldHRpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTM6MDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTI1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMTUyIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZS0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgJiM0Mzs9IG10NzkyNS1jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfTVQ3OTI1RSkgJiM0Mzs9IG10NzkyNWUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfTVQ3OTI1VSkgJiM0Mzs9IG10NzkyNXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGUtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjc6bXQ3OTI1LWNvbW1vbi15IDo9IG1hYy5vIG1jdS5vIHJlZ2QubyBtYWluLm8gaW5pdC5vIGRlYnVnZnMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6ODptdDc5MjUtY29tbW9uLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo5Om10NzkyNWUteSA6PSBwY2kubyBwY2lfbWFjLm8gcGNpX21jdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZToxMDptdDc5MjV1LXkgOj0gdXNiLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo0OiNpbmNsdWRlIFwmIzM0O210NzkyNS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNS0jaW5jbHVkZSBcJiMzNDttY3UuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz03PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4Om10NzkyNV9yZWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzLVx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNDpcdG10NzkyNV9tY3VfcmVndmFsKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcsIFx1MDAyNnJlZ3ZhbCwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTUtXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yMD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjE6bXQ3OTI1X3JlZ19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNy1cdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mjg6XHRyZXQgPSBtdDc5MjVfbWN1X3JlZ3ZhbChkZXYsIGRldi1cdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcdTAwMjZyZWd2YWwsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOS1cdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjM2OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JlZ3ZhbCwgbXQ3OTI1X3JlZ19nZXQsIG10NzkyNV9yZWdfc2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTM3LVx0XHRcdCBcJiMzNDsweCUwOGxseFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9Mzg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjM5Om10NzkyNV9md19kZWJ1Z19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy00MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTQ1LVx0ZGV2LVx1MDAzZWZ3X2RlYnVnID0gKHU4KXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo0NjpcdG10NzkyNV9tY3VfZndfbG9nXzJfaG9zdChkZXYsIGRldi1cdTAwM2Vmd19kZWJ1Zyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNDctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTUzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo1NDptdDc5MjVfZndfZGVidWdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTU1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjM6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWcsIG10NzkyNV9md19kZWJ1Z19nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjQ6XHRcdFx0IG10NzkyNV9md19kZWJ1Z19zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTY1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz02OD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjY5Om10NzkyNV9zZXFfcHV0c19hcnJheShzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKnN0cixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy03MC1cdFx0ICAgICAgczggdmFsW11bMl0sIGludCBsZW4sIHU4IGJhbmRfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy04Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4MzojZGVmaW5lIG10NzkyNV9wcmludF90eHB3cl9lbnRyeShwcmVmaXgsIHJhdGUsIGlkeClcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtODQtKHtcdFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6ODU6XHRtdDc5MjVfc2VxX3B1dHNfYXJyYXkocywgI3ByZWZpeCBcJiMzNDsgKHRtYWMpXCYjMzQ7LFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy04Ni1cdFx0XHQgICAgICB0eHB3ci1cdTAwM2VyYXRlLFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz05MT1zdGF0aWMgaW5saW5lIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5MjptdDc5MjVfZWh0X3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IG10NzkyNV90eHB3ciAqdHhwd3IsIHU4IGJhbmRfaWR4KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTkzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOTctXHRcdCAgIFwmIzM0O21jczEyXCYjMzQ7LCBcJiMzNDttY3MxM1wmIzM0OywgXCYjMzQ7bWNzMTRcJiMzNDssIFwmIzM0O21jczE1XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5ODpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQyNiwgZWh0MjYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ1MiwgZWh0NTIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMTA2LCBlaHQxMDYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDE6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjQyLCBlaHQyNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDI6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUNDg0LCBlaHQ0ODQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA0Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NiwgZWh0OTk2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA1Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngyLCBlaHQ5OTZ4MiwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwNjpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZ4NCwgZWh0OTk2eDQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDc6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjZfNTIsIGVodDI2XzUyLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA4Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI2XzEwNiwgZWh0MjZfMTA2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA5Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDQ4NF8yNDIsIGVodDQ4NF8yNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2XzQ4NCwgZWh0OTk2XzQ4NCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjExMTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZfNDg0XzI0MiwgZWh0OTk2XzQ4NF8yNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTI6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDJfNDg0LCBlaHQ5OTZ4Ml80ODQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTM6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDMsIGVodDk5NngzLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTE0Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngzXzQ4NCwgZWh0OTk2eDNfNDg0LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTE1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTE3PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTg6bXQ3OTI1X3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEyMC1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cdTAwM2Vwcml2YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMjE6XHRzdHJ1Y3QgbXQ3OTI1X3R4cHdyICp0eHB3ciA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTIyLVx0dTggYmFuZF9pZHggPSBkZXYtXHUwMDNlbXBoeS5iYW5kX2lkeDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTMwLVx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMzE6XHRyZXQgPSBtdDc5MjVfZ2V0X3R4cHdyX2luZm8oZGV2LCBiYW5kX2lkeCwgdHhwd3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzMi1cdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzOC1cdFx0ICAgXCYjMzQ7IFwmIzM0OywgXCYjMzQ7MW1cJiMzNDssIFwmIzM0OzJtXCYjMzQ7LCBcJiMzNDs1bVwmIzM0OywgXCYjMzQ7MTFtXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMzk6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoQ0NLLCBjY2ssIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE0My1cdFx0ICAgXCYjMzQ7NDhtXCYjMzQ7LCBcJiMzNDs1NG1cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0NDpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShPRkRNLCBvZmRtLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQ1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDgtXHRcdCAgIFwmIzM0O21jczZcJiMzNDssIFwmIzM0O21jczdcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIVDIwLCBodDIwLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTUwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNTMtXHRcdCAgIFwmIzM0O21jczZcJiMzNDssIFwmIzM0O21jczdcJiMzNDssIFwmIzM0O21jczMyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNTQ6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSFQ0MCwgaHQ0MCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTU4LVx0XHQgICBcJiMzNDttY3M2XCYjMzQ7LCBcJiMzNDttY3M3XCYjMzQ7LCBcJiMzNDttY3M4XCYjMzQ7LCBcJiMzNDttY3M5XCYjMzQ7LCBcJiMzNDttY3MxMFwmIzM0OywgXCYjMzQ7bWNzMTFcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE1OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQyMCwgdmh0MjAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUNDAsIHZodDQwLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2MjpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQ4MCwgdmh0ODAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjM6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUMTYwLCB2aHQxNjAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY1Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFMjYsIGhlMjYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjY6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU1MiwgaGU1MiwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2NzpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTEwNiwgaGUxMDYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjg6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEUyNDIsIGhlMjQyLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY5Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFNDg0LCBoZTQ4NCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNzE6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU5OTYsIGhlOTk2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTcyOlx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFOTk2eDIsIGhlOTk2eDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTc0Olx0bXQ3OTI1X2VodF90eHB3cihzLCB0eHB3ciwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTgxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxODI6bXQ3OTI1X3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE4My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNS1cdHBtLVx1MDAzZWVuYWJsZV91c2VyID0gdmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjIwNjpcdG10NzkyNV9zZXRfcnVudGltZV9wbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNy1cdG10NzZfY29ubmFjX3Bvd2VyX3NhdmVfc2NoZWQoXHUwMDI2ZGV2LVx1MDAzZW1waHksIHBtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjE0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMTU6bXQ3OTI1X3BtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjI0OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtLCBtdDc5MjVfcG1fZ2V0LCBtdDc5MjVfcG1fc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjI2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMjc6bXQ3OTI1X2RlZXBfc2xlZXBfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjI4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjQyLVx0cG0tXHUwMDNlZHNfZW5hYmxlID0gZW5hYmxlIFx1MDAyNlx1MDAyNiAhbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNDM6XHRtdDc5MjVfbWN1X3NldF9kZWVwX3NsZWVwKGRldiwgcG0tXHUwMDNlZHNfZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNDQtb3V0OlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yNTA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI1MTptdDc5MjVfZGVlcF9zbGVlcF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2MDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19kcywgbXQ3OTI1X2RlZXBfc2xlZXBfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2MTpcdFx0XHQgbXQ3OTI1X2RlZXBfc2xlZXBfc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjYzPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtX2lkbGVfdGltZW91dCwgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9nZXQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNjY6c3RhdGljIGludCBtdDc5MjVfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI3OC1cdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNzk6XHRcdHJldCA9IG10NzkyNV9tY3VfY2hpcF9jb25maWcoZGV2LCBcJiMzNDthc3NlcnRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4MC1cdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI4NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZXNldCwgTlVMTCwgbXQ3OTI1X2NoaXBfcmVzZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyODk6aW50IG10NzkyNV9pbml0X2RlYnVnZnMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zMDYtXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVx1MDAzZW10NzYuZGV2LCBcJiMzNDt0eHBvd2VyX3NrdVwmIzM0OywgZGlyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjMwNzpcdFx0XHRcdCAgICBtdDc5MjVfdHhwd3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTMwOC1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7dHhfc3RhdHNcJiMzNDssIDA0MDAsIGRpciwgZGV2LCBcdTAwMjZtdDc5MnhfdHhfc3RhdHNfZm9wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTgtI2luY2x1ZGUgXHUwMDNjbGludXgvZmlybXdhcmUuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjk6I2luY2x1ZGUgXCYjMzQ7bXQ3OTI1LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMC0jaW5jbHVkZSBcJiMzNDtyZWdkLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTQ6c3RhdGljIHNzaXplX3QgbXQ3OTI1X3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNS1cdFx0XHRcdFx0c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI0LVx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShtZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyNTpcdFx0dGVtcGVyYXR1cmUgPSBtdDc5MjVfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2LVx0XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShtZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMzYtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM3OnN0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFJfUk8odGVtcDFfaW5wdXQsIG10NzkyNV90aGVybWFsX3RlbXAsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM5OnN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICptdDc5MjVfaHdtb25fYXR0cnNbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00MC1cdFx1MDAyNnNlbnNvcl9kZXZfYXR0cl90ZW1wMV9pbnB1dC5kZXZfYXR0ci5hdHRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Mi19O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjQzOkFUVFJJQlVURV9HUk9VUFMobXQ3OTI1X2h3bW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo0NTpzdGF0aWMgaW50IG10NzkyNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjU0Olx0bmFtZSA9IGRldm1fa2FzcHJpbnRmKFx1MDAyNndpcGh5LVx1MDAzZWRldiwgR0ZQX0tFUk5FTCwgXCYjMzQ7bXQ3OTI1XyVzXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTU1LVx0XHRcdCAgICAgIHdpcGh5X25hbWUod2lwaHkpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNTktXHRod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKFx1MDAyNndpcGh5LVx1MDAzZWRldiwgbmFtZSwgcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjYwOlx0XHRcdFx0XHRcdCAgICAgICBtdDc5MjVfaHdtb25fZ3JvdXBzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02MS1cdHJldHVybiBQVFJfRVJSX09SX1pFUk8oaHdtb24pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo2NDpzdGF0aWMgdm9pZCBtdDc5MjVfbWFjX2luaXRfYmFzaWNfcmF0ZXMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTczLVx0XHQgICAgICAgRklFTERfUFJFUChNVF9UWF9SQVRFX0lEWCwgcmF0ZSBcdTAwMjYgR0VOTUFTSyg3LCAwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NzQ6XHRcdG10NzkyNV9tYWNfc2V0X2ZpeGVkX3JhdGVfdGFibGUoZGV2LCBpZHgsIHJhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTc1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy03Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo3ODppbnQgbXQ3OTI1X21hY19pbml0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04Ni1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1UNzkyeF9XVEJMX1NJWkU7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjg3Olx0XHRtdDc5MjVfbWFjX3d0YmxfdXBkYXRlKGRldiwgaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04OC1cdFx0XHRcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo5MjpcdG10NzkyNV9tYWNfaW5pdF9iYXNpY19yYXRlcyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTkzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6OTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X21hY19pbml0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMDA6c3RhdGljIGludCBfX210NzkyNV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTAxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjExMjpcdHJldCA9IG10NzkyNV9tY3Vfc2V0X2VlcHJvbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExMy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMTY6XHRyZXQgPSBtdDc5MjVfbWFjX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMTctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTI0OnN0YXRpYyBpbnQgbXQ3OTI1X2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMjUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMzAtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNVDc5MnhfTUNVX0lOSVRfUkVUUllfQ09VTlQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTMxOlx0XHRyZXQgPSBfX210NzkyNV9pbml0X2hhcmR3YXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTMyLVx0XHRpZiAoIXJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE0NjpzdGF0aWMgdm9pZCBtdDc5MjVfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTUyOlx0cmV0ID0gbXQ3OTI1X2luaXRfaGFyZHdhcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTYtXHRtdDc2X3NldF9zdHJlYW1fY2FwcyhcdTAwMjZkZXYtXHUwMDNlbXBoeSwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTU3Olx0bXQ3OTI1X3NldF9zdHJlYW1faGVfZWh0X2NhcHMoXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTU4LVx0bXQ3OTJ4X2NvbmZpZ19tYWNfYWRkcl9saXN0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE2MDpcdHJldCA9IG10NzkyNV9pbml0X21sb19jYXBzKFx1MDAyNmRldi1cdTAwM2VwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2MS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE3MzpcdHJldCA9IG10NzkyNV9pbml0X2RlYnVnZnMoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNzQtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE3OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNzk6XHRyZXQgPSBtdDc5MjVfdGhlcm1hbF9pbml0KFx1MDAyNmRldi1cdTAwM2VwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4MC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE4NTpcdHJldCA9IG10NzkyNV9tY3Vfc2V0X3RoZXJtYWxfcHJvdGVjdChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4Ni1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE5NDpcdG10NzkyNV9tY3Vfc2V0X2RlZXBfc2xlZXAoZGV2LCBkZXYtXHUwMDNlcG0uZHNfZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xOTUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxOTc6aW50IG10NzkyNV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xOTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMDctXHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlcG0ucHNfd29yaywgbXQ3OTJ4X3BtX3Bvd2VyX3NhdmVfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjA4Olx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZW1sb19wbV93b3JrLCBtdDc5MjVfbWxvX3BtX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwOS1cdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlcG0ud2FrZV93b3JrLCBtdDc5MnhfcG1fd2FrZV93b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjE1LVx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZW1waHkubWFjX3dvcmssIG10NzkyeF9tYWNfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjE2Olx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXBoeS5zY2FuX3dvcmssIG10NzkyNV9zY2FuX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIxNzpcdElOSVRfREVMQVlFRF9XT1JLKFx1MDAyNmRldi1cdTAwM2Vjb3JlZHVtcC53b3JrLCBtdDc5MjVfY29yZWR1bXBfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjE4LSNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIxOTpcdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlaXB2Nl9uc193b3JrLCBtdDc5MjVfc2V0X2lwdjZfbnNfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjIwLVx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZkZXYtXHUwMDNlaXB2Nl9uc19saXN0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIyNTpcdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlcmVzZXRfd29yaywgbXQ3OTI1X21hY19yZXNldF93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMjY6XHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZWluaXRfd29yaywgbXQ3OTI1X2luaXRfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIyODpcdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlcGh5LnJvY193b3JrLCBtdDc5MjVfcm9jX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIyOS1cdHRpbWVyX3NldHVwKFx1MDAyNmRldi1cdTAwM2VwaHkucm9jX3RpbWVyLCBtdDc5Mnhfcm9jX3RpbWVyLCAwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjU0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjI1NTpcdGh3LVx1MDAzZXdpcGh5LVx1MDAzZXJlZ19ub3RpZmllciA9IG10NzkyNV9yZWdkX25vdGlmaWVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI1Ni1cdGRldi1cdTAwM2VtcGh5LnNiYW5kXzJnLnNiYW5kLmh0X2NhcC5jYXAgfD1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjgyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyODM6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X3JlZ2lzdGVyX2RldmljZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNi0jaW5jbHVkZSBcdTAwM2NsaW51eC90aW1la2VlcGluZy5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo3OiNpbmNsdWRlIFwmIzM0O210NzkyNS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04LSNpbmNsdWRlIFwmIzM0Oy4uL2RtYS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzpib29sIG10NzkyNV9tYWNfd3RibF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgaW50IGlkeCwgdTMyIG1hc2spXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoyMjpzdGF0aWMgdm9pZCBtdDc5MjVfbWFjX3N0YV9wb2xsKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0yMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTgtXHRcdGlkeCA9IG1saW5rLVx1MDAzZXdjaWQuaWR4O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NTk6XHRcdGFkZHIgPSBtdDc5MjVfbWFjX3d0YmxfbG1hY19hZGRyKGRldiwgaWR4LCBNVF9XVEJMX0FDMF9DVFRfT0ZGU0VUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTYwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTc3LVx0XHRpZiAoY2xlYXIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjc4Olx0XHRcdG10NzkyNV9tYWNfd3RibF91cGRhdGUoZGV2LCBpZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy03OS1cdFx0XHRcdFx0ICAgICAgIE1UX1dUQkxfVVBEQVRFX0FETV9DT1VOVF9DTEVBUik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIzOlx0XHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgNik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQtXHRcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNS1cdFx0aWYgKHJhdGUtXHUwMDNlZmxhZ3MgXHUwMDI2IFJBVEVfSU5GT19GTEFHU19FSFRfTUNTKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjY6XHRcdFx0YWRkciA9IG10NzkyNV9tYWNfd3RibF9sbWFjX2FkZHIoZGV2LCBpZHgsIDUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI3LVx0XHRcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNDEtXHRcdC8qIGdldCBzaWduYWwgc3RyZW5ndGggb2YgcmVzcCBmcmFtZXMgKENUUy9CQS9BQ0spICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxNDI6XHRcdGFkZHIgPSBtdDc5MjVfbWFjX3d0YmxfbG1hY19hZGRyKGRldiwgaWR4LCAzNCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNDMtXHRcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxNTc6dm9pZCBtdDc5MjVfbWFjX3NldF9maXhlZF9yYXRlX3RhYmxlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNTgtXHRcdFx0XHQgICAgIHU4IHRibF9pZHgsIHUxNiByYXRlX2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNjgtLyogVGhlIEhXIGRvZXMgbm90IHRyYW5zbGF0ZSB0aGUgbWFjIGhlYWRlciB0byA4MDIuMyBmb3IgbWVzaCBwb2ludCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTY5OnN0YXRpYyBpbnQgbXQ3OTI1X3JldmVyc2VfZnJhZzBfaGRyX3RyYW5zKHN0cnVjdCBza19idWZmICpza2IsIHUxNiBoZHJfZ2FwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTcwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0yNDg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MjQ5Om10NzkyNV9tYWNfZmlsbF9yeF9yYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0yNTAtXHRcdFx0c3RydWN0IG10NzZfcnhfc3RhdHVzICpzdGF0dXMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MzUzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjM1NDptdDc5MjVfbWFjX2ZpbGxfcngoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTM1NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NTM0Olx0XHRyZXQgPSBtdDc5MjVfbWFjX2ZpbGxfcnhfcmF0ZShkZXYsIHN0YXR1cywgc2JhbmQsIHJ4diwgXHUwMDI2bW9kZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01MzUtXHRcdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTQ3LVx0aWYgKGhkcl90cmFucyBcdTAwMjZcdTAwMjYgaWVlZTgwMjExX2hhc19tb3JlZnJhZ3MoZmMpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo1NDg6XHRcdGlmIChtdDc5MjVfcmV2ZXJzZV9mcmFnMF9oZHJfdHJhbnMoc2tiLCBoZHJfZ2FwKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTU0OS1cdFx0XHRyZXR1cm4gLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz02MjE9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjYyMjptdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMyhfX2xlMzIgKnR4d2ksIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy02MjMtXHRcdFx0ICAgc3RydWN0IG10NzZfd2NpZCAqd2NpZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz02NTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjY1NzptdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMTEoc3RydWN0IG10NzZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTY1OC1cdFx0XHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz03MjQ9dm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NzI1Om10NzkyNV9tYWNfd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNzI2LVx0XHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgxMy1cdGlmIChpc184MDIzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODE0Olx0XHRtdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMyh0eHdpLCBza2IsIHdjaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODE1LVx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODE2Olx0XHRtdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMTEoZGV2LCB0eHdpLCBza2IsIGtleSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04MTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODM2LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjgzNzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfbWFjX3dyaXRlX3R4d2kpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODM5OnN0YXRpYyB2b2lkIG10NzkyNV90eF9jaGVja19hZ2dyKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04NDAtXHRcdFx0XHQgc3RydWN0IG10NzZfd2NpZCAqd2NpZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz04OTQ9c3RhdGljIGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjg5NTptdDc5MjVfbWFjX2FkZF90eHNfc2tiKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04OTYtXHRcdCAgICAgICBpbnQgcGlkLCBfX2xlMzIgKnR4c19kYXRhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDI4OnZvaWQgbXQ3OTI1X21hY19hZGRfdHhzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDI5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTA1NjpcdG10NzkyNV9tYWNfYWRkX3R4c19za2IoZGV2LCB3Y2lkLCBwaWQsIHR4c19kYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNTctXHRpZiAoIXdjaWQtXHUwMDNlc3RhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDY2OnZvaWQgbXQ3OTI1X3R4d2lfZnJlZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl90eHdpX2NhY2hlICp0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA2Ny1cdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDgwLVx0XHRpZiAobGlrZWx5KHQtXHUwMDNlc2tiLVx1MDAzZXByb3RvY29sICE9IGNwdV90b19iZTE2KEVUSF9QX1BBRSkpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTA4MTpcdFx0XHRtdDc5MjVfdHhfY2hlY2tfYWdncihzdGEsIHQtXHUwMDNlc2tiLCB3Y2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwODItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA5Mi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDkzOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV90eHdpX2ZyZWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTEwOTU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwOTY6bXQ3OTI1X21hY190eF9mcmVlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDk3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTE2MjpcdFx0XHRtdDc5MjVfdHh3aV9mcmVlKGRldiwgdHh3aSwgc3RhLCB3Y2lkLCBcdTAwMjZmcmVlX2xpc3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE2My1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTY2Olx0bXQ3OTI1X21hY19zdGFfcG9sbChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE2Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTE3OTpib29sIG10NzkyNV9yeF9jaGVjayhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTgwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTk3LVx0XHQvKiBQS1RfVFlQRV9UWFJYX05PVElGWSBjYW4gYmUgcmVjZWl2ZWQgb25seSBieSBtbWlvIGRldmljZXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExOTg6XHRcdG10NzkyNV9tYWNfdHhfZnJlZShkZXYsIGRhdGEsIGxlbik7IC8qIG1taW8gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExOTktXHRcdHJldHVybiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjAxLVx0XHRmb3IgKHJ4ZCAmIzQzOz0gNDsgcnhkICYjNDM7IDEyIFx1MDAzYz0gZW5kOyByeGQgJiM0Mzs9IDEyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwMjpcdFx0XHRtdDc5MjVfbWFjX2FkZF90eHMoZGV2LCByeGQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIwMy1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwODpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfcnhfY2hlY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMTA6dm9pZCBtdDc5MjVfcXVldWVfcnhfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgZW51bSBtdDc2X3J4cV9pZCBxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIxMS1cdFx0XHQgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICppbmZvKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMzQtXHRcdC8qIFBLVF9UWVBFX1RYUlhfTk9USUZZIGNhbiBiZSByZWNlaXZlZCBvbmx5IGJ5IG1taW8gZGV2aWNlcyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIzNTpcdFx0bXQ3OTI1X21hY190eF9mcmVlKGRldiwgc2tiLVx1MDAzZWRhdGEsIHNrYi1cdTAwM2VsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIzNi1cdFx0bmFwaV9jb25zdW1lX3NrYihza2IsIDEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMzgtXHRjYXNlIFBLVF9UWVBFX1JYX0VWRU5UOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIzOTpcdFx0bXQ3OTI1X21jdV9yeF9ldmVudChkZXYsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQwLVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQyLVx0XHRmb3IgKHJ4ZCAmIzQzOz0gMjsgcnhkICYjNDM7IDggXHUwMDNjPSBlbmQ7IHJ4ZCAmIzQzOz0gOClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNDM6XHRcdFx0bXQ3OTI1X21hY19hZGRfdHhzKGRldiwgcnhkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDQtXHRcdGRldl9rZnJlZV9za2Ioc2tiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQ3LVx0Y2FzZSBQS1RfVFlQRV9OT1JNQUw6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjQ4Olx0XHRpZiAoIW10NzkyNV9tYWNfZmlsbF9yeChkZXYsIHNrYikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDktXHRcdFx0bXQ3Nl9yeChcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgcSwgc2tiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjU3LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X3F1ZXVlX3J4X3NrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MTI2MD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI2MTptdDc5MjVfdmlmX2Nvbm5lY3RfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI2Mi1cdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyODEtXHRcdFx0XHRcdCAgICBcdTAwMjZtdmlmLVx1MDAzZXN0YS5kZWZsaW5rLndjaWQsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI4MjpcdFx0bXQ3OTI1X21jdV9zZXRfdHgoZGV2LCBic3NfY29uZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjgzLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyODctXHRcdFx0XHRcdCAgICB0cnVlLCBOVUxMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyODg6XHRcdG10NzkyNV9tY3Vfc3RhX3VwZGF0ZShkZXYsIE5VTEwsIHZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyODktXHRcdFx0XHQgICAgICBcdTAwMjZtdmlmLVx1MDAzZXN0YS5kZWZsaW5rLCB0cnVlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5MC1cdFx0XHRcdCAgICAgIE1UNzZfU1RBX0lORk9fU1RBVEVfTk9ORSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjkxOlx0XHRtdDc5MjVfbWN1X3VuaV9hZGRfYmVhY29uX29mZmxvYWQoZGV2LCBodywgdmlmLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTItXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5NS0vKiBzeXN0ZW0gZXJyb3IgcmVjb3ZlcnkgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyOTY6dm9pZCBtdDc5MjVfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMzNi1cdFx0XHRcdFx0ICAgIElFRUU4MDIxMV9JRkFDRV9JVEVSX1JFU1VNRV9BTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzM3Olx0XHRcdFx0XHQgICAgbXQ3OTI1X3ZpZl9jb25uZWN0X2l0ZXIsIE5VTEwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMzOC1cdG10NzZfY29ubmFjX3Bvd2VyX3NhdmVfc2NoZWQoXHUwMDI2ZGV2LVx1MDAzZW10NzYucGh5LCBwbSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM0MDpcdG10NzkyNV9yZWdkX2NoYW5nZShcdTAwMjZkZXYtXHUwMDNlcGh5LCBcJiMzNDswMFwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzQxLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzQzOnZvaWQgbXQ3OTI1X2NvcmVkdW1wX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTM0NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTM3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzNzE6XHRcdHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBtdDc5MjVfbWN1X3J4ZCkgJiM0MzsgOCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzcyLVx0XHRpZiAoIWR1bXAgfHwgZGF0YSAmIzQzOyBza2ItXHUwMDNlbGVuIC0gZHVtcCBcdTAwM2UgTVQ3Nl9DT05OQUNfQ09SRURVTVBfU1opIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0xMzkxPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzkyOm10NzkyNV91c2Jfc2Rpb193cml0ZV90eHdpKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxMzowMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI4NAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDc3MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBgbXQ3OTI1YCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYG10NzkyNWAgZHJpdmVyLiBHb29kIG5ld3Mg4oCTIGl0IGhhcyBib3RoIGEgUENJIHZhcmlhbnQgKGBtdDc5MjVlYCkgYW5kIGEgVVNCIHZhcmlhbnQgKGBtdDc5MjV1YCkuIFRoZSBVU0IgdmFyaWFudCBpcyBrZXksIGJlY2F1c2UgdGhhdCBtZWFucyBJIGNhbiBsZXZlcmFnZSBzeXprYWxsZXImIzM5O3MgZHVtbXkgSENEIGZvciBVU0IgZnV6emluZy4gVGhhdCBtYWtlcyB0aGlzIGRyaXZlciByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB3aGljaCBpcyBpZGVhbCBmb3IgZWZmaWNpZW50IHRlc3RpbmcuCgpUaGUgcGF0Y2ggSSYjMzk7bSBleGFtaW5pbmcgbW9kaWZpZXMgdGhlIGBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlYCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY2AuIExldCYjMzk7cyByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGF0IGNvZGUgYmxvY2s6CgpgYGBjCiYjNDM7c3RhdGljIHZvaWQgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKJiM0MzsJCQkJICAgICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwKJiM0MzsJCQkJICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBtdDc2X3BoeSAqcGh5ID0gaHctJmd0O3ByaXY7CiYjNDM7CXN0cnVjdCBtdDc2X2RldiAqZGV2ID0gcGh5LSZndDtkZXY7CiYjNDM7CXN0cnVjdCBtdDc2X3djaWQgKndjaWQgPSAoc3RydWN0IG10NzZfd2NpZCAqKXN0YS0mZ3Q7ZHJ2X3ByaXY7CiYjNDM7CiYjNDM7CW11dGV4X2xvY2soJmFtcDtkZXYtJmd0O211dGV4KTsKJiM0MzsJc3Bpbl9sb2NrX2JoKCZhbXA7ZGV2LSZndDtzdGF0dXNfbG9jayk7CiYjNDM7CiYjNDM7CWlmIChpZWVlODAyMTFfdmlmX2lzX21sZCh2aWYpKSB7CiYjNDM7CQlzdHJ1Y3QgbXQ3OTJ4X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTJ4X3N0YSAqKXN0YS0mZ3Q7ZHJ2X3ByaXY7CiYjNDM7CQlzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi0mZ3Q7ZHJ2X3ByaXY7CiYjNDM7CQl1bnNpZ25lZCBsb25nIHZhbGlkID0gbXZpZi0mZ3Q7dmFsaWRfbGlua3M7CiYjNDM7CQlzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluazsKJiM0MzsJCXVuc2lnbmVkIGludCBsaW5rX2lkOwomIzQzOwomIzQzOwkJZm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCAmYW1wO3ZhbGlkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHsKJiM0MzsJCQltbGluayA9IG10NzkyeF9zdGFfdG9fbGluayhtc3RhLCBsaW5rX2lkKTsKJiM0MzsJCQlpZiAoIW1saW5rIHx8ICFtbGluay0mZ3Q7d2NpZC5zdGEpCiYjNDM7CQkJCWNvbnRpbnVlOwomIzQzOwkJCWlmIChtbGluay0mZ3Q7d2NpZC5pZHggJmx0OyBBUlJBWV9TSVpFKGRldi0mZ3Q7d2NpZCkpCiYjNDM7CQkJCXJjdV9hc3NpZ25fcG9pbnRlcihkZXYtJmd0O3djaWRbbWxpbmstJmd0O3djaWQuaWR4XSwKJiM0MzsJCQkJCQkgICBOVUxMKTsKJiM0MzsJCX0KJiM0MzsJfSBlbHNlIHsKJiM0MzsJCXJjdV9hc3NpZ25fcG9pbnRlcihkZXYtJmd0O3djaWRbd2NpZC0mZ3Q7aWR4XSwgTlVMTCk7CiYjNDM7CX0KJiM0MzsKJiM0MzsJc3Bpbl91bmxvY2tfYmgoJmFtcDtkZXYtJmd0O3N0YXR1c19sb2NrKTsKJiM0MzsJbXV0ZXhfdW5sb2NrKCZhbXA7ZGV2LSZndDttdXRleCk7CiYjNDM7fQpgYGAKClJpZ2h0LCBpdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgdGhlIFJDVSByZW1vdmFsIG9mIGEgc3RhdGlvbiwgd2l0aCBzcGVjaWZpYyBoYW5kbGluZyBmb3IgTXVsdGktTGluayBEZXZpY2UgKE1MRCkgZnVuY3Rpb25hbGl0eS4gVGhpcyBpcyBkZWZpbml0ZWx5IGZ1bmN0aW9uYWwgY29kZSB0aGF0IHJlcXVpcmVzIGZ1enppbmcuIFdlIG5lZWQgdG8gZXhwb3NlIGl0cyBsb2dpYyB0byBmdXp6aW5nIHRvIGVuc3VyZSBjb3JyZWN0bmVzcyBhbmQgaWRlbnRpZnkgdnVsbmVyYWJpbGl0aWVzLgoKTm93LCB3aGF0IGFib3V0IHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbj8gIEkmIzM5O2xsIG5lZWQgYENPTkZJR19NVDc5MjVVYCB0byBlbmFibGUgdGhlIFVTQiB2YXJpYW50LiBXaGlsZSBgQ09ORklHX01UNzkyNUVgIChQQ0kpIGlzIGFuIG9wdGlvbiwgdGhlIFVTQiB2YXJpYW50IG9mZmVycyB0aGUgbW9zdCBzdHJhaWdodGZvcndhcmQgcGF0aCBmb3IgZnV6emluZyB3aXRoIHN5emthbGxlci4gVGltZSB0byBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ2Agb3Igc2ltaWxhciBmaWxlcyB0byB2ZXJpZnkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTM6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyNSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc6Mjpjb25maWcgTVQ3OTI1X0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnOjc6Y29uZmlnIE1UNzkyNUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzoxOTpjb25maWcgTVQ3OTI1VVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMjMwCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgcXVpY2sgdGFrZSBvbiB3aGF0IEkmIzM5O20gdGhpbmtpbmcsIGJhc2VkIG9uIHRoYXQgaW5wdXQuCgoqKkVuYWJsaW5nIE1UNzkyNSBEcml2ZXJzKioKClJpZ2h0LCBzbyB0aGUgcGxhbiBpcyB0byBnZXQgdGhlIGBNVDc5MjVVYCBhbmQgYE1UNzkyNUVgIGRyaXZlcnMgZW5hYmxlZC4gU2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaC4gQmVmb3JlIEkgZGl2ZSB0b28gZGVlcCwgSSBzaG91bGQgcXVpY2tseSB2ZXJpZnkgaWYgYE1UNzkyNV9DT01NT05gIGlzIGFjdHVhbGx5IHJlcXVpcmVkIGRpcmVjdGx5LiBJdCBsb29rcyBsaWtlIHRoZSBvdGhlciBvcHRpb25zIG1pZ2h0IHB1bGwgdGhhdCBpbiBhdXRvbWF0aWNhbGx5LCBidXQgYSBxdWljayBjb25maXJtYXRpb24gaXMgYWx3YXlzIHNtYXJ0IHRvIGF2b2lkIHVubmVjZXNzYXJ5IGRlcGVuZGVuY2llcyBvciBjb25mbGljdHMgbGF0ZXIgb24uIFRoZW4sIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSBJIGhhdmUgdGhlIGZ1bGwgcGljdHVyZSwgYW5kIGNoZWNrIHdoYXQgYE1UNzkyNVVgIGRlcGVuZHMgb24uIEkgbmVlZCB0byBiZSBhd2FyZSBvZiB3aGF0IG90aGVyIHNldHRpbmdzIG9yIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zIHRoZXNlIGRyaXZlcnMgcmVseSBvbi4gR290dGEgdGhpbmsgYWhlYWQgYW5kIG1ha2Ugc3VyZSBhbGwgdGhlIHBpZWNlcyBmaXQgdG9nZXRoZXIgYmVmb3JlIEkgbWFrZSBhbnkgZmluYWwgZGVjaXNpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuICAgMjpcdGNvbmZpZyBNVDc5MjVfQ09NTU9OXG4gICAzOlx0XHR0cmlzdGF0ZVxuICAgNDpcdFx0c2VsZWN0IE1UNzkyeF9MSUJcbiAgIDU6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICAgNjpcdFxuICAgNzpcdGNvbmZpZyBNVDc5MjVFXG4gICA4Olx0XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MjVFIChQQ0llKSBzdXBwb3J0XCYjMzQ7XG4gICA5Olx0XHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxuICAxMDpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAxMTpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiAgMTI6XHRcdGhlbHBcbiAgMTM6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyNS1iYXNlZCB3aXJlbGVzcyBQQ0llIGRldmljZXMsXG4gIDE0Olx0XHQgIHdoaWNoIHN1cHBvcnQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZVxuICAxNTpcdFx0ICAyeDI6MlNTIDQwOTYtUUFNLCAxNjBNSHogY2hhbm5lbHMuXG4gIDE2Olx0XG4gIDE3Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4gIDE4Olx0XG4gIDE5Olx0Y29uZmlnIE1UNzkyNVVcbiAgMjA6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuICAyMTpcdFx0c2VsZWN0IE1UNzkyeF9VU0JcbiAgMjI6XHRcdHNlbGVjdCBNVDc5MjVfQ09NTU9OXG4gIDIzOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDI0Olx0XHRkZXBlbmRzIG9uIFVTQlxuICAyNTpcdFx0aGVscFxuICAyNjpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTI1LWJhc2VkIHdpcmVsZXNzIFVTQiBkZXZpY2VzLFxuICAyNzpcdFx0ICB3aGljaCBzdXBwb3J0IG9wZXJhdGlvbiBhdCA2R0h6LCA1R0h6LCBhbmQgMi40R0h6IElFRUUgODAyLjExYmVcbiAgMjg6XHRcdCAgMngyOjJTUyA0MDk2LVFBTSwgMTYwTUh6IGNoYW5uZWxzLlxuICAyOTpcdFxuICAzMDpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMDA2CgkJCQkJCQlvdXRwdXQ6IDEyNAoJCQkJCQkJdGhvdWdodHM6IDMwMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBNVDc5MjUgUkNVIFJlbW92YWwgUGF0Y2gqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkgc2VlLCB3ZSYjMzk7cmUgbG9va2luZyBhdCBjb25maWd1cmF0aW9ucyBgTVQ3OTI1VWAgYW5kIGBNVDc5MjVFYC4gVGhlIGNydWNpYWwgZnVuY3Rpb24gaGVyZSBpcyBgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZWAuIEkgZG9uJiMzOTt0IHNlZSBhbnkgb3RoZXIgZnVuY3Rpb25zIGltcGxpY2F0ZWQgaW4gdGhlIGRlc2NyaXB0aW9uLCBzbyB0aGF0IHNlZW1zIHRvIGJlIHRoZSBjb3JlIG9mIHRoZSBtYXR0ZXIuIEp1c3QgdG8gYmUgdGhvcm91Z2gsIEkmIzM5O20gY29uZmlybWluZyB0aGF0IHRoZSBwYXRjaCAqb25seSogaW50cm9kdWNlcyBgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZWAgYW5kIGFzc2lnbnMgaXQgdG8gYC5zdGFfcHJlX3JjdV9yZW1vdmVgIHdpdGhpbiBgbXQ3OTI1X29wc2AuCgpUaGUgcmVhc29uaW5nIGlzIHByZXR0eSBjbGVhcjogVGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgaW1wbGVtZW50aW5nIFJDVSByZW1vdmFsIGZvciBzdGF0aW9ucyB3aXRoaW4gdGhlIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIHdpdGggc3BlY2lmaWMgY29uc2lkZXJhdGlvbnMgZm9yIE11bHRpLUxpbmsgRGV2aWNlIChNTEQpIGxvZ2ljLiBUaGUga2V5IGRldGFpbCwgYW5kIHRoaXMgaXMgaW1wb3J0YW50IGZvciBmdXp6aW5nLCBpcyB0aGF0IHRoZSBNVDc5MjUgaGFzIGEgVVNCIHZhcmlhbnQuIFRoYXQgbWVhbnMgd2UgY2FuIGdldCB0byBpdCB0aHJvdWdoIGEgZHVtbXkgSENEIHNldHVwLCBvcGVuaW5nIHRoZSBkb29yIGZvciBmdXp6aW5nLgoKTGV0JiMzOTtzIHN1bW1hcml6ZSB0aGlzIGNvbmNpc2VseToKCiogICAqKldvcnRoRnV6emluZzoqKiBUcnVlCiogICAqKkZvY3VzU3ltYm9sczoqKiBgWyYjMzQ7bXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZSYjMzQ7XWAKKiAgICoqRW5hYmxlQ29uZmlnczoqKiBgWyYjMzQ7TVQ3OTI1VSYjMzQ7LCAmIzM0O01UNzkyNUUmIzM0O11gCiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggYWRkcyB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJDVSByZW1vdmFsIG9mIHN0YXRpb25zIHdpdGhpbiB0aGUgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciwgaW5jbHVkaW5nIGhhbmRsaW5nIGZvciBNdWx0aS1MaW5rIERldmljZXMgKE1MRCkuIEltcG9ydGFudGx5LCBpdCBoYXMgYSBVU0IgdmFyaWFudCwgbXQ3OTI1dSwgd2hpY2ggbWFrZXMgZnV6emluZyB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXkgSENEKSB2aWFibGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjVVJiMzNDssCiAgICAmIzM0O01UNzkyNUUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgZnVuY3Rpb25hbCBsb2dpYyBmb3IgUkNVIHJlbW92YWwgb2Ygc3RhdGlvbnMgaW4gdGhlIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIGluY2x1ZGluZyBoYW5kbGluZyBmb3IgTXVsdGktTGluayBEZXZpY2VzIChNTEQpLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChtdDc5MjV1KSB3aGljaCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChkdW1teSBIQ0QpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjVVJiMzNDssCiAgICAmIzM0O01UNzkyNUUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgZnVuY3Rpb25hbCBsb2dpYyBmb3IgUkNVIHJlbW92YWwgb2Ygc3RhdGlvbnMgaW4gdGhlIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIGluY2x1ZGluZyBoYW5kbGluZyBmb3IgTXVsdGktTGluayBEZXZpY2VzIChNTEQpLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChtdDc5MjV1KSB3aGljaCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChkdW1teSBIQ0QpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTM6MDM6MjIuNDA4OTUxNTU4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzcxMTA2MDQ0MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTI1VVwiLFxuICAgIFwiTVQ3OTI1RVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJDVSByZW1vdmFsIG9mIHN0YXRpb25zIGluIHRoZSBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyLCBpbmNsdWRpbmcgaGFuZGxpbmcgZm9yIE11bHRpLUxpbmsgRGV2aWNlcyAoTUxEKS4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXkgSENEKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTM6MDM6MjIuNDA4OTU5NDc4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjc0NzAxOTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAzYWI2NDE0ZDczMzNkMGQ0MDNjYTZlMDlmYTBjMzE5Y2ZmZmFjZDVhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVuIDMwIDEzOjAzOjIxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xcbmluZGV4IDczZDM3MjI3MzlkMGE4Li5lM2ZiNjM5MmVkYTI0YSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcXG5AQCAtMjQxMCw2ICsyNDEwLDQwIEBAIHN0YXRpYyB2b2lkIG10NzkyNV9jaGFubmVsX3N3aXRjaF9yeF9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIFxcdH1cXG4gfVxcbiBcXG4rc3RhdGljIHZvaWQgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4rXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4rXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG4re1xcbitcXHRzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSA9IGh3LVxcdTAwM2Vwcml2O1xcbitcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbitcXHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkID0gKHN0cnVjdCBtdDc2X3djaWQgKilzdGEtXFx1MDAzZWRydl9wcml2O1xcbitcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtdXRleCk7XFxuK1xcdHNwaW5fbG9ja19iaChcXHUwMDI2ZGV2LVxcdTAwM2VzdGF0dXNfbG9jayk7XFxuK1xcbitcXHRpZiAoaWVlZTgwMjExX3ZpZl9pc19tbGQodmlmKSkge1xcbitcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTJ4X3N0YSAqKXN0YS1cXHUwMDNlZHJ2X3ByaXY7XFxuK1xcdFxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG4rXFx0XFx0dW5zaWduZWQgbG9uZyB2YWxpZCA9IG12aWYtXFx1MDAzZXZhbGlkX2xpbmtzO1xcbitcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluaztcXG4rXFx0XFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XFxuK1xcbitcXHRcXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZ2YWxpZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XFxuK1xcdFxcdFxcdG1saW5rID0gbXQ3OTJ4X3N0YV90b19saW5rKG1zdGEsIGxpbmtfaWQpO1xcbitcXHRcXHRcXHRpZiAoIW1saW5rIHx8ICFtbGluay1cXHUwMDNld2NpZC5zdGEpXFxuK1xcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbitcXHRcXHRcXHRpZiAobWxpbmstXFx1MDAzZXdjaWQuaWR4IFxcdTAwM2MgQVJSQVlfU0laRShkZXYtXFx1MDAzZXdjaWQpKVxcbitcXHRcXHRcXHRcXHRyY3VfYXNzaWduX3BvaW50ZXIoZGV2LVxcdTAwM2V3Y2lkW21saW5rLVxcdTAwM2V3Y2lkLmlkeF0sXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIE5VTEwpO1xcbitcXHRcXHR9XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdHJjdV9hc3NpZ25fcG9pbnRlcihkZXYtXFx1MDAzZXdjaWRbd2NpZC1cXHUwMDNlaWR4XSwgTlVMTCk7XFxuK1xcdH1cXG4rXFxuK1xcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXN0YXR1c19sb2NrKTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZkZXYtXFx1MDAzZW11dGV4KTtcXG4rfVxcbitcXG4gY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTI1X29wcyA9IHtcXG4gXFx0LnR4ID0gbXQ3OTJ4X3R4LFxcbiBcXHQuc3RhcnQgPSBtdDc5MjVfc3RhcnQsXFxuQEAgLTI0MjIsNyArMjQ1Niw3IEBAIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkyNV9vcHMgPSB7XFxuIFxcdC5zdGFydF9hcCA9IG10NzkyNV9zdGFydF9hcCxcXG4gXFx0LnN0b3BfYXAgPSBtdDc5MjVfc3RvcF9hcCxcXG4gXFx0LnN0YV9zdGF0ZSA9IG10NzZfc3RhX3N0YXRlLFxcbi1cXHQuc3RhX3ByZV9yY3VfcmVtb3ZlID0gbXQ3Nl9zdGFfcHJlX3JjdV9yZW1vdmUsXFxuK1xcdC5zdGFfcHJlX3JjdV9yZW1vdmUgPSBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlLFxcbiBcXHQuc2V0X2tleSA9IG10NzkyNV9zZXRfa2V5LFxcbiBcXHQuc3RhX3NldF9kZWNhcF9vZmZsb2FkID0gbXQ3OTI1X3N0YV9zZXRfZGVjYXBfb2ZmbG9hZCxcXG4gI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEzOjAzOjIyLjc3NzIxMjU0MVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzY3NDIzMzAzNjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTI1VVwiLFxuICAgIFwiTVQ3OTI1RVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJDVSByZW1vdmFsIG9mIHN0YXRpb25zIGluIHRoZSBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyLCBpbmNsdWRpbmcgaGFuZGxpbmcgZm9yIE11bHRpLUxpbmsgRGV2aWNlcyAoTUxEKS4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXkgSENEKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzYWI2NDE0ZDczMzNkMGQ0MDNjYTZlMDlmYTBjMzE5Y2ZmZmFjZDVhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTM6MDM6MjEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbmluZGV4IDczZDM3MjI3MzlkMGE4Li5lM2ZiNjM5MmVkYTI0YSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXG5AQCAtMjQxMCw2ICsyNDEwLDQwIEBAIHN0YXRpYyB2b2lkIG10NzkyNV9jaGFubmVsX3N3aXRjaF9yeF9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gXHR9XG4gfVxuIFxuK3N0YXRpYyB2b2lkIG10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4rXHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuK1x0XHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbit7XG4rXHRzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSA9IGh3LVx1MDAzZXByaXY7XG4rXHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG4rXHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkID0gKHN0cnVjdCBtdDc2X3djaWQgKilzdGEtXHUwMDNlZHJ2X3ByaXY7XG4rXG4rXHRtdXRleF9sb2NrKFx1MDAyNmRldi1cdTAwM2VtdXRleCk7XG4rXHRzcGluX2xvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXN0YXR1c19sb2NrKTtcbitcbitcdGlmIChpZWVlODAyMTFfdmlmX2lzX21sZCh2aWYpKSB7XG4rXHRcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLVx1MDAzZWRydl9wcml2O1xuK1x0XHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cdTAwM2VkcnZfcHJpdjtcbitcdFx0dW5zaWduZWQgbG9uZyB2YWxpZCA9IG12aWYtXHUwMDNldmFsaWRfbGlua3M7XG4rXHRcdHN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rO1xuK1x0XHR1bnNpZ25lZCBpbnQgbGlua19pZDtcbitcbitcdFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcdTAwMjZ2YWxpZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XG4rXHRcdFx0bWxpbmsgPSBtdDc5Mnhfc3RhX3RvX2xpbmsobXN0YSwgbGlua19pZCk7XG4rXHRcdFx0aWYgKCFtbGluayB8fCAhbWxpbmstXHUwMDNld2NpZC5zdGEpXG4rXHRcdFx0XHRjb250aW51ZTtcbitcdFx0XHRpZiAobWxpbmstXHUwMDNld2NpZC5pZHggXHUwMDNjIEFSUkFZX1NJWkUoZGV2LVx1MDAzZXdjaWQpKVxuK1x0XHRcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKGRldi1cdTAwM2V3Y2lkW21saW5rLVx1MDAzZXdjaWQuaWR4XSxcbitcdFx0XHRcdFx0XHQgICBOVUxMKTtcbitcdFx0fVxuK1x0fSBlbHNlIHtcbitcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKGRldi1cdTAwM2V3Y2lkW3djaWQtXHUwMDNlaWR4XSwgTlVMTCk7XG4rXHR9XG4rXG4rXHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlc3RhdHVzX2xvY2spO1xuK1x0bXV0ZXhfdW5sb2NrKFx1MDAyNmRldi1cdTAwM2VtdXRleCk7XG4rfVxuK1xuIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkyNV9vcHMgPSB7XG4gXHQudHggPSBtdDc5MnhfdHgsXG4gXHQuc3RhcnQgPSBtdDc5MjVfc3RhcnQsXG5AQCAtMjQyMiw3ICsyNDU2LDcgQEAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTI1X29wcyA9IHtcbiBcdC5zdGFydF9hcCA9IG10NzkyNV9zdGFydF9hcCxcbiBcdC5zdG9wX2FwID0gbXQ3OTI1X3N0b3BfYXAsXG4gXHQuc3RhX3N0YXRlID0gbXQ3Nl9zdGFfc3RhdGUsXG4tXHQuc3RhX3ByZV9yY3VfcmVtb3ZlID0gbXQ3Nl9zdGFfcHJlX3JjdV9yZW1vdmUsXG4rXHQuc3RhX3ByZV9yY3VfcmVtb3ZlID0gbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZSxcbiBcdC5zZXRfa2V5ID0gbXQ3OTI1X3NldF9rZXksXG4gXHQuc3RhX3NldF9kZWNhcF9vZmZsb2FkID0gbXQ3OTI1X3N0YV9zZXRfZGVjYXBfb2ZmbG9hZCxcbiAjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNilcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEzOjAzOjIyLjc3NzIxOTI1MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzNjk1MDAyNzAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTVQ3OTI1IERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNgLiBJdCdzIGFkZGluZyBgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZWAgYW5kIGxpbmtpbmcgaXQgdXAgdG8gYC5zdGFfcHJlX3JjdV9yZW1vdmVgIHdpdGhpbiBgbXQ3OTI1X29wc2AuIFN0YW5kYXJkIHN0dWZmLCBzZXR0aW5nIHVwIGEgaG9vayBmb3Igc3RhdGlvbiByZW1vdmFsLCBub3RoaW5nIGltbWVkaWF0ZWx5IGFsYXJtaW5nLiBUaGlzIGlzIHRoZSBNZWRpYXRlayBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCByYWlzZXMgdGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpbiBteSBtaW5kOiBjYW4gSSBhY3R1YWxseSB0cmlnZ2VyIHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gV2lyZWxlc3MgZHJpdmVycyBhcmUgbm90b3Jpb3VzbHkgaGFyZHdhcmUtc3BlY2lmaWMsIHVzdWFsbHkgcmVxdWlyaW5nIHRoZSBhY3R1YWwgcGh5c2ljYWwgaGFyZHdhcmUgb3IgYSByb2J1c3QgZW11bGF0b3IuXG5cbk1hYzgwMjExX2h3c2ltIGNvbWVzIHRvIG1pbmQsIGJ1dCB0aGF0J3MgYSAqZ2VuZXJpYyogbWFjODAyMTEgZW11bGF0b3IuIEl0IHdvdWxkbid0IGRpcmVjdGx5IGVtdWxhdGUgdGhlIE1UNzkyNSBzcGVjaWZpY2FsbHkuIFVubGVzcyB0aGVyZSdzIHNvbWUgb2JzY3VyZSBVU0Igb3IgUENJIGVtdWxhdG9yIG91dCB0aGVyZSBmb3IgdGhlIE1UNzkyNS4uLiB3YWl0LCBpcyB0aGlzIGRldmljZSBVU0I/IElmIHNvLCBJIGNvdWxkIHBvdGVudGlhbGx5IGZ1enogaXQgd2l0aCBhIGR1bW15IEhDRCwgYXMgU3l6a2FsbGVyIGRvZXMgaGF2ZSBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMuIEkgbmVlZCB0byBxdWlja2x5IGNoZWNrLiBJJ2xsIGZpcmUgdXAgYGdyZXBwZXJgIGFuZCBzZWUgaWYgYG10NzkyNWAgYXBwZWFycyBpbiB0aGUgVVNCIHNlY3Rpb24gd2l0aGluIHRoYXQgZHJpdmVyIHBhdGguIExldCdzIHNlZSBpZiB0aGlzIGlzIHNvbWV0aGluZyBJIGNhbiBhY3R1YWxseSBoaXQgZWFzaWx5IGluIGEgdmlydHVhbCBzZXR0aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTYzLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTM6MDM6NTYuNDcyMjI1MTcyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMTAxNTI0MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MjVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMzE1MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGUtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5MjVfQ09NTU9OKSArPSBtdDc5MjUtY29tbW9uLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19NVDc5MjVFKSArPSBtdDc5MjVlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19NVDc5MjVVKSArPSBtdDc5MjV1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZS02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjc6bXQ3OTI1LWNvbW1vbi15IDo9IG1hYy5vIG1jdS5vIHJlZ2QubyBtYWluLm8gaW5pdC5vIGRlYnVnZnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjg6bXQ3OTI1LWNvbW1vbi0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSArPSB0ZXN0bW9kZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6OTptdDc5MjVlLXkgOj0gcGNpLm8gcGNpX21hYy5vIHBjaV9tY3Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjEwOm10NzkyNXUteSA6PSB1c2Iub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjQ6I2luY2x1ZGUgXFxcIm10NzkyNS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy01LSNpbmNsdWRlIFxcXCJtY3UuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz03PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6ODptdDc5MjVfcmVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy05LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMy1cXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNDpcXHRtdDc5MjVfbWN1X3JlZ3ZhbChkZXYsIGRldi1cXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgXFx1MDAyNnJlZ3ZhbCwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1LVxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMTptdDc5MjVfcmVnX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI3LVxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI4OlxcdHJldCA9IG10NzkyNV9tY3VfcmVndmFsKGRldiwgZGV2LVxcdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcXHUwMDI2cmVndmFsLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI5LVxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjM2OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JlZ3ZhbCwgbXQ3OTI1X3JlZ19nZXQsIG10NzkyNV9yZWdfc2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zNy1cXHRcXHRcXHQgXFxcIjB4JTA4bGx4XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9Mzg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzozOTptdDc5MjVfZndfZGVidWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy00NS1cXHRkZXYtXFx1MDAzZWZ3X2RlYnVnID0gKHU4KXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NDY6XFx0bXQ3OTI1X21jdV9md19sb2dfMl9ob3N0KGRldiwgZGV2LVxcdTAwM2Vmd19kZWJ1Zyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTUzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NTQ6bXQ3OTI1X2Z3X2RlYnVnX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo2MzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1ZywgbXQ3OTI1X2Z3X2RlYnVnX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjQ6XFx0XFx0XFx0IG10NzkyNV9md19kZWJ1Z19zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNjUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9Njg9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Njk6bXQ3OTI1X3NlcV9wdXRzX2FycmF5KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgY29uc3QgY2hhciAqc3RyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy03MC1cXHRcXHQgICAgICBzOCB2YWxbXVsyXSwgaW50IGxlbiwgdTggYmFuZF9pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjgzOiNkZWZpbmUgbXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KHByZWZpeCwgcmF0ZSwgaWR4KVxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtODQtKHtcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjg1OlxcdG10NzkyNV9zZXFfcHV0c19hcnJheShzLCAjcHJlZml4IFxcXCIgKHRtYWMpXFxcIixcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTg2LVxcdFxcdFxcdCAgICAgIHR4cHdyLVxcdTAwM2VyYXRlLFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz05MT1zdGF0aWMgaW5saW5lIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6OTI6bXQ3OTI1X2VodF90eHB3cihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHN0cnVjdCBtdDc5MjVfdHhwd3IgKnR4cHdyLCB1OCBiYW5kX2lkeClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOTMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTk3LVxcdFxcdCAgIFxcXCJtY3MxMlxcXCIsIFxcXCJtY3MxM1xcXCIsIFxcXCJtY3MxNFxcXCIsIFxcXCJtY3MxNVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5ODpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjYsIGVodDI2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjk5OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ1MiwgZWh0NTIsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTAwOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQxMDYsIGVodDEwNiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDE6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI0MiwgZWh0MjQyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwMjpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUNDg0LCBlaHQ0ODQsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDQ6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NiwgZWh0OTk2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwNTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDIsIGVodDk5NngyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwNjpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDQsIGVodDk5Nng0LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwNzpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjZfNTIsIGVodDI2XzUyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwODpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjZfMTA2LCBlaHQyNl8xMDYsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA5OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ0ODRfMjQyLCBlaHQ0ODRfMjQyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjExMDpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2XzQ4NCwgZWh0OTk2XzQ4NCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTE6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5Nl80ODRfMjQyLCBlaHQ5OTZfNDg0XzI0MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTI6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngyXzQ4NCwgZWh0OTk2eDJfNDg0LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjExMzpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDMsIGVodDk5NngzLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjExNDpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDNfNDg0LCBlaHQ5OTZ4M180ODQsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTE1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0xMTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTg6bXQ3OTI1X3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTE5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTIwLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cXHUwMDNlcHJpdmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEyMTpcXHRzdHJ1Y3QgbXQ3OTI1X3R4cHdyICp0eHB3ciA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEyMi1cXHR1OCBiYW5kX2lkeCA9IGRldi1cXHUwMDNlbXBoeS5iYW5kX2lkeDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMzAtXFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTMxOlxcdHJldCA9IG10NzkyNV9nZXRfdHhwd3JfaW5mbyhkZXYsIGJhbmRfaWR4LCB0eHB3cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzMi1cXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzOC1cXHRcXHQgICBcXFwiIFxcXCIsIFxcXCIxbVxcXCIsIFxcXCIybVxcXCIsIFxcXCI1bVxcXCIsIFxcXCIxMW1cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTM5OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShDQ0ssIGNjaywgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQzLVxcdFxcdCAgIFxcXCI0OG1cXFwiLCBcXFwiNTRtXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0NDpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoT0ZETSwgb2ZkbSwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQ4LVxcdFxcdCAgIFxcXCJtY3M2XFxcIiwgXFxcIm1jczdcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTQ5OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIVDIwLCBodDIwLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNTMtXFx0XFx0ICAgXFxcIm1jczZcXFwiLCBcXFwibWNzN1xcXCIsIFxcXCJtY3MzMlxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNTQ6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhUNDAsIGh0NDAsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTU1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1OC1cXHRcXHQgICBcXFwibWNzNlxcXCIsIFxcXCJtY3M3XFxcIiwgXFxcIm1jczhcXFwiLCBcXFwibWNzOVxcXCIsIFxcXCJtY3MxMFxcXCIsIFxcXCJtY3MxMVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNTk6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KFZIVDIwLCB2aHQyMCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjA6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KFZIVDQwLCB2aHQ0MCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2MjpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUODAsIHZodDgwLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2MzpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUMTYwLCB2aHQxNjAsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjU6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFMjYsIGhlMjYsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY2OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTUyLCBoZTUyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2NzpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEUxMDYsIGhlMTA2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2ODpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEUyNDIsIGhlMjQyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2OTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU0ODQsIGhlNDg0LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTcxOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTk5NiwgaGU5OTYsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTcyOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTk5NngyLCBoZTk5NngyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTc0OlxcdG10NzkyNV9laHRfdHhwd3IocywgdHhwd3IsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTc1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTE4MT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE4MjptdDc5MjVfcG1fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE4My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjA1LVxcdHBtLVxcdTAwM2VlbmFibGVfdXNlciA9IHZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjA2OlxcdG10NzkyNV9zZXRfcnVudGltZV9wbShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMDctXFx0bXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LCBwbSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjE0PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjE1Om10NzkyNV9wbV9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIxNi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMjQ6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcG0sIG10NzkyNV9wbV9nZXQsIG10NzkyNV9wbV9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yMjY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMjc6bXQ3OTI1X2RlZXBfc2xlZXBfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIyOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjQyLVxcdHBtLVxcdTAwM2Vkc19lbmFibGUgPSBlbmFibGUgXFx1MDAyNlxcdTAwMjYgIW1vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI0MzpcXHRtdDc5MjVfbWN1X3NldF9kZWVwX3NsZWVwKGRldiwgcG0tXFx1MDAzZWRzX2VuYWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI0NC1vdXQ6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjUwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjUxOm10NzkyNV9kZWVwX3NsZWVwX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2MDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19kcywgbXQ3OTI1X2RlZXBfc2xlZXBfZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNjE6XFx0XFx0XFx0IG10NzkyNV9kZWVwX3NsZWVwX3NldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTI2Mz1ERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19wbV9pZGxlX3RpbWVvdXQsIG10NzkyeF9wbV9pZGxlX3RpbWVvdXRfZ2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjY2OnN0YXRpYyBpbnQgbXQ3OTI1X2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNzgtXFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mjc5OlxcdFxcdHJldCA9IG10NzkyNV9tY3VfY2hpcF9jb25maWcoZGV2LCBcXFwiYXNzZXJ0XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4MC1cXHRcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mjg3OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3Jlc2V0LCBOVUxMLCBtdDc5MjVfY2hpcF9yZXNldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI4OTppbnQgbXQ3OTI1X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTMwNi1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInR4cG93ZXJfc2t1XFxcIiwgZGlyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzozMDc6XFx0XFx0XFx0XFx0ICAgIG10NzkyNV90eHB3cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTMwOC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJ0eF9zdGF0c1xcXCIsIDA0MDAsIGRpciwgZGV2LCBcXHUwMDI2bXQ3OTJ4X3R4X3N0YXRzX2ZvcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTgtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Zpcm13YXJlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjk6I2luY2x1ZGUgXFxcIm10NzkyNS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMC0jaW5jbHVkZSBcXFwicmVnZC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNDpzdGF0aWMgc3NpemVfdCBtdDc5MjVfdGhlcm1hbF90ZW1wX3Nob3coc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNS1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yNC1cXHRcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShtZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjU6XFx0XFx0dGVtcGVyYXR1cmUgPSBtdDc5MjVfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yNi1cXHRcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShtZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0zNi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM3OnN0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFJfUk8odGVtcDFfaW5wdXQsIG10NzkyNV90aGVybWFsX3RlbXAsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0zOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6Mzk6c3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKm10NzkyNV9od21vbl9hdHRyc1tdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00MC1cXHRcXHUwMDI2c2Vuc29yX2Rldl9hdHRyX3RlbXAxX2lucHV0LmRldl9hdHRyLmF0dHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNDItfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NDM6QVRUUklCVVRFX0dST1VQUyhtdDc5MjVfaHdtb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NDU6c3RhdGljIGludCBtdDc5MjVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTQ2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy01My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NTQ6XFx0bmFtZSA9IGRldm1fa2FzcHJpbnRmKFxcdTAwMjZ3aXBoeS1cXHUwMDNlZGV2LCBHRlBfS0VSTkVMLCBcXFwibXQ3OTI1XyVzXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNTUtXFx0XFx0XFx0ICAgICAgd2lwaHlfbmFtZSh3aXBoeSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTU5LVxcdGh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoXFx1MDAyNndpcGh5LVxcdTAwM2VkZXYsIG5hbWUsIHBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NjA6XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIG10NzkyNV9od21vbl9ncm91cHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02MS1cXHRyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKGh3bW9uKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NjQ6c3RhdGljIHZvaWQgbXQ3OTI1X21hY19pbml0X2Jhc2ljX3JhdGVzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy03My1cXHRcXHQgICAgICAgRklFTERfUFJFUChNVF9UWF9SQVRFX0lEWCwgcmF0ZSBcXHUwMDI2IEdFTk1BU0soNywgMCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo3NDpcXHRcXHRtdDc5MjVfbWFjX3NldF9maXhlZF9yYXRlX3RhYmxlKGRldiwgaWR4LCByYXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNzUtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo3ODppbnQgbXQ3OTI1X21hY19pbml0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04Ni1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgTVQ3OTJ4X1dUQkxfU0laRTsgaSsrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo4NzpcXHRcXHRtdDc5MjVfbWFjX3d0YmxfdXBkYXRlKGRldiwgaSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtODgtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1dUQkxfVVBEQVRFX0FETV9DT1VOVF9DTEVBUik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjkyOlxcdG10NzkyNV9tYWNfaW5pdF9iYXNpY19yYXRlcyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05Ny19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjk4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV9tYWNfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMDA6c3RhdGljIGludCBfX210NzkyNV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEwMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMTI6XFx0cmV0ID0gbXQ3OTI1X21jdV9zZXRfZWVwcm9tKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExMy1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTE2OlxcdHJldCA9IG10NzkyNV9tYWNfaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMTctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjEyNDpzdGF0aWMgaW50IG10NzkyNV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEyNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTMwLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBNVDc5MnhfTUNVX0lOSVRfUkVUUllfQ09VTlQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMzE6XFx0XFx0cmV0ID0gX19tdDc5MjVfaW5pdF9oYXJkd2FyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMzItXFx0XFx0aWYgKCFyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNDY6c3RhdGljIHZvaWQgbXQ3OTI1X2luaXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNTI6XFx0cmV0ID0gbXQ3OTI1X2luaXRfaGFyZHdhcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTUzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTU2LVxcdG10NzZfc2V0X3N0cmVhbV9jYXBzKFxcdTAwMjZkZXYtXFx1MDAzZW1waHksIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNTc6XFx0bXQ3OTI1X3NldF9zdHJlYW1faGVfZWh0X2NhcHMoXFx1MDAyNmRldi1cXHUwMDNlcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTU4LVxcdG10NzkyeF9jb25maWdfbWFjX2FkZHJfbGlzdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE2MDpcXHRyZXQgPSBtdDc5MjVfaW5pdF9tbG9fY2FwcyhcXHUwMDI2ZGV2LVxcdTAwM2VwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNjEtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTczOlxcdHJldCA9IG10NzkyNV9pbml0X2RlYnVnZnMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTc0LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE3OTpcXHRyZXQgPSBtdDc5MjVfdGhlcm1hbF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4MC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxODU6XFx0cmV0ID0gbXQ3OTI1X21jdV9zZXRfdGhlcm1hbF9wcm90ZWN0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4Ni1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxOTQ6XFx0bXQ3OTI1X21jdV9zZXRfZGVlcF9zbGVlcChkZXYsIGRldi1cXHUwMDNlcG0uZHNfZW5hYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTk1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTk2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxOTc6aW50IG10NzkyNV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTk4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMDctXFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcG0ucHNfd29yaywgbXQ3OTJ4X3BtX3Bvd2VyX3NhdmVfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIwODpcXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VtbG9fcG1fd29yaywgbXQ3OTI1X21sb19wbV93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjA5LVxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VwbS53YWtlX3dvcmssIG10NzkyeF9wbV93YWtlX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIxNS1cXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5Lm1hY193b3JrLCBtdDc5MnhfbWFjX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMTY6XFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcGh5LnNjYW5fd29yaywgbXQ3OTI1X3NjYW5fd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIxNzpcXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2Vjb3JlZHVtcC53b3JrLCBtdDc5MjVfY29yZWR1bXBfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIxOC0jaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjE5OlxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VpcHY2X25zX3dvcmssIG10NzkyNV9zZXRfaXB2Nl9uc193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjIwLVxcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlaXB2Nl9uc19saXN0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIyNTpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcmVzZXRfd29yaywgbXQ3OTI1X21hY19yZXNldF93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjI2OlxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2Vpbml0X3dvcmssIG10NzkyNV9pbml0X3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIyODpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcGh5LnJvY193b3JrLCBtdDc5MjVfcm9jX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjktXFx0dGltZXJfc2V0dXAoXFx1MDAyNmRldi1cXHUwMDNlcGh5LnJvY190aW1lciwgbXQ3OTJ4X3JvY190aW1lciwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjU0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyNTU6XFx0aHctXFx1MDAzZXdpcGh5LVxcdTAwM2VyZWdfbm90aWZpZXIgPSBtdDc5MjVfcmVnZF9ub3RpZmllcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjU2LVxcdGRldi1cXHUwMDNlbXBoeS5zYmFuZF8yZy5zYmFuZC5odF9jYXAuY2FwIHw9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjgyLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjgzOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV9yZWdpc3Rlcl9kZXZpY2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvdGltZWtlZXBpbmcuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo3OiNpbmNsdWRlIFxcXCJtdDc5MjUuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04LSNpbmNsdWRlIFxcXCIuLi9kbWEuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzOmJvb2wgbXQ3OTI1X21hY193dGJsX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBpbnQgaWR4LCB1MzIgbWFzaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0yMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoyMjpzdGF0aWMgdm9pZCBtdDc5MjVfbWFjX3N0YV9wb2xsKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTgtXFx0XFx0aWR4ID0gbWxpbmstXFx1MDAzZXdjaWQuaWR4O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjU5OlxcdFxcdGFkZHIgPSBtdDc5MjVfbWFjX3d0YmxfbG1hY19hZGRyKGRldiwgaWR4LCBNVF9XVEJMX0FDMF9DVFRfT0ZGU0VUKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy02MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTc3LVxcdFxcdGlmIChjbGVhcikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjc4OlxcdFxcdFxcdG10NzkyNV9tYWNfd3RibF91cGRhdGUoZGV2LCBpZHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNzktXFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UX1dUQkxfVVBEQVRFX0FETV9DT1VOVF9DTEVBUik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIzOlxcdFxcdGFkZHIgPSBtdDc5MjVfbWFjX3d0YmxfbG1hY19hZGRyKGRldiwgaWR4LCA2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQtXFx0XFx0dmFsID0gbXQ3Nl9ycihkZXYsIGFkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNS1cXHRcXHRpZiAocmF0ZS1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBSQVRFX0lORk9fRkxBR1NfRUhUX01DUykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNjpcXHRcXHRcXHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgNSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI3LVxcdFxcdFxcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0MS1cXHRcXHQvKiBnZXQgc2lnbmFsIHN0cmVuZ3RoIG9mIHJlc3AgZnJhbWVzIChDVFMvQkEvQUNLKSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjE0MjpcXHRcXHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgMzQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0My1cXHRcXHR2YWwgPSBtdDc2X3JyKGRldiwgYWRkcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTU3OnZvaWQgbXQ3OTI1X21hY19zZXRfZml4ZWRfcmF0ZV90YWJsZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE1OC1cXHRcXHRcXHRcXHQgICAgIHU4IHRibF9pZHgsIHUxNiByYXRlX2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE2OC0vKiBUaGUgSFcgZG9lcyBub3QgdHJhbnNsYXRlIHRoZSBtYWMgaGVhZGVyIHRvIDgwMi4zIGZvciBtZXNoIHBvaW50ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTY5OnN0YXRpYyBpbnQgbXQ3OTI1X3JldmVyc2VfZnJhZzBfaGRyX3RyYW5zKHN0cnVjdCBza19idWZmICpza2IsIHUxNiBoZHJfZ2FwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE3MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0yNDg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjI0OTptdDc5MjVfbWFjX2ZpbGxfcnhfcmF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTI1MC1cXHRcXHRcXHRzdHJ1Y3QgbXQ3Nl9yeF9zdGF0dXMgKnN0YXR1cyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTM1Mz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MzU0Om10NzkyNV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTM1NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01MzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NTM0OlxcdFxcdHJldCA9IG10NzkyNV9tYWNfZmlsbF9yeF9yYXRlKGRldiwgc3RhdHVzLCBzYmFuZCwgcnh2LCBcXHUwMDI2bW9kZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTM1LVxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTQ3LVxcdGlmIChoZHJfdHJhbnMgXFx1MDAyNlxcdTAwMjYgaWVlZTgwMjExX2hhc19tb3JlZnJhZ3MoZmMpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NTQ4OlxcdFxcdGlmIChtdDc5MjVfcmV2ZXJzZV9mcmFnMF9oZHJfdHJhbnMoc2tiLCBoZHJfZ2FwKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01NDktXFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz02MjE9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo2MjI6bXQ3OTI1X21hY193cml0ZV90eHdpXzgwMjMoX19sZTMyICp0eHdpLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTYyMy1cXHRcXHRcXHQgICBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9NjU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NjU3Om10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIxMShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTY1OC1cXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTcyND12b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NzI1Om10NzkyNV9tYWNfd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTcyNi1cXHRcXHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODEzLVxcdGlmIChpc184MDIzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjgxNDpcXHRcXHRtdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMyh0eHdpLCBza2IsIHdjaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgxNS1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODE2OlxcdFxcdG10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIxMShkZXYsIHR4d2ksIHNrYiwga2V5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04MTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04MzYtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjgzNzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfbWFjX3dyaXRlX3R4d2kpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgzOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4Mzk6c3RhdGljIHZvaWQgbXQ3OTI1X3R4X2NoZWNrX2FnZ3Ioc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04NDAtXFx0XFx0XFx0XFx0IHN0cnVjdCBtdDc2X3djaWQgKndjaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz04OTQ9c3RhdGljIGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4OTU6bXQ3OTI1X21hY19hZGRfdHhzX3NrYihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTg5Ni1cXHRcXHQgICAgICAgaW50IHBpZCwgX19sZTMyICp0eHNfZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwMjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTAyODp2b2lkIG10NzkyNV9tYWNfYWRkX3R4cyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwMjkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDU2OlxcdG10NzkyNV9tYWNfYWRkX3R4c19za2IoZGV2LCB3Y2lkLCBwaWQsIHR4c19kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDU3LVxcdGlmICghd2NpZC1cXHUwMDNlc3RhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDY2OnZvaWQgbXQ3OTI1X3R4d2lfZnJlZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl90eHdpX2NhY2hlICp0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNjctXFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwODAtXFx0XFx0aWYgKGxpa2VseSh0LVxcdTAwM2Vza2ItXFx1MDAzZXByb3RvY29sICE9IGNwdV90b19iZTE2KEVUSF9QX1BBRSkpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwODE6XFx0XFx0XFx0bXQ3OTI1X3R4X2NoZWNrX2FnZ3Ioc3RhLCB0LVxcdTAwM2Vza2IsIHdjaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwODItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDkyLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDkzOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV90eHdpX2ZyZWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MTA5NT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwOTY6bXQ3OTI1X21hY190eF9mcmVlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA5Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExNjI6XFx0XFx0XFx0bXQ3OTI1X3R4d2lfZnJlZShkZXYsIHR4d2ksIHN0YSwgd2NpZCwgXFx1MDAyNmZyZWVfbGlzdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE2My1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExNjY6XFx0bXQ3OTI1X21hY19zdGFfcG9sbChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExNjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExNzk6Ym9vbCBtdDc5MjVfcnhfY2hlY2soc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExODAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE5Ny1cXHRcXHQvKiBQS1RfVFlQRV9UWFJYX05PVElGWSBjYW4gYmUgcmVjZWl2ZWQgb25seSBieSBtbWlvIGRldmljZXMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTk4OlxcdFxcdG10NzkyNV9tYWNfdHhfZnJlZShkZXYsIGRhdGEsIGxlbik7IC8qIG1taW8gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTk5LVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDEtXFx0XFx0Zm9yIChyeGQgKz0gNDsgcnhkICsgMTIgXFx1MDAzYz0gZW5kOyByeGQgKz0gMTIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwMjpcXHRcXHRcXHRtdDc5MjVfbWFjX2FkZF90eHMoZGV2LCByeGQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDMtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIwNy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwODpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfcnhfY2hlY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIxMDp2b2lkIG10NzkyNV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIxMS1cXHRcXHRcXHQgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICppbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIzNC1cXHRcXHQvKiBQS1RfVFlQRV9UWFJYX05PVElGWSBjYW4gYmUgcmVjZWl2ZWQgb25seSBieSBtbWlvIGRldmljZXMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjM1OlxcdFxcdG10NzkyNV9tYWNfdHhfZnJlZShkZXYsIHNrYi1cXHUwMDNlZGF0YSwgc2tiLVxcdTAwM2VsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMzYtXFx0XFx0bmFwaV9jb25zdW1lX3NrYihza2IsIDEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIzOC1cXHRjYXNlIFBLVF9UWVBFX1JYX0VWRU5UOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMzk6XFx0XFx0bXQ3OTI1X21jdV9yeF9ldmVudChkZXYsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI0MC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDItXFx0XFx0Zm9yIChyeGQgKz0gMjsgcnhkICsgOCBcXHUwMDNjPSBlbmQ7IHJ4ZCArPSA4KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNDM6XFx0XFx0XFx0bXQ3OTI1X21hY19hZGRfdHhzKGRldiwgcnhkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQ0LVxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDctXFx0Y2FzZSBQS1RfVFlQRV9OT1JNQUw6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI0ODpcXHRcXHRpZiAoIW10NzkyNV9tYWNfZmlsbF9yeChkZXYsIHNrYikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQ5LVxcdFxcdFxcdG10NzZfcngoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgcSwgc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNTctfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X3F1ZXVlX3J4X3NrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0xMjYwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI2MTptdDc5MjVfdmlmX2Nvbm5lY3RfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNjItXFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyODEtXFx0XFx0XFx0XFx0XFx0ICAgIFxcdTAwMjZtdmlmLVxcdTAwM2VzdGEuZGVmbGluay53Y2lkLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjgyOlxcdFxcdG10NzkyNV9tY3Vfc2V0X3R4KGRldiwgYnNzX2NvbmYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyODMtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI4Ny1cXHRcXHRcXHRcXHRcXHQgICAgdHJ1ZSwgTlVMTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI4ODpcXHRcXHRtdDc5MjVfbWN1X3N0YV91cGRhdGUoZGV2LCBOVUxMLCB2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI4OS1cXHRcXHRcXHRcXHQgICAgICBcXHUwMDI2bXZpZi1cXHUwMDNlc3RhLmRlZmxpbmssIHRydWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5MC1cXHRcXHRcXHRcXHQgICAgICBNVDc2X1NUQV9JTkZPX1NUQVRFX05PTkUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyOTE6XFx0XFx0bXQ3OTI1X21jdV91bmlfYWRkX2JlYWNvbl9vZmZsb2FkKGRldiwgaHcsIHZpZiwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5Mi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjk1LS8qIHN5c3RlbSBlcnJvciByZWNvdmVyeSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyOTY6dm9pZCBtdDc5MjVfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMzNi1cXHRcXHRcXHRcXHRcXHQgICAgSUVFRTgwMjExX0lGQUNFX0lURVJfUkVTVU1FX0FMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzM3OlxcdFxcdFxcdFxcdFxcdCAgICBtdDc5MjVfdmlmX2Nvbm5lY3RfaXRlciwgTlVMTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMzOC1cXHRtdDc2X2Nvbm5hY19wb3dlcl9zYXZlX3NjaGVkKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucGh5LCBwbSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzQwOlxcdG10NzkyNV9yZWdkX2NoYW5nZShcXHUwMDI2ZGV2LVxcdTAwM2VwaHksIFxcXCIwMFxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDEtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM0Mzp2b2lkIG10NzkyNV9jb3JlZHVtcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM3MTpcXHRcXHRza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgbXQ3OTI1X21jdV9yeGQpICsgOCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTM3Mi1cXHRcXHRpZiAoIWR1bXAgfHwgZGF0YSArIHNrYi1cXHUwMDNlbGVuIC0gZHVtcCBcXHUwMDNlIE1UNzZfQ09OTkFDX0NPUkVEVU1QX1NaKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0xMzkxPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM5MjptdDc5MjVfdXNiX3NkaW9fd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMzowMzo1Ni42NzMyNTEwNzJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDg5MTA0MzQyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBgbXQ3OTI1YCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBtdDc5MjVgIGRyaXZlci4gR29vZCBuZXdzIOKAkyBpdCBoYXMgYm90aCBhIFBDSSB2YXJpYW50IChgbXQ3OTI1ZWApIGFuZCBhIFVTQiB2YXJpYW50IChgbXQ3OTI1dWApLiBUaGUgVVNCIHZhcmlhbnQgaXMga2V5LCBiZWNhdXNlIHRoYXQgbWVhbnMgSSBjYW4gbGV2ZXJhZ2Ugc3l6a2FsbGVyJ3MgZHVtbXkgSENEIGZvciBVU0IgZnV6emluZy4gVGhhdCBtYWtlcyB0aGlzIGRyaXZlciByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB3aGljaCBpcyBpZGVhbCBmb3IgZWZmaWNpZW50IHRlc3RpbmcuXG5cblRoZSBwYXRjaCBJJ20gZXhhbWluaW5nIG1vZGlmaWVzIHRoZSBgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZWAgZnVuY3Rpb24gd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNgLiBMZXQncyByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGF0IGNvZGUgYmxvY2s6XG5cbmBgYGNcbitzdGF0aWMgdm9pZCBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuK1x0XHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbitcdFx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4re1xuK1x0c3RydWN0IG10NzZfcGh5ICpwaHkgPSBody1cdTAwM2Vwcml2O1xuK1x0c3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuK1x0c3RydWN0IG10NzZfd2NpZCAqd2NpZCA9IChzdHJ1Y3QgbXQ3Nl93Y2lkICopc3RhLVx1MDAzZWRydl9wcml2O1xuK1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuK1x0c3Bpbl9sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VzdGF0dXNfbG9jayk7XG4rXG4rXHRpZiAoaWVlZTgwMjExX3ZpZl9pc19tbGQodmlmKSkge1xuK1x0XHRzdHJ1Y3QgbXQ3OTJ4X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTJ4X3N0YSAqKXN0YS1cdTAwM2VkcnZfcHJpdjtcbitcdFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG4rXHRcdHVuc2lnbmVkIGxvbmcgdmFsaWQgPSBtdmlmLVx1MDAzZXZhbGlkX2xpbmtzO1xuK1x0XHRzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluaztcbitcdFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XG4rXG4rXHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2dmFsaWQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xuK1x0XHRcdG1saW5rID0gbXQ3OTJ4X3N0YV90b19saW5rKG1zdGEsIGxpbmtfaWQpO1xuK1x0XHRcdGlmICghbWxpbmsgfHwgIW1saW5rLVx1MDAzZXdjaWQuc3RhKVxuK1x0XHRcdFx0Y29udGludWU7XG4rXHRcdFx0aWYgKG1saW5rLVx1MDAzZXdjaWQuaWR4IFx1MDAzYyBBUlJBWV9TSVpFKGRldi1cdTAwM2V3Y2lkKSlcbitcdFx0XHRcdHJjdV9hc3NpZ25fcG9pbnRlcihkZXYtXHUwMDNld2NpZFttbGluay1cdTAwM2V3Y2lkLmlkeF0sXG4rXHRcdFx0XHRcdFx0ICAgTlVMTCk7XG4rXHRcdH1cbitcdH0gZWxzZSB7XG4rXHRcdHJjdV9hc3NpZ25fcG9pbnRlcihkZXYtXHUwMDNld2NpZFt3Y2lkLVx1MDAzZWlkeF0sIE5VTEwpO1xuK1x0fVxuK1xuK1x0c3Bpbl91bmxvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXN0YXR1c19sb2NrKTtcbitcdG11dGV4X3VubG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuK31cbmBgYFxuXG5SaWdodCwgaXQncyByZXNwb25zaWJsZSBmb3IgdGhlIFJDVSByZW1vdmFsIG9mIGEgc3RhdGlvbiwgd2l0aCBzcGVjaWZpYyBoYW5kbGluZyBmb3IgTXVsdGktTGluayBEZXZpY2UgKE1MRCkgZnVuY3Rpb25hbGl0eS4gVGhpcyBpcyBkZWZpbml0ZWx5IGZ1bmN0aW9uYWwgY29kZSB0aGF0IHJlcXVpcmVzIGZ1enppbmcuIFdlIG5lZWQgdG8gZXhwb3NlIGl0cyBsb2dpYyB0byBmdXp6aW5nIHRvIGVuc3VyZSBjb3JyZWN0bmVzcyBhbmQgaWRlbnRpZnkgdnVsbmVyYWJpbGl0aWVzLlxuXG5Ob3csIHdoYXQgYWJvdXQgdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uPyAgSSdsbCBuZWVkIGBDT05GSUdfTVQ3OTI1VWAgdG8gZW5hYmxlIHRoZSBVU0IgdmFyaWFudC4gV2hpbGUgYENPTkZJR19NVDc5MjVFYCAoUENJKSBpcyBhbiBvcHRpb24sIHRoZSBVU0IgdmFyaWFudCBvZmZlcnMgdGhlIG1vc3Qgc3RyYWlnaHRmb3J3YXJkIHBhdGggZm9yIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuIFRpbWUgdG8gY2hlY2sgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWdgIG9yIHNpbWlsYXIgZmlsZXMgdG8gdmVyaWZ5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDI4NCwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc3MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMzowNDowNy41NjQyOTczNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDIyMzQ5NjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyNVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzoyOmNvbmZpZyBNVDc5MjVfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzo3OmNvbmZpZyBNVDc5MjVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy04LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjVFIChQQ0llKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0xOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnOjE5OmNvbmZpZyBNVDc5MjVVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMC1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTI1VSAoVVNCKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMzowNDowNy43MDY1NDYyODVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDE3MTYwMjk2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHF1aWNrIHRha2Ugb24gd2hhdCBJJ20gdGhpbmtpbmcsIGJhc2VkIG9uIHRoYXQgaW5wdXQuXG5cbioqRW5hYmxpbmcgTVQ3OTI1IERyaXZlcnMqKlxuXG5SaWdodCwgc28gdGhlIHBsYW4gaXMgdG8gZ2V0IHRoZSBgTVQ3OTI1VWAgYW5kIGBNVDc5MjVFYCBkcml2ZXJzIGVuYWJsZWQuIFNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIEJlZm9yZSBJIGRpdmUgdG9vIGRlZXAsIEkgc2hvdWxkIHF1aWNrbHkgdmVyaWZ5IGlmIGBNVDc5MjVfQ09NTU9OYCBpcyBhY3R1YWxseSByZXF1aXJlZCBkaXJlY3RseS4gSXQgbG9va3MgbGlrZSB0aGUgb3RoZXIgb3B0aW9ucyBtaWdodCBwdWxsIHRoYXQgaW4gYXV0b21hdGljYWxseSwgYnV0IGEgcXVpY2sgY29uZmlybWF0aW9uIGlzIGFsd2F5cyBzbWFydCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBkZXBlbmRlbmNpZXMgb3IgY29uZmxpY3RzIGxhdGVyIG9uLiBUaGVuLCBsZXQncyBqdXN0IG1ha2Ugc3VyZSBJIGhhdmUgdGhlIGZ1bGwgcGljdHVyZSwgYW5kIGNoZWNrIHdoYXQgYE1UNzkyNVVgIGRlcGVuZHMgb24uIEkgbmVlZCB0byBiZSBhd2FyZSBvZiB3aGF0IG90aGVyIHNldHRpbmdzIG9yIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zIHRoZXNlIGRyaXZlcnMgcmVseSBvbi4gR290dGEgdGhpbmsgYWhlYWQgYW5kIG1ha2Ugc3VyZSBhbGwgdGhlIHBpZWNlcyBmaXQgdG9nZXRoZXIgYmVmb3JlIEkgbWFrZSBhbnkgZmluYWwgZGVjaXNpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjIzMCwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEzOjA0OjIxLjg3ODE1MzI4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0MzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBNVDc5MjVfQ09NTU9OXFxuICAgMzpcXHRcXHR0cmlzdGF0ZVxcbiAgIDQ6XFx0XFx0c2VsZWN0IE1UNzkyeF9MSUJcXG4gICA1OlxcdFxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbiAgIDY6XFx0XFxuICAgNzpcXHRjb25maWcgTVQ3OTI1RVxcbiAgIDg6XFx0XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyNUUgKFBDSWUpIHN1cHBvcnRcXFwiXFxuICAgOTpcXHRcXHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxcbiAgMTA6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgMTE6XFx0XFx0ZGVwZW5kcyBvbiBQQ0lcXG4gIDEyOlxcdFxcdGhlbHBcXG4gIDEzOlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyNS1iYXNlZCB3aXJlbGVzcyBQQ0llIGRldmljZXMsXFxuICAxNDpcXHRcXHQgIHdoaWNoIHN1cHBvcnQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZVxcbiAgMTU6XFx0XFx0ICAyeDI6MlNTIDQwOTYtUUFNLCAxNjBNSHogY2hhbm5lbHMuXFxuICAxNjpcXHRcXG4gIDE3OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG4gIDE4OlxcdFxcbiAgMTk6XFx0Y29uZmlnIE1UNzkyNVVcXG4gIDIwOlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjVVIChVU0IpIHN1cHBvcnRcXFwiXFxuICAyMTpcXHRcXHRzZWxlY3QgTVQ3OTJ4X1VTQlxcbiAgMjI6XFx0XFx0c2VsZWN0IE1UNzkyNV9DT01NT05cXG4gIDIzOlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gIDI0OlxcdFxcdGRlcGVuZHMgb24gVVNCXFxuICAyNTpcXHRcXHRoZWxwXFxuICAyNjpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjUtYmFzZWQgd2lyZWxlc3MgVVNCIGRldmljZXMsXFxuICAyNzpcXHRcXHQgIHdoaWNoIHN1cHBvcnQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZVxcbiAgMjg6XFx0XFx0ICAyeDI6MlNTIDQwOTYtUUFNLCAxNjBNSHogY2hhbm5lbHMuXFxuICAyOTpcXHRcXG4gIDMwOlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTM6MDQ6MjEuODc4MjgwNzhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNzQ3NjU5NTg3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBNVDc5MjUgUkNVIFJlbW92YWwgUGF0Y2gqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgd2UncmUgbG9va2luZyBhdCBjb25maWd1cmF0aW9ucyBgTVQ3OTI1VWAgYW5kIGBNVDc5MjVFYC4gVGhlIGNydWNpYWwgZnVuY3Rpb24gaGVyZSBpcyBgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZWAuIEkgZG9uJ3Qgc2VlIGFueSBvdGhlciBmdW5jdGlvbnMgaW1wbGljYXRlZCBpbiB0aGUgZGVzY3JpcHRpb24sIHNvIHRoYXQgc2VlbXMgdG8gYmUgdGhlIGNvcmUgb2YgdGhlIG1hdHRlci4gSnVzdCB0byBiZSB0aG9yb3VnaCwgSSdtIGNvbmZpcm1pbmcgdGhhdCB0aGUgcGF0Y2ggKm9ubHkqIGludHJvZHVjZXMgYG10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmVgIGFuZCBhc3NpZ25zIGl0IHRvIGAuc3RhX3ByZV9yY3VfcmVtb3ZlYCB3aXRoaW4gYG10NzkyNV9vcHNgLlxuXG5UaGUgcmVhc29uaW5nIGlzIHByZXR0eSBjbGVhcjogVGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgaW1wbGVtZW50aW5nIFJDVSByZW1vdmFsIGZvciBzdGF0aW9ucyB3aXRoaW4gdGhlIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIHdpdGggc3BlY2lmaWMgY29uc2lkZXJhdGlvbnMgZm9yIE11bHRpLUxpbmsgRGV2aWNlIChNTEQpIGxvZ2ljLiBUaGUga2V5IGRldGFpbCwgYW5kIHRoaXMgaXMgaW1wb3J0YW50IGZvciBmdXp6aW5nLCBpcyB0aGF0IHRoZSBNVDc5MjUgaGFzIGEgVVNCIHZhcmlhbnQuIFRoYXQgbWVhbnMgd2UgY2FuIGdldCB0byBpdCB0aHJvdWdoIGEgZHVtbXkgSENEIHNldHVwLCBvcGVuaW5nIHRoZSBkb29yIGZvciBmdXp6aW5nLlxuXG5MZXQncyBzdW1tYXJpemUgdGhpcyBjb25jaXNlbHk6XG5cbiogICAqKldvcnRoRnV6emluZzoqKiBUcnVlXG4qICAgKipGb2N1c1N5bWJvbHM6KiogYFtcIm10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmVcIl1gXG4qICAgKipFbmFibGVDb25maWdzOioqIGBbXCJNVDc5MjVVXCIsIFwiTVQ3OTI1RVwiXWBcbiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggYWRkcyB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJDVSByZW1vdmFsIG9mIHN0YXRpb25zIHdpdGhpbiB0aGUgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciwgaW5jbHVkaW5nIGhhbmRsaW5nIGZvciBNdWx0aS1MaW5rIERldmljZXMgKE1MRCkuIEltcG9ydGFudGx5LCBpdCBoYXMgYSBVU0IgdmFyaWFudCwgbXQ3OTI1dSwgd2hpY2ggbWFrZXMgZnV6emluZyB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXkgSENEKSB2aWFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDA2LCJPdXRwdXRUb2tlbnMiOjEyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEzOjA0OjM5LjM1NDg4MjY2OFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NDY0NTM5NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTI1VVwiLFxuICAgIFwiTVQ3OTI1RVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJDVSByZW1vdmFsIG9mIHN0YXRpb25zIGluIHRoZSBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyLCBpbmNsdWRpbmcgaGFuZGxpbmcgZm9yIE11bHRpLUxpbmsgRGV2aWNlcyAoTUxEKS4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXkgSENEKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjVVXCIsXG4gICAgXCJNVDc5MjVFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgZnVuY3Rpb25hbCBsb2dpYyBmb3IgUkNVIHJlbW92YWwgb2Ygc3RhdGlvbnMgaW4gdGhlIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIGluY2x1ZGluZyBoYW5kbGluZyBmb3IgTXVsdGktTGluayBEZXZpY2VzIChNTEQpLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChtdDc5MjV1KSB3aGljaCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChkdW1teSBIQ0QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow58d2b[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-30 12:53:29 +0000 UTC FinishedAt: 2026-06-30 13:04:41 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "795f1b1a91ae13ebc012a364075e42f486a1cafe", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7925U", "MT7925E" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "795f1b1a91ae13ebc012a364075e42f486a1cafe", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7925U", "MT7925E" ], "series_id": "f37927de-99c5-4593-9b2b-dd87501d38d0" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt7925_sta_pre_rcu_remove" ], "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+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjAzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyNVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1RSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBmdW5jdGlvbmFsIGxvZ2ljIGZvciBSQ1UgcmVtb3ZhbCBvZiBzdGF0aW9ucyBpbiB0aGUgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciwgaW5jbHVkaW5nIGhhbmRsaW5nIGZvciBNdWx0aS1MaW5rIERldmljZXMgKE1MRCkuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGR1bW15IEhDRCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTM6MDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzYWI2NDE0ZDczMzNkMGQ0MDNjYTZlMDlmYTBjMzE5Y2ZmZmFjZDVhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTM6MDM6MjEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXG5pbmRleCA3M2QzNzIyNzM5ZDBhOC4uZTNmYjYzOTJlZGEyNGEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xuQEAgLTI0MTAsNiAmIzQzOzI0MTAsNDAgQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NoYW5uZWxfc3dpdGNoX3J4X2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiBcdH1cbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIG10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4mIzQzO1x0XHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbiYjNDM7XHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IG10NzZfcGh5ICpwaHkgPSBody1cdTAwM2Vwcml2O1xuJiM0MztcdHN0cnVjdCBtdDc2X2RldiAqZGV2ID0gcGh5LVx1MDAzZWRldjtcbiYjNDM7XHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkID0gKHN0cnVjdCBtdDc2X3djaWQgKilzdGEtXHUwMDNlZHJ2X3ByaXY7XG4mIzQzO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2ZGV2LVx1MDAzZW11dGV4KTtcbiYjNDM7XHRzcGluX2xvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXN0YXR1c19sb2NrKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGllZWU4MDIxMV92aWZfaXNfbWxkKHZpZikpIHtcbiYjNDM7XHRcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLVx1MDAzZWRydl9wcml2O1xuJiM0MztcdFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG4mIzQzO1x0XHR1bnNpZ25lZCBsb25nIHZhbGlkID0gbXZpZi1cdTAwM2V2YWxpZF9saW5rcztcbiYjNDM7XHRcdHN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rO1xuJiM0MztcdFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XG4mIzQzO1xuJiM0MztcdFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcdTAwMjZ2YWxpZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XG4mIzQzO1x0XHRcdG1saW5rID0gbXQ3OTJ4X3N0YV90b19saW5rKG1zdGEsIGxpbmtfaWQpO1xuJiM0MztcdFx0XHRpZiAoIW1saW5rIHx8ICFtbGluay1cdTAwM2V3Y2lkLnN0YSlcbiYjNDM7XHRcdFx0XHRjb250aW51ZTtcbiYjNDM7XHRcdFx0aWYgKG1saW5rLVx1MDAzZXdjaWQuaWR4IFx1MDAzYyBBUlJBWV9TSVpFKGRldi1cdTAwM2V3Y2lkKSlcbiYjNDM7XHRcdFx0XHRyY3VfYXNzaWduX3BvaW50ZXIoZGV2LVx1MDAzZXdjaWRbbWxpbmstXHUwMDNld2NpZC5pZHhdLFxuJiM0MztcdFx0XHRcdFx0XHQgICBOVUxMKTtcbiYjNDM7XHRcdH1cbiYjNDM7XHR9IGVsc2Uge1xuJiM0MztcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKGRldi1cdTAwM2V3Y2lkW3djaWQtXHUwMDNlaWR4XSwgTlVMTCk7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlc3RhdHVzX2xvY2spO1xuJiM0MztcdG11dGV4X3VubG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuJiM0Mzt9XG4mIzQzO1xuIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkyNV9vcHMgPSB7XG4gXHQudHggPSBtdDc5MnhfdHgsXG4gXHQuc3RhcnQgPSBtdDc5MjVfc3RhcnQsXG5AQCAtMjQyMiw3ICYjNDM7MjQ1Niw3IEBAIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkyNV9vcHMgPSB7XG4gXHQuc3RhcnRfYXAgPSBtdDc5MjVfc3RhcnRfYXAsXG4gXHQuc3RvcF9hcCA9IG10NzkyNV9zdG9wX2FwLFxuIFx0LnN0YV9zdGF0ZSA9IG10NzZfc3RhX3N0YXRlLFxuLVx0LnN0YV9wcmVfcmN1X3JlbW92ZSA9IG10NzZfc3RhX3ByZV9yY3VfcmVtb3ZlLFxuJiM0MztcdC5zdGFfcHJlX3JjdV9yZW1vdmUgPSBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlLFxuIFx0LnNldF9rZXkgPSBtdDc5MjVfc2V0X2tleSxcbiBcdC5zdGFfc2V0X2RlY2FwX29mZmxvYWQgPSBtdDc5MjVfc3RhX3NldF9kZWNhcF9vZmZsb2FkLFxuICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjAzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyNVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1RSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBmdW5jdGlvbmFsIGxvZ2ljIGZvciBSQ1UgcmVtb3ZhbCBvZiBzdGF0aW9ucyBpbiB0aGUgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciwgaW5jbHVkaW5nIGhhbmRsaW5nIGZvciBNdWx0aS1MaW5rIERldmljZXMgKE1MRCkuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKG10NzkyNXUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGR1bW15IEhDRCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDNhYjY0MTRkNzMzM2QwZDQwM2NhNmUwOWZhMGMzMTljZmZmYWNkNWEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAzMCAxMzowMzoyMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYwppbmRleCA3M2QzNzIyNzM5ZDBhOC4uZTNmYjYzOTJlZGEyNGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMKQEAgLTI0MTAsNiAmIzQzOzI0MTAsNDAgQEAgc3RhdGljIHZvaWQgbXQ3OTI1X2NoYW5uZWxfc3dpdGNoX3J4X2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKIAl9CiB9CiAKJiM0MztzdGF0aWMgdm9pZCBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LAomIzQzOwkJCQkgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLAomIzQzOwkJCQkgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKQomIzQzO3sKJiM0MzsJc3RydWN0IG10NzZfcGh5ICpwaHkgPSBody0mZ3Q7cHJpdjsKJiM0MzsJc3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktJmd0O2RldjsKJiM0MzsJc3RydWN0IG10NzZfd2NpZCAqd2NpZCA9IChzdHJ1Y3QgbXQ3Nl93Y2lkICopc3RhLSZndDtkcnZfcHJpdjsKJiM0MzsKJiM0MzsJbXV0ZXhfbG9jaygmYW1wO2Rldi0mZ3Q7bXV0ZXgpOwomIzQzOwlzcGluX2xvY2tfYmgoJmFtcDtkZXYtJmd0O3N0YXR1c19sb2NrKTsKJiM0MzsKJiM0MzsJaWYgKGllZWU4MDIxMV92aWZfaXNfbWxkKHZpZikpIHsKJiM0MzsJCXN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLSZndDtkcnZfcHJpdjsKJiM0MzsJCXN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLSZndDtkcnZfcHJpdjsKJiM0MzsJCXVuc2lnbmVkIGxvbmcgdmFsaWQgPSBtdmlmLSZndDt2YWxpZF9saW5rczsKJiM0MzsJCXN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rOwomIzQzOwkJdW5zaWduZWQgaW50IGxpbmtfaWQ7CiYjNDM7CiYjNDM7CQlmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsICZhbXA7dmFsaWQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykgewomIzQzOwkJCW1saW5rID0gbXQ3OTJ4X3N0YV90b19saW5rKG1zdGEsIGxpbmtfaWQpOwomIzQzOwkJCWlmICghbWxpbmsgfHwgIW1saW5rLSZndDt3Y2lkLnN0YSkKJiM0MzsJCQkJY29udGludWU7CiYjNDM7CQkJaWYgKG1saW5rLSZndDt3Y2lkLmlkeCAmbHQ7IEFSUkFZX1NJWkUoZGV2LSZndDt3Y2lkKSkKJiM0MzsJCQkJcmN1X2Fzc2lnbl9wb2ludGVyKGRldi0mZ3Q7d2NpZFttbGluay0mZ3Q7d2NpZC5pZHhdLAomIzQzOwkJCQkJCSAgIE5VTEwpOwomIzQzOwkJfQomIzQzOwl9IGVsc2UgewomIzQzOwkJcmN1X2Fzc2lnbl9wb2ludGVyKGRldi0mZ3Q7d2NpZFt3Y2lkLSZndDtpZHhdLCBOVUxMKTsKJiM0MzsJfQomIzQzOwomIzQzOwlzcGluX3VubG9ja19iaCgmYW1wO2Rldi0mZ3Q7c3RhdHVzX2xvY2spOwomIzQzOwltdXRleF91bmxvY2soJmFtcDtkZXYtJmd0O211dGV4KTsKJiM0Mzt9CiYjNDM7CiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5MjVfb3BzID0gewogCS50eCA9IG10NzkyeF90eCwKIAkuc3RhcnQgPSBtdDc5MjVfc3RhcnQsCkBAIC0yNDIyLDcgJiM0MzsyNDU2LDcgQEAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTI1X29wcyA9IHsKIAkuc3RhcnRfYXAgPSBtdDc5MjVfc3RhcnRfYXAsCiAJLnN0b3BfYXAgPSBtdDc5MjVfc3RvcF9hcCwKIAkuc3RhX3N0YXRlID0gbXQ3Nl9zdGFfc3RhdGUsCi0JLnN0YV9wcmVfcmN1X3JlbW92ZSA9IG10NzZfc3RhX3ByZV9yY3VfcmVtb3ZlLAomIzQzOwkuc3RhX3ByZV9yY3VfcmVtb3ZlID0gbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZSwKIAkuc2V0X2tleSA9IG10NzkyNV9zZXRfa2V5LAogCS5zdGFfc2V0X2RlY2FwX29mZmxvYWQgPSBtdDc5MjVfc3RhX3NldF9kZWNhcF9vZmZsb2FkLAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjAzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NjMKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyNjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNVDc5MjUgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jYC4gSXQmIzM5O3MgYWRkaW5nIGBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlYCBhbmQgbGlua2luZyBpdCB1cCB0byBgLnN0YV9wcmVfcmN1X3JlbW92ZWAgd2l0aGluIGBtdDc5MjVfb3BzYC4gU3RhbmRhcmQgc3R1ZmYsIHNldHRpbmcgdXAgYSBob29rIGZvciBzdGF0aW9uIHJlbW92YWwsIG5vdGhpbmcgaW1tZWRpYXRlbHkgYWxhcm1pbmcuIFRoaXMgaXMgdGhlIE1lZGlhdGVrIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIHJhaXNlcyB0aGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGluIG15IG1pbmQ6IGNhbiBJIGFjdHVhbGx5IHRyaWdnZXIgdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBXaXJlbGVzcyBkcml2ZXJzIGFyZSBub3RvcmlvdXNseSBoYXJkd2FyZS1zcGVjaWZpYywgdXN1YWxseSByZXF1aXJpbmcgdGhlIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZSBvciBhIHJvYnVzdCBlbXVsYXRvci4KCk1hYzgwMjExX2h3c2ltIGNvbWVzIHRvIG1pbmQsIGJ1dCB0aGF0JiMzOTtzIGEgKmdlbmVyaWMqIG1hYzgwMjExIGVtdWxhdG9yLiBJdCB3b3VsZG4mIzM5O3QgZGlyZWN0bHkgZW11bGF0ZSB0aGUgTVQ3OTI1IHNwZWNpZmljYWxseS4gVW5sZXNzIHRoZXJlJiMzOTtzIHNvbWUgb2JzY3VyZSBVU0Igb3IgUENJIGVtdWxhdG9yIG91dCB0aGVyZSBmb3IgdGhlIE1UNzkyNS4uLiB3YWl0LCBpcyB0aGlzIGRldmljZSBVU0I/IElmIHNvLCBJIGNvdWxkIHBvdGVudGlhbGx5IGZ1enogaXQgd2l0aCBhIGR1bW15IEhDRCwgYXMgU3l6a2FsbGVyIGRvZXMgaGF2ZSBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMuIEkgbmVlZCB0byBxdWlja2x5IGNoZWNrLiBJJiMzOTtsbCBmaXJlIHVwIGBncmVwcGVyYCBhbmQgc2VlIGlmIGBtdDc5MjVgIGFwcGVhcnMgaW4gdGhlIFVTQiBzZWN0aW9uIHdpdGhpbiB0aGF0IGRyaXZlciBwYXRoLiBMZXQmIzM5O3Mgc2VlIGlmIHRoaXMgaXMgc29tZXRoaW5nIEkgY2FuIGFjdHVhbGx5IGhpdCBlYXNpbHkgaW4gYSB2aXJ0dWFsIHNldHRpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTM6MDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTI1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMTUyIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZS0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgJiM0Mzs9IG10NzkyNS1jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfTVQ3OTI1RSkgJiM0Mzs9IG10NzkyNWUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfTVQ3OTI1VSkgJiM0Mzs9IG10NzkyNXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGUtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjc6bXQ3OTI1LWNvbW1vbi15IDo9IG1hYy5vIG1jdS5vIHJlZ2QubyBtYWluLm8gaW5pdC5vIGRlYnVnZnMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6ODptdDc5MjUtY29tbW9uLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo5Om10NzkyNWUteSA6PSBwY2kubyBwY2lfbWFjLm8gcGNpX21jdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZToxMDptdDc5MjV1LXkgOj0gdXNiLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo0OiNpbmNsdWRlIFwmIzM0O210NzkyNS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNS0jaW5jbHVkZSBcJiMzNDttY3UuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz03PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4Om10NzkyNV9yZWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzLVx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNDpcdG10NzkyNV9tY3VfcmVndmFsKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcsIFx1MDAyNnJlZ3ZhbCwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTUtXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yMD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjE6bXQ3OTI1X3JlZ19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNy1cdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mjg6XHRyZXQgPSBtdDc5MjVfbWN1X3JlZ3ZhbChkZXYsIGRldi1cdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcdTAwMjZyZWd2YWwsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOS1cdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjM2OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JlZ3ZhbCwgbXQ3OTI1X3JlZ19nZXQsIG10NzkyNV9yZWdfc2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTM3LVx0XHRcdCBcJiMzNDsweCUwOGxseFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9Mzg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjM5Om10NzkyNV9md19kZWJ1Z19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy00MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTQ1LVx0ZGV2LVx1MDAzZWZ3X2RlYnVnID0gKHU4KXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo0NjpcdG10NzkyNV9tY3VfZndfbG9nXzJfaG9zdChkZXYsIGRldi1cdTAwM2Vmd19kZWJ1Zyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNDctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTUzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo1NDptdDc5MjVfZndfZGVidWdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTU1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjM6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWcsIG10NzkyNV9md19kZWJ1Z19nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjQ6XHRcdFx0IG10NzkyNV9md19kZWJ1Z19zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTY1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz02OD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjY5Om10NzkyNV9zZXFfcHV0c19hcnJheShzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKnN0cixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy03MC1cdFx0ICAgICAgczggdmFsW11bMl0sIGludCBsZW4sIHU4IGJhbmRfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy04Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo4MzojZGVmaW5lIG10NzkyNV9wcmludF90eHB3cl9lbnRyeShwcmVmaXgsIHJhdGUsIGlkeClcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtODQtKHtcdFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6ODU6XHRtdDc5MjVfc2VxX3B1dHNfYXJyYXkocywgI3ByZWZpeCBcJiMzNDsgKHRtYWMpXCYjMzQ7LFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy04Ni1cdFx0XHQgICAgICB0eHB3ci1cdTAwM2VyYXRlLFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz05MT1zdGF0aWMgaW5saW5lIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5MjptdDc5MjVfZWh0X3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IG10NzkyNV90eHB3ciAqdHhwd3IsIHU4IGJhbmRfaWR4KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTkzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOTctXHRcdCAgIFwmIzM0O21jczEyXCYjMzQ7LCBcJiMzNDttY3MxM1wmIzM0OywgXCYjMzQ7bWNzMTRcJiMzNDssIFwmIzM0O21jczE1XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5ODpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQyNiwgZWh0MjYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ1MiwgZWh0NTIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMTA2LCBlaHQxMDYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDE6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjQyLCBlaHQyNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDI6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUNDg0LCBlaHQ0ODQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA0Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NiwgZWh0OTk2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA1Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngyLCBlaHQ5OTZ4MiwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwNjpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZ4NCwgZWh0OTk2eDQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDc6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjZfNTIsIGVodDI2XzUyLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA4Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI2XzEwNiwgZWh0MjZfMTA2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA5Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDQ4NF8yNDIsIGVodDQ4NF8yNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2XzQ4NCwgZWh0OTk2XzQ4NCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjExMTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ5OTZfNDg0XzI0MiwgZWh0OTk2XzQ4NF8yNDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTI6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDJfNDg0LCBlaHQ5OTZ4Ml80ODQsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTM6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDMsIGVodDk5NngzLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTE0Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngzXzQ4NCwgZWh0OTk2eDNfNDg0LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTE1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTE3PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTg6bXQ3OTI1X3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEyMC1cdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cdTAwM2Vwcml2YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMjE6XHRzdHJ1Y3QgbXQ3OTI1X3R4cHdyICp0eHB3ciA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTIyLVx0dTggYmFuZF9pZHggPSBkZXYtXHUwMDNlbXBoeS5iYW5kX2lkeDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTMwLVx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMzE6XHRyZXQgPSBtdDc5MjVfZ2V0X3R4cHdyX2luZm8oZGV2LCBiYW5kX2lkeCwgdHhwd3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzMi1cdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzOC1cdFx0ICAgXCYjMzQ7IFwmIzM0OywgXCYjMzQ7MW1cJiMzNDssIFwmIzM0OzJtXCYjMzQ7LCBcJiMzNDs1bVwmIzM0OywgXCYjMzQ7MTFtXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMzk6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoQ0NLLCBjY2ssIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE0My1cdFx0ICAgXCYjMzQ7NDhtXCYjMzQ7LCBcJiMzNDs1NG1cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0NDpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShPRkRNLCBvZmRtLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQ1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDgtXHRcdCAgIFwmIzM0O21jczZcJiMzNDssIFwmIzM0O21jczdcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIVDIwLCBodDIwLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTUwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNTMtXHRcdCAgIFwmIzM0O21jczZcJiMzNDssIFwmIzM0O21jczdcJiMzNDssIFwmIzM0O21jczMyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNTQ6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSFQ0MCwgaHQ0MCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTU4LVx0XHQgICBcJiMzNDttY3M2XCYjMzQ7LCBcJiMzNDttY3M3XCYjMzQ7LCBcJiMzNDttY3M4XCYjMzQ7LCBcJiMzNDttY3M5XCYjMzQ7LCBcJiMzNDttY3MxMFwmIzM0OywgXCYjMzQ7bWNzMTFcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE1OTpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQyMCwgdmh0MjAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjA6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUNDAsIHZodDQwLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2MjpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShWSFQ4MCwgdmh0ODAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjM6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUMTYwLCB2aHQxNjAsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY1Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFMjYsIGhlMjYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjY6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU1MiwgaGU1MiwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2NzpcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTEwNiwgaGUxMDYsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjg6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEUyNDIsIGhlMjQyLCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY5Olx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFNDg0LCBoZTQ4NCwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNzE6XHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU5OTYsIGhlOTk2LCBiYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTcyOlx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFOTk2eDIsIGhlOTk2eDIsIGJhbmRfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTc0Olx0bXQ3OTI1X2VodF90eHB3cihzLCB0eHB3ciwgYmFuZF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTgxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxODI6bXQ3OTI1X3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE4My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNS1cdHBtLVx1MDAzZWVuYWJsZV91c2VyID0gdmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjIwNjpcdG10NzkyNV9zZXRfcnVudGltZV9wbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNy1cdG10NzZfY29ubmFjX3Bvd2VyX3NhdmVfc2NoZWQoXHUwMDI2ZGV2LVx1MDAzZW1waHksIHBtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjE0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMTU6bXQ3OTI1X3BtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjI0OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtLCBtdDc5MjVfcG1fZ2V0LCBtdDc5MjVfcG1fc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjI2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMjc6bXQ3OTI1X2RlZXBfc2xlZXBfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjI4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjQyLVx0cG0tXHUwMDNlZHNfZW5hYmxlID0gZW5hYmxlIFx1MDAyNlx1MDAyNiAhbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNDM6XHRtdDc5MjVfbWN1X3NldF9kZWVwX3NsZWVwKGRldiwgcG0tXHUwMDNlZHNfZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNDQtb3V0OlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yNTA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI1MTptdDc5MjVfZGVlcF9zbGVlcF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2MDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19kcywgbXQ3OTI1X2RlZXBfc2xlZXBfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2MTpcdFx0XHQgbXQ3OTI1X2RlZXBfc2xlZXBfc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjYzPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtX2lkbGVfdGltZW91dCwgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9nZXQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNjY6c3RhdGljIGludCBtdDc5MjVfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI3OC1cdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNzk6XHRcdHJldCA9IG10NzkyNV9tY3VfY2hpcF9jb25maWcoZGV2LCBcJiMzNDthc3NlcnRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4MC1cdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI4NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZXNldCwgTlVMTCwgbXQ3OTI1X2NoaXBfcmVzZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyODk6aW50IG10NzkyNV9pbml0X2RlYnVnZnMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zMDYtXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVx1MDAzZW10NzYuZGV2LCBcJiMzNDt0eHBvd2VyX3NrdVwmIzM0OywgZGlyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjMwNzpcdFx0XHRcdCAgICBtdDc5MjVfdHhwd3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTMwOC1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7dHhfc3RhdHNcJiMzNDssIDA0MDAsIGRpciwgZGV2LCBcdTAwMjZtdDc5MnhfdHhfc3RhdHNfZm9wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTgtI2luY2x1ZGUgXHUwMDNjbGludXgvZmlybXdhcmUuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjk6I2luY2x1ZGUgXCYjMzQ7bXQ3OTI1LmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMC0jaW5jbHVkZSBcJiMzNDtyZWdkLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTQ6c3RhdGljIHNzaXplX3QgbXQ3OTI1X3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNS1cdFx0XHRcdFx0c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI0LVx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShtZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyNTpcdFx0dGVtcGVyYXR1cmUgPSBtdDc5MjVfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2LVx0XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShtZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMzYtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM3OnN0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFJfUk8odGVtcDFfaW5wdXQsIG10NzkyNV90aGVybWFsX3RlbXAsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM5OnN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICptdDc5MjVfaHdtb25fYXR0cnNbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00MC1cdFx1MDAyNnNlbnNvcl9kZXZfYXR0cl90ZW1wMV9pbnB1dC5kZXZfYXR0ci5hdHRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Mi19O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjQzOkFUVFJJQlVURV9HUk9VUFMobXQ3OTI1X2h3bW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo0NTpzdGF0aWMgaW50IG10NzkyNV90aGVybWFsX2luaXQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjU0Olx0bmFtZSA9IGRldm1fa2FzcHJpbnRmKFx1MDAyNndpcGh5LVx1MDAzZWRldiwgR0ZQX0tFUk5FTCwgXCYjMzQ7bXQ3OTI1XyVzXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTU1LVx0XHRcdCAgICAgIHdpcGh5X25hbWUod2lwaHkpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNTktXHRod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKFx1MDAyNndpcGh5LVx1MDAzZWRldiwgbmFtZSwgcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjYwOlx0XHRcdFx0XHRcdCAgICAgICBtdDc5MjVfaHdtb25fZ3JvdXBzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02MS1cdHJldHVybiBQVFJfRVJSX09SX1pFUk8oaHdtb24pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo2NDpzdGF0aWMgdm9pZCBtdDc5MjVfbWFjX2luaXRfYmFzaWNfcmF0ZXMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTczLVx0XHQgICAgICAgRklFTERfUFJFUChNVF9UWF9SQVRFX0lEWCwgcmF0ZSBcdTAwMjYgR0VOTUFTSyg3LCAwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NzQ6XHRcdG10NzkyNV9tYWNfc2V0X2ZpeGVkX3JhdGVfdGFibGUoZGV2LCBpZHgsIHJhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTc1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy03Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo3ODppbnQgbXQ3OTI1X21hY19pbml0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04Ni1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1UNzkyeF9XVEJMX1NJWkU7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjg3Olx0XHRtdDc5MjVfbWFjX3d0YmxfdXBkYXRlKGRldiwgaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04OC1cdFx0XHRcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo5MjpcdG10NzkyNV9tYWNfaW5pdF9iYXNpY19yYXRlcyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTkzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6OTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X21hY19pbml0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMDA6c3RhdGljIGludCBfX210NzkyNV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTAxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjExMjpcdHJldCA9IG10NzkyNV9tY3Vfc2V0X2VlcHJvbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExMy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMTY6XHRyZXQgPSBtdDc5MjVfbWFjX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMTctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTI0OnN0YXRpYyBpbnQgbXQ3OTI1X2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMjUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMzAtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNVDc5MnhfTUNVX0lOSVRfUkVUUllfQ09VTlQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTMxOlx0XHRyZXQgPSBfX210NzkyNV9pbml0X2hhcmR3YXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTMyLVx0XHRpZiAoIXJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE0NjpzdGF0aWMgdm9pZCBtdDc5MjVfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTUyOlx0cmV0ID0gbXQ3OTI1X2luaXRfaGFyZHdhcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTYtXHRtdDc2X3NldF9zdHJlYW1fY2FwcyhcdTAwMjZkZXYtXHUwMDNlbXBoeSwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTU3Olx0bXQ3OTI1X3NldF9zdHJlYW1faGVfZWh0X2NhcHMoXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTU4LVx0bXQ3OTJ4X2NvbmZpZ19tYWNfYWRkcl9saXN0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE2MDpcdHJldCA9IG10NzkyNV9pbml0X21sb19jYXBzKFx1MDAyNmRldi1cdTAwM2VwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE2MS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE3MzpcdHJldCA9IG10NzkyNV9pbml0X2RlYnVnZnMoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNzQtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE3OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNzk6XHRyZXQgPSBtdDc5MjVfdGhlcm1hbF9pbml0KFx1MDAyNmRldi1cdTAwM2VwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4MC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE4NTpcdHJldCA9IG10NzkyNV9tY3Vfc2V0X3RoZXJtYWxfcHJvdGVjdChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4Ni1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE5NDpcdG10NzkyNV9tY3Vfc2V0X2RlZXBfc2xlZXAoZGV2LCBkZXYtXHUwMDNlcG0uZHNfZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xOTUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxOTc6aW50IG10NzkyNV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xOTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMDctXHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlcG0ucHNfd29yaywgbXQ3OTJ4X3BtX3Bvd2VyX3NhdmVfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjA4Olx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZW1sb19wbV93b3JrLCBtdDc5MjVfbWxvX3BtX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIwOS1cdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlcG0ud2FrZV93b3JrLCBtdDc5MnhfcG1fd2FrZV93b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjE1LVx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZW1waHkubWFjX3dvcmssIG10NzkyeF9tYWNfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjE2Olx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXBoeS5zY2FuX3dvcmssIG10NzkyNV9zY2FuX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIxNzpcdElOSVRfREVMQVlFRF9XT1JLKFx1MDAyNmRldi1cdTAwM2Vjb3JlZHVtcC53b3JrLCBtdDc5MjVfY29yZWR1bXBfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjE4LSNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIxOTpcdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlaXB2Nl9uc193b3JrLCBtdDc5MjVfc2V0X2lwdjZfbnNfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjIwLVx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZkZXYtXHUwMDNlaXB2Nl9uc19saXN0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIyNTpcdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlcmVzZXRfd29yaywgbXQ3OTI1X21hY19yZXNldF93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMjY6XHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZWluaXRfd29yaywgbXQ3OTI1X2luaXRfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIyODpcdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlcGh5LnJvY193b3JrLCBtdDc5MjVfcm9jX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIyOS1cdHRpbWVyX3NldHVwKFx1MDAyNmRldi1cdTAwM2VwaHkucm9jX3RpbWVyLCBtdDc5Mnhfcm9jX3RpbWVyLCAwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjU0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjI1NTpcdGh3LVx1MDAzZXdpcGh5LVx1MDAzZXJlZ19ub3RpZmllciA9IG10NzkyNV9yZWdkX25vdGlmaWVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI1Ni1cdGRldi1cdTAwM2VtcGh5LnNiYW5kXzJnLnNiYW5kLmh0X2NhcC5jYXAgfD1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjgyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyODM6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X3JlZ2lzdGVyX2RldmljZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNi0jaW5jbHVkZSBcdTAwM2NsaW51eC90aW1la2VlcGluZy5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo3OiNpbmNsdWRlIFwmIzM0O210NzkyNS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04LSNpbmNsdWRlIFwmIzM0Oy4uL2RtYS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzpib29sIG10NzkyNV9tYWNfd3RibF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgaW50IGlkeCwgdTMyIG1hc2spXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoyMjpzdGF0aWMgdm9pZCBtdDc5MjVfbWFjX3N0YV9wb2xsKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0yMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTgtXHRcdGlkeCA9IG1saW5rLVx1MDAzZXdjaWQuaWR4O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NTk6XHRcdGFkZHIgPSBtdDc5MjVfbWFjX3d0YmxfbG1hY19hZGRyKGRldiwgaWR4LCBNVF9XVEJMX0FDMF9DVFRfT0ZGU0VUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTYwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTc3LVx0XHRpZiAoY2xlYXIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjc4Olx0XHRcdG10NzkyNV9tYWNfd3RibF91cGRhdGUoZGV2LCBpZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy03OS1cdFx0XHRcdFx0ICAgICAgIE1UX1dUQkxfVVBEQVRFX0FETV9DT1VOVF9DTEVBUik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIzOlx0XHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgNik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQtXHRcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNS1cdFx0aWYgKHJhdGUtXHUwMDNlZmxhZ3MgXHUwMDI2IFJBVEVfSU5GT19GTEFHU19FSFRfTUNTKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjY6XHRcdFx0YWRkciA9IG10NzkyNV9tYWNfd3RibF9sbWFjX2FkZHIoZGV2LCBpZHgsIDUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI3LVx0XHRcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNDEtXHRcdC8qIGdldCBzaWduYWwgc3RyZW5ndGggb2YgcmVzcCBmcmFtZXMgKENUUy9CQS9BQ0spICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxNDI6XHRcdGFkZHIgPSBtdDc5MjVfbWFjX3d0YmxfbG1hY19hZGRyKGRldiwgaWR4LCAzNCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNDMtXHRcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxNTc6dm9pZCBtdDc5MjVfbWFjX3NldF9maXhlZF9yYXRlX3RhYmxlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNTgtXHRcdFx0XHQgICAgIHU4IHRibF9pZHgsIHUxNiByYXRlX2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNjgtLyogVGhlIEhXIGRvZXMgbm90IHRyYW5zbGF0ZSB0aGUgbWFjIGhlYWRlciB0byA4MDIuMyBmb3IgbWVzaCBwb2ludCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTY5OnN0YXRpYyBpbnQgbXQ3OTI1X3JldmVyc2VfZnJhZzBfaGRyX3RyYW5zKHN0cnVjdCBza19idWZmICpza2IsIHUxNiBoZHJfZ2FwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTcwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0yNDg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MjQ5Om10NzkyNV9tYWNfZmlsbF9yeF9yYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0yNTAtXHRcdFx0c3RydWN0IG10NzZfcnhfc3RhdHVzICpzdGF0dXMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MzUzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjM1NDptdDc5MjVfbWFjX2ZpbGxfcngoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTM1NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NTM0Olx0XHRyZXQgPSBtdDc5MjVfbWFjX2ZpbGxfcnhfcmF0ZShkZXYsIHN0YXR1cywgc2JhbmQsIHJ4diwgXHUwMDI2bW9kZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01MzUtXHRcdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTQ3LVx0aWYgKGhkcl90cmFucyBcdTAwMjZcdTAwMjYgaWVlZTgwMjExX2hhc19tb3JlZnJhZ3MoZmMpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo1NDg6XHRcdGlmIChtdDc5MjVfcmV2ZXJzZV9mcmFnMF9oZHJfdHJhbnMoc2tiLCBoZHJfZ2FwKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTU0OS1cdFx0XHRyZXR1cm4gLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz02MjE9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjYyMjptdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMyhfX2xlMzIgKnR4d2ksIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy02MjMtXHRcdFx0ICAgc3RydWN0IG10NzZfd2NpZCAqd2NpZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz02NTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjY1NzptdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMTEoc3RydWN0IG10NzZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTY1OC1cdFx0XHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz03MjQ9dm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NzI1Om10NzkyNV9tYWNfd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNzI2LVx0XHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgxMy1cdGlmIChpc184MDIzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODE0Olx0XHRtdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMyh0eHdpLCBza2IsIHdjaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODE1LVx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODE2Olx0XHRtdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMTEoZGV2LCB0eHdpLCBza2IsIGtleSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04MTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODM2LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjgzNzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfbWFjX3dyaXRlX3R4d2kpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODM5OnN0YXRpYyB2b2lkIG10NzkyNV90eF9jaGVja19hZ2dyKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04NDAtXHRcdFx0XHQgc3RydWN0IG10NzZfd2NpZCAqd2NpZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz04OTQ9c3RhdGljIGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjg5NTptdDc5MjVfbWFjX2FkZF90eHNfc2tiKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04OTYtXHRcdCAgICAgICBpbnQgcGlkLCBfX2xlMzIgKnR4c19kYXRhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDI4OnZvaWQgbXQ3OTI1X21hY19hZGRfdHhzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDI5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTA1NjpcdG10NzkyNV9tYWNfYWRkX3R4c19za2IoZGV2LCB3Y2lkLCBwaWQsIHR4c19kYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNTctXHRpZiAoIXdjaWQtXHUwMDNlc3RhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDY2OnZvaWQgbXQ3OTI1X3R4d2lfZnJlZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl90eHdpX2NhY2hlICp0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA2Ny1cdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDgwLVx0XHRpZiAobGlrZWx5KHQtXHUwMDNlc2tiLVx1MDAzZXByb3RvY29sICE9IGNwdV90b19iZTE2KEVUSF9QX1BBRSkpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTA4MTpcdFx0XHRtdDc5MjVfdHhfY2hlY2tfYWdncihzdGEsIHQtXHUwMDNlc2tiLCB3Y2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwODItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA5Mi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDkzOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV90eHdpX2ZyZWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTEwOTU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwOTY6bXQ3OTI1X21hY190eF9mcmVlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDk3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTE2MjpcdFx0XHRtdDc5MjVfdHh3aV9mcmVlKGRldiwgdHh3aSwgc3RhLCB3Y2lkLCBcdTAwMjZmcmVlX2xpc3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE2My1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTY2Olx0bXQ3OTI1X21hY19zdGFfcG9sbChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE2Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTE3OTpib29sIG10NzkyNV9yeF9jaGVjayhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTgwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTk3LVx0XHQvKiBQS1RfVFlQRV9UWFJYX05PVElGWSBjYW4gYmUgcmVjZWl2ZWQgb25seSBieSBtbWlvIGRldmljZXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExOTg6XHRcdG10NzkyNV9tYWNfdHhfZnJlZShkZXYsIGRhdGEsIGxlbik7IC8qIG1taW8gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExOTktXHRcdHJldHVybiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjAxLVx0XHRmb3IgKHJ4ZCAmIzQzOz0gNDsgcnhkICYjNDM7IDEyIFx1MDAzYz0gZW5kOyByeGQgJiM0Mzs9IDEyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwMjpcdFx0XHRtdDc5MjVfbWFjX2FkZF90eHMoZGV2LCByeGQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIwMy1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwODpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfcnhfY2hlY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMTA6dm9pZCBtdDc5MjVfcXVldWVfcnhfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgZW51bSBtdDc2X3J4cV9pZCBxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIxMS1cdFx0XHQgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICppbmZvKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMzQtXHRcdC8qIFBLVF9UWVBFX1RYUlhfTk9USUZZIGNhbiBiZSByZWNlaXZlZCBvbmx5IGJ5IG1taW8gZGV2aWNlcyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIzNTpcdFx0bXQ3OTI1X21hY190eF9mcmVlKGRldiwgc2tiLVx1MDAzZWRhdGEsIHNrYi1cdTAwM2VsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIzNi1cdFx0bmFwaV9jb25zdW1lX3NrYihza2IsIDEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMzgtXHRjYXNlIFBLVF9UWVBFX1JYX0VWRU5UOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIzOTpcdFx0bXQ3OTI1X21jdV9yeF9ldmVudChkZXYsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQwLVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQyLVx0XHRmb3IgKHJ4ZCAmIzQzOz0gMjsgcnhkICYjNDM7IDggXHUwMDNjPSBlbmQ7IHJ4ZCAmIzQzOz0gOClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNDM6XHRcdFx0bXQ3OTI1X21hY19hZGRfdHhzKGRldiwgcnhkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDQtXHRcdGRldl9rZnJlZV9za2Ioc2tiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQ3LVx0Y2FzZSBQS1RfVFlQRV9OT1JNQUw6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjQ4Olx0XHRpZiAoIW10NzkyNV9tYWNfZmlsbF9yeChkZXYsIHNrYikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDktXHRcdFx0bXQ3Nl9yeChcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgcSwgc2tiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjU3LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X3F1ZXVlX3J4X3NrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MTI2MD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI2MTptdDc5MjVfdmlmX2Nvbm5lY3RfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI2Mi1cdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyODEtXHRcdFx0XHRcdCAgICBcdTAwMjZtdmlmLVx1MDAzZXN0YS5kZWZsaW5rLndjaWQsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI4MjpcdFx0bXQ3OTI1X21jdV9zZXRfdHgoZGV2LCBic3NfY29uZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjgzLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyODctXHRcdFx0XHRcdCAgICB0cnVlLCBOVUxMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyODg6XHRcdG10NzkyNV9tY3Vfc3RhX3VwZGF0ZShkZXYsIE5VTEwsIHZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyODktXHRcdFx0XHQgICAgICBcdTAwMjZtdmlmLVx1MDAzZXN0YS5kZWZsaW5rLCB0cnVlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5MC1cdFx0XHRcdCAgICAgIE1UNzZfU1RBX0lORk9fU1RBVEVfTk9ORSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjkxOlx0XHRtdDc5MjVfbWN1X3VuaV9hZGRfYmVhY29uX29mZmxvYWQoZGV2LCBodywgdmlmLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTItXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5NS0vKiBzeXN0ZW0gZXJyb3IgcmVjb3ZlcnkgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyOTY6dm9pZCBtdDc5MjVfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMzNi1cdFx0XHRcdFx0ICAgIElFRUU4MDIxMV9JRkFDRV9JVEVSX1JFU1VNRV9BTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzM3Olx0XHRcdFx0XHQgICAgbXQ3OTI1X3ZpZl9jb25uZWN0X2l0ZXIsIE5VTEwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMzOC1cdG10NzZfY29ubmFjX3Bvd2VyX3NhdmVfc2NoZWQoXHUwMDI2ZGV2LVx1MDAzZW10NzYucGh5LCBwbSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM0MDpcdG10NzkyNV9yZWdkX2NoYW5nZShcdTAwMjZkZXYtXHUwMDNlcGh5LCBcJiMzNDswMFwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzQxLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzQzOnZvaWQgbXQ3OTI1X2NvcmVkdW1wX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTM0NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTM3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzNzE6XHRcdHNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBtdDc5MjVfbWN1X3J4ZCkgJiM0MzsgOCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzcyLVx0XHRpZiAoIWR1bXAgfHwgZGF0YSAmIzQzOyBza2ItXHUwMDNlbGVuIC0gZHVtcCBcdTAwM2UgTVQ3Nl9DT05OQUNfQ09SRURVTVBfU1opIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0xMzkxPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzkyOm10NzkyNV91c2Jfc2Rpb193cml0ZV90eHdpKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxMzowMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI4NAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDc3MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBgbXQ3OTI1YCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYG10NzkyNWAgZHJpdmVyLiBHb29kIG5ld3Mg4oCTIGl0IGhhcyBib3RoIGEgUENJIHZhcmlhbnQgKGBtdDc5MjVlYCkgYW5kIGEgVVNCIHZhcmlhbnQgKGBtdDc5MjV1YCkuIFRoZSBVU0IgdmFyaWFudCBpcyBrZXksIGJlY2F1c2UgdGhhdCBtZWFucyBJIGNhbiBsZXZlcmFnZSBzeXprYWxsZXImIzM5O3MgZHVtbXkgSENEIGZvciBVU0IgZnV6emluZy4gVGhhdCBtYWtlcyB0aGlzIGRyaXZlciByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB3aGljaCBpcyBpZGVhbCBmb3IgZWZmaWNpZW50IHRlc3RpbmcuCgpUaGUgcGF0Y2ggSSYjMzk7bSBleGFtaW5pbmcgbW9kaWZpZXMgdGhlIGBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlYCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY2AuIExldCYjMzk7cyByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGF0IGNvZGUgYmxvY2s6CgpgYGBjCiYjNDM7c3RhdGljIHZvaWQgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKJiM0MzsJCQkJICAgICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwKJiM0MzsJCQkJICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBtdDc2X3BoeSAqcGh5ID0gaHctJmd0O3ByaXY7CiYjNDM7CXN0cnVjdCBtdDc2X2RldiAqZGV2ID0gcGh5LSZndDtkZXY7CiYjNDM7CXN0cnVjdCBtdDc2X3djaWQgKndjaWQgPSAoc3RydWN0IG10NzZfd2NpZCAqKXN0YS0mZ3Q7ZHJ2X3ByaXY7CiYjNDM7CiYjNDM7CW11dGV4X2xvY2soJmFtcDtkZXYtJmd0O211dGV4KTsKJiM0MzsJc3Bpbl9sb2NrX2JoKCZhbXA7ZGV2LSZndDtzdGF0dXNfbG9jayk7CiYjNDM7CiYjNDM7CWlmIChpZWVlODAyMTFfdmlmX2lzX21sZCh2aWYpKSB7CiYjNDM7CQlzdHJ1Y3QgbXQ3OTJ4X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTJ4X3N0YSAqKXN0YS0mZ3Q7ZHJ2X3ByaXY7CiYjNDM7CQlzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi0mZ3Q7ZHJ2X3ByaXY7CiYjNDM7CQl1bnNpZ25lZCBsb25nIHZhbGlkID0gbXZpZi0mZ3Q7dmFsaWRfbGlua3M7CiYjNDM7CQlzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluazsKJiM0MzsJCXVuc2lnbmVkIGludCBsaW5rX2lkOwomIzQzOwomIzQzOwkJZm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCAmYW1wO3ZhbGlkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHsKJiM0MzsJCQltbGluayA9IG10NzkyeF9zdGFfdG9fbGluayhtc3RhLCBsaW5rX2lkKTsKJiM0MzsJCQlpZiAoIW1saW5rIHx8ICFtbGluay0mZ3Q7d2NpZC5zdGEpCiYjNDM7CQkJCWNvbnRpbnVlOwomIzQzOwkJCWlmIChtbGluay0mZ3Q7d2NpZC5pZHggJmx0OyBBUlJBWV9TSVpFKGRldi0mZ3Q7d2NpZCkpCiYjNDM7CQkJCXJjdV9hc3NpZ25fcG9pbnRlcihkZXYtJmd0O3djaWRbbWxpbmstJmd0O3djaWQuaWR4XSwKJiM0MzsJCQkJCQkgICBOVUxMKTsKJiM0MzsJCX0KJiM0MzsJfSBlbHNlIHsKJiM0MzsJCXJjdV9hc3NpZ25fcG9pbnRlcihkZXYtJmd0O3djaWRbd2NpZC0mZ3Q7aWR4XSwgTlVMTCk7CiYjNDM7CX0KJiM0MzsKJiM0MzsJc3Bpbl91bmxvY2tfYmgoJmFtcDtkZXYtJmd0O3N0YXR1c19sb2NrKTsKJiM0MzsJbXV0ZXhfdW5sb2NrKCZhbXA7ZGV2LSZndDttdXRleCk7CiYjNDM7fQpgYGAKClJpZ2h0LCBpdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgdGhlIFJDVSByZW1vdmFsIG9mIGEgc3RhdGlvbiwgd2l0aCBzcGVjaWZpYyBoYW5kbGluZyBmb3IgTXVsdGktTGluayBEZXZpY2UgKE1MRCkgZnVuY3Rpb25hbGl0eS4gVGhpcyBpcyBkZWZpbml0ZWx5IGZ1bmN0aW9uYWwgY29kZSB0aGF0IHJlcXVpcmVzIGZ1enppbmcuIFdlIG5lZWQgdG8gZXhwb3NlIGl0cyBsb2dpYyB0byBmdXp6aW5nIHRvIGVuc3VyZSBjb3JyZWN0bmVzcyBhbmQgaWRlbnRpZnkgdnVsbmVyYWJpbGl0aWVzLgoKTm93LCB3aGF0IGFib3V0IHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbj8gIEkmIzM5O2xsIG5lZWQgYENPTkZJR19NVDc5MjVVYCB0byBlbmFibGUgdGhlIFVTQiB2YXJpYW50LiBXaGlsZSBgQ09ORklHX01UNzkyNUVgIChQQ0kpIGlzIGFuIG9wdGlvbiwgdGhlIFVTQiB2YXJpYW50IG9mZmVycyB0aGUgbW9zdCBzdHJhaWdodGZvcndhcmQgcGF0aCBmb3IgZnV6emluZyB3aXRoIHN5emthbGxlci4gVGltZSB0byBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ2Agb3Igc2ltaWxhciBmaWxlcyB0byB2ZXJpZnkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTM6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyNSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc6Mjpjb25maWcgTVQ3OTI1X0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnOjc6Y29uZmlnIE1UNzkyNUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzoxOTpjb25maWcgTVQ3OTI1VVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMjMwCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgcXVpY2sgdGFrZSBvbiB3aGF0IEkmIzM5O20gdGhpbmtpbmcsIGJhc2VkIG9uIHRoYXQgaW5wdXQuCgoqKkVuYWJsaW5nIE1UNzkyNSBEcml2ZXJzKioKClJpZ2h0LCBzbyB0aGUgcGxhbiBpcyB0byBnZXQgdGhlIGBNVDc5MjVVYCBhbmQgYE1UNzkyNUVgIGRyaXZlcnMgZW5hYmxlZC4gU2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaC4gQmVmb3JlIEkgZGl2ZSB0b28gZGVlcCwgSSBzaG91bGQgcXVpY2tseSB2ZXJpZnkgaWYgYE1UNzkyNV9DT01NT05gIGlzIGFjdHVhbGx5IHJlcXVpcmVkIGRpcmVjdGx5LiBJdCBsb29rcyBsaWtlIHRoZSBvdGhlciBvcHRpb25zIG1pZ2h0IHB1bGwgdGhhdCBpbiBhdXRvbWF0aWNhbGx5LCBidXQgYSBxdWljayBjb25maXJtYXRpb24gaXMgYWx3YXlzIHNtYXJ0IHRvIGF2b2lkIHVubmVjZXNzYXJ5IGRlcGVuZGVuY2llcyBvciBjb25mbGljdHMgbGF0ZXIgb24uIFRoZW4sIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSBJIGhhdmUgdGhlIGZ1bGwgcGljdHVyZSwgYW5kIGNoZWNrIHdoYXQgYE1UNzkyNVVgIGRlcGVuZHMgb24uIEkgbmVlZCB0byBiZSBhd2FyZSBvZiB3aGF0IG90aGVyIHNldHRpbmdzIG9yIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zIHRoZXNlIGRyaXZlcnMgcmVseSBvbi4gR290dGEgdGhpbmsgYWhlYWQgYW5kIG1ha2Ugc3VyZSBhbGwgdGhlIHBpZWNlcyBmaXQgdG9nZXRoZXIgYmVmb3JlIEkgbWFrZSBhbnkgZmluYWwgZGVjaXNpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuICAgMjpcdGNvbmZpZyBNVDc5MjVfQ09NTU9OXG4gICAzOlx0XHR0cmlzdGF0ZVxuICAgNDpcdFx0c2VsZWN0IE1UNzkyeF9MSUJcbiAgIDU6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICAgNjpcdFxuICAgNzpcdGNvbmZpZyBNVDc5MjVFXG4gICA4Olx0XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MjVFIChQQ0llKSBzdXBwb3J0XCYjMzQ7XG4gICA5Olx0XHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxuICAxMDpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAxMTpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiAgMTI6XHRcdGhlbHBcbiAgMTM6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyNS1iYXNlZCB3aXJlbGVzcyBQQ0llIGRldmljZXMsXG4gIDE0Olx0XHQgIHdoaWNoIHN1cHBvcnQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZVxuICAxNTpcdFx0ICAyeDI6MlNTIDQwOTYtUUFNLCAxNjBNSHogY2hhbm5lbHMuXG4gIDE2Olx0XG4gIDE3Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4gIDE4Olx0XG4gIDE5Olx0Y29uZmlnIE1UNzkyNVVcbiAgMjA6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuICAyMTpcdFx0c2VsZWN0IE1UNzkyeF9VU0JcbiAgMjI6XHRcdHNlbGVjdCBNVDc5MjVfQ09NTU9OXG4gIDIzOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDI0Olx0XHRkZXBlbmRzIG9uIFVTQlxuICAyNTpcdFx0aGVscFxuICAyNjpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTI1LWJhc2VkIHdpcmVsZXNzIFVTQiBkZXZpY2VzLFxuICAyNzpcdFx0ICB3aGljaCBzdXBwb3J0IG9wZXJhdGlvbiBhdCA2R0h6LCA1R0h6LCBhbmQgMi40R0h6IElFRUUgODAyLjExYmVcbiAgMjg6XHRcdCAgMngyOjJTUyA0MDk2LVFBTSwgMTYwTUh6IGNoYW5uZWxzLlxuICAyOTpcdFxuICAzMDpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMDA2CgkJCQkJCQlvdXRwdXQ6IDEyNAoJCQkJCQkJdGhvdWdodHM6IDMwMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBNVDc5MjUgUkNVIFJlbW92YWwgUGF0Y2gqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkgc2VlLCB3ZSYjMzk7cmUgbG9va2luZyBhdCBjb25maWd1cmF0aW9ucyBgTVQ3OTI1VWAgYW5kIGBNVDc5MjVFYC4gVGhlIGNydWNpYWwgZnVuY3Rpb24gaGVyZSBpcyBgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZWAuIEkgZG9uJiMzOTt0IHNlZSBhbnkgb3RoZXIgZnVuY3Rpb25zIGltcGxpY2F0ZWQgaW4gdGhlIGRlc2NyaXB0aW9uLCBzbyB0aGF0IHNlZW1zIHRvIGJlIHRoZSBjb3JlIG9mIHRoZSBtYXR0ZXIuIEp1c3QgdG8gYmUgdGhvcm91Z2gsIEkmIzM5O20gY29uZmlybWluZyB0aGF0IHRoZSBwYXRjaCAqb25seSogaW50cm9kdWNlcyBgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZWAgYW5kIGFzc2lnbnMgaXQgdG8gYC5zdGFfcHJlX3JjdV9yZW1vdmVgIHdpdGhpbiBgbXQ3OTI1X29wc2AuCgpUaGUgcmVhc29uaW5nIGlzIHByZXR0eSBjbGVhcjogVGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgaW1wbGVtZW50aW5nIFJDVSByZW1vdmFsIGZvciBzdGF0aW9ucyB3aXRoaW4gdGhlIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIHdpdGggc3BlY2lmaWMgY29uc2lkZXJhdGlvbnMgZm9yIE11bHRpLUxpbmsgRGV2aWNlIChNTEQpIGxvZ2ljLiBUaGUga2V5IGRldGFpbCwgYW5kIHRoaXMgaXMgaW1wb3J0YW50IGZvciBmdXp6aW5nLCBpcyB0aGF0IHRoZSBNVDc5MjUgaGFzIGEgVVNCIHZhcmlhbnQuIFRoYXQgbWVhbnMgd2UgY2FuIGdldCB0byBpdCB0aHJvdWdoIGEgZHVtbXkgSENEIHNldHVwLCBvcGVuaW5nIHRoZSBkb29yIGZvciBmdXp6aW5nLgoKTGV0JiMzOTtzIHN1bW1hcml6ZSB0aGlzIGNvbmNpc2VseToKCiogICAqKldvcnRoRnV6emluZzoqKiBUcnVlCiogICAqKkZvY3VzU3ltYm9sczoqKiBgWyYjMzQ7bXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZSYjMzQ7XWAKKiAgICoqRW5hYmxlQ29uZmlnczoqKiBgWyYjMzQ7TVQ3OTI1VSYjMzQ7LCAmIzM0O01UNzkyNUUmIzM0O11gCiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggYWRkcyB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJDVSByZW1vdmFsIG9mIHN0YXRpb25zIHdpdGhpbiB0aGUgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciwgaW5jbHVkaW5nIGhhbmRsaW5nIGZvciBNdWx0aS1MaW5rIERldmljZXMgKE1MRCkuIEltcG9ydGFudGx5LCBpdCBoYXMgYSBVU0IgdmFyaWFudCwgbXQ3OTI1dSwgd2hpY2ggbWFrZXMgZnV6emluZyB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXkgSENEKSB2aWFibGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEzOjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjVVJiMzNDssCiAgICAmIzM0O01UNzkyNUUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgZnVuY3Rpb25hbCBsb2dpYyBmb3IgUkNVIHJlbW92YWwgb2Ygc3RhdGlvbnMgaW4gdGhlIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIGluY2x1ZGluZyBoYW5kbGluZyBmb3IgTXVsdGktTGluayBEZXZpY2VzIChNTEQpLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChtdDc5MjV1KSB3aGljaCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChkdW1teSBIQ0QpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjVVJiMzNDssCiAgICAmIzM0O01UNzkyNUUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgZnVuY3Rpb25hbCBsb2dpYyBmb3IgUkNVIHJlbW92YWwgb2Ygc3RhdGlvbnMgaW4gdGhlIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIGluY2x1ZGluZyBoYW5kbGluZyBmb3IgTXVsdGktTGluayBEZXZpY2VzIChNTEQpLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChtdDc5MjV1KSB3aGljaCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChkdW1teSBIQ0QpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTM6MDM6MjIuNDA4OTUxNTU4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzcxMTA2MDQ0MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTI1VVwiLFxuICAgIFwiTVQ3OTI1RVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJDVSByZW1vdmFsIG9mIHN0YXRpb25zIGluIHRoZSBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyLCBpbmNsdWRpbmcgaGFuZGxpbmcgZm9yIE11bHRpLUxpbmsgRGV2aWNlcyAoTUxEKS4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXkgSENEKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTM6MDM6MjIuNDA4OTU5NDc4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjc0NzAxOTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAzYWI2NDE0ZDczMzNkMGQ0MDNjYTZlMDlmYTBjMzE5Y2ZmZmFjZDVhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVuIDMwIDEzOjAzOjIxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xcbmluZGV4IDczZDM3MjI3MzlkMGE4Li5lM2ZiNjM5MmVkYTI0YSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcXG5AQCAtMjQxMCw2ICsyNDEwLDQwIEBAIHN0YXRpYyB2b2lkIG10NzkyNV9jaGFubmVsX3N3aXRjaF9yeF9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIFxcdH1cXG4gfVxcbiBcXG4rc3RhdGljIHZvaWQgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4rXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4rXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG4re1xcbitcXHRzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSA9IGh3LVxcdTAwM2Vwcml2O1xcbitcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbitcXHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkID0gKHN0cnVjdCBtdDc2X3djaWQgKilzdGEtXFx1MDAzZWRydl9wcml2O1xcbitcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtdXRleCk7XFxuK1xcdHNwaW5fbG9ja19iaChcXHUwMDI2ZGV2LVxcdTAwM2VzdGF0dXNfbG9jayk7XFxuK1xcbitcXHRpZiAoaWVlZTgwMjExX3ZpZl9pc19tbGQodmlmKSkge1xcbitcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTJ4X3N0YSAqKXN0YS1cXHUwMDNlZHJ2X3ByaXY7XFxuK1xcdFxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG4rXFx0XFx0dW5zaWduZWQgbG9uZyB2YWxpZCA9IG12aWYtXFx1MDAzZXZhbGlkX2xpbmtzO1xcbitcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluaztcXG4rXFx0XFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XFxuK1xcbitcXHRcXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZ2YWxpZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XFxuK1xcdFxcdFxcdG1saW5rID0gbXQ3OTJ4X3N0YV90b19saW5rKG1zdGEsIGxpbmtfaWQpO1xcbitcXHRcXHRcXHRpZiAoIW1saW5rIHx8ICFtbGluay1cXHUwMDNld2NpZC5zdGEpXFxuK1xcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbitcXHRcXHRcXHRpZiAobWxpbmstXFx1MDAzZXdjaWQuaWR4IFxcdTAwM2MgQVJSQVlfU0laRShkZXYtXFx1MDAzZXdjaWQpKVxcbitcXHRcXHRcXHRcXHRyY3VfYXNzaWduX3BvaW50ZXIoZGV2LVxcdTAwM2V3Y2lkW21saW5rLVxcdTAwM2V3Y2lkLmlkeF0sXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIE5VTEwpO1xcbitcXHRcXHR9XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdHJjdV9hc3NpZ25fcG9pbnRlcihkZXYtXFx1MDAzZXdjaWRbd2NpZC1cXHUwMDNlaWR4XSwgTlVMTCk7XFxuK1xcdH1cXG4rXFxuK1xcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXN0YXR1c19sb2NrKTtcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZkZXYtXFx1MDAzZW11dGV4KTtcXG4rfVxcbitcXG4gY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTI1X29wcyA9IHtcXG4gXFx0LnR4ID0gbXQ3OTJ4X3R4LFxcbiBcXHQuc3RhcnQgPSBtdDc5MjVfc3RhcnQsXFxuQEAgLTI0MjIsNyArMjQ1Niw3IEBAIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkyNV9vcHMgPSB7XFxuIFxcdC5zdGFydF9hcCA9IG10NzkyNV9zdGFydF9hcCxcXG4gXFx0LnN0b3BfYXAgPSBtdDc5MjVfc3RvcF9hcCxcXG4gXFx0LnN0YV9zdGF0ZSA9IG10NzZfc3RhX3N0YXRlLFxcbi1cXHQuc3RhX3ByZV9yY3VfcmVtb3ZlID0gbXQ3Nl9zdGFfcHJlX3JjdV9yZW1vdmUsXFxuK1xcdC5zdGFfcHJlX3JjdV9yZW1vdmUgPSBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlLFxcbiBcXHQuc2V0X2tleSA9IG10NzkyNV9zZXRfa2V5LFxcbiBcXHQuc3RhX3NldF9kZWNhcF9vZmZsb2FkID0gbXQ3OTI1X3N0YV9zZXRfZGVjYXBfb2ZmbG9hZCxcXG4gI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEzOjAzOjIyLjc3NzIxMjU0MVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzY3NDIzMzAzNjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTI1VVwiLFxuICAgIFwiTVQ3OTI1RVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJDVSByZW1vdmFsIG9mIHN0YXRpb25zIGluIHRoZSBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyLCBpbmNsdWRpbmcgaGFuZGxpbmcgZm9yIE11bHRpLUxpbmsgRGV2aWNlcyAoTUxEKS4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXkgSENEKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzYWI2NDE0ZDczMzNkMGQ0MDNjYTZlMDlmYTBjMzE5Y2ZmZmFjZDVhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTM6MDM6MjEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNcbmluZGV4IDczZDM3MjI3MzlkMGE4Li5lM2ZiNjM5MmVkYTI0YSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jXG5AQCAtMjQxMCw2ICsyNDEwLDQwIEBAIHN0YXRpYyB2b2lkIG10NzkyNV9jaGFubmVsX3N3aXRjaF9yeF9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gXHR9XG4gfVxuIFxuK3N0YXRpYyB2b2lkIG10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4rXHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuK1x0XHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbit7XG4rXHRzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSA9IGh3LVx1MDAzZXByaXY7XG4rXHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG4rXHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkID0gKHN0cnVjdCBtdDc2X3djaWQgKilzdGEtXHUwMDNlZHJ2X3ByaXY7XG4rXG4rXHRtdXRleF9sb2NrKFx1MDAyNmRldi1cdTAwM2VtdXRleCk7XG4rXHRzcGluX2xvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXN0YXR1c19sb2NrKTtcbitcbitcdGlmIChpZWVlODAyMTFfdmlmX2lzX21sZCh2aWYpKSB7XG4rXHRcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLVx1MDAzZWRydl9wcml2O1xuK1x0XHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cdTAwM2VkcnZfcHJpdjtcbitcdFx0dW5zaWduZWQgbG9uZyB2YWxpZCA9IG12aWYtXHUwMDNldmFsaWRfbGlua3M7XG4rXHRcdHN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rO1xuK1x0XHR1bnNpZ25lZCBpbnQgbGlua19pZDtcbitcbitcdFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcdTAwMjZ2YWxpZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XG4rXHRcdFx0bWxpbmsgPSBtdDc5Mnhfc3RhX3RvX2xpbmsobXN0YSwgbGlua19pZCk7XG4rXHRcdFx0aWYgKCFtbGluayB8fCAhbWxpbmstXHUwMDNld2NpZC5zdGEpXG4rXHRcdFx0XHRjb250aW51ZTtcbitcdFx0XHRpZiAobWxpbmstXHUwMDNld2NpZC5pZHggXHUwMDNjIEFSUkFZX1NJWkUoZGV2LVx1MDAzZXdjaWQpKVxuK1x0XHRcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKGRldi1cdTAwM2V3Y2lkW21saW5rLVx1MDAzZXdjaWQuaWR4XSxcbitcdFx0XHRcdFx0XHQgICBOVUxMKTtcbitcdFx0fVxuK1x0fSBlbHNlIHtcbitcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKGRldi1cdTAwM2V3Y2lkW3djaWQtXHUwMDNlaWR4XSwgTlVMTCk7XG4rXHR9XG4rXG4rXHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlc3RhdHVzX2xvY2spO1xuK1x0bXV0ZXhfdW5sb2NrKFx1MDAyNmRldi1cdTAwM2VtdXRleCk7XG4rfVxuK1xuIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkyNV9vcHMgPSB7XG4gXHQudHggPSBtdDc5MnhfdHgsXG4gXHQuc3RhcnQgPSBtdDc5MjVfc3RhcnQsXG5AQCAtMjQyMiw3ICsyNDU2LDcgQEAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTI1X29wcyA9IHtcbiBcdC5zdGFydF9hcCA9IG10NzkyNV9zdGFydF9hcCxcbiBcdC5zdG9wX2FwID0gbXQ3OTI1X3N0b3BfYXAsXG4gXHQuc3RhX3N0YXRlID0gbXQ3Nl9zdGFfc3RhdGUsXG4tXHQuc3RhX3ByZV9yY3VfcmVtb3ZlID0gbXQ3Nl9zdGFfcHJlX3JjdV9yZW1vdmUsXG4rXHQuc3RhX3ByZV9yY3VfcmVtb3ZlID0gbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZSxcbiBcdC5zZXRfa2V5ID0gbXQ3OTI1X3NldF9rZXksXG4gXHQuc3RhX3NldF9kZWNhcF9vZmZsb2FkID0gbXQ3OTI1X3N0YV9zZXRfZGVjYXBfb2ZmbG9hZCxcbiAjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNilcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEzOjAzOjIyLjc3NzIxOTI1MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzNjk1MDAyNzAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTVQ3OTI1IERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNgLiBJdCdzIGFkZGluZyBgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZWAgYW5kIGxpbmtpbmcgaXQgdXAgdG8gYC5zdGFfcHJlX3JjdV9yZW1vdmVgIHdpdGhpbiBgbXQ3OTI1X29wc2AuIFN0YW5kYXJkIHN0dWZmLCBzZXR0aW5nIHVwIGEgaG9vayBmb3Igc3RhdGlvbiByZW1vdmFsLCBub3RoaW5nIGltbWVkaWF0ZWx5IGFsYXJtaW5nLiBUaGlzIGlzIHRoZSBNZWRpYXRlayBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCByYWlzZXMgdGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpbiBteSBtaW5kOiBjYW4gSSBhY3R1YWxseSB0cmlnZ2VyIHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gV2lyZWxlc3MgZHJpdmVycyBhcmUgbm90b3Jpb3VzbHkgaGFyZHdhcmUtc3BlY2lmaWMsIHVzdWFsbHkgcmVxdWlyaW5nIHRoZSBhY3R1YWwgcGh5c2ljYWwgaGFyZHdhcmUgb3IgYSByb2J1c3QgZW11bGF0b3IuXG5cbk1hYzgwMjExX2h3c2ltIGNvbWVzIHRvIG1pbmQsIGJ1dCB0aGF0J3MgYSAqZ2VuZXJpYyogbWFjODAyMTEgZW11bGF0b3IuIEl0IHdvdWxkbid0IGRpcmVjdGx5IGVtdWxhdGUgdGhlIE1UNzkyNSBzcGVjaWZpY2FsbHkuIFVubGVzcyB0aGVyZSdzIHNvbWUgb2JzY3VyZSBVU0Igb3IgUENJIGVtdWxhdG9yIG91dCB0aGVyZSBmb3IgdGhlIE1UNzkyNS4uLiB3YWl0LCBpcyB0aGlzIGRldmljZSBVU0I/IElmIHNvLCBJIGNvdWxkIHBvdGVudGlhbGx5IGZ1enogaXQgd2l0aCBhIGR1bW15IEhDRCwgYXMgU3l6a2FsbGVyIGRvZXMgaGF2ZSBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMuIEkgbmVlZCB0byBxdWlja2x5IGNoZWNrLiBJJ2xsIGZpcmUgdXAgYGdyZXBwZXJgIGFuZCBzZWUgaWYgYG10NzkyNWAgYXBwZWFycyBpbiB0aGUgVVNCIHNlY3Rpb24gd2l0aGluIHRoYXQgZHJpdmVyIHBhdGguIExldCdzIHNlZSBpZiB0aGlzIGlzIHNvbWV0aGluZyBJIGNhbiBhY3R1YWxseSBoaXQgZWFzaWx5IGluIGEgdmlydHVhbCBzZXR0aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTYzLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTM6MDM6NTYuNDcyMjI1MTcyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMTAxNTI0MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MjVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMzE1MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGUtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5MjVfQ09NTU9OKSArPSBtdDc5MjUtY29tbW9uLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19NVDc5MjVFKSArPSBtdDc5MjVlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19NVDc5MjVVKSArPSBtdDc5MjV1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9NYWtlZmlsZS02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjc6bXQ3OTI1LWNvbW1vbi15IDo9IG1hYy5vIG1jdS5vIHJlZ2QubyBtYWluLm8gaW5pdC5vIGRlYnVnZnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjg6bXQ3OTI1LWNvbW1vbi0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSArPSB0ZXN0bW9kZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvTWFrZWZpbGU6OTptdDc5MjVlLXkgOj0gcGNpLm8gcGNpX21hYy5vIHBjaV9tY3Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L01ha2VmaWxlOjEwOm10NzkyNXUteSA6PSB1c2Iub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjQ6I2luY2x1ZGUgXFxcIm10NzkyNS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy01LSNpbmNsdWRlIFxcXCJtY3UuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz03PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6ODptdDc5MjVfcmVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy05LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMy1cXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNDpcXHRtdDc5MjVfbWN1X3JlZ3ZhbChkZXYsIGRldi1cXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgXFx1MDAyNnJlZ3ZhbCwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1LVxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMTptdDc5MjVfcmVnX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI3LVxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI4OlxcdHJldCA9IG10NzkyNV9tY3VfcmVndmFsKGRldiwgZGV2LVxcdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcXHUwMDI2cmVndmFsLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI5LVxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjM2OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JlZ3ZhbCwgbXQ3OTI1X3JlZ19nZXQsIG10NzkyNV9yZWdfc2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0zNy1cXHRcXHRcXHQgXFxcIjB4JTA4bGx4XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9Mzg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzozOTptdDc5MjVfZndfZGVidWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy00NS1cXHRkZXYtXFx1MDAzZWZ3X2RlYnVnID0gKHU4KXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NDY6XFx0bXQ3OTI1X21jdV9md19sb2dfMl9ob3N0KGRldiwgZGV2LVxcdTAwM2Vmd19kZWJ1Zyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTUzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NTQ6bXQ3OTI1X2Z3X2RlYnVnX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo2MzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1ZywgbXQ3OTI1X2Z3X2RlYnVnX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6NjQ6XFx0XFx0XFx0IG10NzkyNV9md19kZWJ1Z19zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNjUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9Njg9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Njk6bXQ3OTI1X3NlcV9wdXRzX2FycmF5KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgY29uc3QgY2hhciAqc3RyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy03MC1cXHRcXHQgICAgICBzOCB2YWxbXVsyXSwgaW50IGxlbiwgdTggYmFuZF9pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjgzOiNkZWZpbmUgbXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KHByZWZpeCwgcmF0ZSwgaWR4KVxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtODQtKHtcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjg1OlxcdG10NzkyNV9zZXFfcHV0c19hcnJheShzLCAjcHJlZml4IFxcXCIgKHRtYWMpXFxcIixcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTg2LVxcdFxcdFxcdCAgICAgIHR4cHdyLVxcdTAwM2VyYXRlLFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz05MT1zdGF0aWMgaW5saW5lIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6OTI6bXQ3OTI1X2VodF90eHB3cihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHN0cnVjdCBtdDc5MjVfdHhwd3IgKnR4cHdyLCB1OCBiYW5kX2lkeClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtOTMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTk3LVxcdFxcdCAgIFxcXCJtY3MxMlxcXCIsIFxcXCJtY3MxM1xcXCIsIFxcXCJtY3MxNFxcXCIsIFxcXCJtY3MxNVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzo5ODpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjYsIGVodDI2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjk5OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ1MiwgZWh0NTIsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTAwOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQxMDYsIGVodDEwNiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDE6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDI0MiwgZWh0MjQyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwMjpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUNDg0LCBlaHQ0ODQsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMDQ6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NiwgZWh0OTk2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwNTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDIsIGVodDk5NngyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwNjpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDQsIGVodDk5Nng0LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwNzpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjZfNTIsIGVodDI2XzUyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEwODpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUMjZfMTA2LCBlaHQyNl8xMDYsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTA5OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShFSFQ0ODRfMjQyLCBlaHQ0ODRfMjQyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjExMDpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2XzQ4NCwgZWh0OTk2XzQ4NCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTE6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5Nl80ODRfMjQyLCBlaHQ5OTZfNDg0XzI0MiwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTI6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEVIVDk5NngyXzQ4NCwgZWh0OTk2eDJfNDg0LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjExMzpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDMsIGVodDk5NngzLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjExNDpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoRUhUOTk2eDNfNDg0LCBlaHQ5OTZ4M180ODQsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTE1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0xMTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMTg6bXQ3OTI1X3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTE5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTIwLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cXHUwMDNlcHJpdmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEyMTpcXHRzdHJ1Y3QgbXQ3OTI1X3R4cHdyICp0eHB3ciA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEyMi1cXHR1OCBiYW5kX2lkeCA9IGRldi1cXHUwMDNlbXBoeS5iYW5kX2lkeDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xMzAtXFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTMxOlxcdHJldCA9IG10NzkyNV9nZXRfdHhwd3JfaW5mbyhkZXYsIGJhbmRfaWR4LCB0eHB3cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzMi1cXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzOC1cXHRcXHQgICBcXFwiIFxcXCIsIFxcXCIxbVxcXCIsIFxcXCIybVxcXCIsIFxcXCI1bVxcXCIsIFxcXCIxMW1cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTM5OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShDQ0ssIGNjaywgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQzLVxcdFxcdCAgIFxcXCI0OG1cXFwiLCBcXFwiNTRtXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE0NDpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoT0ZETSwgb2ZkbSwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNDUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTQ4LVxcdFxcdCAgIFxcXCJtY3M2XFxcIiwgXFxcIm1jczdcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTQ5OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIVDIwLCBodDIwLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNTMtXFx0XFx0ICAgXFxcIm1jczZcXFwiLCBcXFwibWNzN1xcXCIsIFxcXCJtY3MzMlxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNTQ6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhUNDAsIGh0NDAsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTU1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE1OC1cXHRcXHQgICBcXFwibWNzNlxcXCIsIFxcXCJtY3M3XFxcIiwgXFxcIm1jczhcXFwiLCBcXFwibWNzOVxcXCIsIFxcXCJtY3MxMFxcXCIsIFxcXCJtY3MxMVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNTk6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KFZIVDIwLCB2aHQyMCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjA6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KFZIVDQwLCB2aHQ0MCwgYmFuZF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0xNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2MjpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUODAsIHZodDgwLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2MzpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoVkhUMTYwLCB2aHQxNjAsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxNjU6XFx0bXQ3OTI1X3ByaW50X3R4cHdyX2VudHJ5KEhFMjYsIGhlMjYsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTY2OlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTUyLCBoZTUyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2NzpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEUxMDYsIGhlMTA2LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2ODpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEUyNDIsIGhlMjQyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE2OTpcXHRtdDc5MjVfcHJpbnRfdHhwd3JfZW50cnkoSEU0ODQsIGhlNDg0LCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTcxOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTk5NiwgaGU5OTYsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTcyOlxcdG10NzkyNV9wcmludF90eHB3cl9lbnRyeShIRTk5NngyLCBoZTk5NngyLCBiYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTc0OlxcdG10NzkyNV9laHRfdHhwd3IocywgdHhwd3IsIGJhbmRfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTc1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTE4MT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjE4MjptdDc5MjVfcG1fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE4My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjA1LVxcdHBtLVxcdTAwM2VlbmFibGVfdXNlciA9IHZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjA2OlxcdG10NzkyNV9zZXRfcnVudGltZV9wbShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMDctXFx0bXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LCBwbSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjE0PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjE1Om10NzkyNV9wbV9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIxNi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMjQ6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcG0sIG10NzkyNV9wbV9nZXQsIG10NzkyNV9wbV9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yMjY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMjc6bXQ3OTI1X2RlZXBfc2xlZXBfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIyOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjQyLVxcdHBtLVxcdTAwM2Vkc19lbmFibGUgPSBlbmFibGUgXFx1MDAyNlxcdTAwMjYgIW1vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI0MzpcXHRtdDc5MjVfbWN1X3NldF9kZWVwX3NsZWVwKGRldiwgcG0tXFx1MDAzZWRzX2VuYWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI0NC1vdXQ6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjUwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjUxOm10NzkyNV9kZWVwX3NsZWVwX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI2MDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19kcywgbXQ3OTI1X2RlZXBfc2xlZXBfZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNjE6XFx0XFx0XFx0IG10NzkyNV9kZWVwX3NsZWVwX3NldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTI2Mz1ERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19wbV9pZGxlX3RpbWVvdXQsIG10NzkyeF9wbV9pZGxlX3RpbWVvdXRfZ2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjY2OnN0YXRpYyBpbnQgbXQ3OTI1X2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNzgtXFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mjc5OlxcdFxcdHJldCA9IG10NzkyNV9tY3VfY2hpcF9jb25maWcoZGV2LCBcXFwiYXNzZXJ0XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4MC1cXHRcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mjg3OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3Jlc2V0LCBOVUxMLCBtdDc5MjVfY2hpcF9yZXNldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI4OTppbnQgbXQ3OTI1X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTMwNi1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInR4cG93ZXJfc2t1XFxcIiwgZGlyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzozMDc6XFx0XFx0XFx0XFx0ICAgIG10NzkyNV90eHB3cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTMwOC1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJ0eF9zdGF0c1xcXCIsIDA0MDAsIGRpciwgZGV2LCBcXHUwMDI2bXQ3OTJ4X3R4X3N0YXRzX2ZvcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTgtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Zpcm13YXJlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjk6I2luY2x1ZGUgXFxcIm10NzkyNS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMC0jaW5jbHVkZSBcXFwicmVnZC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNDpzdGF0aWMgc3NpemVfdCBtdDc5MjVfdGhlcm1hbF90ZW1wX3Nob3coc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNS1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yNC1cXHRcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShtZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjU6XFx0XFx0dGVtcGVyYXR1cmUgPSBtdDc5MjVfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yNi1cXHRcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShtZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0zNi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjM3OnN0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFJfUk8odGVtcDFfaW5wdXQsIG10NzkyNV90aGVybWFsX3RlbXAsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0zOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6Mzk6c3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKm10NzkyNV9od21vbl9hdHRyc1tdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00MC1cXHRcXHUwMDI2c2Vuc29yX2Rldl9hdHRyX3RlbXAxX2lucHV0LmRldl9hdHRyLmF0dHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNDItfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NDM6QVRUUklCVVRFX0dST1VQUyhtdDc5MjVfaHdtb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy00NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NDU6c3RhdGljIGludCBtdDc5MjVfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTQ2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy01My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NTQ6XFx0bmFtZSA9IGRldm1fa2FzcHJpbnRmKFxcdTAwMjZ3aXBoeS1cXHUwMDNlZGV2LCBHRlBfS0VSTkVMLCBcXFwibXQ3OTI1XyVzXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNTUtXFx0XFx0XFx0ICAgICAgd2lwaHlfbmFtZSh3aXBoeSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTU5LVxcdGh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoXFx1MDAyNndpcGh5LVxcdTAwM2VkZXYsIG5hbWUsIHBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NjA6XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIG10NzkyNV9od21vbl9ncm91cHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02MS1cXHRyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKGh3bW9uKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy02My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6NjQ6c3RhdGljIHZvaWQgbXQ3OTI1X21hY19pbml0X2Jhc2ljX3JhdGVzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy03My1cXHRcXHQgICAgICAgRklFTERfUFJFUChNVF9UWF9SQVRFX0lEWCwgcmF0ZSBcXHUwMDI2IEdFTk1BU0soNywgMCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo3NDpcXHRcXHRtdDc5MjVfbWFjX3NldF9maXhlZF9yYXRlX3RhYmxlKGRldiwgaWR4LCByYXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtNzUtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo3ODppbnQgbXQ3OTI1X21hY19pbml0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy04Ni1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgTVQ3OTJ4X1dUQkxfU0laRTsgaSsrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzo4NzpcXHRcXHRtdDc5MjVfbWFjX3d0YmxfdXBkYXRlKGRldiwgaSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtODgtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1dUQkxfVVBEQVRFX0FETV9DT1VOVF9DTEVBUik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjkyOlxcdG10NzkyNV9tYWNfaW5pdF9iYXNpY19yYXRlcyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy05Ny19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjk4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV9tYWNfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMDA6c3RhdGljIGludCBfX210NzkyNV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEwMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMTI6XFx0cmV0ID0gbXQ3OTI1X21jdV9zZXRfZWVwcm9tKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExMy1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTExNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTE2OlxcdHJldCA9IG10NzkyNV9tYWNfaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMTctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjEyNDpzdGF0aWMgaW50IG10NzkyNV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTEyNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTMwLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBNVDc5MnhfTUNVX0lOSVRfUkVUUllfQ09VTlQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxMzE6XFx0XFx0cmV0ID0gX19tdDc5MjVfaW5pdF9oYXJkd2FyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xMzItXFx0XFx0aWYgKCFyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNDY6c3RhdGljIHZvaWQgbXQ3OTI1X2luaXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNTI6XFx0cmV0ID0gbXQ3OTI1X2luaXRfaGFyZHdhcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTUzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTU2LVxcdG10NzZfc2V0X3N0cmVhbV9jYXBzKFxcdTAwMjZkZXYtXFx1MDAzZW1waHksIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxNTc6XFx0bXQ3OTI1X3NldF9zdHJlYW1faGVfZWh0X2NhcHMoXFx1MDAyNmRldi1cXHUwMDNlcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTU4LVxcdG10NzkyeF9jb25maWdfbWFjX2FkZHJfbGlzdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE2MDpcXHRyZXQgPSBtdDc5MjVfaW5pdF9tbG9fY2FwcyhcXHUwMDI2ZGV2LVxcdTAwM2VwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNjEtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MTczOlxcdHJldCA9IG10NzkyNV9pbml0X2RlYnVnZnMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTc0LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0xNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjE3OTpcXHRyZXQgPSBtdDc5MjVfdGhlcm1hbF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4MC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxODU6XFx0cmV0ID0gbXQ3OTI1X21jdV9zZXRfdGhlcm1hbF9wcm90ZWN0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTE4Ni1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxOTQ6XFx0bXQ3OTI1X21jdV9zZXRfZGVlcF9zbGVlcChkZXYsIGRldi1cXHUwMDNlcG0uZHNfZW5hYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTk1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTk2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoxOTc6aW50IG10NzkyNV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMTk4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMDctXFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcG0ucHNfd29yaywgbXQ3OTJ4X3BtX3Bvd2VyX3NhdmVfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIwODpcXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VtbG9fcG1fd29yaywgbXQ3OTI1X21sb19wbV93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjA5LVxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VwbS53YWtlX3dvcmssIG10NzkyeF9wbV93YWtlX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIxNS1cXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5Lm1hY193b3JrLCBtdDc5MnhfbWFjX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyMTY6XFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcGh5LnNjYW5fd29yaywgbXQ3OTI1X3NjYW5fd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIxNzpcXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2Vjb3JlZHVtcC53b3JrLCBtdDc5MjVfY29yZWR1bXBfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIxOC0jaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjE5OlxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VpcHY2X25zX3dvcmssIG10NzkyNV9zZXRfaXB2Nl9uc193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjIwLVxcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlaXB2Nl9uc19saXN0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIyNTpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcmVzZXRfd29yaywgbXQ3OTI1X21hY19yZXNldF93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjI2OlxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2Vpbml0X3dvcmssIG10NzkyNV9pbml0X3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjIyODpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcGh5LnJvY193b3JrLCBtdDc5MjVfcm9jX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMjktXFx0dGltZXJfc2V0dXAoXFx1MDAyNmRldi1cXHUwMDNlcGh5LnJvY190aW1lciwgbXQ3OTJ4X3JvY190aW1lciwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjU0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYzoyNTU6XFx0aHctXFx1MDAzZXdpcGh5LVxcdTAwM2VyZWdfbm90aWZpZXIgPSBtdDc5MjVfcmVnZF9ub3RpZmllcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjU2LVxcdGRldi1cXHUwMDNlbXBoeS5zYmFuZF8yZy5zYmFuZC5odF9jYXAuY2FwIHw9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjgyLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjgzOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV9yZWdpc3Rlcl9kZXZpY2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvdGltZWtlZXBpbmcuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo3OiNpbmNsdWRlIFxcXCJtdDc5MjUuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04LSNpbmNsdWRlIFxcXCIuLi9kbWEuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEzOmJvb2wgbXQ3OTI1X21hY193dGJsX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBpbnQgaWR4LCB1MzIgbWFzaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0yMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoyMjpzdGF0aWMgdm9pZCBtdDc5MjVfbWFjX3N0YV9wb2xsKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTgtXFx0XFx0aWR4ID0gbWxpbmstXFx1MDAzZXdjaWQuaWR4O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjU5OlxcdFxcdGFkZHIgPSBtdDc5MjVfbWFjX3d0YmxfbG1hY19hZGRyKGRldiwgaWR4LCBNVF9XVEJMX0FDMF9DVFRfT0ZGU0VUKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy02MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTc3LVxcdFxcdGlmIChjbGVhcikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjc4OlxcdFxcdFxcdG10NzkyNV9tYWNfd3RibF91cGRhdGUoZGV2LCBpZHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNzktXFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UX1dUQkxfVVBEQVRFX0FETV9DT1VOVF9DTEVBUik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIzOlxcdFxcdGFkZHIgPSBtdDc5MjVfbWFjX3d0YmxfbG1hY19hZGRyKGRldiwgaWR4LCA2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQtXFx0XFx0dmFsID0gbXQ3Nl9ycihkZXYsIGFkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNS1cXHRcXHRpZiAocmF0ZS1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBSQVRFX0lORk9fRkxBR1NfRUhUX01DUykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNjpcXHRcXHRcXHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgNSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI3LVxcdFxcdFxcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0MS1cXHRcXHQvKiBnZXQgc2lnbmFsIHN0cmVuZ3RoIG9mIHJlc3AgZnJhbWVzIChDVFMvQkEvQUNLKSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjE0MjpcXHRcXHRhZGRyID0gbXQ3OTI1X21hY193dGJsX2xtYWNfYWRkcihkZXYsIGlkeCwgMzQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0My1cXHRcXHR2YWwgPSBtdDc2X3JyKGRldiwgYWRkcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTU3OnZvaWQgbXQ3OTI1X21hY19zZXRfZml4ZWRfcmF0ZV90YWJsZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE1OC1cXHRcXHRcXHRcXHQgICAgIHU4IHRibF9pZHgsIHUxNiByYXRlX2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE2OC0vKiBUaGUgSFcgZG9lcyBub3QgdHJhbnNsYXRlIHRoZSBtYWMgaGVhZGVyIHRvIDgwMi4zIGZvciBtZXNoIHBvaW50ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTY5OnN0YXRpYyBpbnQgbXQ3OTI1X3JldmVyc2VfZnJhZzBfaGRyX3RyYW5zKHN0cnVjdCBza19idWZmICpza2IsIHUxNiBoZHJfZ2FwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE3MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0yNDg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjI0OTptdDc5MjVfbWFjX2ZpbGxfcnhfcmF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTI1MC1cXHRcXHRcXHRzdHJ1Y3QgbXQ3Nl9yeF9zdGF0dXMgKnN0YXR1cyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTM1Mz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MzU0Om10NzkyNV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTM1NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01MzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NTM0OlxcdFxcdHJldCA9IG10NzkyNV9tYWNfZmlsbF9yeF9yYXRlKGRldiwgc3RhdHVzLCBzYmFuZCwgcnh2LCBcXHUwMDI2bW9kZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTM1LVxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtNTQ3LVxcdGlmIChoZHJfdHJhbnMgXFx1MDAyNlxcdTAwMjYgaWVlZTgwMjExX2hhc19tb3JlZnJhZ3MoZmMpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NTQ4OlxcdFxcdGlmIChtdDc5MjVfcmV2ZXJzZV9mcmFnMF9oZHJfdHJhbnMoc2tiLCBoZHJfZ2FwKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy01NDktXFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz02MjE9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo2MjI6bXQ3OTI1X21hY193cml0ZV90eHdpXzgwMjMoX19sZTMyICp0eHdpLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTYyMy1cXHRcXHRcXHQgICBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9NjU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NjU3Om10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIxMShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTY1OC1cXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTcyND12b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6NzI1Om10NzkyNV9tYWNfd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTcyNi1cXHRcXHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtODEzLVxcdGlmIChpc184MDIzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjgxNDpcXHRcXHRtdDc5MjVfbWFjX3dyaXRlX3R4d2lfODAyMyh0eHdpLCBza2IsIHdjaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgxNS1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6ODE2OlxcdFxcdG10NzkyNV9tYWNfd3JpdGVfdHh3aV84MDIxMShkZXYsIHR4d2ksIHNrYiwga2V5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04MTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04MzYtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjgzNzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfbWFjX3dyaXRlX3R4d2kpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTgzOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4Mzk6c3RhdGljIHZvaWQgbXQ3OTI1X3R4X2NoZWNrX2FnZ3Ioc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy04NDAtXFx0XFx0XFx0XFx0IHN0cnVjdCBtdDc2X3djaWQgKndjaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz04OTQ9c3RhdGljIGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzo4OTU6bXQ3OTI1X21hY19hZGRfdHhzX3NrYihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTg5Ni1cXHRcXHQgICAgICAgaW50IHBpZCwgX19sZTMyICp0eHNfZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwMjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTAyODp2b2lkIG10NzkyNV9tYWNfYWRkX3R4cyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwMjkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDU2OlxcdG10NzkyNV9tYWNfYWRkX3R4c19za2IoZGV2LCB3Y2lkLCBwaWQsIHR4c19kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDU3LVxcdGlmICghd2NpZC1cXHUwMDNlc3RhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDY2OnZvaWQgbXQ3OTI1X3R4d2lfZnJlZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl90eHdpX2NhY2hlICp0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwNjctXFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwODAtXFx0XFx0aWYgKGxpa2VseSh0LVxcdTAwM2Vza2ItXFx1MDAzZXByb3RvY29sICE9IGNwdV90b19iZTE2KEVUSF9QX1BBRSkpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwODE6XFx0XFx0XFx0bXQ3OTI1X3R4X2NoZWNrX2FnZ3Ioc3RhLCB0LVxcdTAwM2Vza2IsIHdjaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwODItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMDkyLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMDkzOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyNV90eHdpX2ZyZWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEwOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MTA5NT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEwOTY6bXQ3OTI1X21hY190eF9mcmVlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTA5Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExNjI6XFx0XFx0XFx0bXQ3OTI1X3R4d2lfZnJlZShkZXYsIHR4d2ksIHN0YSwgd2NpZCwgXFx1MDAyNmZyZWVfbGlzdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE2My1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExNjY6XFx0bXQ3OTI1X21hY19zdGFfcG9sbChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExNjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjExNzk6Ym9vbCBtdDc5MjVfcnhfY2hlY2soc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTExODAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTE5Ny1cXHRcXHQvKiBQS1RfVFlQRV9UWFJYX05PVElGWSBjYW4gYmUgcmVjZWl2ZWQgb25seSBieSBtbWlvIGRldmljZXMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMTk4OlxcdFxcdG10NzkyNV9tYWNfdHhfZnJlZShkZXYsIGRhdGEsIGxlbik7IC8qIG1taW8gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMTk5LVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDEtXFx0XFx0Zm9yIChyeGQgKz0gNDsgcnhkICsgMTIgXFx1MDAzYz0gZW5kOyByeGQgKz0gMTIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwMjpcXHRcXHRcXHRtdDc5MjVfbWFjX2FkZF90eHMoZGV2LCByeGQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDMtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIwNy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIwODpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfcnhfY2hlY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTIxMDp2b2lkIG10NzkyNV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIxMS1cXHRcXHRcXHQgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICppbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIzNC1cXHRcXHQvKiBQS1RfVFlQRV9UWFJYX05PVElGWSBjYW4gYmUgcmVjZWl2ZWQgb25seSBieSBtbWlvIGRldmljZXMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjM1OlxcdFxcdG10NzkyNV9tYWNfdHhfZnJlZShkZXYsIHNrYi1cXHUwMDNlZGF0YSwgc2tiLVxcdTAwM2VsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyMzYtXFx0XFx0bmFwaV9jb25zdW1lX3NrYihza2IsIDEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTIzOC1cXHRjYXNlIFBLVF9UWVBFX1JYX0VWRU5UOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyMzk6XFx0XFx0bXQ3OTI1X21jdV9yeF9ldmVudChkZXYsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI0MC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDItXFx0XFx0Zm9yIChyeGQgKz0gMjsgcnhkICsgOCBcXHUwMDNjPSBlbmQ7IHJ4ZCArPSA4KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNDM6XFx0XFx0XFx0bXQ3OTI1X21hY19hZGRfdHhzKGRldiwgcnhkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQ0LVxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNDctXFx0Y2FzZSBQS1RfVFlQRV9OT1JNQUw6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI0ODpcXHRcXHRpZiAoIW10NzkyNV9tYWNfZmlsbF9yeChkZXYsIHNrYikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjQ5LVxcdFxcdFxcdG10NzZfcngoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgcSwgc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNTctfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyNTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X3F1ZXVlX3J4X3NrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0xMjYwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI2MTptdDc5MjVfdmlmX2Nvbm5lY3RfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyNjItXFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyODEtXFx0XFx0XFx0XFx0XFx0ICAgIFxcdTAwMjZtdmlmLVxcdTAwM2VzdGEuZGVmbGluay53Y2lkLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMjgyOlxcdFxcdG10NzkyNV9tY3Vfc2V0X3R4KGRldiwgYnNzX2NvbmYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyODMtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI4Ny1cXHRcXHRcXHRcXHRcXHQgICAgdHJ1ZSwgTlVMTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTI4ODpcXHRcXHRtdDc5MjVfbWN1X3N0YV91cGRhdGUoZGV2LCBOVUxMLCB2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI4OS1cXHRcXHRcXHRcXHQgICAgICBcXHUwMDI2bXZpZi1cXHUwMDNlc3RhLmRlZmxpbmssIHRydWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5MC1cXHRcXHRcXHRcXHQgICAgICBNVDc2X1NUQV9JTkZPX1NUQVRFX05PTkUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyOTE6XFx0XFx0bXQ3OTI1X21jdV91bmlfYWRkX2JlYWNvbl9vZmZsb2FkKGRldiwgaHcsIHZpZiwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTI5Mi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMjk1LS8qIHN5c3RlbSBlcnJvciByZWNvdmVyeSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jOjEyOTY6dm9pZCBtdDc5MjVfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEyOTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMzNi1cXHRcXHRcXHRcXHRcXHQgICAgSUVFRTgwMjExX0lGQUNFX0lURVJfUkVTVU1FX0FMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzM3OlxcdFxcdFxcdFxcdFxcdCAgICBtdDc5MjVfdmlmX2Nvbm5lY3RfaXRlciwgTlVMTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMzOC1cXHRtdDc2X2Nvbm5hY19wb3dlcl9zYXZlX3NjaGVkKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucGh5LCBwbSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTMzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxMzQwOlxcdG10NzkyNV9yZWdkX2NoYW5nZShcXHUwMDI2ZGV2LVxcdTAwM2VwaHksIFxcXCIwMFxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDEtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM0Mzp2b2lkIG10NzkyNV9jb3JlZHVtcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xMzQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTEzNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM3MTpcXHRcXHRza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgbXQ3OTI1X21jdV9yeGQpICsgOCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTM3Mi1cXHRcXHRpZiAoIWR1bXAgfHwgZGF0YSArIHNrYi1cXHUwMDNlbGVuIC0gZHVtcCBcXHUwMDNlIE1UNzZfQ09OTkFDX0NPUkVEVU1QX1NaKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0xMzkxPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTM5MjptdDc5MjVfdXNiX3NkaW9fd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMzowMzo1Ni42NzMyNTEwNzJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDg5MTA0MzQyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBgbXQ3OTI1YCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBtdDc5MjVgIGRyaXZlci4gR29vZCBuZXdzIOKAkyBpdCBoYXMgYm90aCBhIFBDSSB2YXJpYW50IChgbXQ3OTI1ZWApIGFuZCBhIFVTQiB2YXJpYW50IChgbXQ3OTI1dWApLiBUaGUgVVNCIHZhcmlhbnQgaXMga2V5LCBiZWNhdXNlIHRoYXQgbWVhbnMgSSBjYW4gbGV2ZXJhZ2Ugc3l6a2FsbGVyJ3MgZHVtbXkgSENEIGZvciBVU0IgZnV6emluZy4gVGhhdCBtYWtlcyB0aGlzIGRyaXZlciByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB3aGljaCBpcyBpZGVhbCBmb3IgZWZmaWNpZW50IHRlc3RpbmcuXG5cblRoZSBwYXRjaCBJJ20gZXhhbWluaW5nIG1vZGlmaWVzIHRoZSBgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZWAgZnVuY3Rpb24gd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmNgLiBMZXQncyByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGF0IGNvZGUgYmxvY2s6XG5cbmBgYGNcbitzdGF0aWMgdm9pZCBtdDc5MjVfc3RhX3ByZV9yY3VfcmVtb3ZlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuK1x0XHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbitcdFx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4re1xuK1x0c3RydWN0IG10NzZfcGh5ICpwaHkgPSBody1cdTAwM2Vwcml2O1xuK1x0c3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuK1x0c3RydWN0IG10NzZfd2NpZCAqd2NpZCA9IChzdHJ1Y3QgbXQ3Nl93Y2lkICopc3RhLVx1MDAzZWRydl9wcml2O1xuK1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuK1x0c3Bpbl9sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VzdGF0dXNfbG9jayk7XG4rXG4rXHRpZiAoaWVlZTgwMjExX3ZpZl9pc19tbGQodmlmKSkge1xuK1x0XHRzdHJ1Y3QgbXQ3OTJ4X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTJ4X3N0YSAqKXN0YS1cdTAwM2VkcnZfcHJpdjtcbitcdFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG4rXHRcdHVuc2lnbmVkIGxvbmcgdmFsaWQgPSBtdmlmLVx1MDAzZXZhbGlkX2xpbmtzO1xuK1x0XHRzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluaztcbitcdFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XG4rXG4rXHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2dmFsaWQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xuK1x0XHRcdG1saW5rID0gbXQ3OTJ4X3N0YV90b19saW5rKG1zdGEsIGxpbmtfaWQpO1xuK1x0XHRcdGlmICghbWxpbmsgfHwgIW1saW5rLVx1MDAzZXdjaWQuc3RhKVxuK1x0XHRcdFx0Y29udGludWU7XG4rXHRcdFx0aWYgKG1saW5rLVx1MDAzZXdjaWQuaWR4IFx1MDAzYyBBUlJBWV9TSVpFKGRldi1cdTAwM2V3Y2lkKSlcbitcdFx0XHRcdHJjdV9hc3NpZ25fcG9pbnRlcihkZXYtXHUwMDNld2NpZFttbGluay1cdTAwM2V3Y2lkLmlkeF0sXG4rXHRcdFx0XHRcdFx0ICAgTlVMTCk7XG4rXHRcdH1cbitcdH0gZWxzZSB7XG4rXHRcdHJjdV9hc3NpZ25fcG9pbnRlcihkZXYtXHUwMDNld2NpZFt3Y2lkLVx1MDAzZWlkeF0sIE5VTEwpO1xuK1x0fVxuK1xuK1x0c3Bpbl91bmxvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXN0YXR1c19sb2NrKTtcbitcdG11dGV4X3VubG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuK31cbmBgYFxuXG5SaWdodCwgaXQncyByZXNwb25zaWJsZSBmb3IgdGhlIFJDVSByZW1vdmFsIG9mIGEgc3RhdGlvbiwgd2l0aCBzcGVjaWZpYyBoYW5kbGluZyBmb3IgTXVsdGktTGluayBEZXZpY2UgKE1MRCkgZnVuY3Rpb25hbGl0eS4gVGhpcyBpcyBkZWZpbml0ZWx5IGZ1bmN0aW9uYWwgY29kZSB0aGF0IHJlcXVpcmVzIGZ1enppbmcuIFdlIG5lZWQgdG8gZXhwb3NlIGl0cyBsb2dpYyB0byBmdXp6aW5nIHRvIGVuc3VyZSBjb3JyZWN0bmVzcyBhbmQgaWRlbnRpZnkgdnVsbmVyYWJpbGl0aWVzLlxuXG5Ob3csIHdoYXQgYWJvdXQgdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uPyAgSSdsbCBuZWVkIGBDT05GSUdfTVQ3OTI1VWAgdG8gZW5hYmxlIHRoZSBVU0IgdmFyaWFudC4gV2hpbGUgYENPTkZJR19NVDc5MjVFYCAoUENJKSBpcyBhbiBvcHRpb24sIHRoZSBVU0IgdmFyaWFudCBvZmZlcnMgdGhlIG1vc3Qgc3RyYWlnaHRmb3J3YXJkIHBhdGggZm9yIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuIFRpbWUgdG8gY2hlY2sgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWdgIG9yIHNpbWlsYXIgZmlsZXMgdG8gdmVyaWZ5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDI4NCwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc3MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMzowNDowNy41NjQyOTczNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDIyMzQ5NjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyNVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzoyOmNvbmZpZyBNVDc5MjVfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzo3OmNvbmZpZyBNVDc5MjVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy04LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjVFIChQQ0llKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0xOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnOjE5OmNvbmZpZyBNVDc5MjVVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMC1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTI1VSAoVVNCKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMzowNDowNy43MDY1NDYyODVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDE3MTYwMjk2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHF1aWNrIHRha2Ugb24gd2hhdCBJJ20gdGhpbmtpbmcsIGJhc2VkIG9uIHRoYXQgaW5wdXQuXG5cbioqRW5hYmxpbmcgTVQ3OTI1IERyaXZlcnMqKlxuXG5SaWdodCwgc28gdGhlIHBsYW4gaXMgdG8gZ2V0IHRoZSBgTVQ3OTI1VWAgYW5kIGBNVDc5MjVFYCBkcml2ZXJzIGVuYWJsZWQuIFNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIEJlZm9yZSBJIGRpdmUgdG9vIGRlZXAsIEkgc2hvdWxkIHF1aWNrbHkgdmVyaWZ5IGlmIGBNVDc5MjVfQ09NTU9OYCBpcyBhY3R1YWxseSByZXF1aXJlZCBkaXJlY3RseS4gSXQgbG9va3MgbGlrZSB0aGUgb3RoZXIgb3B0aW9ucyBtaWdodCBwdWxsIHRoYXQgaW4gYXV0b21hdGljYWxseSwgYnV0IGEgcXVpY2sgY29uZmlybWF0aW9uIGlzIGFsd2F5cyBzbWFydCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBkZXBlbmRlbmNpZXMgb3IgY29uZmxpY3RzIGxhdGVyIG9uLiBUaGVuLCBsZXQncyBqdXN0IG1ha2Ugc3VyZSBJIGhhdmUgdGhlIGZ1bGwgcGljdHVyZSwgYW5kIGNoZWNrIHdoYXQgYE1UNzkyNVVgIGRlcGVuZHMgb24uIEkgbmVlZCB0byBiZSBhd2FyZSBvZiB3aGF0IG90aGVyIHNldHRpbmdzIG9yIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zIHRoZXNlIGRyaXZlcnMgcmVseSBvbi4gR290dGEgdGhpbmsgYWhlYWQgYW5kIG1ha2Ugc3VyZSBhbGwgdGhlIHBpZWNlcyBmaXQgdG9nZXRoZXIgYmVmb3JlIEkgbWFrZSBhbnkgZmluYWwgZGVjaXNpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjIzMCwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEzOjA0OjIxLjg3ODE1MzI4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0MzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBNVDc5MjVfQ09NTU9OXFxuICAgMzpcXHRcXHR0cmlzdGF0ZVxcbiAgIDQ6XFx0XFx0c2VsZWN0IE1UNzkyeF9MSUJcXG4gICA1OlxcdFxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbiAgIDY6XFx0XFxuICAgNzpcXHRjb25maWcgTVQ3OTI1RVxcbiAgIDg6XFx0XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyNUUgKFBDSWUpIHN1cHBvcnRcXFwiXFxuICAgOTpcXHRcXHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxcbiAgMTA6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgMTE6XFx0XFx0ZGVwZW5kcyBvbiBQQ0lcXG4gIDEyOlxcdFxcdGhlbHBcXG4gIDEzOlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyNS1iYXNlZCB3aXJlbGVzcyBQQ0llIGRldmljZXMsXFxuICAxNDpcXHRcXHQgIHdoaWNoIHN1cHBvcnQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZVxcbiAgMTU6XFx0XFx0ICAyeDI6MlNTIDQwOTYtUUFNLCAxNjBNSHogY2hhbm5lbHMuXFxuICAxNjpcXHRcXG4gIDE3OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG4gIDE4OlxcdFxcbiAgMTk6XFx0Y29uZmlnIE1UNzkyNVVcXG4gIDIwOlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjVVIChVU0IpIHN1cHBvcnRcXFwiXFxuICAyMTpcXHRcXHRzZWxlY3QgTVQ3OTJ4X1VTQlxcbiAgMjI6XFx0XFx0c2VsZWN0IE1UNzkyNV9DT01NT05cXG4gIDIzOlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gIDI0OlxcdFxcdGRlcGVuZHMgb24gVVNCXFxuICAyNTpcXHRcXHRoZWxwXFxuICAyNjpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjUtYmFzZWQgd2lyZWxlc3MgVVNCIGRldmljZXMsXFxuICAyNzpcXHRcXHQgIHdoaWNoIHN1cHBvcnQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZVxcbiAgMjg6XFx0XFx0ICAyeDI6MlNTIDQwOTYtUUFNLCAxNjBNSHogY2hhbm5lbHMuXFxuICAyOTpcXHRcXG4gIDMwOlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTM6MDQ6MjEuODc4MjgwNzhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNzQ3NjU5NTg3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBNVDc5MjUgUkNVIFJlbW92YWwgUGF0Y2gqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgd2UncmUgbG9va2luZyBhdCBjb25maWd1cmF0aW9ucyBgTVQ3OTI1VWAgYW5kIGBNVDc5MjVFYC4gVGhlIGNydWNpYWwgZnVuY3Rpb24gaGVyZSBpcyBgbXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZWAuIEkgZG9uJ3Qgc2VlIGFueSBvdGhlciBmdW5jdGlvbnMgaW1wbGljYXRlZCBpbiB0aGUgZGVzY3JpcHRpb24sIHNvIHRoYXQgc2VlbXMgdG8gYmUgdGhlIGNvcmUgb2YgdGhlIG1hdHRlci4gSnVzdCB0byBiZSB0aG9yb3VnaCwgSSdtIGNvbmZpcm1pbmcgdGhhdCB0aGUgcGF0Y2ggKm9ubHkqIGludHJvZHVjZXMgYG10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmVgIGFuZCBhc3NpZ25zIGl0IHRvIGAuc3RhX3ByZV9yY3VfcmVtb3ZlYCB3aXRoaW4gYG10NzkyNV9vcHNgLlxuXG5UaGUgcmVhc29uaW5nIGlzIHByZXR0eSBjbGVhcjogVGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgaW1wbGVtZW50aW5nIFJDVSByZW1vdmFsIGZvciBzdGF0aW9ucyB3aXRoaW4gdGhlIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIHdpdGggc3BlY2lmaWMgY29uc2lkZXJhdGlvbnMgZm9yIE11bHRpLUxpbmsgRGV2aWNlIChNTEQpIGxvZ2ljLiBUaGUga2V5IGRldGFpbCwgYW5kIHRoaXMgaXMgaW1wb3J0YW50IGZvciBmdXp6aW5nLCBpcyB0aGF0IHRoZSBNVDc5MjUgaGFzIGEgVVNCIHZhcmlhbnQuIFRoYXQgbWVhbnMgd2UgY2FuIGdldCB0byBpdCB0aHJvdWdoIGEgZHVtbXkgSENEIHNldHVwLCBvcGVuaW5nIHRoZSBkb29yIGZvciBmdXp6aW5nLlxuXG5MZXQncyBzdW1tYXJpemUgdGhpcyBjb25jaXNlbHk6XG5cbiogICAqKldvcnRoRnV6emluZzoqKiBUcnVlXG4qICAgKipGb2N1c1N5bWJvbHM6KiogYFtcIm10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmVcIl1gXG4qICAgKipFbmFibGVDb25maWdzOioqIGBbXCJNVDc5MjVVXCIsIFwiTVQ3OTI1RVwiXWBcbiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggYWRkcyB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJDVSByZW1vdmFsIG9mIHN0YXRpb25zIHdpdGhpbiB0aGUgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlciwgaW5jbHVkaW5nIGhhbmRsaW5nIGZvciBNdWx0aS1MaW5rIERldmljZXMgKE1MRCkuIEltcG9ydGFudGx5LCBpdCBoYXMgYSBVU0IgdmFyaWFudCwgbXQ3OTI1dSwgd2hpY2ggbWFrZXMgZnV6emluZyB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXkgSENEKSB2aWFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDA2LCJPdXRwdXRUb2tlbnMiOjEyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEzOjA0OjM5LjM1NDg4MjY2OFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NDY0NTM5NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTI1VVwiLFxuICAgIFwiTVQ3OTI1RVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyNV9zdGFfcHJlX3JjdV9yZW1vdmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGZ1bmN0aW9uYWwgbG9naWMgZm9yIFJDVSByZW1vdmFsIG9mIHN0YXRpb25zIGluIHRoZSBNVDc5MjUgd2lyZWxlc3MgZHJpdmVyLCBpbmNsdWRpbmcgaGFuZGxpbmcgZm9yIE11bHRpLUxpbmsgRGV2aWNlcyAoTUxEKS4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAobXQ3OTI1dSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXkgSENEKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjVVXCIsXG4gICAgXCJNVDc5MjVFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3OTI1X3N0YV9wcmVfcmN1X3JlbW92ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgZnVuY3Rpb25hbCBsb2dpYyBmb3IgUkNVIHJlbW92YWwgb2Ygc3RhdGlvbnMgaW4gdGhlIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIsIGluY2x1ZGluZyBoYW5kbGluZyBmb3IgTXVsdGktTGluayBEZXZpY2VzIChNTEQpLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChtdDc5MjV1KSB3aGljaCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChkdW1teSBIQ0QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow58d2b[1] Phase: Succeeded StartedAt: 2026-06-30 13:05:47 +0000 UTC FinishedAt: 2026-06-30 13:05:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-30 13:05:47 +0000 UTC FinishedAt: 2026-06-30 13:05:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2] Phase: Succeeded StartedAt: 2026-06-30 13:05:47 +0000 UTC FinishedAt: 2026-06-30 14:05:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-30 13:05:47 +0000 UTC FinishedAt: 2026-06-30 14:05:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-30 13:05:47 +0000 UTC FinishedAt: 2026-06-30 13:06:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-30 13:05:47 +0000 UTC FinishedAt: 2026-06-30 13:05:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow58d2b/series-workflow58d2b-convert-artifact-3009004502/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-30 13:06:08 +0000 UTC FinishedAt: 2026-06-30 13:34:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-30 13:06:08 +0000 UTC FinishedAt: 2026-06-30 13:34:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*820d66fa-b738-4115-af01-175b0f73d30d,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-workflow58d2b/series-workflow58d2b-convert-artifact-3009004502/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": "73a97fa9-cd7d-4614-8e22-44613266c744", "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-workflow58d2b/series-workflow58d2b-build-action-3967721580/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-30 13:06:08 +0000 UTC FinishedAt: 2026-06-30 13:34:13 +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:*820d66fa-b738-4115-af01-175b0f73d30d,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-workflow58d2b/series-workflow58d2b-convert-artifact-3009004502/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": "73a97fa9-cd7d-4614-8e22-44613266c744", "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-workflow58d2b/series-workflow58d2b-build-action-3967721580/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-30 13:34:45 +0000 UTC FinishedAt: 2026-06-30 13:34:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-30 13:34:45 +0000 UTC FinishedAt: 2026-06-30 13:34:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-30 13:34:45 +0000 UTC FinishedAt: 2026-06-30 13:35:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-30 13:34:45 +0000 UTC FinishedAt: 2026-06-30 13:35:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow58d2b/series-workflow58d2b-convert-artifact-20706153/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-30 13:35:33 +0000 UTC FinishedAt: 2026-06-30 13:37:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-30 13:35:33 +0000 UTC FinishedAt: 2026-06-30 13:37:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*73a97fa9-cd7d-4614-8e22-44613266c744,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-workflow58d2b/series-workflow58d2b-build-action-3967721580/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-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-30 13:37:33 +0000 UTC FinishedAt: 2026-06-30 13:37:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-30 13:37:33 +0000 UTC FinishedAt: 2026-06-30 13:37:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-30 13:37:33 +0000 UTC FinishedAt: 2026-06-30 13:59:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-30 13:37:33 +0000 UTC FinishedAt: 2026-06-30 13:59:43 +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:*820d66fa-b738-4115-af01-175b0f73d30d,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-workflow58d2b/series-workflow58d2b-convert-artifact-20706153/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": "9ab3356c-5b7b-4727-a79f-a06731fb30f4", "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-workflow58d2b/series-workflow58d2b-build-action-217068357/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-30 13:37:33 +0000 UTC FinishedAt: 2026-06-30 13:59:33 +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:*820d66fa-b738-4115-af01-175b0f73d30d,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-workflow58d2b/series-workflow58d2b-convert-artifact-20706153/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": "9ab3356c-5b7b-4727-a79f-a06731fb30f4", "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-workflow58d2b/series-workflow58d2b-build-action-217068357/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-30 13:59:43 +0000 UTC FinishedAt: 2026-06-30 13:59:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-30 13:59:43 +0000 UTC FinishedAt: 2026-06-30 13:59:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-30 13:59:43 +0000 UTC FinishedAt: 2026-06-30 14:01:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-30 13:59:43 +0000 UTC FinishedAt: 2026-06-30 14:01:49 +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:*9ab3356c-5b7b-4727-a79f-a06731fb30f4,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-workflow58d2b/series-workflow58d2b-build-action-217068357/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-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-30 14:01:59 +0000 UTC FinishedAt: 2026-06-30 14:05:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-30 14:01:59 +0000 UTC FinishedAt: 2026-06-30 14:05:03 +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":["mt7925_sta_pre_rcu_remove"],"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:*73a97fa9-cd7d-4614-8e22-44613266c744,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*9ab3356c-5b7b-4727-a79f-a06731fb30f4,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-workflow58d2b/series-workflow58d2b-build-action-3967721580/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-workflow58d2b/series-workflow58d2b-build-action-217068357/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-30 14:01:59 +0000 UTC FinishedAt: 2026-06-30 14:02:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-30 14:01:59 +0000 UTC FinishedAt: 2026-06-30 14:02: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":["mt7925_sta_pre_rcu_remove"],"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-workflow58d2b/series-workflow58d2b-convert-artifact-4147622846/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-30 14:01:59 +0000 UTC FinishedAt: 2026-06-30 14:01:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-30 14:01:59 +0000 UTC FinishedAt: 2026-06-30 14:01:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-30 14:01:59 +0000 UTC FinishedAt: 2026-06-30 14:01:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-30 14:02:09 +0000 UTC FinishedAt: 2026-06-30 14:05:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow58d2b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7925_sta_pre_rcu_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"795f1b1a91ae13ebc012a364075e42f486a1cafe","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7925U","MT7925E"],"series_id":"f37927de-99c5-4593-9b2b-dd87501d38d0","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-30 14:02:09 +0000 UTC FinishedAt: 2026-06-30 14:04:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*73a97fa9-cd7d-4614-8e22-44613266c744,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*9ab3356c-5b7b-4727-a79f-a06731fb30f4,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-workflow58d2b/series-workflow58d2b-build-action-3967721580/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-workflow58d2b/series-workflow58d2b-build-action-217068357/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-workflow58d2b/series-workflow58d2b-convert-artifact-4147622846/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,}