Name: series-workflowpzkmn Phase: Succeeded StartedAt: 2026-08-05 08:09:10 +0000 UTC FinishedAt: 2026-08-05 09:22:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[0] Phase: Succeeded StartedAt: 2026-08-05 08:09:10 +0000 UTC FinishedAt: 2026-08-05 08:40:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[0].run-triage Phase: Succeeded StartedAt: 2026-08-05 08:09:10 +0000 UTC FinishedAt: 2026-08-05 08:40:51 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "6c5fc504d0d6934132637aa3db4b9b58148eaa78", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT76x0U", "MT76x2U", "MT7921U", "MT7925U" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "6c5fc504d0d6934132637aa3db4b9b58148eaa78", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT76x0U", "MT76x2U", "MT7921U", "MT7925U" ], "series_id": "bed237e5-db01-4c06-a2a0-891b78dcb078" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt76u_tx_queue_skb" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzZ4MFUmIzM0OywKICAgICYjMzQ7TVQ3NngyVSYjMzQ7LAogICAgJiMzNDtNVDc5MjFVJiMzNDssCiAgICAmIzM0O01UNzkyNVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc2dV90eF9xdWV1ZV9za2ImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGVycm9yIGhhbmRsaW5nIHBhdGggaW4gYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZm9yIE1lZGlhVGVrIE1UNzYgVVNCIHdpcmVsZXNzIGRyaXZlcnMsIGVuc3VyaW5nIHRoYXQgU0tCcyBhcmUgcHJvcGVybHkgZnJlZWQgYW5kIHRoZWlyIHN0YXR1cyByZXBvcnRlZCB3aGVuIFRYIHByZXBhcmF0aW9uIG9yIGJ1ZmZlciBzZXR1cCBmYWlscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZ2FkZ2V0IGZ1enppbmcgYW5kIG1hYzgwMjExIHBhY2tldCBpbmplY3Rpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6MzY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBkOWY0Y2UyOWNmOGZmMzJjYTg5ZTNmMmUzOGU4ZTQ2MTQzOWVkNWFiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAwODozNjo1NSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY1xuaW5kZXggYTlhZjNhYTZiODBhOS4uZTI2NjUwOWE3ODczZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcbkBAIC04OTMsNiAmIzQzOzg5Myw5IEBAIG10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4gXHRcdCAgIGVudW0gbXQ3Nl90eHFfaWQgcWlkLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHQgICBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxuIHtcbiYjNDM7XHRzdHJ1Y3QgaWVlZTgwMjExX3R4X3N0YXR1cyBzdGF0dXMgPSB7XG4mIzQzO1x0XHQuc3RhID0gc3RhLFxuJiM0MztcdH07XG4gXHRzdHJ1Y3QgbXQ3Nl90eF9pbmZvIHR4X2luZm8gPSB7XG4gXHRcdC5za2IgPSBza2IsXG4gXHR9O1xuQEAgLTkwNiwxMSAmIzQzOzkwOSwxMSBAQCBtdDc2dV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuIFx0c2tiLVx1MDAzZXByZXYgPSBza2ItXHUwMDNlbmV4dCA9IE5VTEw7XG4gXHRlcnIgPSBkZXYtXHUwMDNlZHJ2LVx1MDAzZXR4X3ByZXBhcmVfc2tiKGRldiwgTlVMTCwgcWlkLCB3Y2lkLCBzdGEsIFx1MDAyNnR4X2luZm8pO1xuIFx0aWYgKGVyciBcdTAwM2MgMClcbi1cdFx0cmV0dXJuIGVycjtcbiYjNDM7XHRcdGdvdG8gZXJyX2ZyZWVfc2tiO1xuIFxuIFx0ZXJyID0gbXQ3NnVfdHhfc2V0dXBfYnVmZmVycyhkZXYsIHR4X2luZm8uc2tiLCBxLVx1MDAzZWVudHJ5W2lkeF0udXJiKTtcbiBcdGlmIChlcnIgXHUwMDNjIDApXG4tXHRcdHJldHVybiBlcnI7XG4mIzQzO1x0XHRnb3RvIGVycl9mcmVlX3NrYjtcbiBcbiBcdG10NzZ1X2ZpbGxfYnVsa191cmIoZGV2LCBVU0JfRElSX09VVCwgcS1cdTAwM2VlcCwgcS1cdTAwM2VlbnRyeVtpZHhdLnVyYixcbiBcdFx0XHQgICAgbXQ3NnVfY29tcGxldGVfdHgsIFx1MDAyNnEtXHUwMDNlZW50cnlbaWR4XSk7XG5AQCAtOTIxLDYgJiM0Mzs5MjQsMTMgQEAgbXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbiBcdHEtXHUwMDNlcXVldWVkJiM0MzsmIzQzOztcbiBcbiBcdHJldHVybiBpZHg7XG4mIzQzO1xuJiM0MztlcnJfZnJlZV9za2I6XG4mIzQzO1x0c3RhdHVzLnNrYiA9IHR4X2luZm8uc2tiO1xuJiM0MztcdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcnhfbG9jayk7XG4mIzQzO1x0aWVlZTgwMjExX3R4X3N0YXR1c19leHQoZGV2LVx1MDAzZWh3LCBcdTAwMjZzdGF0dXMpO1xuJiM0MztcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyeF9sb2NrKTtcbiYjNDM7XHRyZXR1cm4gZXJyO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBtdDc2dV90eF9raWNrKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4zbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVQ3NngwVSYjMzQ7LAogICAgJiMzNDtNVDc2eDJVJiMzNDssCiAgICAmIzM0O01UNzkyMVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1VSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzZ1X3R4X3F1ZXVlX3NrYiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZXJyb3IgaGFuZGxpbmcgcGF0aCBpbiBgbXQ3NnVfdHhfcXVldWVfc2tiYCBmb3IgTWVkaWFUZWsgTVQ3NiBVU0Igd2lyZWxlc3MgZHJpdmVycywgZW5zdXJpbmcgdGhhdCBTS0JzIGFyZSBwcm9wZXJseSBmcmVlZCBhbmQgdGhlaXIgc3RhdHVzIHJlcG9ydGVkIHdoZW4gVFggcHJlcGFyYXRpb24gb3IgYnVmZmVyIHNldHVwIGZhaWxzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBnYWRnZXQgZnV6emluZyBhbmQgbWFjODAyMTEgcGFja2V0IGluamVjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ5ZjRjZTI5Y2Y4ZmYzMmNhODllM2YyZTM4ZThlNDYxNDM5ZWQ1YWIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyA1IDA4OjM2OjU1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMKaW5kZXggYTlhZjNhYTZiODBhOS4uZTI2NjUwOWE3ODczZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jCkBAIC04OTMsNiAmIzQzOzg5Myw5IEBAIG10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsCiAJCSAgIGVudW0gbXQ3Nl90eHFfaWQgcWlkLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkgICBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKQogewomIzQzOwlzdHJ1Y3QgaWVlZTgwMjExX3R4X3N0YXR1cyBzdGF0dXMgPSB7CiYjNDM7CQkuc3RhID0gc3RhLAomIzQzOwl9OwogCXN0cnVjdCBtdDc2X3R4X2luZm8gdHhfaW5mbyA9IHsKIAkJLnNrYiA9IHNrYiwKIAl9OwpAQCAtOTA2LDExICYjNDM7OTA5LDExIEBAIG10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsCiAJc2tiLSZndDtwcmV2ID0gc2tiLSZndDtuZXh0ID0gTlVMTDsKIAllcnIgPSBkZXYtJmd0O2Rydi0mZ3Q7dHhfcHJlcGFyZV9za2IoZGV2LCBOVUxMLCBxaWQsIHdjaWQsIHN0YSwgJmFtcDt0eF9pbmZvKTsKIAlpZiAoZXJyICZsdDsgMCkKLQkJcmV0dXJuIGVycjsKJiM0MzsJCWdvdG8gZXJyX2ZyZWVfc2tiOwogCiAJZXJyID0gbXQ3NnVfdHhfc2V0dXBfYnVmZmVycyhkZXYsIHR4X2luZm8uc2tiLCBxLSZndDtlbnRyeVtpZHhdLnVyYik7CiAJaWYgKGVyciAmbHQ7IDApCi0JCXJldHVybiBlcnI7CiYjNDM7CQlnb3RvIGVycl9mcmVlX3NrYjsKIAogCW10NzZ1X2ZpbGxfYnVsa191cmIoZGV2LCBVU0JfRElSX09VVCwgcS0mZ3Q7ZXAsIHEtJmd0O2VudHJ5W2lkeF0udXJiLAogCQkJICAgIG10NzZ1X2NvbXBsZXRlX3R4LCAmYW1wO3EtJmd0O2VudHJ5W2lkeF0pOwpAQCAtOTIxLDYgJiM0Mzs5MjQsMTMgQEAgbXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSwKIAlxLSZndDtxdWV1ZWQmIzQzOyYjNDM7OwogCiAJcmV0dXJuIGlkeDsKJiM0MzsKJiM0MztlcnJfZnJlZV9za2I6CiYjNDM7CXN0YXR1cy5za2IgPSB0eF9pbmZvLnNrYjsKJiM0MzsJc3Bpbl9sb2NrX2JoKCZhbXA7ZGV2LSZndDtyeF9sb2NrKTsKJiM0MzsJaWVlZTgwMjExX3R4X3N0YXR1c19leHQoZGV2LSZndDtodywgJmFtcDtzdGF0dXMpOwomIzQzOwlzcGluX3VubG9ja19iaCgmYW1wO2Rldi0mZ3Q7cnhfbG9jayk7CiYjNDM7CXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyB2b2lkIG10NzZ1X3R4X2tpY2soc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTM2CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMjA4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBvdGVudGlhbGx5IEZ1enphYmxlIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBuZXcgcGF0Y2ggdG8gbG9vayBhdCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgYXBwZWFycyB0byBiZSBpbiB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZnVuY3Rpb24uIEVzc2VudGlhbGx5LCB0aGV5JiMzOTt2ZSBhZGRlZCBhbiBlcnJvciBoYW5kbGluZyBwYXRoLCBgZXJyX2ZyZWVfc2tiYCwgdGhhdCYjMzk7cyBjYWxsaW5nIGBpZWVlODAyMTFfdHhfc3RhdHVzX2V4dChkZXYtJmd0O2h3LCAmYW1wO3N0YXR1cylgIGJlZm9yZSBwb3RlbnRpYWxseSByZXR1cm5pbmcgYW4gZXJyb3IuIFRoYXTigJlzIGludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb24gdG8gdGhlIHdpcmVsZXNzIGRyaXZlciwgYW5kLCBjcnVjaWFsbHksIGl0JiMzOTtzIG92ZXIgVVNCLgoKVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBVU0IgaXMga2V5LiBUaGF0IG1ha2VzIHRoaXMgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIFdlIGNhbiBlbXVsYXRlIFVTQiBkZXZpY2VzIHVzaW5nIHRoaW5ncyBsaWtlIGBkdW1teV9oY2RgIG9yIGB2aGNpLWhjZGAsIGFuZCB0b29scyBsaWtlIHN5emthbGxlciBjYW4gY29ubmVjdCB0byB0aG9zZSBlbXVsYXRlZCBkZXZpY2VzIHZpYSBgc3l6X3VzYl9jb25uZWN0YC4gU28sIHRoZSBhdHRhY2sgc3VyZmFjZSBpcyBkZWZpbml0ZWx5IHRoZXJlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtjYW4gd2UgdHJpZ2dlciB0aGlzIGVycm9yIHBhdGggd2l0aCBjcmFmdGVkIFVTQiB0cmFmZmljPyYjMzQ7CgpOb3csIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBkcml2ZXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMuIEnigJlsbCBzdGFydCBieSBkaWdnaW5nIGludG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNgIGFuZCBzZWFyY2ggd2l0aGluIGZvciBgbXQ3NnVfdHhfcXVldWVfc2tiYCB0byBnZXQgYSBiZXR0ZXIgc2Vuc2Ugb2YgdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIHRoZSBjb25kaXRpb25zIHRoYXQgbWlnaHQgbGVhZCB0byB0aGUgZXhlY3V0aW9uIG9mIHRoYXQgc3BlY2lmaWMgZXJyb3IgcGF0aC4gVGltZSB0byBzZWUgd2hhdCB3ZSBjYW4gZmluZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2dV90eF9xdWV1ZV9za2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM9ODkxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6ODkyOm10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTg5My1cdFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYz0xMTI3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9vcHMgdXNiX3F1ZXVlX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6MTEyODpcdC50eF9xdWV1ZV9za2IgPSBtdDc2dV90eF9xdWV1ZV9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTExMjktXHQua2ljayA9IG10NzZ1X3R4X2tpY2ssXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE3OAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDE0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBtdDc2dV90eF9xdWV1ZV9za2JgIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldHMgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYC4gUmlnaHQsIHRoYXQmIzM5O3MgYSBVU0Igd2lyZWxlc3MgZHJpdmVyLCBwYXJ0IG9mIHRoZSBtdDc2IGZhbWlseS4gVGhhdCYjMzk7cyBpbW1lZGlhdGVseSBpbnRlcmVzdGluZyBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZSBiZWNhdXNlIFVTQiBkcml2ZXJzIGFyZSBvZnRlbiBzdXNjZXB0aWJsZSB0byBidWdzIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCB0aHJvdWdoIGNyYWZ0ZWQgVVNCIHBhY2tldHMuIFdlIGNhbiB1c2UgdG9vbHMgbGlrZSBgZHVtbXlfaGNkYCBvciBzaW1pbGFyIFVTQiBlbXVsYXRpb24gdGVjaG5pcXVlcyB0byBnZW5lcmF0ZSB0aG9zZSBwYWNrZXRzLgoKTm93LCB3YWl0IGEgbWludXRlLCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgYXR0YWNrIHN1cmZhY2UuIFNpbmNlIGl0JiMzOTtzIGEgd2lyZWxlc3MgZHJpdmVyLCBjb3VsZCBJIHJlYWNoIGl0IHRocm91Z2ggYG1hYzgwMjExX2h3c2ltYD8gTm8sIG5vLCB0aGF0JiMzOTtzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgZHJpdmVyLiBCdXQgdGhlIGNydWNpYWwgcG9pbnQgaGVyZSBpcyB0aGF0IHN5emthbGxlcuKAmXMgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzLCBlc3BlY2lhbGx5IGxldmVyYWdpbmcgYGR1bW15X2hjZGAsICpzaG91bGQqIGJlIGFwcGxpY2FibGUgaGVyZS4gSSBoYXZlIHRvIHZlcmlmeSB0aGF0LgoKTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIG1ha2UgYWJzb2x1dGVseSBjZXJ0YWluIHRoYXQgYE1UNzZfVVNCYCBpcyBlbmFibGVkIG9yLCBhdCB0aGUgdmVyeSBsZWFzdCwgZmlndXJlIG91dCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgd291bGQgaW5jbHVkZSB0aGlzIGRyaXZlci4gVGhlbiBJIGNhbiBkZXRlcm1pbmUgaWYgdGhpcyBpcyBhIHN1aXRhYmxlIHRhcmdldCBmb3IgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3Nl9VU0ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9Nj1jb25maWcgTVQ3Nl9MRURTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjEyOmNvbmZpZyBNVDc2X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEzLVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjA2CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMjA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHR3ZWFraW5nIGBtdDc2dV90eF9xdWV1ZV9za2JgIHdpdGhpbiB0aGUgYG10NzZgIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY2AuIFRoZSBjaGFuZ2UgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogaXQmIzM5O3MgYWRkaW5nIHNvbWUgZXJyb3IgaGFuZGxpbmcgdG8gZnJlZSB0aGUgU0tCIGlmIGVpdGhlciBgdHhfcHJlcGFyZV9za2JgIG9yIGBtdDc2dV90eF9zZXR1cF9idWZmZXJzYCBmYWlscy4gRnVuY3Rpb25hbGx5LCB0aGlzIGxvb2tzIGxpa2UgYSBnb29kIGFkZGl0aW9uLCBtYWtpbmcgdGhlIGRyaXZlciBtb3JlIHJvYnVzdC4gSXQmIzM5O3MgYSB3aXJlbGVzcyBkcml2ZXIsIGJ1dCBsZXQmIzM5O3MgY29uc2lkZXIgdGhlIGltcGxpY2F0aW9ucyBmb3IgZnV6emluZywgc2luY2UgdGhhdCYjMzk7cyBteSBhcmVhIG9mIGZvY3VzLgoKVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgaXMgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGFuZCBzaW5jZSB0aGlzIGlzIGEgVVNCIGRyaXZlciwgaXQgbW9zdCBjZXJ0YWlubHkgaXMuIEkga25vdyBVU0IgZGV2aWNlcyBjYW4gYmUgZW11bGF0ZWQgdXNpbmcgYSB2YXJpZXR5IG9mIG1ldGhvZHM6IFVTQiBnYWRnZXQsIGBkdW1teV9oY2RgLCB0aGluZ3MgbGlrZSB0aGF0LiBCdXQsIGluIG15IGV4cGVyaWVuY2Ugd2l0aCBmdXp6aW5nLCBlc3BlY2lhbGx5IHdpdGggc3l6a2FsbGVyLCB3ZSYjMzk7ZCB0eXBpY2FsbHkgdXNlIGB2aGNpYCDigJMgdGhlIHJhdyBVU0IgZ2FkZ2V0IOKAkyBmb3IgZW11bGF0aW5nIHRoZXNlIHRoaW5ncy4gQW5kIHN5emthbGxlciBoYXMgdGhhdCBoYW5keSBgc3l6X3VzYl9jb25uZWN0YCBwc2V1ZG8tc3lzY2FsbCwgd2hpY2ggaXMgcGVyZmVjdCBmb3IgcmVwcmVzZW50aW5nIFVTQiBkZXZpY2VzLgoKU28sIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nICYjMzQ7eWVzLiYjMzQ7IFVTQiBkcml2ZXJzIGFyZSBkZWZpbml0ZWx5IHdpdGhpbiBvdXIgZnV6emluZyBzY29wZS4gTm93LCBsZXQgbWUganVzdCBxdWlja2x5IGNoZWNrIHRoZSBLY29uZmlnIGRlcGVuZGVuY2llcyBmb3IgYE1UNzZfVVNCYCB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIG9idmlvdXMgcm9hZGJsb2Nrcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgTVQ3Nl9DT1JFXG4gICAzOlx0XHR0cmlzdGF0ZVxuICAgNDpcdFx0c2VsZWN0IFBBR0VfUE9PTFxuICAgNTpcdFxuICAgNjpcdGNvbmZpZyBNVDc2X0xFRFNcbiAgIDc6XHRcdGJvb2xcbiAgIDg6XHRcdGRlcGVuZHMgb24gTVQ3Nl9DT1JFXG4gICA5Olx0XHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBNVDc2X0NPUkU9TEVEU19DTEFTU1xuICAxMDpcdFx0ZGVmYXVsdCB5XG4gIDExOlx0XG4gIDEyOlx0Y29uZmlnIE1UNzZfVVNCXG4gIDEzOlx0XHR0cmlzdGF0ZVxuICAxNDpcdFx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcbiAgMTU6XHRcbiAgMTY6XHRjb25maWcgTVQ3Nl9TRElPXG4gIDE3Olx0XHR0cmlzdGF0ZVxuICAxODpcdFx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcbiAgMTk6XHRcbiAgMjA6XHRjb25maWcgTVQ3NngwMl9MSUJcbiAgMjE6XHRcdHRyaXN0YXRlXG4gIDIyOlx0XHRzZWxlY3QgTVQ3Nl9DT1JFXG4gIDIzOlx0XG4gIDI0Olx0Y29uZmlnIE1UNzZ4MDJfVVNCXG4gIDI1Olx0XHR0cmlzdGF0ZVxuICAyNjpcdFx0c2VsZWN0IE1UNzZfVVNCXG4gIDI3Olx0XG4gIDI4Olx0Y29uZmlnIE1UNzZfQ09OTkFDX0xJQlxuICAyOTpcdFx0dHJpc3RhdGVcbiAgMzA6XHRcdHNlbGVjdCBNVDc2X0NPUkVcbiAgMzE6XHRcbiAgMzI6XHRjb25maWcgTVQ3OTJ4X0xJQlxuICAzMzpcdFx0dHJpc3RhdGVcbiAgMzQ6XHRcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcbiAgMzU6XHRcbiAgMzY6XHRjb25maWcgTVQ3OTJ4X1VTQlxuICAzNzpcdFx0dHJpc3RhdGVcbiAgMzg6XHRcdHNlbGVjdCBNVDc2X1VTQlxuICAzOTpcdFxuICA0MDpcdGNvbmZpZyBNVDc2X05QVVxuICA0MTpcdFx0dHJpc3RhdGVcbiAgNDI6XHRcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcbiAgNDM6XHRcbiAgNDQ6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZ1wmIzM0O1xuICA0NTpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnXCYjMzQ7XG4gIDQ2Olx0c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWdcJiMzNDtcbiAgNDc6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZ1wmIzM0O1xuICA0ODpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnXCYjMzQ7XG4gIDQ5Olx0c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWdcJiMzNDtcbiAgNTA6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZ1wmIzM0O1xuICA1MTpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY4NgoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDI1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBNZWRpYXRlayBVU0IgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBgbXQ3NnVfdHhfcXVldWVfc2tiYCBmdW5jdGlvbiB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYCBmaWxlLiBSaWdodCwgdGhpcyBpcyB0aGUgVVNCIGRyaXZlciBmb3IgdGhvc2UgTWVkaWFUZWsgd2lyZWxlc3MgZGV2aWNlcyDigJMgaW1wb3J0YW50IGNvbnRleHQuIFRoZSBrZXkgaGVyZSBpcyB0aGUgVVNCIGFzcGVjdCwgbWVhbmluZyBJIGNhbiBwcm9iYWJseSBnZXQgYXQgdGhpcyBjb2RlIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZy4gU3BlY2lmaWNhbGx5LCBJIHNob3VsZCBiZSBhYmxlIHRvIHRyaWdnZXIgdGhpcyB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbiwgYSBkdW1teSBIQ0Qgc2V0dXAsIG9yIGV2ZW4gYmV0dGVyLCB3aXRoIHNvbWV0aGluZyBsaWtlIHN5emthbGxlciYjMzk7cyBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMuIFRoaXMgaXMgZ3JlYXQsIGFzIGl0IGdpdmVzIG1lIHNvbWUgZmxleGliaWxpdHkgaW4gdGVzdGluZy4KClRoZSBjcnV4IG9mIHRoZSBwYXRjaCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGEgcG90ZW50aWFsIG1lbW9yeSBsZWFrIG9yIGEgbWlzc2luZyBzdGF0dXMgdXBkYXRlIHdoZW4gZWl0aGVyIGB0eF9wcmVwYXJlX3NrYmAgb3IgYG10NzZ1X3R4X3NldHVwX2J1ZmZlcnNgIHRocm93cyBhbiBlcnJvci4gU28sIGl0JiMzOTtzIGFkZGluZyBhIGBnb3RvIGVycl9mcmVlX3NrYmAgdG8gY2xlYW4gdXAgdGhlIFNLQi4gVGhpcyBqdW1wIGRvZXMgY2FsbCBgaWVlZTgwMjExX3R4X3N0YXR1c19leHQoZGV2LSZndDtodywgJmFtcDtzdGF0dXMpO2Agd2hpY2ggc2hvdWxkIGZyZWUgdGhlIFNLQi4gVGhhdCYjMzk7cyBhIHJlYXNvbmFibGUgZml4LgoKTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uOiBob3cgY2FuIEkgYWN0dWFsbHkgcmVhY2ggdGhpcyBjb2RlIHBhdGg/IENhbiBJIHJlcHJvZHVjZSB0aGlzIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZz8gRGVmaW5pdGVseSwgc2luY2UgaXQgaXMgYSBVU0IgZHJpdmVyOyBJIGNhbiBzZWUgaG93IFVTQiBmdXp6aW5nIChlLmcuLCBzeXprYWxsZXImIzM5O3MgdmhjaS91c2IgZnV6emluZykgd291bGQgYmUgYSBkaXJlY3Qgd2F5IHRvIHRyaWdnZXIgdGhlIGNvbmRpdGlvbnMgdGhpcyBwYXRjaCBhZGRyZXNzZXMuIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgbWluaW1hbCBjb25maWd1cmF0aW9uIHJlcXVpcmVkIHRvIG1ha2UgdGhlIGRyaXZlciBidWlsZCBhbmQgcnVuLgoKTGV0JiMzOTtzIHNlZTogSSYjMzk7dmUgZ290IHRvIGVuc3VyZSB0aGUgYE1UNzZfVVNCYCBvcHRpb24gaXMgZW5hYmxlZCwgYW5kIGl0JiMzOTtzIGEgdHJpc3RhdGUgb3B0aW9uLCBzZWxlY3RlZCBieSBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgY29uZmlndXJhdGlvbnMgc3BlY2lmaWNhbGx5IGFjdGl2YXRlIHRob3NlIGBNVDc2eDAyX1VTQmAgYW5kIGBNVDc5MnhfVVNCYCBvcHRpb25zLiBUaGF0JiMzOTtzIHRoZSBuZXh0IHN0ZXA7IGZpZ3VyZSBvdXQgdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlbiBzdGFydCBidWlsZGluZyBhbmQgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IE1UNzZ4MDJfVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZz02PWNvbmZpZyBNVDc2eDBVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy04LVx0c2VsZWN0IE1UNzZ4MF9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWc6OTpcdHNlbGVjdCBNVDc2eDAyX1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy0xMC1cdGRlcGVuZHMgb24gTUFDODAyMTFcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnPTE4PWNvbmZpZyBNVDc2eDJVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0yMC1cdHNlbGVjdCBNVDc2eDJfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjIxOlx0c2VsZWN0IE1UNzZ4MDJfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnLTIyLVx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDc4CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IE1UNzkyeF9VU0ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnPTI4PWNvbmZpZyBNVDc5MjFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI5LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjMwOlx0c2VsZWN0IE1UNzkyeF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMzEtXHRzZWxlY3QgTVQ3OTIxX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc9MTk9Y29uZmlnIE1UNzkyNVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMjAtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MjVVIChVU0IpIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc6MjE6XHRzZWxlY3QgTVQ3OTJ4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMi1cdHNlbGVjdCBNVDc5MjVfQ09NTU9OXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4MjcKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAyMDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgRnVuY3Rpb24gaW4gdGhlIE1lZGlhVGVrIFVTQiBXaS1GaSBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcG90ZW50aWFsIGZ1enppbmcgdGFyZ2V0OiB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZnVuY3Rpb24gd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYC4gVGhpcyBpcyBwYXJ0IG9mIHRoZSBNZWRpYVRlayBVU0IgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBpbnRlcmVzdGluZyBiZWNhdXNlIEkga25vdyBVU0IgZGV2aWNlcyBhcmUgZ2VuZXJhbGx5IGFjY2Vzc2libGUgZm9yIGZ1enppbmcgdmlhIGVtdWxhdGlvbiDigJMgdGhpbmdzIGxpa2UgYGR1bW15X2hjZGAsIGByYXctZ2FkZ2V0YCwgb3IgZXZlbiBzeXprYWxsZXImIzM5O3MgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzIHNob3VsZCBiZSBhcHBsaWNhYmxlIGhlcmUuIEFuZCBnaXZlbiB0aGUgZnVuY3Rpb24mIzM5O3MgbmFtZSwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoaXMgaXMgYSBUWCBxdWV1ZSBmdW5jdGlvbiwgbWFraW5nIGl0IGEgZ29vZCBjYW5kaWRhdGUgZm9yIGV4cGxvcmluZyBwb3RlbnRpYWwgcGFja2V0LWhhbmRsaW5nIHZ1bG5lcmFiaWxpdGllcy4KCk5vdywgdG8gZ2V0IHRoaXMgYnVpbGQsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zIGFyZSBzZXQuIExvb2tzIGxpa2UgSSYjMzk7bGwgbmVlZCB0byBlbmFibGUgZWl0aGVyIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIG9yIGBNVDc5MjVVYCwgZGVwZW5kaW5nIG9uIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSBJJiMzOTttIHRhcmdldGluZy4gVGhlc2Ugd2lsbCBwdWxsIGluIGBNVDc2eDAyX1VTQmAgb3IgYE1UNzkyeF9VU0JgIGFuZCBjb25zZXF1ZW50bHkgYE1UNzZfVVNCYCwgd2hpY2ggSSBhc3N1bWUgYXJlIHRoZSByZWxldmFudCBVU0Itc3BlY2lmaWMgY29tcG9uZW50cy4gT2YgY291cnNlLCBgTUFDODAyMTFgIGFuZCBgVVNCYCBhcmUgYWxzbyByZXF1aXJlZC4gVGltZSB0byBjaGVjayB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNVDc2eDBVYCB0byBzZWUgd2hhdCBlbHNlIEkgbWlnaHQgbmVlZCB0byBlbmFibGUgaW4gdGhlIEtjb25maWcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdGNvbmZpZyBNVDc2eDBfQ09NTU9OXG4gICAzOlx0XHR0cmlzdGF0ZVxuICAgNDpcdFx0c2VsZWN0IE1UNzZ4MDJfTElCXG4gICA1Olx0XG4gICA2Olx0Y29uZmlnIE1UNzZ4MFVcbiAgIDc6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MFUgKFVTQikgc3VwcG9ydFwmIzM0O1xuICAgODpcdFx0c2VsZWN0IE1UNzZ4MF9DT01NT05cbiAgIDk6XHRcdHNlbGVjdCBNVDc2eDAyX1VTQlxuICAxMDpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAxMTpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgMTI6XHRcdGhlbHBcbiAgMTM6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzYxMFUtYmFzZWQgVVNCIDIuMCB3aXJlbGVzcyBkb25nbGVzLFxuICAxNDpcdFx0ICB3aGljaCBjb21wbHkgd2l0aCBJRUVFIDgwMi4xMWFjIHN0YW5kYXJkcyBhbmQgc3VwcG9ydCAxeDFcbiAgMTU6XHRcdCAgNDMzTWJwcyBQSFkgcmF0ZS5cbiAgMTY6XHRcbiAgMTc6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMTg6XHRcbiAgMTk6XHRjb25maWcgTVQ3NngwRVxuICAyMDpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NngwRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NTA4CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAyODpcdGNvbmZpZyBNVDc5MjFVXG4gIDI5Olx0XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MjFVIChVU0IpIHN1cHBvcnRcJiMzNDtcbiAgMzA6XHRcdHNlbGVjdCBNVDc5MnhfVVNCXG4gIDMxOlx0XHRzZWxlY3QgTVQ3OTIxX0NPTU1PTlxuICAzMjpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAzMzpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgMzQ6XHRcdGhlbHBcbiAgMzU6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyMVUgODAyLjExYXggMngyOjJTUyB3aXJlbGVzcyBkZXZpY2VzLlxuICAzNjpcdFxuICAzNzpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NzIzCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNzkwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIE1UNzYgVVNCIERyaXZlciYjMzk7cyBUWCBQYXRoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggdGFyZ2V0cyBgbXQ3NnVfdHhfcXVldWVfc2tiYCB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNgLiBUaGlzIGlzIHRoZSBVU0IgZHJpdmVyIGZvciBNZWRpYVRlayBNVDc2IHdpcmVsZXNzIGRldmljZXMsIGFuZCB0aGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgaXMgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgYmVjYXVzZSB3ZSBjYW4gZW11bGF0ZSB0aGUgVVNCIGRldmljZSB1c2luZyBzb21ldGhpbmcgbGlrZSBgZHVtbXlfaGNkYCBvciBgcmF3LWdhZGdldGAgaW4gc3l6a2FsbGVyLiBHb29kLgoKVGhlIHBhdGNoIGl0c2VsZiBpcyBhYm91dCBlcnJvciBoYW5kbGluZyBpbiBgbXQ3NnVfdHhfcXVldWVfc2tiYCwgc3BlY2lmaWNhbGx5IHdoZW4gZWl0aGVyIGB0eF9wcmVwYXJlX3NrYmAgb3IgYG10NzZ1X3R4X3NldHVwX2J1ZmZlcnNgIGZhaWxzLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGhhbmRsaW5nIHRoZSBjbGVhbnVwIHByb3Blcmx5IGJ5IGNhbGxpbmcgYGllZWU4MDIxMV90eF9zdGF0dXNfZXh0YCB0byBmcmVlIHRoZSBza2IgaW4gY2FzZSBvZiBhbiBlcnJvci4gU3RhbmRhcmQgc3R1ZmYsIGJ1dCBpbXBvcnRhbnQgZm9yIGZ1enppbmcgY292ZXJhZ2UuCgpOb3csIGhvdyBkbyB3ZSBnZXQgdGhpcyBjb2RlIHRvIGV4ZWN1dGU/IFdlIG5lZWQgdG8gZW5hYmxlIHRoZSByaWdodCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBNVDc2IFVTQiBkcml2ZXJzLiBMZXQmIzM5O3Mgc2VlLi4uIGxvb2tpbmcgYXQgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AsIGBNVDc2X1VTQmAgaXMgc2VsZWN0ZWQgYnkgYm90aCBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAuIFRob3NlIGFyZSB0aGUgdHdvIG1haW4gb3B0aW9ucy4gVGhlbiwgYE1UNzZ4MDJfVVNCYCBpcyBzZWxlY3RlZCBieSBgTVQ3NngwVWAgYW5kIGBNVDc2eDJVYC4gYE1UNzkyeF9VU0JgIGlzIHNlbGVjdGVkIGJ5IGBNVDc5MjFVYCBhbmQgYE1UNzkyNVVgLiBUaGF0IG1lYW5zIHdlIG5lZWQgdG8gZW5hYmxlIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBgTVQ3OTI1VWAuIEVhc3kgZW5vdWdoLgoKV2Ugc2hvdWxkIGNoZWNrIHRoZWlyIGRlcGVuZGVuY2llczogYE1UNzZ4MlVgIGRlcGVuZHMgb24gYE1BQzgwMjExYCBhbmQgYFVTQmAuIGBNVDc5MjVVYCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAgYW5kIGBVU0JgLiBObyBzdXJwcmlzZXMgdGhlcmUuIEV2ZXJ5dGhpbmcgc2VlbXMgdG8gYmUgaW4gb3JkZXIuCgpUaGUgZnVuY3Rpb24gYG10NzZ1X3R4X3F1ZXVlX3NrYmAgaXRzZWxmIGlzIHRoZSBwcmltYXJ5IHRhcmdldC4gSXQmIzM5O3MgYXNzaWduZWQgdG8gdGhlIGAudHhfcXVldWVfc2tiYCBmdW5jdGlvbiBwb2ludGVyIGluIGB1c2JfcXVldWVfb3BzYC4gVGhhdOKAmXMgdGhlIGtleSBoZXJlLgoKTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIGlmIGBtdDc2dV90eF9xdWV1ZV9za2JgIGlzIHN0YXRpYy4gTG9va3MgbGlrZSBpdCBpcy4gQnV0LCBpdCBpcyBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgYHR4X3F1ZXVlX3NrYmAgaW4gYG10NzZfcXVldWVfb3BzYCwgc28gaXQgc2hvdWxkIHN0aWxsIGJlIHJlYWNoYWJsZS4gSXMgdGhlcmUgYSBub24tc3RhdGljIGVudHJ5IHBvaW50PyBJIHNob3VsZCBzZWFyY2ggZm9yIGBtdDc2dV90eF9xdWV1ZV9za2JgIG9yIGB1c2JfcXVldWVfb3BzYCB0byBtYWtlIHN1cmUuIElzIGB1c2JfcXVldWVfb3BzYCB1c2VkIGluIGBtdDc2dV9xdWV1ZXNfaW5pdGAgb3Igc2ltaWxhcj8gVGhhdCYjMzk7cyB3aGF0IEkgd2lsbCBzZWFyY2ggZm9yIG5leHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VzYl9xdWV1ZV9vcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM9MTEyNT1FWFBPUlRfU1lNQk9MX0dQTChtdDc2dV9hbGxvY19xdWV1ZXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy0xMTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYzoxMTI3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9vcHMgdXNiX3F1ZXVlX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMtMTEyOC1cdC50eF9xdWV1ZV9za2IgPSBtdDc2dV90eF9xdWV1ZV9za2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYz0xMTMyPWludCBfX210NzZ1X2luaXQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMtMTE1MS1cdGRldi1cdTAwM2VidXMgPSBvcHM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jOjExNTI6XHRkZXYtXHUwMDNlcXVldWVfb3BzID0gXHUwMDI2dXNiX3F1ZXVlX29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMtMTE1My1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTUzNwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgaWYgdGhleSBhcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIFVTQiBRdWV1ZSBPcGVyYXRpb25zKioKCkFscmlnaHQsIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoaXMgVVNCIGNvZGUgYW5kIEkmIzM5O3ZlIGp1c3Qgc2VlbiB0aGF0IGBkZXYtJmd0O3F1ZXVlX29wc2AgaXMgYXNzaWduZWQgdG8gYCZhbXA7dXNiX3F1ZXVlX29wc2AuIE1ha2VzIHNlbnNlLCBzdGFuZGFyZCBVU0IgcXVldWluZyBzdHVmZi4gQnV0IG5vdyB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXMsIHdoZXJlIHRoZSBoZWNrIGlzIGBxdWV1ZV9vcHMtJmd0O3R4X3F1ZXVlX3NrYmAgYWN0dWFsbHkgKmNhbGxlZCo/IEkgbmVlZCB0byB0cmFjZSB0aGUgZXhlY3V0aW9uIHBhdGggdG8gdW5kZXJzdGFuZCBob3cgU0tCcyBhcmUgYmVpbmcgaW5qZWN0ZWQgaW50byB0aGUgVVNCIHRyYW5zbWlzc2lvbiBwaXBlbGluZS4gS25vd2luZyB0aGUgY2FsbHNpdGUgb2YgYHR4X3F1ZXVlX3NrYmAgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGRhdGEgZmxvdyBhbmQgaG93IHRoaXMgcGFydGljdWxhciBxdWV1ZSBpbnRlcmFjdHMgd2l0aCB0aGUgb3ZlcmFsbCBVU0Igc3RhY2suIEkgbmVlZCB0byBmaW5kIHRoZSBmdW5jdGlvbihzKSBvciBkcml2ZXIgY29tcG9uZW50cyB0aGF0IGFyZSByZXNwb25zaWJsZSBmb3Iga2lja2luZyBvZmYgdGhvc2UgcGFja2V0IHRyYW5zbWlzc2lvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3R4X3F1ZXVlX3NrYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9NjMzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NjM0Om10NzZfZG1hX3R4X3F1ZXVlX3NrYl9yYXcoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy02MzUtXHRcdFx0ICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgdHhfaW5mbylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTY2Nj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjY2NzptdDc2X2RtYV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy02NjgtXHRcdCAgICAgIGVudW0gbXQ3Nl90eHFfaWQgcWlkLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MTE3Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG10NzZfcXVldWVfb3BzIG10NzZfZG1hX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNzktXHQucmVzZXRfcSA9IG10NzZfZG1hX3F1ZXVlX3Jlc2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTgwOlx0LnR4X3F1ZXVlX3NrYl9yYXcgPSBtdDc2X2RtYV90eF9xdWV1ZV9za2JfcmF3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTgxOlx0LnR4X3F1ZXVlX3NrYiA9IG10NzZfZG1hX3R4X3F1ZXVlX3NrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE4Mi1cdC50eF9jbGVhbnVwID0gbXQ3Nl9kbWFfdHhfY2xlYW51cCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0yOTI9c3RydWN0IG10NzZfcXVldWVfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0yOTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDozMDA6XHRpbnQgKCp0eF9xdWV1ZV9za2IpKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTMwMS1cdFx0XHQgICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMzAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MzA0Olx0aW50ICgqdHhfcXVldWVfc2tiX3Jhdykoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMzA1LVx0XHRcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHR4X2luZm8pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTEyNjg9c3RhdGljIGlubGluZSBpbnQgbXQ3Nl93ZWRfZG1hX3NldHVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjc5LSNkZWZpbmUgbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIC4uLilcdChkZXYpLVx1MDAzZW10NzYucXVldWVfb3BzLVx1MDAzZWFsbG9jKFx1MDAyNigoZGV2KS1cdTAwM2VtdDc2KSwgX19WQV9BUkdTX18pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjgwOiNkZWZpbmUgbXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgLi4uKVx0KGRldiktXHUwMDNlbXQ3Ni5xdWV1ZV9vcHMtXHUwMDNldHhfcXVldWVfc2tiX3JhdyhcdTAwMjYoKGRldiktXHUwMDNlbXQ3NiksIF9fVkFfQVJHU19fKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI4MTojZGVmaW5lIG10NzZfdHhfcXVldWVfc2tiKGRldiwgLi4uKVx0KGRldiktXHUwMDNlbXQ3Ni5xdWV1ZV9vcHMtXHUwMDNldHhfcXVldWVfc2tiKFx1MDAyNigoZGV2KS1cdTAwM2VtcGh5KSwgX19WQV9BUkdTX18pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjgyLSNkZWZpbmUgbXQ3Nl9xdWV1ZV9yeF9yZXNldChkZXYsIC4uLilcdChkZXYpLVx1MDAzZW10NzYucXVldWVfb3BzLVx1MDAzZXJ4X3Jlc2V0KFx1MDAyNigoZGV2KS1cdTAwM2VtdDc2KSwgX19WQV9BUkdTX18pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM9MzA9bXQ3NjAzX3VwZGF0ZV9iZWFjb25faXRlcih2b2lkICpwcml2LCB1OCAqbWFjLCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6NzE6XHRtdDc2X3R4X3F1ZXVlX3NrYihkZXYsIGRldi1cdTAwM2VtcGh5LnFfdHhbTVRfVFhRX0JFQUNPTl0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy03Mi1cdFx0XHQgIE1UX1RYUV9CRUFDT04sIHNrYiwgXHUwMDI2bXZpZi1cdTAwM2VzdGEud2NpZCwgTlVMTCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM9MTAzPXZvaWQgbXQ3NjAzX3ByZV90YnR0X3Rhc2tsZXQoc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE2Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjE2NzpcdFx0bXQ3Nl90eF9xdWV1ZV9za2IoZGV2LCBxLCBNVF9UWFFfQ0FCLCBza2IsIFx1MDAyNm12aWYtXHUwMDNlc3RhLndjaWQsIE5VTEwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTY4LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21haW4uYz0zOTQ9bXQ3NjAzX3BzX3R4X2xpc3Qoc3RydWN0IG10NzYwM19kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmMtNDAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jOjQwMTpcdFx0bXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgZGV2LVx1MDAzZW1waHkucV90eFtxaWRdLCBza2IsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jLTQwMi1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tY3UuYz0zOD1tdDc2MDNfbWN1X3NrYl9zZW5kX21zZyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWN1LmMtNzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tY3UuYzo3NTpcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVx1MDAzZXFfbWN1W01UX01DVVFfV01dLCBza2IsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWN1LmMtNzYtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYz0yNTE9bXQ3NjE1X3Jlc2V0X3Rlc3Rfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTI2NS1cdG10NzYxNV9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmM6MjY2Olx0bXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgZGV2LVx1MDAzZW1waHkucV90eFswXSwgc2tiLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYy0yNjctXHRtdDc2MTVfbXV0ZXhfcmVsZWFzZShkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jPTE4ND1tdDc2MTVfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmMtMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmM6MTk2Olx0cmV0dXJuIG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIGRldi1cdTAwM2VtdDc2LnFfbWN1W3FpZF0sIHNrYiwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYy0xOTctfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW9fbWN1LmM9Mzk9bXQ3NjYzc19tY3Vfc2VuZF9tZXNzYWdlKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvX21jdS5jLTQ1LVx0bXQ3NjE1X21jdV9maWxsX21zZyhkZXYsIHNrYiwgY21kLCBzZXEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpb19tY3UuYzo0NjpcdHJldCA9IG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIG1kZXYtXHUwMDNlcV9tY3VbTVRfTUNVUV9XTV0sIHNrYiwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvX21jdS5jLTQ3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbWN1LmM9MzQ9aW50IG10NzZ4MDJfbWN1X21zZ19zZW5kKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgaW50IGNtZCwgY29uc3Qgdm9pZCAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbWN1LmMtNjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbWN1LmM6NjM6XHRyZXQgPSBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVx1MDAzZXFfbWN1W01UX01DVVFfV01dLCBza2IsIHR4X2luZm8pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX21jdS5jLTY0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbW1pby5jPTE0PXN0YXRpYyB2b2lkIG10NzZ4MDJfcHJlX3RidHRfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX21taW8uYy02OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9tbWlvLmM6Njk6XHRcdG10NzZfdHhfcXVldWVfc2tiKGRldiwgcSwgTVRfVFhRX1BTRCwgc2tiLCBcdTAwMjZtdmlmLVx1MDAzZWdyb3VwX3djaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbW1pby5jLTcwLVx0XHRcdFx0ICBOVUxMKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0yMjI9bXQ3OTE1X21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjIzNzpcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVx1MDAzZXFfbWN1W3FpZF0sIHNrYiwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMzgtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaV9tY3UuYz0yMj1tdDc5MjFfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpX21jdS5jLTM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpX21jdS5jOjM4Olx0cmV0dXJuIG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIG1kZXYtXHUwMDNlcV9tY3VbdHhxXSwgc2tiLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaV9tY3UuYy0zOS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpb19tY3UuYz0xNj1tdDc5MjFzX21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW9fbWN1LmMtNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvX21jdS5jOjQ1Olx0cmV0ID0gbXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgbWRldi1cdTAwM2VxX21jdVt0eHFdLCBza2IsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpb19tY3UuYy00Ni1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpX21jdS5jPTg9bXQ3OTI1X21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaV9tY3UuYy0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaV9tY3UuYzoyNDpcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVx1MDAzZXFfbWN1W3R4cV0sIHNrYiwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2lfbWN1LmMtMjUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jPTI5MD1tdDc5OTZfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmM6MzgxOlx0cmV0dXJuIG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIG1kZXYtXHUwMDNlcV9tY3VbcWlkXSwgc2tiLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTM4Mi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM9NTE3PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Rpby5jOjUxODptdDc2c190eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmMtNTE5LVx0XHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYz01NTg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM6NTU5Om10NzZzX3R4X3F1ZXVlX3NrYl9yYXcoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmMtNTYwLVx0XHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHR4X2luZm8pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM9NjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9vcHMgc2Rpb19xdWV1ZV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYzo2MDQ6XHQudHhfcXVldWVfc2tiID0gbXQ3NnNfdHhfcXVldWVfc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmMtNjA1LVx0LmtpY2sgPSBtdDc2c190eF9raWNrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM6NjA2Olx0LnR4X3F1ZXVlX3NrYl9yYXcgPSBtdDc2c190eF9xdWV1ZV9za2JfcmF3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmMtNjA3LX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90ZXN0bW9kZS5jPTMxPXZvaWQgbXQ3Nl90ZXN0bW9kZV90eF9wZW5kaW5nKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdGVzdG1vZGUuYy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdGVzdG1vZGUuYzo1NjpcdFx0cmV0ID0gZGV2LVx1MDAzZXF1ZXVlX29wcy1cdTAwM2V0eF9xdWV1ZV9za2IocGh5LCBxLCBxaWQsIHNrYl9nZXQoc2tiKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdGVzdG1vZGUuYy01Ny1cdFx0XHRcdFx0XHQgICB3Y2lkLCBOVUxMKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM9MzI1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYzozMjY6X19tdDc2X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgaW50IHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy0zMjctXHRcdCAgICBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy0zMzctXHRub25fYXFsID0gIWluZm8tXHUwMDNldHhfdGltZV9lc3Q7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM6MzM4Olx0aWR4ID0gZGV2LVx1MDAzZXF1ZXVlX29wcy1cdTAwM2V0eF9xdWV1ZV9za2IocGh5LCBxLCBxaWQsIHNrYiwgd2NpZCwgc3RhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy0zMzktXHRpZiAoaWR4IFx1MDAzYyAwIHx8ICFzdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jPTQxND1tdDc2X3F1ZXVlX3BzX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNDMyLVx0bXQ3Nl9za2Jfc2V0X21vcmVkYXRhKHNrYiwgIWxhc3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jOjQzMzpcdF9fbXQ3Nl90eF9xdWV1ZV9za2IocGh5LCBNVF9UWFFfUFNELCBza2IsIHdjaWQsIHN0YSwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNDM0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM9NDkwPW10NzZfdHhxX3NlbmRfYnVyc3Qoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy01MjEtXHRzcGluX2xvY2soXHUwMDI2cS1cdTAwM2Vsb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYzo1MjI6XHRpZHggPSBfX210NzZfdHhfcXVldWVfc2tiKHBoeSwgcWlkLCBza2IsIHdjaWQsIHR4cS1cdTAwM2VzdGEsIFx1MDAyNnN0b3ApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTUyMy1cdHNwaW5fdW5sb2NrKFx1MDAyNnEtXHUwMDNlbG9jayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTU0Ni1cdFx0c3Bpbl9sb2NrKFx1MDAyNnEtXHUwMDNlbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM6NTQ3Olx0XHRpZHggPSBfX210NzZfdHhfcXVldWVfc2tiKHBoeSwgcWlkLCBza2IsIHdjaWQsIHR4cS1cdTAwM2VzdGEsIFx1MDAyNnN0b3ApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTU0OC1cdFx0c3Bpbl91bmxvY2soXHUwMDI2cS1cdTAwM2Vsb2NrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM9NjYwPW10NzZfdHhxX3NjaGVkdWxlX3BlbmRpbmdfd2NpZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNjk0LVx0XHRzcGluX2xvY2soXHUwMDI2cS1cdTAwM2Vsb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYzo2OTU6XHRcdF9fbXQ3Nl90eF9xdWV1ZV9za2IocGh5LCBxaWQsIHNrYiwgd2NpZCwgc3RhLCBOVUxMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy02OTYtXHRcdGRldi1cdTAwM2VxdWV1ZV9vcHMtXHUwMDNla2ljayhkZXYsIHEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM9ODkxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6ODkyOm10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTg5My1cdFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYz0xMTI3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9vcHMgdXNiX3F1ZXVlX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6MTEyODpcdC50eF9xdWV1ZV9za2IgPSBtdDc2dV90eF9xdWV1ZV9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTExMjktXHQua2ljayA9IG10NzZ1X3R4X2tpY2ssXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNDcxCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogODkxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA4OTE6XHRzdGF0aWMgaW50XG4gODkyOlx0bXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbiA4OTM6XHRcdFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXG4gODk0Olx0XHRcdCAgIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4gODk1Olx0e1xuIDg5NjpcdFx0c3RydWN0IGllZWU4MDIxMV90eF9zdGF0dXMgc3RhdHVzID0ge1xuIDg5NzpcdFx0XHQuc3RhID0gc3RhLFxuIDg5ODpcdFx0fTtcbiA4OTk6XHRcdHN0cnVjdCBtdDc2X3R4X2luZm8gdHhfaW5mbyA9IHtcbiA5MDA6XHRcdFx0LnNrYiA9IHNrYixcbiA5MDE6XHRcdH07XG4gOTAyOlx0XHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG4gOTAzOlx0XHR1MTYgaWR4ID0gcS1cdTAwM2VoZWFkO1xuIDkwNDpcdFx0aW50IGVycjtcbiA5MDU6XHRcbiA5MDY6XHRcdGlmIChxLVx1MDAzZXF1ZXVlZCA9PSBxLVx1MDAzZW5kZXNjKVxuIDkwNzpcdFx0XHRyZXR1cm4gLUVOT1NQQztcbiA5MDg6XHRcbiA5MDk6XHRcdHNrYi1cdTAwM2VwcmV2ID0gc2tiLVx1MDAzZW5leHQgPSBOVUxMO1xuIDkxMDpcdFx0ZXJyID0gZGV2LVx1MDAzZWRydi1cdTAwM2V0eF9wcmVwYXJlX3NrYihkZXYsIE5VTEwsIHFpZCwgd2NpZCwgc3RhLCBcdTAwMjZ0eF9pbmZvKTtcbiA5MTE6XHRcdGlmIChlcnIgXHUwMDNjIDApXG4gOTEyOlx0XHRcdGdvdG8gZXJyX2ZyZWVfc2tiO1xuIDkxMzpcdFxuIDkxNDpcdFx0ZXJyID0gbXQ3NnVfdHhfc2V0dXBfYnVmZmVycyhkZXYsIHR4X2luZm8uc2tiLCBxLVx1MDAzZWVudHJ5W2lkeF0udXJiKTtcbiA5MTU6XHRcdGlmIChlcnIgXHUwMDNjIDApXG4gOTE2Olx0XHRcdGdvdG8gZXJyX2ZyZWVfc2tiO1xuIDkxNzpcdFxuIDkxODpcdFx0bXQ3NnVfZmlsbF9idWxrX3VyYihkZXYsIFVTQl9ESVJfT1VULCBxLVx1MDAzZWVwLCBxLVx1MDAzZWVudHJ5W2lkeF0udXJiLFxuIDkxOTpcdFx0XHRcdCAgICBtdDc2dV9jb21wbGV0ZV90eCwgXHUwMDI2cS1cdTAwM2VlbnRyeVtpZHhdKTtcbiA5MjA6XHRcbiA5MjE6XHRcdHEtXHUwMDNlaGVhZCA9IChxLVx1MDAzZWhlYWQgJiM0MzsgMSkgJSBxLVx1MDAzZW5kZXNjO1xuIDkyMjpcdFx0cS1cdTAwM2VlbnRyeVtpZHhdLnNrYiA9IHR4X2luZm8uc2tiO1xuIDkyMzpcdFx0cS1cdTAwM2VlbnRyeVtpZHhdLndjaWQgPSAweGZmZmY7XG4gOTI0Olx0XHRxLVx1MDAzZXF1ZXVlZCYjNDM7JiM0Mzs7XG4gOTI1Olx0XG4gOTI2Olx0XHRyZXR1cm4gaWR4O1xuIDkyNzpcdFxuIDkyODpcdGVycl9mcmVlX3NrYjpcbiA5Mjk6XHRcdHN0YXR1cy5za2IgPSB0eF9pbmZvLnNrYjtcbiA5MzA6XHRcdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcnhfbG9jayk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0MjA2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTY1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiBNZWRpYVRlayBNVDc2IFVTQiBEcml2ZXIgUGF0Y2ggZm9yIEZ1enppbmcqKgoKT2theSwgbGV0JiMzOTtzIHNlZS4gVGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgbXQ3NnVfdHhfcXVldWVfc2tiYCBpbiB0aGUgYG10NzZgIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgdXNiLmNgLiBJdCYjMzk7cyBhYm91dCBlcnJvciBoYW5kbGluZyBkdXJpbmcgVFgsIGVuc3VyaW5nIHRoZSBTS0IgaXMgZnJlZWQgYW5kIGl0cyBzdGF0dXMgcmVwb3J0ZWQgaWYgYHR4X3ByZXBhcmVfc2tiYCBvciBgbXQ3NnVfdHhfc2V0dXBfYnVmZmVyc2AgZmFpbHMuIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgcHJldHR5IHN0YW5kYXJkIHRoaW5nIHRvIGxvb2sgZm9yIHdoZW4gZnV6emluZyBkcml2ZXJzLiBUaGUgZmFjdCBpdCYjMzk7cyBVU0ItYmFzZWQgbWVhbnMgd2UgY2FuIGhpdCBpdCB3aXRoIFVTQiBnYWRnZXQgZW11bGF0aW9uLCBtYXliZSB3aXRoIHNvbWV0aGluZyBsaWtlIGBkdW1teV9oY2RgIG9yIHN5emthbGxlciYjMzk7cyBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMg4oCTIHBlcmZlY3QuCgpOb3csIHRvIG1ha2Ugc3VyZSB3ZSBjYW4gdHJpZ2dlciB0aGlzLCB3ZSBuZWVkIHRvIGdldCB0aGUgcmlnaHQgY29uZmlncyBzZXQuIExldCYjMzk7cyBzdGFydCB3aXRoIHRoZSBiYXNlLCBgTVQ3Nl9VU0JgLiBUaGVuLCB0aGUgZHJpdmVycyB0aGF0IHNlbGVjdCB0aGF0IGFyZSBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAsIGJ1dCB0aG9zZSBhcmVuJiMzOTt0IHRoZSBhY3R1YWwgZHJpdmVycy4gQWgsIHJpZ2h0LiBJdCYjMzk7cyBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgIHRoYXQgKnNlbGVjdCogdGhvc2UgY29uZmlncy4gU28sIGl0IGxvb2tzIGxpa2Ugd2Ugd2FudCB0byBlbmFibGUgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIGBNVDc5MjVVYC4gQSBxdWljayBjaGVjayByZXZlYWxzIHRoYXQgYWxsIHRoZXNlIGRyaXZlcnMgZGVwZW5kIG9uIGJvdGggYE1BQzgwMjExYCBhbmQgYFVTQmAsIHdoaWNoIGNvbmZpcm1zIG91ciBhcHByb2FjaC4KCmBNVDc2X1VTQmAgaXMganVzdCB0cmlzdGF0ZSwgc2VsZWN0ZWQgYnkgYE1UNzZ4MDJfVVNCYCBhbmQgYE1UNzkyeF9VU0JgLiBTbywgd2UgbmVlZCB0byBlbmFibGUgdGhlIG9uZXMgd2l0aCBwcm9tcHRzOiBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgLiBUaGF0IHNob3VsZCBwdWxsIGluIHRoZSBuZWVkZWQgZGVwZW5kZW5jaWVzLCBpbmNsdWRpbmcgYFVTQmAuIEdvb2QuIExldCYjMzk7cyBtYWtlIHN1cmUgdGhlIHByb21wdHMgYXJlIHNhbmUg4oCTIHllcCwgYWxsIHRob3NlIGNvbmZpZ3MgaGF2ZSBwcm9tcHRzIGluIHRoZWlyIHJlc3BlY3RpdmUgS2NvbmZpZyBmaWxlcywgYWxsIGdvb2QuCgpUaGUga2V5IGZ1bmN0aW9uIGhlcmUsIHRoZSBvbmUgYmVpbmcgbW9kaWZpZWQsIGlzIGBtdDc2dV90eF9xdWV1ZV9za2JgLiBPa2F5LCBub3csIHRoZSBwcm9tcHQmIzM5O3MgcHJlZmVyZW5jZSBpcyBmb3Igbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zLiBCdXQsIGBtdDc2dV90eF9xdWV1ZV9za2JgICppcyogc3RhdGljLiBCdXQgd2FpdCEgSXRzIGFkZHJlc3MgaXMgdGFrZW4gYW5kIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciwgd2hpY2ggbWVhbnMgaXQgZGVmaW5pdGVseSB3b24mIzM5O3QgYmUgZnVsbHkgaW5saW5lZC4gRXZlbiBpZiBpdCAqY291bGQqIGJlIGlubGluZWQsIGFzc2lnbmluZyBpdCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgd2lsbCBwcmV2ZW50IHRoYXQuIFNvLCBpdCYjMzk7cyBub3QgYWN0dWFsbHkgYW4gaXNzdWUhIFRoYXQgbWVhbnMgd2UgY2FuIHN0aWxsIGdldCBhIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzIGV2ZW4gdGhvdWdoIGl0JiMzOTtzIGRlY2xhcmVkIGBzdGF0aWNgLiBCZXNpZGVzLCBpdCYjMzk7cyB0aGUgZXhhY3QgZnVuY3Rpb24gYmVpbmcgbW9kaWZpZWQsIHNvIHBlcmZlY3QuIFdlIGNhbiBhbHNvIGluY2x1ZGUgYG10NzZfdHhxX3NlbmRfYnVyc3RgIG9yIGBtdDc2X3R4cV9zY2hlZHVsZV9wZW5kaW5nX3djaWRgIHdoaWNoIGFyZSBub24tc3RhdGljIGFzIHdlbGwuIEhvd2V2ZXIsIGBtdDc2dV90eF9xdWV1ZV9za2JgIGlzIHRoZSBkaXJlY3QgdGFyZ2V0IGFuZCB0aGUgY2hhbmdlIHRoYXQgaXMgbW9kaWZpZWQuIExldCYjMzk7cyBzdGljayB3aXRoIGBtdDc2dV90eF9xdWV1ZV9za2JgIGFzIHRoZSBmb2N1cy4KClNvLCBpbiBzdW1tYXJ5LCB3ZSYjMzk7cmUgbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgZml4ZXMgYW4gZXJyb3IgcGF0aCwgcHJvYmFibHkgYSBtZW1vcnkgbGVhayBvciBhIHN0YXR1cyByZXBvcnRpbmcgaXNzdWUgd2hlbiBUWCBwcmVwYXJhdGlvbiBmYWlscy4gSXQmIzM5O3MgaW4gdGhlIFVTQiBkcml2ZXIsIHNvIGl0JiMzOTtzIGRpcmVjdGx5IHJlYWNoYWJsZSB2aWEgVVNCIGZ1enppbmcgdGVjaG5pcXVlcy4KCkVuYWJsZUNvbmZpZ3M6IGBbJiMzNDtNVDc2eDBVJiMzNDssICYjMzQ7TVQ3NngyVSYjMzQ7LCAmIzM0O01UNzkyMVUmIzM0OywgJiMzNDtNVDc5MjVVJiMzNDtdYC4KRm9jdXNTeW1ib2xzOiBgWyYjMzQ7bXQ3NnVfdHhfcXVldWVfc2tiJiMzNDtdYC4KCkZpbmFsbHksIGp1c3QgYSBxdWljayBzYW5pdHkgY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgVVNCIGRyaXZlcnMgaW4gdGhlIGBtdDc2YCBkaXJlY3RvcnkuIExldCYjMzk7cyBzZWUuLi4gbm90aGluZyBpbW1lZGlhdGVseSBqdW1waW5nIG91dC4gQWxyaWdodCwgdGhhdCYjMzk7cyBpdCEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzYwMVUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2MDF1L0tjb25maWc6Mjpjb25maWcgTVQ3NjAxVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc2MDFVIChVU0IpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTUyMjgKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3Nl9VU0ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9Nj1jb25maWcgTVQ3Nl9MRURTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjEyOmNvbmZpZyBNVDc2X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEzLVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTUzNzcKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3NngwMl9VU0ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9MjA9Y29uZmlnIE1UNzZ4MDJfTElCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI0OmNvbmZpZyBNVDc2eDAyX1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI1LVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkwNTAKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAxMDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNZWRpYXRlayBXaXJlbGVzcyBEcml2ZXJzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHRoZSBgTVQ3NjAxVWAgZHJpdmVyIGlzIGFuIG91dGxpZXIsIHJlc2lkaW5nIGluZGVwZW5kZW50bHkgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvYC4gSXQmIzM5O3Mgbm90IGxldmVyYWdpbmcgdGhlIGNvbW1vbiBgbXQ3Ni91c2IuY2AgZnJhbWV3b3JrLiBIbW0sIGludGVyZXN0aW5nLgoKQnV0IHRoYXQgbWVhbnMgdGhlIG90aGVyIGRyaXZlcnMgSSYjMzk7bSBmYW1pbGlhciB3aXRoLCB0aGUgb25lcyBsaWtlIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBgTVQ3OTI1VWAsIHRoZXkgYXJlIGxpa2VseSB0aGUgb25lcyB1dGlsaXppbmcgdGhlIGBtdDc2L3VzYi5jYCBtb2R1bGUsIHdoaWNoIG1ha2VzIHNlbnNlLiBJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgdGhhdCwgZ2l2ZW4gdGhlaXIgc2hhcmVkIGFyY2hpdGVjdHVyZS4KCk5vdywgbXkgY3VyaW9zaXR5IGlzIHBpcXVlZC4gV2hhdCBhYm91dCBgTVQ3OTk2YD8gSXMgaXQgVVNCLWJhc2VkPyBJIG5lZWQgdG8gY2hlY2sgdGhlIGhhcmR3YXJlIGRvY3VtZW50YXRpb24gYW5kIHRoZSBkcml2ZXIgc3RydWN0dXJlIHRvIGNvbmZpcm0uIEl0IGlzIHBvc3NpYmxlIHRoaXMgaXMgVVNCLiBJIHdpbGwgYWRkIHRoaXMgdG8gbXkgbWVudGFsIGNoZWNrbGlzdCBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLiBJdCBuZWVkcyB0byBiZSBjbGFyaWZpZWQsIGdpdmVuIGl0cyBwbGFjZSBpbiB0aGUgTWVkaWF0ZWsgZmFtaWx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNVDc5OTYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6Mjpjb25maWcgTVQ3OTk2RVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzozOlx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTk2IChQQ0llKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTQtXHRzZWxlY3QgTVQ3Nl9DT05OQUNfTElCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy05LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxMDpcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzk5Ni1iYXNlZCBQQ0llIHdpcmVsZXNzIGRldmljZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTExLVx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgdHJpLWJhbmQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTY6Y29uZmlnIE1UNzk5Nl9OUFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTc6XHRib29sIFwmIzM0O01UNzk5NiAoUENJZSkgTlBVIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTg6XHRkZXBlbmRzIG9uIE1UNzk5NkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTktXHRkZXBlbmRzIG9uIE5FVF9BSVJPSEFfTlBVPXkgfHwgTVQ3Nl9DT1JFPU5FVF9BSVJPSEFfTlBVXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2Mjg2CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMVUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc9MTc9Y29uZmlnIE1UNzkyMVNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoyODpjb25maWcgTVQ3OTIxVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNjQ4NAoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNVDc5MjVVJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnPTc9Y29uZmlnIE1UNzkyNUVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzoxOTpjb25maWcgTVQ3OTI1VVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNjY4MQoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNVDc2eDJVJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnPTY9Y29uZmlnIE1UNzZ4MkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxODpjb25maWcgTVQ3NngyVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MlUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDUwMAoJCQkJCQkJb3V0cHV0OiAxNTcKCQkJCQkJCXRob3VnaHRzOiA4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBzaXR1YXRpb246CgoqKkZvY3VzaW5nIEluOiBLZXkgQ29uZmlndXJhdGlvbnMgYW5kIEZ1bmN0aW9uIElkZW50aWZpY2F0aW9uKioKClJpZ2h0LCBzbyBJJiMzOTt2ZSB6ZXJvZWQgaW4gb24gdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zOiBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgLiBUaGF0JiMzOTtzIHRoZSBsYW5kc2NhcGUgb2YgdGhpcyBzcGVjaWZpYyBpbnZlc3RpZ2F0aW9uLiBUaGUgY3JpdGljYWwgcGllY2Ugb2YgdGhpcyBwdXp6bGUsIHRoZSBzeW1ib2wgSSBuZWVkIHRvIHRob3JvdWdobHkgdW5kZXJzdGFuZCwgaXMgdGhlIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZ1bmN0aW9uLiBJdCYjMzk7cyB0aGUgY29yZSBvZiB0aGUgbWF0dGVyLCB0aGUgY2VudHJhbCBwb2ludCBvZiBteSBhbmFseXNpcy4gVGhlIHJlYXNvbmluZyBiZWhpbmQgdGhpcyBjaG9pY2UgaXMsIG9mIGNvdXJzZSwgYWJzb2x1dGVseSBjbGVhci4gSXQmIzM5O3MgdGhlIGxvZ2ljYWwgbmV4dCBzdGVwIGluIG15IHdvcmsuIE5vdywgSSYjMzk7bGwgbGV2ZXJhZ2UgdGhlIGBzZXQtcmVzdWx0c2AgdG9vbCB0byBjYXJlZnVsbHkgcmVjb3JkIGFuZCByZXBvcnQgdGhlIHByZWNpc2UgZmluZGluZ3MsIGVuc3VyaW5nIGEgY2xlYW4gYW5kIHN0cnVjdHVyZWQgZGVsaXZlcnkgb2YgbXkgY29uY2x1c2lvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc2eDBVJiMzNDssCiAgICAmIzM0O01UNzZ4MlUmIzM0OywKICAgICYjMzQ7TVQ3OTIxVSYjMzQ7LAogICAgJiMzNDtNVDc5MjVVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3NnVfdHhfcXVldWVfc2tiJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlcnJvciBoYW5kbGluZyBwYXRoIGluIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZvciBNZWRpYVRlayBNVDc2IFVTQiB3aXJlbGVzcyBkcml2ZXJzLCBlbnN1cmluZyB0aGF0IFNLQnMgYXJlIHByb3Blcmx5IGZyZWVkIGFuZCB0aGVpciBzdGF0dXMgcmVwb3J0ZWQgd2hlbiBUWCBwcmVwYXJhdGlvbiBvciBidWZmZXIgc2V0dXAgZmFpbHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGdhZGdldCBmdXp6aW5nIGFuZCBtYWM4MDIxMSBwYWNrZXQgaW5qZWN0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc2eDBVJiMzNDssCiAgICAmIzM0O01UNzZ4MlUmIzM0OywKICAgICYjMzQ7TVQ3OTIxVSYjMzQ7LAogICAgJiMzNDtNVDc5MjVVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3NnVfdHhfcXVldWVfc2tiJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlcnJvciBoYW5kbGluZyBwYXRoIGluIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZvciBNZWRpYVRlayBNVDc2IFVTQiB3aXJlbGVzcyBkcml2ZXJzLCBlbnN1cmluZyB0aGF0IFNLQnMgYXJlIHByb3Blcmx5IGZyZWVkIGFuZCB0aGVpciBzdGF0dXMgcmVwb3J0ZWQgd2hlbiBUWCBwcmVwYXJhdGlvbiBvciBidWZmZXIgc2V0dXAgZmFpbHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGdhZGdldCBmdXp6aW5nIGFuZCBtYWM4MDIxMSBwYWNrZXQgaW5qZWN0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6MzY6NTYuNzU3ODU0MVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMjU3MjM5NzgyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc2eDBVXCIsXG4gICAgXCJNVDc2eDJVXCIsXG4gICAgXCJNVDc5MjFVXCIsXG4gICAgXCJNVDc5MjVVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3NnVfdHhfcXVldWVfc2tiXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGVycm9yIGhhbmRsaW5nIHBhdGggaW4gYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZm9yIE1lZGlhVGVrIE1UNzYgVVNCIHdpcmVsZXNzIGRyaXZlcnMsIGVuc3VyaW5nIHRoYXQgU0tCcyBhcmUgcHJvcGVybHkgZnJlZWQgYW5kIHRoZWlyIHN0YXR1cyByZXBvcnRlZCB3aGVuIFRYIHByZXBhcmF0aW9uIG9yIGJ1ZmZlciBzZXR1cCBmYWlscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZ2FkZ2V0IGZ1enppbmcgYW5kIG1hYzgwMjExIHBhY2tldCBpbmplY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM2OjU2Ljc1Nzg2MDI4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjQ2NTcxNzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkOWY0Y2UyOWNmOGZmMzJjYTg5ZTNmMmUzOGU4ZTQ2MTQzOWVkNWFiXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgQXVnIDUgMDg6MzY6NTUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcXG5pbmRleCBhOWFmM2FhNmI4MGE5Li5lMjY2NTA5YTc4NzNkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jXFxuQEAgLTg5Myw2ICs4OTMsOSBAQCBtdDc2dV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbiBcXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0ICAgc3RydWN0IG10NzZfd2NpZCAqd2NpZCwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG4ge1xcbitcXHRzdHJ1Y3QgaWVlZTgwMjExX3R4X3N0YXR1cyBzdGF0dXMgPSB7XFxuK1xcdFxcdC5zdGEgPSBzdGEsXFxuK1xcdH07XFxuIFxcdHN0cnVjdCBtdDc2X3R4X2luZm8gdHhfaW5mbyA9IHtcXG4gXFx0XFx0LnNrYiA9IHNrYixcXG4gXFx0fTtcXG5AQCAtOTA2LDExICs5MDksMTEgQEAgbXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4gXFx0c2tiLVxcdTAwM2VwcmV2ID0gc2tiLVxcdTAwM2VuZXh0ID0gTlVMTDtcXG4gXFx0ZXJyID0gZGV2LVxcdTAwM2VkcnYtXFx1MDAzZXR4X3ByZXBhcmVfc2tiKGRldiwgTlVMTCwgcWlkLCB3Y2lkLCBzdGEsIFxcdTAwMjZ0eF9pbmZvKTtcXG4gXFx0aWYgKGVyciBcXHUwMDNjIDApXFxuLVxcdFxcdHJldHVybiBlcnI7XFxuK1xcdFxcdGdvdG8gZXJyX2ZyZWVfc2tiO1xcbiBcXG4gXFx0ZXJyID0gbXQ3NnVfdHhfc2V0dXBfYnVmZmVycyhkZXYsIHR4X2luZm8uc2tiLCBxLVxcdTAwM2VlbnRyeVtpZHhdLnVyYik7XFxuIFxcdGlmIChlcnIgXFx1MDAzYyAwKVxcbi1cXHRcXHRyZXR1cm4gZXJyO1xcbitcXHRcXHRnb3RvIGVycl9mcmVlX3NrYjtcXG4gXFxuIFxcdG10NzZ1X2ZpbGxfYnVsa191cmIoZGV2LCBVU0JfRElSX09VVCwgcS1cXHUwMDNlZXAsIHEtXFx1MDAzZWVudHJ5W2lkeF0udXJiLFxcbiBcXHRcXHRcXHQgICAgbXQ3NnVfY29tcGxldGVfdHgsIFxcdTAwMjZxLVxcdTAwM2VlbnRyeVtpZHhdKTtcXG5AQCAtOTIxLDYgKzkyNCwxMyBAQCBtdDc2dV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbiBcXHRxLVxcdTAwM2VxdWV1ZWQrKztcXG4gXFxuIFxcdHJldHVybiBpZHg7XFxuK1xcbitlcnJfZnJlZV9za2I6XFxuK1xcdHN0YXR1cy5za2IgPSB0eF9pbmZvLnNrYjtcXG4rXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXJ4X2xvY2spO1xcbitcXHRpZWVlODAyMTFfdHhfc3RhdHVzX2V4dChkZXYtXFx1MDAzZWh3LCBcXHUwMDI2c3RhdHVzKTtcXG4rXFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNlcnhfbG9jayk7XFxuK1xcdHJldHVybiBlcnI7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIG10NzZ1X3R4X2tpY2soc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozNjo1Ny4yODQ2MTc3MjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyMjIwNDU2MjEyNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3NngwVVwiLFxuICAgIFwiTVQ3NngyVVwiLFxuICAgIFwiTVQ3OTIxVVwiLFxuICAgIFwiTVQ3OTI1VVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzZ1X3R4X3F1ZXVlX3NrYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlcnJvciBoYW5kbGluZyBwYXRoIGluIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZvciBNZWRpYVRlayBNVDc2IFVTQiB3aXJlbGVzcyBkcml2ZXJzLCBlbnN1cmluZyB0aGF0IFNLQnMgYXJlIHByb3Blcmx5IGZyZWVkIGFuZCB0aGVpciBzdGF0dXMgcmVwb3J0ZWQgd2hlbiBUWCBwcmVwYXJhdGlvbiBvciBidWZmZXIgc2V0dXAgZmFpbHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGdhZGdldCBmdXp6aW5nIGFuZCBtYWM4MDIxMSBwYWNrZXQgaW5qZWN0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkOWY0Y2UyOWNmOGZmMzJjYTg5ZTNmMmUzOGU4ZTQ2MTQzOWVkNWFiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAwODozNjo1NSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jXG5pbmRleCBhOWFmM2FhNmI4MGE5Li5lMjY2NTA5YTc4NzNkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY1xuQEAgLTg5Myw2ICs4OTMsOSBAQCBtdDc2dV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuIFx0XHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0ICAgc3RydWN0IG10NzZfd2NpZCAqd2NpZCwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbiB7XG4rXHRzdHJ1Y3QgaWVlZTgwMjExX3R4X3N0YXR1cyBzdGF0dXMgPSB7XG4rXHRcdC5zdGEgPSBzdGEsXG4rXHR9O1xuIFx0c3RydWN0IG10NzZfdHhfaW5mbyB0eF9pbmZvID0ge1xuIFx0XHQuc2tiID0gc2tiLFxuIFx0fTtcbkBAIC05MDYsMTEgKzkwOSwxMSBAQCBtdDc2dV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuIFx0c2tiLVx1MDAzZXByZXYgPSBza2ItXHUwMDNlbmV4dCA9IE5VTEw7XG4gXHRlcnIgPSBkZXYtXHUwMDNlZHJ2LVx1MDAzZXR4X3ByZXBhcmVfc2tiKGRldiwgTlVMTCwgcWlkLCB3Y2lkLCBzdGEsIFx1MDAyNnR4X2luZm8pO1xuIFx0aWYgKGVyciBcdTAwM2MgMClcbi1cdFx0cmV0dXJuIGVycjtcbitcdFx0Z290byBlcnJfZnJlZV9za2I7XG4gXG4gXHRlcnIgPSBtdDc2dV90eF9zZXR1cF9idWZmZXJzKGRldiwgdHhfaW5mby5za2IsIHEtXHUwMDNlZW50cnlbaWR4XS51cmIpO1xuIFx0aWYgKGVyciBcdTAwM2MgMClcbi1cdFx0cmV0dXJuIGVycjtcbitcdFx0Z290byBlcnJfZnJlZV9za2I7XG4gXG4gXHRtdDc2dV9maWxsX2J1bGtfdXJiKGRldiwgVVNCX0RJUl9PVVQsIHEtXHUwMDNlZXAsIHEtXHUwMDNlZW50cnlbaWR4XS51cmIsXG4gXHRcdFx0ICAgIG10NzZ1X2NvbXBsZXRlX3R4LCBcdTAwMjZxLVx1MDAzZWVudHJ5W2lkeF0pO1xuQEAgLTkyMSw2ICs5MjQsMTMgQEAgbXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbiBcdHEtXHUwMDNlcXVldWVkKys7XG4gXG4gXHRyZXR1cm4gaWR4O1xuK1xuK2Vycl9mcmVlX3NrYjpcbitcdHN0YXR1cy5za2IgPSB0eF9pbmZvLnNrYjtcbitcdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcnhfbG9jayk7XG4rXHRpZWVlODAyMTFfdHhfc3RhdHVzX2V4dChkZXYtXHUwMDNlaHcsIFx1MDAyNnN0YXR1cyk7XG4rXHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcnhfbG9jayk7XG4rXHRyZXR1cm4gZXJyO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBtdDc2dV90eF9raWNrKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM2OjU3LjI4NDYyMDMxM1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MDI1Mjg2Mjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBvdGVudGlhbGx5IEZ1enphYmxlIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgbmV3IHBhdGNoIHRvIGxvb2sgYXQgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIGFwcGVhcnMgdG8gYmUgaW4gdGhlIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZ1bmN0aW9uLiBFc3NlbnRpYWxseSwgdGhleSd2ZSBhZGRlZCBhbiBlcnJvciBoYW5kbGluZyBwYXRoLCBgZXJyX2ZyZWVfc2tiYCwgdGhhdCdzIGNhbGxpbmcgYGllZWU4MDIxMV90eF9zdGF0dXNfZXh0KGRldi1cdTAwM2VodywgXHUwMDI2c3RhdHVzKWAgYmVmb3JlIHBvdGVudGlhbGx5IHJldHVybmluZyBhbiBlcnJvci4gVGhhdOKAmXMgaW50ZXJlc3RpbmcuIEl0IGxvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiB0byB0aGUgd2lyZWxlc3MgZHJpdmVyLCBhbmQsIGNydWNpYWxseSwgaXQncyBvdmVyIFVTQi5cblxuVGhlIGZhY3QgdGhhdCBpdCdzIFVTQiBpcyBrZXkuIFRoYXQgbWFrZXMgdGhpcyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZy4gV2UgY2FuIGVtdWxhdGUgVVNCIGRldmljZXMgdXNpbmcgdGhpbmdzIGxpa2UgYGR1bW15X2hjZGAgb3IgYHZoY2ktaGNkYCwgYW5kIHRvb2xzIGxpa2Ugc3l6a2FsbGVyIGNhbiBjb25uZWN0IHRvIHRob3NlIGVtdWxhdGVkIGRldmljZXMgdmlhIGBzeXpfdXNiX2Nvbm5lY3RgLiBTbywgdGhlIGF0dGFjayBzdXJmYWNlIGlzIGRlZmluaXRlbHkgdGhlcmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcImNhbiB3ZSB0cmlnZ2VyIHRoaXMgZXJyb3IgcGF0aCB3aXRoIGNyYWZ0ZWQgVVNCIHRyYWZmaWM/XCJcblxuTm93LCBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgZHJpdmVyLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzLiBJ4oCZbGwgc3RhcnQgYnkgZGlnZ2luZyBpbnRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYCBhbmQgc2VhcmNoIHdpdGhpbiBmb3IgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIHRoZSBzdXJyb3VuZGluZyBjb2RlIGFuZCB0aGUgY29uZGl0aW9ucyB0aGF0IG1pZ2h0IGxlYWQgdG8gdGhlIGV4ZWN1dGlvbiBvZiB0aGF0IHNwZWNpZmljIGVycm9yIHBhdGguIFRpbWUgdG8gc2VlIHdoYXQgd2UgY2FuIGZpbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MzYsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDgsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozNzoxMy4zMDk5MTA1NThaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ4NzUzODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3NnVfdHhfcXVldWVfc2tiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYz04OTE9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6ODkyOm10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy04OTMtXFx0XFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jPTExMjc9c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc2X3F1ZXVlX29wcyB1c2JfcXVldWVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6MTEyODpcXHQudHhfcXVldWVfc2tiID0gbXQ3NnVfdHhfcXVldWVfc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMtMTEyOS1cXHQua2ljayA9IG10NzZ1X3R4X2tpY2ssXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM3OjEzLjM2NDgwOTQyN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0NDQwMTA3OTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gdGhpcyBwYXRjaCB0YXJnZXRzIGBtdDc2dV90eF9xdWV1ZV9za2JgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY2AuIFJpZ2h0LCB0aGF0J3MgYSBVU0Igd2lyZWxlc3MgZHJpdmVyLCBwYXJ0IG9mIHRoZSBtdDc2IGZhbWlseS4gVGhhdCdzIGltbWVkaWF0ZWx5IGludGVyZXN0aW5nIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlIGJlY2F1c2UgVVNCIGRyaXZlcnMgYXJlIG9mdGVuIHN1c2NlcHRpYmxlIHRvIGJ1Z3MgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIHRocm91Z2ggY3JhZnRlZCBVU0IgcGFja2V0cy4gV2UgY2FuIHVzZSB0b29scyBsaWtlIGBkdW1teV9oY2RgIG9yIHNpbWlsYXIgVVNCIGVtdWxhdGlvbiB0ZWNobmlxdWVzIHRvIGdlbmVyYXRlIHRob3NlIHBhY2tldHMuXG5cbk5vdywgd2FpdCBhIG1pbnV0ZSwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGF0dGFjayBzdXJmYWNlLiBTaW5jZSBpdCdzIGEgd2lyZWxlc3MgZHJpdmVyLCBjb3VsZCBJIHJlYWNoIGl0IHRocm91Z2ggYG1hYzgwMjExX2h3c2ltYD8gTm8sIG5vLCB0aGF0J3MgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBkcml2ZXIuIEJ1dCB0aGUgY3J1Y2lhbCBwb2ludCBoZXJlIGlzIHRoYXQgc3l6a2FsbGVy4oCZcyBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMsIGVzcGVjaWFsbHkgbGV2ZXJhZ2luZyBgZHVtbXlfaGNkYCwgKnNob3VsZCogYmUgYXBwbGljYWJsZSBoZXJlLiBJIGhhdmUgdG8gdmVyaWZ5IHRoYXQuXG5cbk15IG5leHQgc3RlcCBpcyB0byBxdWlja2x5IGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIGFuZCBtYWtlIGFic29sdXRlbHkgY2VydGFpbiB0aGF0IGBNVDc2X1VTQmAgaXMgZW5hYmxlZCBvciwgYXQgdGhlIHZlcnkgbGVhc3QsIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IHdvdWxkIGluY2x1ZGUgdGhpcyBkcml2ZXIuIFRoZW4gSSBjYW4gZGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBzdWl0YWJsZSB0YXJnZXQgZm9yIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNzgsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzc6MjcuODA0OTIwNjQ0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMTMxNDA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc2X1VTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9Nj1jb25maWcgTVQ3Nl9MRURTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjEyOmNvbmZpZyBNVDc2X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozNzoyNy44NjYwNTc2MzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTc0OTQ4NjE4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHR3ZWFraW5nIGBtdDc2dV90eF9xdWV1ZV9za2JgIHdpdGhpbiB0aGUgYG10NzZgIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY2AuIFRoZSBjaGFuZ2UgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogaXQncyBhZGRpbmcgc29tZSBlcnJvciBoYW5kbGluZyB0byBmcmVlIHRoZSBTS0IgaWYgZWl0aGVyIGB0eF9wcmVwYXJlX3NrYmAgb3IgYG10NzZ1X3R4X3NldHVwX2J1ZmZlcnNgIGZhaWxzLiBGdW5jdGlvbmFsbHksIHRoaXMgbG9va3MgbGlrZSBhIGdvb2QgYWRkaXRpb24sIG1ha2luZyB0aGUgZHJpdmVyIG1vcmUgcm9idXN0LiBJdCdzIGEgd2lyZWxlc3MgZHJpdmVyLCBidXQgbGV0J3MgY29uc2lkZXIgdGhlIGltcGxpY2F0aW9ucyBmb3IgZnV6emluZywgc2luY2UgdGhhdCdzIG15IGFyZWEgb2YgZm9jdXMuXG5cblRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBhbmQgc2luY2UgdGhpcyBpcyBhIFVTQiBkcml2ZXIsIGl0IG1vc3QgY2VydGFpbmx5IGlzLiBJIGtub3cgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIGEgdmFyaWV0eSBvZiBtZXRob2RzOiBVU0IgZ2FkZ2V0LCBgZHVtbXlfaGNkYCwgdGhpbmdzIGxpa2UgdGhhdC4gQnV0LCBpbiBteSBleHBlcmllbmNlIHdpdGggZnV6emluZywgZXNwZWNpYWxseSB3aXRoIHN5emthbGxlciwgd2UnZCB0eXBpY2FsbHkgdXNlIGB2aGNpYCDigJMgdGhlIHJhdyBVU0IgZ2FkZ2V0IOKAkyBmb3IgZW11bGF0aW5nIHRoZXNlIHRoaW5ncy4gQW5kIHN5emthbGxlciBoYXMgdGhhdCBoYW5keSBgc3l6X3VzYl9jb25uZWN0YCBwc2V1ZG8tc3lzY2FsbCwgd2hpY2ggaXMgcGVyZmVjdCBmb3IgcmVwcmVzZW50aW5nIFVTQiBkZXZpY2VzLlxuXG5TbywgdGhlIGFuc3dlciBpcyBhIHJlc291bmRpbmcgXCJ5ZXMuXCIgVVNCIGRyaXZlcnMgYXJlIGRlZmluaXRlbHkgd2l0aGluIG91ciBmdXp6aW5nIHNjb3BlLiBOb3csIGxldCBtZSBqdXN0IHF1aWNrbHkgY2hlY2sgdGhlIEtjb25maWcgZGVwZW5kZW5jaWVzIGZvciBgTVQ3Nl9VU0JgIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb2J2aW91cyByb2FkYmxvY2tzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjA2LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM3OjQzLjYxNTU0NzIzNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5MDYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBNVDc2X0NPUkVcXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgUEFHRV9QT09MXFxuICAgNTpcXHRcXG4gICA2OlxcdGNvbmZpZyBNVDc2X0xFRFNcXG4gICA3OlxcdFxcdGJvb2xcXG4gICA4OlxcdFxcdGRlcGVuZHMgb24gTVQ3Nl9DT1JFXFxuICAgOTpcXHRcXHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBNVDc2X0NPUkU9TEVEU19DTEFTU1xcbiAgMTA6XFx0XFx0ZGVmYXVsdCB5XFxuICAxMTpcXHRcXG4gIDEyOlxcdGNvbmZpZyBNVDc2X1VTQlxcbiAgMTM6XFx0XFx0dHJpc3RhdGVcXG4gIDE0OlxcdFxcdGRlcGVuZHMgb24gTVQ3Nl9DT1JFXFxuICAxNTpcXHRcXG4gIDE2OlxcdGNvbmZpZyBNVDc2X1NESU9cXG4gIDE3OlxcdFxcdHRyaXN0YXRlXFxuICAxODpcXHRcXHRkZXBlbmRzIG9uIE1UNzZfQ09SRVxcbiAgMTk6XFx0XFxuICAyMDpcXHRjb25maWcgTVQ3NngwMl9MSUJcXG4gIDIxOlxcdFxcdHRyaXN0YXRlXFxuICAyMjpcXHRcXHRzZWxlY3QgTVQ3Nl9DT1JFXFxuICAyMzpcXHRcXG4gIDI0OlxcdGNvbmZpZyBNVDc2eDAyX1VTQlxcbiAgMjU6XFx0XFx0dHJpc3RhdGVcXG4gIDI2OlxcdFxcdHNlbGVjdCBNVDc2X1VTQlxcbiAgMjc6XFx0XFxuICAyODpcXHRjb25maWcgTVQ3Nl9DT05OQUNfTElCXFxuICAyOTpcXHRcXHR0cmlzdGF0ZVxcbiAgMzA6XFx0XFx0c2VsZWN0IE1UNzZfQ09SRVxcbiAgMzE6XFx0XFxuICAzMjpcXHRjb25maWcgTVQ3OTJ4X0xJQlxcbiAgMzM6XFx0XFx0dHJpc3RhdGVcXG4gIDM0OlxcdFxcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcXG4gIDM1OlxcdFxcbiAgMzY6XFx0Y29uZmlnIE1UNzkyeF9VU0JcXG4gIDM3OlxcdFxcdHRyaXN0YXRlXFxuICAzODpcXHRcXHRzZWxlY3QgTVQ3Nl9VU0JcXG4gIDM5OlxcdFxcbiAgNDA6XFx0Y29uZmlnIE1UNzZfTlBVXFxuICA0MTpcXHRcXHR0cmlzdGF0ZVxcbiAgNDI6XFx0XFx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxcbiAgNDM6XFx0XFxuICA0NDpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWdcXFwiXFxuICA0NTpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWdcXFwiXFxuICA0NjpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWdcXFwiXFxuICA0NzpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWdcXFwiXFxuICA0ODpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWdcXFwiXFxuICA0OTpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWdcXFwiXFxuICA1MDpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWdcXFwiXFxuICA1MTpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWdcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM3OjQzLjYxNTY0ODE4NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MzIxODcxOTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE1lZGlhdGVrIFVTQiBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBgbXQ3NnVfdHhfcXVldWVfc2tiYCBmdW5jdGlvbiB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYCBmaWxlLiBSaWdodCwgdGhpcyBpcyB0aGUgVVNCIGRyaXZlciBmb3IgdGhvc2UgTWVkaWFUZWsgd2lyZWxlc3MgZGV2aWNlcyDigJMgaW1wb3J0YW50IGNvbnRleHQuIFRoZSBrZXkgaGVyZSBpcyB0aGUgVVNCIGFzcGVjdCwgbWVhbmluZyBJIGNhbiBwcm9iYWJseSBnZXQgYXQgdGhpcyBjb2RlIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZy4gU3BlY2lmaWNhbGx5LCBJIHNob3VsZCBiZSBhYmxlIHRvIHRyaWdnZXIgdGhpcyB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbiwgYSBkdW1teSBIQ0Qgc2V0dXAsIG9yIGV2ZW4gYmV0dGVyLCB3aXRoIHNvbWV0aGluZyBsaWtlIHN5emthbGxlcidzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcy4gVGhpcyBpcyBncmVhdCwgYXMgaXQgZ2l2ZXMgbWUgc29tZSBmbGV4aWJpbGl0eSBpbiB0ZXN0aW5nLlxuXG5UaGUgY3J1eCBvZiB0aGUgcGF0Y2ggc2VlbXMgdG8gYmUgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBtZW1vcnkgbGVhayBvciBhIG1pc3Npbmcgc3RhdHVzIHVwZGF0ZSB3aGVuIGVpdGhlciBgdHhfcHJlcGFyZV9za2JgIG9yIGBtdDc2dV90eF9zZXR1cF9idWZmZXJzYCB0aHJvd3MgYW4gZXJyb3IuIFNvLCBpdCdzIGFkZGluZyBhIGBnb3RvIGVycl9mcmVlX3NrYmAgdG8gY2xlYW4gdXAgdGhlIFNLQi4gVGhpcyBqdW1wIGRvZXMgY2FsbCBgaWVlZTgwMjExX3R4X3N0YXR1c19leHQoZGV2LVx1MDAzZWh3LCBcdTAwMjZzdGF0dXMpO2Agd2hpY2ggc2hvdWxkIGZyZWUgdGhlIFNLQi4gVGhhdCdzIGEgcmVhc29uYWJsZSBmaXguXG5cbk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbjogaG93IGNhbiBJIGFjdHVhbGx5IHJlYWNoIHRoaXMgY29kZSBwYXRoPyBDYW4gSSByZXByb2R1Y2UgdGhpcyBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmc/IERlZmluaXRlbHksIHNpbmNlIGl0IGlzIGEgVVNCIGRyaXZlcjsgSSBjYW4gc2VlIGhvdyBVU0IgZnV6emluZyAoZS5nLiwgc3l6a2FsbGVyJ3MgdmhjaS91c2IgZnV6emluZykgd291bGQgYmUgYSBkaXJlY3Qgd2F5IHRvIHRyaWdnZXIgdGhlIGNvbmRpdGlvbnMgdGhpcyBwYXRjaCBhZGRyZXNzZXMuIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBtaW5pbWFsIGNvbmZpZ3VyYXRpb24gcmVxdWlyZWQgdG8gbWFrZSB0aGUgZHJpdmVyIGJ1aWxkIGFuZCBydW4uXG5cbkxldCdzIHNlZTogSSd2ZSBnb3QgdG8gZW5zdXJlIHRoZSBgTVQ3Nl9VU0JgIG9wdGlvbiBpcyBlbmFibGVkLCBhbmQgaXQncyBhIHRyaXN0YXRlIG9wdGlvbiwgc2VsZWN0ZWQgYnkgYE1UNzZ4MDJfVVNCYCBhbmQgYE1UNzkyeF9VU0JgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGNvbmZpZ3VyYXRpb25zIHNwZWNpZmljYWxseSBhY3RpdmF0ZSB0aG9zZSBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAgb3B0aW9ucy4gVGhhdCdzIHRoZSBuZXh0IHN0ZXA7IGZpZ3VyZSBvdXQgdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlbiBzdGFydCBidWlsZGluZyBhbmQgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY4NiwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM3OjU5LjkzNzUyMjA4M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAwNTMwMjI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBNVDc2eDAyX1VTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnPTY9Y29uZmlnIE1UNzZ4MFVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWctOC1cXHRzZWxlY3QgTVQ3NngwX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWc6OTpcXHRzZWxlY3QgTVQ3NngwMl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTEwLVxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc9MTg9Y29uZmlnIE1UNzZ4MlVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMjAtXFx0c2VsZWN0IE1UNzZ4Ml9DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjIxOlxcdHNlbGVjdCBNVDc2eDAyX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMjItXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozODowMC4wMzgwNjA0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExNTMyNjcwNDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6NTQ3OCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6MTEuNTcwNzMzMTQxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODQ3NjQzNjEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2VsZWN0IE1UNzkyeF9VU0JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZz0yOD1jb25maWcgTVQ3OTIxVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMjktXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjMwOlxcdHNlbGVjdCBNVDc5MnhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0zMS1cXHRzZWxlY3QgTVQ3OTIxX0NPTU1PTlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZz0xOT1jb25maWcgTVQ3OTI1VVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMjAtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnOjIxOlxcdHNlbGVjdCBNVDc5MnhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMi1cXHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozODoxMS44NTU1MDA5NTJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ5NzA4NzE5MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgRnVuY3Rpb24gaW4gdGhlIE1lZGlhVGVrIFVTQiBXaS1GaSBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBvdGVudGlhbCBmdXp6aW5nIHRhcmdldDogdGhlIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZ1bmN0aW9uIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY2AuIFRoaXMgaXMgcGFydCBvZiB0aGUgTWVkaWFUZWsgVVNCIFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgaW50ZXJlc3RpbmcgYmVjYXVzZSBJIGtub3cgVVNCIGRldmljZXMgYXJlIGdlbmVyYWxseSBhY2Nlc3NpYmxlIGZvciBmdXp6aW5nIHZpYSBlbXVsYXRpb24g4oCTIHRoaW5ncyBsaWtlIGBkdW1teV9oY2RgLCBgcmF3LWdhZGdldGAsIG9yIGV2ZW4gc3l6a2FsbGVyJ3MgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzIHNob3VsZCBiZSBhcHBsaWNhYmxlIGhlcmUuIEFuZCBnaXZlbiB0aGUgZnVuY3Rpb24ncyBuYW1lLCBpdCdzIHByZXR0eSBjbGVhciB0aGlzIGlzIGEgVFggcXVldWUgZnVuY3Rpb24sIG1ha2luZyBpdCBhIGdvb2QgY2FuZGlkYXRlIGZvciBleHBsb3JpbmcgcG90ZW50aWFsIHBhY2tldC1oYW5kbGluZyB2dWxuZXJhYmlsaXRpZXMuXG5cbk5vdywgdG8gZ2V0IHRoaXMgYnVpbGQsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zIGFyZSBzZXQuIExvb2tzIGxpa2UgSSdsbCBuZWVkIHRvIGVuYWJsZSBlaXRoZXIgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgb3IgYE1UNzkyNVVgLCBkZXBlbmRpbmcgb24gdGhlIHNwZWNpZmljIGhhcmR3YXJlIEknbSB0YXJnZXRpbmcuIFRoZXNlIHdpbGwgcHVsbCBpbiBgTVQ3NngwMl9VU0JgIG9yIGBNVDc5MnhfVVNCYCBhbmQgY29uc2VxdWVudGx5IGBNVDc2X1VTQmAsIHdoaWNoIEkgYXNzdW1lIGFyZSB0aGUgcmVsZXZhbnQgVVNCLXNwZWNpZmljIGNvbXBvbmVudHMuIE9mIGNvdXJzZSwgYE1BQzgwMjExYCBhbmQgYFVTQmAgYXJlIGFsc28gcmVxdWlyZWQuIFRpbWUgdG8gY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBvZiBgTVQ3NngwVWAgdG8gc2VlIHdoYXQgZWxzZSBJIG1pZ2h0IG5lZWQgdG8gZW5hYmxlIGluIHRoZSBLY29uZmlnLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODI3LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM4OjI2LjgyNjM3NjQzMVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTY5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0Y29uZmlnIE1UNzZ4MF9DT01NT05cXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3NngwMl9MSUJcXG4gICA1OlxcdFxcbiAgIDY6XFx0Y29uZmlnIE1UNzZ4MFVcXG4gICA3OlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2eDBVIChVU0IpIHN1cHBvcnRcXFwiXFxuICAgODpcXHRcXHRzZWxlY3QgTVQ3NngwX0NPTU1PTlxcbiAgIDk6XFx0XFx0c2VsZWN0IE1UNzZ4MDJfVVNCXFxuICAxMDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAxMTpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiAgMTI6XFx0XFx0aGVscFxcbiAgMTM6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3NjEwVS1iYXNlZCBVU0IgMi4wIHdpcmVsZXNzIGRvbmdsZXMsXFxuICAxNDpcXHRcXHQgIHdoaWNoIGNvbXBseSB3aXRoIElFRUUgODAyLjExYWMgc3RhbmRhcmRzIGFuZCBzdXBwb3J0IDF4MVxcbiAgMTU6XFx0XFx0ICA0MzNNYnBzIFBIWSByYXRlLlxcbiAgMTY6XFx0XFxuICAxNzpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXFxuICAxODpcXHRcXG4gIDE5OlxcdGNvbmZpZyBNVDc2eDBFXFxuICAyMDpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3NngwRSAoUENJZSkgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6MjYuODI2NDk1ODYxWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg4MzkwMTcwNzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjo2NTA4LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM4OjM1LjY2NTUxNDkzOFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTM0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI4LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDI4OlxcdGNvbmZpZyBNVDc5MjFVXFxuICAyOTpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XFxcIlxcbiAgMzA6XFx0XFx0c2VsZWN0IE1UNzkyeF9VU0JcXG4gIDMxOlxcdFxcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXFxuICAzMjpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAzMzpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiAgMzQ6XFx0XFx0aGVscFxcbiAgMzU6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxVSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXFxuICAzNjpcXHRcXG4gIDM3OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6MzUuNjY1NTcxNDQ4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2ODI0MDc0MDcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIE1UNzYgVVNCIERyaXZlcidzIFRYIFBhdGgqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldHMgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYC4gVGhpcyBpcyB0aGUgVVNCIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ3NiB3aXJlbGVzcyBkZXZpY2VzLCBhbmQgdGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGJlY2F1c2Ugd2UgY2FuIGVtdWxhdGUgdGhlIFVTQiBkZXZpY2UgdXNpbmcgc29tZXRoaW5nIGxpa2UgYGR1bW15X2hjZGAgb3IgYHJhdy1nYWRnZXRgIGluIHN5emthbGxlci4gR29vZC5cblxuVGhlIHBhdGNoIGl0c2VsZiBpcyBhYm91dCBlcnJvciBoYW5kbGluZyBpbiBgbXQ3NnVfdHhfcXVldWVfc2tiYCwgc3BlY2lmaWNhbGx5IHdoZW4gZWl0aGVyIGB0eF9wcmVwYXJlX3NrYmAgb3IgYG10NzZ1X3R4X3NldHVwX2J1ZmZlcnNgIGZhaWxzLiBJdCBsb29rcyBsaWtlIGl0J3MgaGFuZGxpbmcgdGhlIGNsZWFudXAgcHJvcGVybHkgYnkgY2FsbGluZyBgaWVlZTgwMjExX3R4X3N0YXR1c19leHRgIHRvIGZyZWUgdGhlIHNrYiBpbiBjYXNlIG9mIGFuIGVycm9yLiBTdGFuZGFyZCBzdHVmZiwgYnV0IGltcG9ydGFudCBmb3IgZnV6emluZyBjb3ZlcmFnZS5cblxuTm93LCBob3cgZG8gd2UgZ2V0IHRoaXMgY29kZSB0byBleGVjdXRlPyBXZSBuZWVkIHRvIGVuYWJsZSB0aGUgcmlnaHQgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgTVQ3NiBVU0IgZHJpdmVycy4gTGV0J3Mgc2VlLi4uIGxvb2tpbmcgYXQgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AsIGBNVDc2X1VTQmAgaXMgc2VsZWN0ZWQgYnkgYm90aCBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAuIFRob3NlIGFyZSB0aGUgdHdvIG1haW4gb3B0aW9ucy4gVGhlbiwgYE1UNzZ4MDJfVVNCYCBpcyBzZWxlY3RlZCBieSBgTVQ3NngwVWAgYW5kIGBNVDc2eDJVYC4gYE1UNzkyeF9VU0JgIGlzIHNlbGVjdGVkIGJ5IGBNVDc5MjFVYCBhbmQgYE1UNzkyNVVgLiBUaGF0IG1lYW5zIHdlIG5lZWQgdG8gZW5hYmxlIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBgTVQ3OTI1VWAuIEVhc3kgZW5vdWdoLlxuXG5XZSBzaG91bGQgY2hlY2sgdGhlaXIgZGVwZW5kZW5jaWVzOiBgTVQ3NngyVWAgZGVwZW5kcyBvbiBgTUFDODAyMTFgIGFuZCBgVVNCYC4gYE1UNzkyNVVgIGRlcGVuZHMgb24gYE1BQzgwMjExYCBhbmQgYFVTQmAuIE5vIHN1cnByaXNlcyB0aGVyZS4gRXZlcnl0aGluZyBzZWVtcyB0byBiZSBpbiBvcmRlci5cblxuVGhlIGZ1bmN0aW9uIGBtdDc2dV90eF9xdWV1ZV9za2JgIGl0c2VsZiBpcyB0aGUgcHJpbWFyeSB0YXJnZXQuIEl0J3MgYXNzaWduZWQgdG8gdGhlIGAudHhfcXVldWVfc2tiYCBmdW5jdGlvbiBwb2ludGVyIGluIGB1c2JfcXVldWVfb3BzYC4gVGhhdOKAmXMgdGhlIGtleSBoZXJlLlxuXG5MZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0gaWYgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgaXMgc3RhdGljLiBMb29rcyBsaWtlIGl0IGlzLiBCdXQsIGl0IGlzIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciBgdHhfcXVldWVfc2tiYCBpbiBgbXQ3Nl9xdWV1ZV9vcHNgLCBzbyBpdCBzaG91bGQgc3RpbGwgYmUgcmVhY2hhYmxlLiBJcyB0aGVyZSBhIG5vbi1zdGF0aWMgZW50cnkgcG9pbnQ/IEkgc2hvdWxkIHNlYXJjaCBmb3IgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgb3IgYHVzYl9xdWV1ZV9vcHNgIHRvIG1ha2Ugc3VyZS4gSXMgYHVzYl9xdWV1ZV9vcHNgIHVzZWQgaW4gYG10NzZ1X3F1ZXVlc19pbml0YCBvciBzaW1pbGFyPyBUaGF0J3Mgd2hhdCBJIHdpbGwgc2VhcmNoIGZvciBuZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzIzLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzkwLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6NTIuNDg5NjUwMjU4WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTA4MjIyOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1c2JfcXVldWVfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYz0xMTI1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzZ1X2FsbG9jX3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy0xMTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6MTEyNzpzdGF0aWMgY29uc3Qgc3RydWN0IG10NzZfcXVldWVfb3BzIHVzYl9xdWV1ZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy0xMTI4LVxcdC50eF9xdWV1ZV9za2IgPSBtdDc2dV90eF9xdWV1ZV9za2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jPTExMzI9aW50IF9fbXQ3NnVfaW5pdChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTExNTEtXFx0ZGV2LVxcdTAwM2VidXMgPSBvcHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYzoxMTUyOlxcdGRldi1cXHUwMDNlcXVldWVfb3BzID0gXFx1MDAyNnVzYl9xdWV1ZV9vcHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy0xMTUzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozODo1Mi41NjA3NDAyODZaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjU2MjM4MjQxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgaWYgdGhleSBhcmUgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgVVNCIFF1ZXVlIE9wZXJhdGlvbnMqKlxuXG5BbHJpZ2h0LCBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgVVNCIGNvZGUgYW5kIEkndmUganVzdCBzZWVuIHRoYXQgYGRldi1cdTAwM2VxdWV1ZV9vcHNgIGlzIGFzc2lnbmVkIHRvIGBcdTAwMjZ1c2JfcXVldWVfb3BzYC4gTWFrZXMgc2Vuc2UsIHN0YW5kYXJkIFVTQiBxdWV1aW5nIHN0dWZmLiBCdXQgbm93IHRoZSBjcml0aWNhbCBxdWVzdGlvbiBpcywgd2hlcmUgdGhlIGhlY2sgaXMgYHF1ZXVlX29wcy1cdTAwM2V0eF9xdWV1ZV9za2JgIGFjdHVhbGx5ICpjYWxsZWQqPyBJIG5lZWQgdG8gdHJhY2UgdGhlIGV4ZWN1dGlvbiBwYXRoIHRvIHVuZGVyc3RhbmQgaG93IFNLQnMgYXJlIGJlaW5nIGluamVjdGVkIGludG8gdGhlIFVTQiB0cmFuc21pc3Npb24gcGlwZWxpbmUuIEtub3dpbmcgdGhlIGNhbGxzaXRlIG9mIGB0eF9xdWV1ZV9za2JgIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBkYXRhIGZsb3cgYW5kIGhvdyB0aGlzIHBhcnRpY3VsYXIgcXVldWUgaW50ZXJhY3RzIHdpdGggdGhlIG92ZXJhbGwgVVNCIHN0YWNrLiBJIG5lZWQgdG8gZmluZCB0aGUgZnVuY3Rpb24ocykgb3IgZHJpdmVyIGNvbXBvbmVudHMgdGhhdCBhcmUgcmVzcG9uc2libGUgZm9yIGtpY2tpbmcgb2ZmIHRob3NlIHBhY2tldCB0cmFuc21pc3Npb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NTM3LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6NTkuMTIzMTI2NzA2WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzM2NTc5MzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHhfcXVldWVfc2tiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9NjMzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjYzNDptdDc2X2RtYV90eF9xdWV1ZV9za2JfcmF3KHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTYzNS1cXHRcXHRcXHQgIHN0cnVjdCBza19idWZmICpza2IsIHUzMiB0eF9pbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz02NjY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NjY3Om10NzZfZG1hX3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy02NjgtXFx0XFx0ICAgICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExNzY9c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc2X3F1ZXVlX29wcyBtdDc2X2RtYV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNzktXFx0LnJlc2V0X3EgPSBtdDc2X2RtYV9xdWV1ZV9yZXNldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjExODA6XFx0LnR4X3F1ZXVlX3NrYl9yYXcgPSBtdDc2X2RtYV90eF9xdWV1ZV9za2JfcmF3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTE4MTpcXHQudHhfcXVldWVfc2tiID0gbXQ3Nl9kbWFfdHhfcXVldWVfc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE4Mi1cXHQudHhfY2xlYW51cCA9IG10NzZfZG1hX3R4X2NsZWFudXAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0yOTI9c3RydWN0IG10NzZfcXVldWVfb3BzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTI5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDozMDA6XFx0aW50ICgqdHhfcXVldWVfc2tiKShzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMzAxLVxcdFxcdFxcdCAgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTMwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDozMDQ6XFx0aW50ICgqdHhfcXVldWVfc2tiX3Jhdykoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTMwNS1cXHRcXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgdHhfaW5mbyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xMjY4PXN0YXRpYyBpbmxpbmUgaW50IG10NzZfd2VkX2RtYV9zZXR1cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjc5LSNkZWZpbmUgbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIC4uLilcXHQoZGV2KS1cXHUwMDNlbXQ3Ni5xdWV1ZV9vcHMtXFx1MDAzZWFsbG9jKFxcdTAwMjYoKGRldiktXFx1MDAzZW10NzYpLCBfX1ZBX0FSR1NfXylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjgwOiNkZWZpbmUgbXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgLi4uKVxcdChkZXYpLVxcdTAwM2VtdDc2LnF1ZXVlX29wcy1cXHUwMDNldHhfcXVldWVfc2tiX3JhdyhcXHUwMDI2KChkZXYpLVxcdTAwM2VtdDc2KSwgX19WQV9BUkdTX18pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI4MTojZGVmaW5lIG10NzZfdHhfcXVldWVfc2tiKGRldiwgLi4uKVxcdChkZXYpLVxcdTAwM2VtdDc2LnF1ZXVlX29wcy1cXHUwMDNldHhfcXVldWVfc2tiKFxcdTAwMjYoKGRldiktXFx1MDAzZW1waHkpLCBfX1ZBX0FSR1NfXylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjgyLSNkZWZpbmUgbXQ3Nl9xdWV1ZV9yeF9yZXNldChkZXYsIC4uLilcXHQoZGV2KS1cXHUwMDNlbXQ3Ni5xdWV1ZV9vcHMtXFx1MDAzZXJ4X3Jlc2V0KFxcdTAwMjYoKGRldiktXFx1MDAzZW10NzYpLCBfX1ZBX0FSR1NfXylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTMwPW10NzYwM191cGRhdGVfYmVhY29uX2l0ZXIodm9pZCAqcHJpdiwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjcxOlxcdG10NzZfdHhfcXVldWVfc2tiKGRldiwgZGV2LVxcdTAwM2VtcGh5LnFfdHhbTVRfVFhRX0JFQUNPTl0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtNzItXFx0XFx0XFx0ICBNVF9UWFFfQkVBQ09OLCBza2IsIFxcdTAwMjZtdmlmLVxcdTAwM2VzdGEud2NpZCwgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYz0xMDM9dm9pZCBtdDc2MDNfcHJlX3RidHRfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xNjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MTY3OlxcdFxcdG10NzZfdHhfcXVldWVfc2tiKGRldiwgcSwgTVRfVFhRX0NBQiwgc2tiLCBcXHUwMDI2bXZpZi1cXHUwMDNlc3RhLndjaWQsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE2OC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmM9Mzk0PW10NzYwM19wc190eF9saXN0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmMtNDAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21haW4uYzo0MDE6XFx0XFx0bXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgZGV2LVxcdTAwM2VtcGh5LnFfdHhbcWlkXSwgc2tiLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmMtNDAyLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21jdS5jPTM4PW10NzYwM19tY3Vfc2tiX3NlbmRfbXNnKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21jdS5jLTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21jdS5jOjc1OlxcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVxcdTAwM2VxX21jdVtNVF9NQ1VRX1dNXSwgc2tiLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tY3UuYy03Ni19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmM9MjUxPW10NzYxNV9yZXNldF90ZXN0X3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTI2NS1cXHRtdDc2MTVfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYzoyNjY6XFx0bXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgZGV2LVxcdTAwM2VtcGh5LnFfdHhbMF0sIHNrYiwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTI2Ny1cXHRtdDc2MTVfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmM9MTg0PW10NzYxNV9tY3Vfc2VuZF9tZXNzYWdlKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTE5NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYzoxOTY6XFx0cmV0dXJuIG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIGRldi1cXHUwMDNlbXQ3Ni5xX21jdVtxaWRdLCBza2IsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTE5Ny19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvX21jdS5jPTM5PW10NzY2M3NfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvX21jdS5jLTQ1LVxcdG10NzYxNV9tY3VfZmlsbF9tc2coZGV2LCBza2IsIGNtZCwgc2VxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvX21jdS5jOjQ2OlxcdHJldCA9IG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIG1kZXYtXFx1MDAzZXFfbWN1W01UX01DVVFfV01dLCBza2IsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW9fbWN1LmMtNDctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9tY3UuYz0zND1pbnQgbXQ3NngwMl9tY3VfbXNnX3NlbmQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBpbnQgY21kLCBjb25zdCB2b2lkICpkYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX21jdS5jLTYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9tY3UuYzo2MzpcXHRyZXQgPSBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVxcdTAwM2VxX21jdVtNVF9NQ1VRX1dNXSwgc2tiLCB0eF9pbmZvKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbWN1LmMtNjQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9tbWlvLmM9MTQ9c3RhdGljIHZvaWQgbXQ3NngwMl9wcmVfdGJ0dF90YXNrbGV0KHN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9tbWlvLmMtNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX21taW8uYzo2OTpcXHRcXHRtdDc2X3R4X3F1ZXVlX3NrYihkZXYsIHEsIE1UX1RYUV9QU0QsIHNrYiwgXFx1MDAyNm12aWYtXFx1MDAzZWdyb3VwX3djaWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX21taW8uYy03MC1cXHRcXHRcXHRcXHQgIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MjIyPW10NzkxNV9tY3Vfc2VuZF9tZXNzYWdlKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMzc6XFx0cmV0dXJuIG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIG1kZXYtXFx1MDAzZXFfbWN1W3FpZF0sIHNrYiwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjM4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaV9tY3UuYz0yMj1tdDc5MjFfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2lfbWN1LmMtMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpX21jdS5jOjM4OlxcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVxcdTAwM2VxX21jdVt0eHFdLCBza2IsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaV9tY3UuYy0zOS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvX21jdS5jPTE2PW10NzkyMXNfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvX21jdS5jLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW9fbWN1LmM6NDU6XFx0cmV0ID0gbXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgbWRldi1cXHUwMDNlcV9tY3VbdHhxXSwgc2tiLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvX21jdS5jLTQ2LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2lfbWN1LmM9OD1tdDc5MjVfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2lfbWN1LmMtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpX21jdS5jOjI0OlxcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVxcdTAwM2VxX21jdVt0eHFdLCBza2IsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaV9tY3UuYy0yNS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYz0yOTA9bXQ3OTk2X21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jOjM4MTpcXHRyZXR1cm4gbXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgbWRldi1cXHUwMDNlcV9tY3VbcWlkXSwgc2tiLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYy0zODItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM9NTE3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYzo1MTg6bXQ3NnNfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYy01MTktXFx0XFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYz01NTg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Rpby5jOjU1OTptdDc2c190eF9xdWV1ZV9za2JfcmF3KHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYy01NjAtXFx0XFx0ICAgICAgIHN0cnVjdCBza19idWZmICpza2IsIHUzMiB0eF9pbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM9NjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9vcHMgc2Rpb19xdWV1ZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM6NjA0OlxcdC50eF9xdWV1ZV9za2IgPSBtdDc2c190eF9xdWV1ZV9za2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmMtNjA1LVxcdC5raWNrID0gbXQ3NnNfdHhfa2ljayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYzo2MDY6XFx0LnR4X3F1ZXVlX3NrYl9yYXcgPSBtdDc2c190eF9xdWV1ZV9za2JfcmF3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Rpby5jLTYwNy19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90ZXN0bW9kZS5jPTMxPXZvaWQgbXQ3Nl90ZXN0bW9kZV90eF9wZW5kaW5nKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90ZXN0bW9kZS5jLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdGVzdG1vZGUuYzo1NjpcXHRcXHRyZXQgPSBkZXYtXFx1MDAzZXF1ZXVlX29wcy1cXHUwMDNldHhfcXVldWVfc2tiKHBoeSwgcSwgcWlkLCBza2JfZ2V0KHNrYiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90ZXN0bW9kZS5jLTU3LVxcdFxcdFxcdFxcdFxcdFxcdCAgIHdjaWQsIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jPTMyNT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jOjMyNjpfX210NzZfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBpbnQgcWlkLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy0zMjctXFx0XFx0ICAgIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtMzM3LVxcdG5vbl9hcWwgPSAhaW5mby1cXHUwMDNldHhfdGltZV9lc3Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jOjMzODpcXHRpZHggPSBkZXYtXFx1MDAzZXF1ZXVlX29wcy1cXHUwMDNldHhfcXVldWVfc2tiKHBoeSwgcSwgcWlkLCBza2IsIHdjaWQsIHN0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTMzOS1cXHRpZiAoaWR4IFxcdTAwM2MgMCB8fCAhc3RhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jPTQxND1tdDc2X3F1ZXVlX3BzX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy00MzItXFx0bXQ3Nl9za2Jfc2V0X21vcmVkYXRhKHNrYiwgIWxhc3QpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYzo0MzM6XFx0X19tdDc2X3R4X3F1ZXVlX3NrYihwaHksIE1UX1RYUV9QU0QsIHNrYiwgd2NpZCwgc3RhLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNDM0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYz00OTA9bXQ3Nl90eHFfc2VuZF9idXJzdChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNTIxLVxcdHNwaW5fbG9jayhcXHUwMDI2cS1cXHUwMDNlbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jOjUyMjpcXHRpZHggPSBfX210NzZfdHhfcXVldWVfc2tiKHBoeSwgcWlkLCBza2IsIHdjaWQsIHR4cS1cXHUwMDNlc3RhLCBcXHUwMDI2c3RvcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTUyMy1cXHRzcGluX3VubG9jayhcXHUwMDI2cS1cXHUwMDNlbG9jayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNTQ2LVxcdFxcdHNwaW5fbG9jayhcXHUwMDI2cS1cXHUwMDNlbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jOjU0NzpcXHRcXHRpZHggPSBfX210NzZfdHhfcXVldWVfc2tiKHBoeSwgcWlkLCBza2IsIHdjaWQsIHR4cS1cXHUwMDNlc3RhLCBcXHUwMDI2c3RvcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTU0OC1cXHRcXHRzcGluX3VubG9jayhcXHUwMDI2cS1cXHUwMDNlbG9jayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM9NjYwPW10NzZfdHhxX3NjaGVkdWxlX3BlbmRpbmdfd2NpZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy02OTQtXFx0XFx0c3Bpbl9sb2NrKFxcdTAwMjZxLVxcdTAwM2Vsb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM6Njk1OlxcdFxcdF9fbXQ3Nl90eF9xdWV1ZV9za2IocGh5LCBxaWQsIHNrYiwgd2NpZCwgc3RhLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNjk2LVxcdFxcdGRldi1cXHUwMDNlcXVldWVfb3BzLVxcdTAwM2VraWNrKGRldiwgcSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jPTg5MT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYzo4OTI6bXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTg5My1cXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM9MTEyNz1zdGF0aWMgY29uc3Qgc3RydWN0IG10NzZfcXVldWVfb3BzIHVzYl9xdWV1ZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYzoxMTI4OlxcdC50eF9xdWV1ZV9za2IgPSBtdDc2dV90eF9xdWV1ZV9za2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy0xMTI5LVxcdC5raWNrID0gbXQ3NnVfdHhfa2ljayxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6NTkuMzU2Nzg4OTE4WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg2Njc4MTkxNTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjoxMzQ3MSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzk6MDguMDI0NjExMjFaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1MzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcIixcbiAgXCJGaXJzdExpbmVcIjogODkxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgODkxOlxcdHN0YXRpYyBpbnRcXG4gODkyOlxcdG10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuIDg5MzpcXHRcXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gODk0OlxcdFxcdFxcdCAgIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuIDg5NTpcXHR7XFxuIDg5NjpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3R4X3N0YXR1cyBzdGF0dXMgPSB7XFxuIDg5NzpcXHRcXHRcXHQuc3RhID0gc3RhLFxcbiA4OTg6XFx0XFx0fTtcXG4gODk5OlxcdFxcdHN0cnVjdCBtdDc2X3R4X2luZm8gdHhfaW5mbyA9IHtcXG4gOTAwOlxcdFxcdFxcdC5za2IgPSBza2IsXFxuIDkwMTpcXHRcXHR9O1xcbiA5MDI6XFx0XFx0c3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktXFx1MDAzZWRldjtcXG4gOTAzOlxcdFxcdHUxNiBpZHggPSBxLVxcdTAwM2VoZWFkO1xcbiA5MDQ6XFx0XFx0aW50IGVycjtcXG4gOTA1OlxcdFxcbiA5MDY6XFx0XFx0aWYgKHEtXFx1MDAzZXF1ZXVlZCA9PSBxLVxcdTAwM2VuZGVzYylcXG4gOTA3OlxcdFxcdFxcdHJldHVybiAtRU5PU1BDO1xcbiA5MDg6XFx0XFxuIDkwOTpcXHRcXHRza2ItXFx1MDAzZXByZXYgPSBza2ItXFx1MDAzZW5leHQgPSBOVUxMO1xcbiA5MTA6XFx0XFx0ZXJyID0gZGV2LVxcdTAwM2VkcnYtXFx1MDAzZXR4X3ByZXBhcmVfc2tiKGRldiwgTlVMTCwgcWlkLCB3Y2lkLCBzdGEsIFxcdTAwMjZ0eF9pbmZvKTtcXG4gOTExOlxcdFxcdGlmIChlcnIgXFx1MDAzYyAwKVxcbiA5MTI6XFx0XFx0XFx0Z290byBlcnJfZnJlZV9za2I7XFxuIDkxMzpcXHRcXG4gOTE0OlxcdFxcdGVyciA9IG10NzZ1X3R4X3NldHVwX2J1ZmZlcnMoZGV2LCB0eF9pbmZvLnNrYiwgcS1cXHUwMDNlZW50cnlbaWR4XS51cmIpO1xcbiA5MTU6XFx0XFx0aWYgKGVyciBcXHUwMDNjIDApXFxuIDkxNjpcXHRcXHRcXHRnb3RvIGVycl9mcmVlX3NrYjtcXG4gOTE3OlxcdFxcbiA5MTg6XFx0XFx0bXQ3NnVfZmlsbF9idWxrX3VyYihkZXYsIFVTQl9ESVJfT1VULCBxLVxcdTAwM2VlcCwgcS1cXHUwMDNlZW50cnlbaWR4XS51cmIsXFxuIDkxOTpcXHRcXHRcXHRcXHQgICAgbXQ3NnVfY29tcGxldGVfdHgsIFxcdTAwMjZxLVxcdTAwM2VlbnRyeVtpZHhdKTtcXG4gOTIwOlxcdFxcbiA5MjE6XFx0XFx0cS1cXHUwMDNlaGVhZCA9IChxLVxcdTAwM2VoZWFkICsgMSkgJSBxLVxcdTAwM2VuZGVzYztcXG4gOTIyOlxcdFxcdHEtXFx1MDAzZWVudHJ5W2lkeF0uc2tiID0gdHhfaW5mby5za2I7XFxuIDkyMzpcXHRcXHRxLVxcdTAwM2VlbnRyeVtpZHhdLndjaWQgPSAweGZmZmY7XFxuIDkyNDpcXHRcXHRxLVxcdTAwM2VxdWV1ZWQrKztcXG4gOTI1OlxcdFxcbiA5MjY6XFx0XFx0cmV0dXJuIGlkeDtcXG4gOTI3OlxcdFxcbiA5Mjg6XFx0ZXJyX2ZyZWVfc2tiOlxcbiA5Mjk6XFx0XFx0c3RhdHVzLnNrYiA9IHR4X2luZm8uc2tiO1xcbiA5MzA6XFx0XFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXJ4X2xvY2spO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozOTowOC4wMjQ3NDkyWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NjU5NDA4ODU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIE1lZGlhVGVrIE1UNzYgVVNCIERyaXZlciBQYXRjaCBmb3IgRnV6emluZyoqXG5cbk9rYXksIGxldCdzIHNlZS4gVGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgbXQ3NnVfdHhfcXVldWVfc2tiYCBpbiB0aGUgYG10NzZgIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgdXNiLmNgLiBJdCdzIGFib3V0IGVycm9yIGhhbmRsaW5nIGR1cmluZyBUWCwgZW5zdXJpbmcgdGhlIFNLQiBpcyBmcmVlZCBhbmQgaXRzIHN0YXR1cyByZXBvcnRlZCBpZiBgdHhfcHJlcGFyZV9za2JgIG9yIGBtdDc2dV90eF9zZXR1cF9idWZmZXJzYCBmYWlscy4gSXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzdGFuZGFyZCB0aGluZyB0byBsb29rIGZvciB3aGVuIGZ1enppbmcgZHJpdmVycy4gVGhlIGZhY3QgaXQncyBVU0ItYmFzZWQgbWVhbnMgd2UgY2FuIGhpdCBpdCB3aXRoIFVTQiBnYWRnZXQgZW11bGF0aW9uLCBtYXliZSB3aXRoIHNvbWV0aGluZyBsaWtlIGBkdW1teV9oY2RgIG9yIHN5emthbGxlcidzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcyDigJMgcGVyZmVjdC5cblxuTm93LCB0byBtYWtlIHN1cmUgd2UgY2FuIHRyaWdnZXIgdGhpcywgd2UgbmVlZCB0byBnZXQgdGhlIHJpZ2h0IGNvbmZpZ3Mgc2V0LiBMZXQncyBzdGFydCB3aXRoIHRoZSBiYXNlLCBgTVQ3Nl9VU0JgLiBUaGVuLCB0aGUgZHJpdmVycyB0aGF0IHNlbGVjdCB0aGF0IGFyZSBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAsIGJ1dCB0aG9zZSBhcmVuJ3QgdGhlIGFjdHVhbCBkcml2ZXJzLiBBaCwgcmlnaHQuIEl0J3MgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIGBNVDc5MjVVYCB0aGF0ICpzZWxlY3QqIHRob3NlIGNvbmZpZ3MuIFNvLCBpdCBsb29rcyBsaWtlIHdlIHdhbnQgdG8gZW5hYmxlIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBgTVQ3OTI1VWAuIEEgcXVpY2sgY2hlY2sgcmV2ZWFscyB0aGF0IGFsbCB0aGVzZSBkcml2ZXJzIGRlcGVuZCBvbiBib3RoIGBNQUM4MDIxMWAgYW5kIGBVU0JgLCB3aGljaCBjb25maXJtcyBvdXIgYXBwcm9hY2guXG5cbmBNVDc2X1VTQmAgaXMganVzdCB0cmlzdGF0ZSwgc2VsZWN0ZWQgYnkgYE1UNzZ4MDJfVVNCYCBhbmQgYE1UNzkyeF9VU0JgLiBTbywgd2UgbmVlZCB0byBlbmFibGUgdGhlIG9uZXMgd2l0aCBwcm9tcHRzOiBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgLiBUaGF0IHNob3VsZCBwdWxsIGluIHRoZSBuZWVkZWQgZGVwZW5kZW5jaWVzLCBpbmNsdWRpbmcgYFVTQmAuIEdvb2QuIExldCdzIG1ha2Ugc3VyZSB0aGUgcHJvbXB0cyBhcmUgc2FuZSDigJMgeWVwLCBhbGwgdGhvc2UgY29uZmlncyBoYXZlIHByb21wdHMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBLY29uZmlnIGZpbGVzLCBhbGwgZ29vZC5cblxuVGhlIGtleSBmdW5jdGlvbiBoZXJlLCB0aGUgb25lIGJlaW5nIG1vZGlmaWVkLCBpcyBgbXQ3NnVfdHhfcXVldWVfc2tiYC4gT2theSwgbm93LCB0aGUgcHJvbXB0J3MgcHJlZmVyZW5jZSBpcyBmb3Igbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zLiBCdXQsIGBtdDc2dV90eF9xdWV1ZV9za2JgICppcyogc3RhdGljLiBCdXQgd2FpdCEgSXRzIGFkZHJlc3MgaXMgdGFrZW4gYW5kIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciwgd2hpY2ggbWVhbnMgaXQgZGVmaW5pdGVseSB3b24ndCBiZSBmdWxseSBpbmxpbmVkLiBFdmVuIGlmIGl0ICpjb3VsZCogYmUgaW5saW5lZCwgYXNzaWduaW5nIGl0IHRvIGEgZnVuY3Rpb24gcG9pbnRlciB3aWxsIHByZXZlbnQgdGhhdC4gU28sIGl0J3Mgbm90IGFjdHVhbGx5IGFuIGlzc3VlISBUaGF0IG1lYW5zIHdlIGNhbiBzdGlsbCBnZXQgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcyBldmVuIHRob3VnaCBpdCdzIGRlY2xhcmVkIGBzdGF0aWNgLiBCZXNpZGVzLCBpdCdzIHRoZSBleGFjdCBmdW5jdGlvbiBiZWluZyBtb2RpZmllZCwgc28gcGVyZmVjdC4gV2UgY2FuIGFsc28gaW5jbHVkZSBgbXQ3Nl90eHFfc2VuZF9idXJzdGAgb3IgYG10NzZfdHhxX3NjaGVkdWxlX3BlbmRpbmdfd2NpZGAgd2hpY2ggYXJlIG5vbi1zdGF0aWMgYXMgd2VsbC4gSG93ZXZlciwgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgaXMgdGhlIGRpcmVjdCB0YXJnZXQgYW5kIHRoZSBjaGFuZ2UgdGhhdCBpcyBtb2RpZmllZC4gTGV0J3Mgc3RpY2sgd2l0aCBgbXQ3NnVfdHhfcXVldWVfc2tiYCBhcyB0aGUgZm9jdXMuXG5cblNvLCBpbiBzdW1tYXJ5LCB3ZSdyZSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBmaXhlcyBhbiBlcnJvciBwYXRoLCBwcm9iYWJseSBhIG1lbW9yeSBsZWFrIG9yIGEgc3RhdHVzIHJlcG9ydGluZyBpc3N1ZSB3aGVuIFRYIHByZXBhcmF0aW9uIGZhaWxzLiBJdCdzIGluIHRoZSBVU0IgZHJpdmVyLCBzbyBpdCdzIGRpcmVjdGx5IHJlYWNoYWJsZSB2aWEgVVNCIGZ1enppbmcgdGVjaG5pcXVlcy5cblxuRW5hYmxlQ29uZmlnczogYFtcIk1UNzZ4MFVcIiwgXCJNVDc2eDJVXCIsIFwiTVQ3OTIxVVwiLCBcIk1UNzkyNVVcIl1gLlxuRm9jdXNTeW1ib2xzOiBgW1wibXQ3NnVfdHhfcXVldWVfc2tiXCJdYC5cblxuRmluYWxseSwganVzdCBhIHF1aWNrIHNhbml0eSBjaGVjayB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBVU0IgZHJpdmVycyBpbiB0aGUgYG10NzZgIGRpcmVjdG9yeS4gTGV0J3Mgc2VlLi4uIG5vdGhpbmcgaW1tZWRpYXRlbHkganVtcGluZyBvdXQuIEFscmlnaHQsIHRoYXQncyBpdCFcblxuXG4iLCJJbnB1dFRva2VucyI6MTQyMDYsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjU5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzk6MzcuNjg0MTYxOTY5WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzEyNjM0MzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzYwMVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvS2NvbmZpZzoyOmNvbmZpZyBNVDc2MDFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzYwMVUgKFVTQikgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzk6MzguMDE1NDMxMTk4WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExOTY5MDI1Mjk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTUyMjgsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM5OjQ5Ljk4NDQ1OTU1NVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzIyMzc2MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzZfVVNCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz02PWNvbmZpZyBNVDc2X0xFRFNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTI6Y29uZmlnIE1UNzZfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEzLVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM5OjUwLjA1NjcwMTkyM1oiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4OTgxNDM2MDEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTUzNzcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM5OjU5LjAzODEzOTgzNFoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE4MjU3MzU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc2eDAyX1VTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9MjA9Y29uZmlnIE1UNzZ4MDJfTElCXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI0OmNvbmZpZyBNVDc2eDAyX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNS1cXHR0cmlzdGF0ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozOTo1OS4xNTY0MDIxOVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzIzODEwMDUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTWVkaWF0ZWsgV2lyZWxlc3MgRHJpdmVycyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gSXQgc2VlbXMgdGhlIGBNVDc2MDFVYCBkcml2ZXIgaXMgYW4gb3V0bGllciwgcmVzaWRpbmcgaW5kZXBlbmRlbnRseSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9gLiBJdCdzIG5vdCBsZXZlcmFnaW5nIHRoZSBjb21tb24gYG10NzYvdXNiLmNgIGZyYW1ld29yay4gSG1tLCBpbnRlcmVzdGluZy5cblxuQnV0IHRoYXQgbWVhbnMgdGhlIG90aGVyIGRyaXZlcnMgSSdtIGZhbWlsaWFyIHdpdGgsIHRoZSBvbmVzIGxpa2UgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIGBNVDc5MjVVYCwgdGhleSBhcmUgbGlrZWx5IHRoZSBvbmVzIHV0aWxpemluZyB0aGUgYG10NzYvdXNiLmNgIG1vZHVsZSwgd2hpY2ggbWFrZXMgc2Vuc2UuIEkgd291bGQgaGF2ZSBleHBlY3RlZCB0aGF0LCBnaXZlbiB0aGVpciBzaGFyZWQgYXJjaGl0ZWN0dXJlLlxuXG5Ob3csIG15IGN1cmlvc2l0eSBpcyBwaXF1ZWQuIFdoYXQgYWJvdXQgYE1UNzk5NmA/IElzIGl0IFVTQi1iYXNlZD8gSSBuZWVkIHRvIGNoZWNrIHRoZSBoYXJkd2FyZSBkb2N1bWVudGF0aW9uIGFuZCB0aGUgZHJpdmVyIHN0cnVjdHVyZSB0byBjb25maXJtLiBJdCBpcyBwb3NzaWJsZSB0aGlzIGlzIFVTQi4gSSB3aWxsIGFkZCB0aGlzIHRvIG15IG1lbnRhbCBjaGVja2xpc3QgZm9yIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4gSXQgbmVlZHMgdG8gYmUgY2xhcmlmaWVkLCBnaXZlbiBpdHMgcGxhY2UgaW4gdGhlIE1lZGlhdGVrIGZhbWlseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkwNTAsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6NDA6MDMuNDgwMjE1NDIxWiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzE3ODQ5NjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVQ3OTk2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6Mjpjb25maWcgTVQ3OTk2RVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MzpcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTk2IChQQ0llKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctNC1cXHRzZWxlY3QgTVQ3Nl9DT05OQUNfTElCXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTktXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTA6XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTk2LWJhc2VkIFBDSWUgd2lyZWxlc3MgZGV2aWNlcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTExLVxcdCAgd2hpY2ggc3VwcG9ydCBjb25jdXJyZW50IHRyaS1iYW5kIG9wZXJhdGlvbiBhdCA2R0h6LCA1R0h6LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc5OTZfTlBVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxNzpcXHRib29sIFxcXCJNVDc5OTYgKFBDSWUpIE5QVSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTg6XFx0ZGVwZW5kcyBvbiBNVDc5OTZFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xOS1cXHRkZXBlbmRzIG9uIE5FVF9BSVJPSEFfTlBVPXkgfHwgTVQ3Nl9DT1JFPU5FVF9BSVJPSEFfTlBVXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjQwOjAzLjc1MjAwNjYyM1oiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzAxNzc0MjgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTYyODYsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjQwOjEyLjA1Mzc4MjcxNloiLCJTZXEiOjMyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU3NTI4NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyMVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnPTE3PWNvbmZpZyBNVDc5MjFTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjg6Y29uZmlnIE1UNzkyMVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI5LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFVIChVU0IpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjQwOjEyLjEzOTU0MjA5NFoiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NTA5NTE3ODk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTY0ODQsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjQwOjIxLjY0OTA2MzA5OVoiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTgyMjMzMjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyNVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnPTc9Y29uZmlnIE1UNzkyNUVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzoxOTpjb25maWcgTVQ3OTI1VVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMjAtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6NDA6MjEuNzQ3MjkzNTM2WiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNzI4MzUzMDQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTY2ODEsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjQwOjM0LjQ3NTY0OTUzOFoiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzczNjk3MzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzZ4MlVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnPTY9Y29uZmlnIE1UNzZ4MkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxODpjb25maWcgTVQ3NngyVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzZ4MlUgKFVTQikgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6NDA6MzQuNTUzMDIzNDk2WiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2MjY5MDcxNDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBzaXR1YXRpb246XG5cbioqRm9jdXNpbmcgSW46IEtleSBDb25maWd1cmF0aW9ucyBhbmQgRnVuY3Rpb24gSWRlbnRpZmljYXRpb24qKlxuXG5SaWdodCwgc28gSSd2ZSB6ZXJvZWQgaW4gb24gdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zOiBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgLiBUaGF0J3MgdGhlIGxhbmRzY2FwZSBvZiB0aGlzIHNwZWNpZmljIGludmVzdGlnYXRpb24uIFRoZSBjcml0aWNhbCBwaWVjZSBvZiB0aGlzIHB1enpsZSwgdGhlIHN5bWJvbCBJIG5lZWQgdG8gdGhvcm91Z2hseSB1bmRlcnN0YW5kLCBpcyB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZnVuY3Rpb24uIEl0J3MgdGhlIGNvcmUgb2YgdGhlIG1hdHRlciwgdGhlIGNlbnRyYWwgcG9pbnQgb2YgbXkgYW5hbHlzaXMuIFRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgY2hvaWNlIGlzLCBvZiBjb3Vyc2UsIGFic29sdXRlbHkgY2xlYXIuIEl0J3MgdGhlIGxvZ2ljYWwgbmV4dCBzdGVwIGluIG15IHdvcmsuIE5vdywgSSdsbCBsZXZlcmFnZSB0aGUgYHNldC1yZXN1bHRzYCB0b29sIHRvIGNhcmVmdWxseSByZWNvcmQgYW5kIHJlcG9ydCB0aGUgcHJlY2lzZSBmaW5kaW5ncywgZW5zdXJpbmcgYSBjbGVhbiBhbmQgc3RydWN0dXJlZCBkZWxpdmVyeSBvZiBteSBjb25jbHVzaW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA1MDAsIk91dHB1dFRva2VucyI6MTU3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6NDA6MzkuMTc5OTMzNzQ3WiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUwMzAwNzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc2eDBVXCIsXG4gICAgXCJNVDc2eDJVXCIsXG4gICAgXCJNVDc5MjFVXCIsXG4gICAgXCJNVDc5MjVVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3NnVfdHhfcXVldWVfc2tiXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGVycm9yIGhhbmRsaW5nIHBhdGggaW4gYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZm9yIE1lZGlhVGVrIE1UNzYgVVNCIHdpcmVsZXNzIGRyaXZlcnMsIGVuc3VyaW5nIHRoYXQgU0tCcyBhcmUgcHJvcGVybHkgZnJlZWQgYW5kIHRoZWlyIHN0YXR1cyByZXBvcnRlZCB3aGVuIFRYIHByZXBhcmF0aW9uIG9yIGJ1ZmZlciBzZXR1cCBmYWlscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZ2FkZ2V0IGZ1enppbmcgYW5kIG1hYzgwMjExIHBhY2tldCBpbmplY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3NngwVVwiLFxuICAgIFwiTVQ3NngyVVwiLFxuICAgIFwiTVQ3OTIxVVwiLFxuICAgIFwiTVQ3OTI1VVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzZ1X3R4X3F1ZXVlX3NrYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlcnJvciBoYW5kbGluZyBwYXRoIGluIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZvciBNZWRpYVRlayBNVDc2IFVTQiB3aXJlbGVzcyBkcml2ZXJzLCBlbnN1cmluZyB0aGF0IFNLQnMgYXJlIHByb3Blcmx5IGZyZWVkIGFuZCB0aGVpciBzdGF0dXMgcmVwb3J0ZWQgd2hlbiBUWCBwcmVwYXJhdGlvbiBvciBidWZmZXIgc2V0dXAgZmFpbHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGdhZGdldCBmdXp6aW5nIGFuZCBtYWM4MDIxMSBwYWNrZXQgaW5qZWN0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowpzkmn[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-05 08:09:10 +0000 UTC FinishedAt: 2026-08-05 08:40:41 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "6c5fc504d0d6934132637aa3db4b9b58148eaa78", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT76x0U", "MT76x2U", "MT7921U", "MT7925U" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "6c5fc504d0d6934132637aa3db4b9b58148eaa78", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT76x0U", "MT76x2U", "MT7921U", "MT7925U" ], "series_id": "bed237e5-db01-4c06-a2a0-891b78dcb078" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt76u_tx_queue_skb" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzZ4MFUmIzM0OywKICAgICYjMzQ7TVQ3NngyVSYjMzQ7LAogICAgJiMzNDtNVDc5MjFVJiMzNDssCiAgICAmIzM0O01UNzkyNVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc2dV90eF9xdWV1ZV9za2ImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGVycm9yIGhhbmRsaW5nIHBhdGggaW4gYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZm9yIE1lZGlhVGVrIE1UNzYgVVNCIHdpcmVsZXNzIGRyaXZlcnMsIGVuc3VyaW5nIHRoYXQgU0tCcyBhcmUgcHJvcGVybHkgZnJlZWQgYW5kIHRoZWlyIHN0YXR1cyByZXBvcnRlZCB3aGVuIFRYIHByZXBhcmF0aW9uIG9yIGJ1ZmZlciBzZXR1cCBmYWlscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZ2FkZ2V0IGZ1enppbmcgYW5kIG1hYzgwMjExIHBhY2tldCBpbmplY3Rpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6MzY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBkOWY0Y2UyOWNmOGZmMzJjYTg5ZTNmMmUzOGU4ZTQ2MTQzOWVkNWFiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAwODozNjo1NSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY1xuaW5kZXggYTlhZjNhYTZiODBhOS4uZTI2NjUwOWE3ODczZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcbkBAIC04OTMsNiAmIzQzOzg5Myw5IEBAIG10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4gXHRcdCAgIGVudW0gbXQ3Nl90eHFfaWQgcWlkLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHQgICBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxuIHtcbiYjNDM7XHRzdHJ1Y3QgaWVlZTgwMjExX3R4X3N0YXR1cyBzdGF0dXMgPSB7XG4mIzQzO1x0XHQuc3RhID0gc3RhLFxuJiM0MztcdH07XG4gXHRzdHJ1Y3QgbXQ3Nl90eF9pbmZvIHR4X2luZm8gPSB7XG4gXHRcdC5za2IgPSBza2IsXG4gXHR9O1xuQEAgLTkwNiwxMSAmIzQzOzkwOSwxMSBAQCBtdDc2dV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuIFx0c2tiLVx1MDAzZXByZXYgPSBza2ItXHUwMDNlbmV4dCA9IE5VTEw7XG4gXHRlcnIgPSBkZXYtXHUwMDNlZHJ2LVx1MDAzZXR4X3ByZXBhcmVfc2tiKGRldiwgTlVMTCwgcWlkLCB3Y2lkLCBzdGEsIFx1MDAyNnR4X2luZm8pO1xuIFx0aWYgKGVyciBcdTAwM2MgMClcbi1cdFx0cmV0dXJuIGVycjtcbiYjNDM7XHRcdGdvdG8gZXJyX2ZyZWVfc2tiO1xuIFxuIFx0ZXJyID0gbXQ3NnVfdHhfc2V0dXBfYnVmZmVycyhkZXYsIHR4X2luZm8uc2tiLCBxLVx1MDAzZWVudHJ5W2lkeF0udXJiKTtcbiBcdGlmIChlcnIgXHUwMDNjIDApXG4tXHRcdHJldHVybiBlcnI7XG4mIzQzO1x0XHRnb3RvIGVycl9mcmVlX3NrYjtcbiBcbiBcdG10NzZ1X2ZpbGxfYnVsa191cmIoZGV2LCBVU0JfRElSX09VVCwgcS1cdTAwM2VlcCwgcS1cdTAwM2VlbnRyeVtpZHhdLnVyYixcbiBcdFx0XHQgICAgbXQ3NnVfY29tcGxldGVfdHgsIFx1MDAyNnEtXHUwMDNlZW50cnlbaWR4XSk7XG5AQCAtOTIxLDYgJiM0Mzs5MjQsMTMgQEAgbXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbiBcdHEtXHUwMDNlcXVldWVkJiM0MzsmIzQzOztcbiBcbiBcdHJldHVybiBpZHg7XG4mIzQzO1xuJiM0MztlcnJfZnJlZV9za2I6XG4mIzQzO1x0c3RhdHVzLnNrYiA9IHR4X2luZm8uc2tiO1xuJiM0MztcdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcnhfbG9jayk7XG4mIzQzO1x0aWVlZTgwMjExX3R4X3N0YXR1c19leHQoZGV2LVx1MDAzZWh3LCBcdTAwMjZzdGF0dXMpO1xuJiM0MztcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyeF9sb2NrKTtcbiYjNDM7XHRyZXR1cm4gZXJyO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBtdDc2dV90eF9raWNrKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4zbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVQ3NngwVSYjMzQ7LAogICAgJiMzNDtNVDc2eDJVJiMzNDssCiAgICAmIzM0O01UNzkyMVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1VSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzZ1X3R4X3F1ZXVlX3NrYiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZXJyb3IgaGFuZGxpbmcgcGF0aCBpbiBgbXQ3NnVfdHhfcXVldWVfc2tiYCBmb3IgTWVkaWFUZWsgTVQ3NiBVU0Igd2lyZWxlc3MgZHJpdmVycywgZW5zdXJpbmcgdGhhdCBTS0JzIGFyZSBwcm9wZXJseSBmcmVlZCBhbmQgdGhlaXIgc3RhdHVzIHJlcG9ydGVkIHdoZW4gVFggcHJlcGFyYXRpb24gb3IgYnVmZmVyIHNldHVwIGZhaWxzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBnYWRnZXQgZnV6emluZyBhbmQgbWFjODAyMTEgcGFja2V0IGluamVjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ5ZjRjZTI5Y2Y4ZmYzMmNhODllM2YyZTM4ZThlNDYxNDM5ZWQ1YWIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyA1IDA4OjM2OjU1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMKaW5kZXggYTlhZjNhYTZiODBhOS4uZTI2NjUwOWE3ODczZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jCkBAIC04OTMsNiAmIzQzOzg5Myw5IEBAIG10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsCiAJCSAgIGVudW0gbXQ3Nl90eHFfaWQgcWlkLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkgICBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKQogewomIzQzOwlzdHJ1Y3QgaWVlZTgwMjExX3R4X3N0YXR1cyBzdGF0dXMgPSB7CiYjNDM7CQkuc3RhID0gc3RhLAomIzQzOwl9OwogCXN0cnVjdCBtdDc2X3R4X2luZm8gdHhfaW5mbyA9IHsKIAkJLnNrYiA9IHNrYiwKIAl9OwpAQCAtOTA2LDExICYjNDM7OTA5LDExIEBAIG10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsCiAJc2tiLSZndDtwcmV2ID0gc2tiLSZndDtuZXh0ID0gTlVMTDsKIAllcnIgPSBkZXYtJmd0O2Rydi0mZ3Q7dHhfcHJlcGFyZV9za2IoZGV2LCBOVUxMLCBxaWQsIHdjaWQsIHN0YSwgJmFtcDt0eF9pbmZvKTsKIAlpZiAoZXJyICZsdDsgMCkKLQkJcmV0dXJuIGVycjsKJiM0MzsJCWdvdG8gZXJyX2ZyZWVfc2tiOwogCiAJZXJyID0gbXQ3NnVfdHhfc2V0dXBfYnVmZmVycyhkZXYsIHR4X2luZm8uc2tiLCBxLSZndDtlbnRyeVtpZHhdLnVyYik7CiAJaWYgKGVyciAmbHQ7IDApCi0JCXJldHVybiBlcnI7CiYjNDM7CQlnb3RvIGVycl9mcmVlX3NrYjsKIAogCW10NzZ1X2ZpbGxfYnVsa191cmIoZGV2LCBVU0JfRElSX09VVCwgcS0mZ3Q7ZXAsIHEtJmd0O2VudHJ5W2lkeF0udXJiLAogCQkJICAgIG10NzZ1X2NvbXBsZXRlX3R4LCAmYW1wO3EtJmd0O2VudHJ5W2lkeF0pOwpAQCAtOTIxLDYgJiM0Mzs5MjQsMTMgQEAgbXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSwKIAlxLSZndDtxdWV1ZWQmIzQzOyYjNDM7OwogCiAJcmV0dXJuIGlkeDsKJiM0MzsKJiM0MztlcnJfZnJlZV9za2I6CiYjNDM7CXN0YXR1cy5za2IgPSB0eF9pbmZvLnNrYjsKJiM0MzsJc3Bpbl9sb2NrX2JoKCZhbXA7ZGV2LSZndDtyeF9sb2NrKTsKJiM0MzsJaWVlZTgwMjExX3R4X3N0YXR1c19leHQoZGV2LSZndDtodywgJmFtcDtzdGF0dXMpOwomIzQzOwlzcGluX3VubG9ja19iaCgmYW1wO2Rldi0mZ3Q7cnhfbG9jayk7CiYjNDM7CXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyB2b2lkIG10NzZ1X3R4X2tpY2soc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTM2CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMjA4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBvdGVudGlhbGx5IEZ1enphYmxlIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBuZXcgcGF0Y2ggdG8gbG9vayBhdCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgYXBwZWFycyB0byBiZSBpbiB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZnVuY3Rpb24uIEVzc2VudGlhbGx5LCB0aGV5JiMzOTt2ZSBhZGRlZCBhbiBlcnJvciBoYW5kbGluZyBwYXRoLCBgZXJyX2ZyZWVfc2tiYCwgdGhhdCYjMzk7cyBjYWxsaW5nIGBpZWVlODAyMTFfdHhfc3RhdHVzX2V4dChkZXYtJmd0O2h3LCAmYW1wO3N0YXR1cylgIGJlZm9yZSBwb3RlbnRpYWxseSByZXR1cm5pbmcgYW4gZXJyb3IuIFRoYXTigJlzIGludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb24gdG8gdGhlIHdpcmVsZXNzIGRyaXZlciwgYW5kLCBjcnVjaWFsbHksIGl0JiMzOTtzIG92ZXIgVVNCLgoKVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBVU0IgaXMga2V5LiBUaGF0IG1ha2VzIHRoaXMgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIFdlIGNhbiBlbXVsYXRlIFVTQiBkZXZpY2VzIHVzaW5nIHRoaW5ncyBsaWtlIGBkdW1teV9oY2RgIG9yIGB2aGNpLWhjZGAsIGFuZCB0b29scyBsaWtlIHN5emthbGxlciBjYW4gY29ubmVjdCB0byB0aG9zZSBlbXVsYXRlZCBkZXZpY2VzIHZpYSBgc3l6X3VzYl9jb25uZWN0YC4gU28sIHRoZSBhdHRhY2sgc3VyZmFjZSBpcyBkZWZpbml0ZWx5IHRoZXJlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtjYW4gd2UgdHJpZ2dlciB0aGlzIGVycm9yIHBhdGggd2l0aCBjcmFmdGVkIFVTQiB0cmFmZmljPyYjMzQ7CgpOb3csIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBkcml2ZXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMuIEnigJlsbCBzdGFydCBieSBkaWdnaW5nIGludG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNgIGFuZCBzZWFyY2ggd2l0aGluIGZvciBgbXQ3NnVfdHhfcXVldWVfc2tiYCB0byBnZXQgYSBiZXR0ZXIgc2Vuc2Ugb2YgdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIHRoZSBjb25kaXRpb25zIHRoYXQgbWlnaHQgbGVhZCB0byB0aGUgZXhlY3V0aW9uIG9mIHRoYXQgc3BlY2lmaWMgZXJyb3IgcGF0aC4gVGltZSB0byBzZWUgd2hhdCB3ZSBjYW4gZmluZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2dV90eF9xdWV1ZV9za2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM9ODkxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6ODkyOm10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTg5My1cdFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYz0xMTI3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9vcHMgdXNiX3F1ZXVlX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6MTEyODpcdC50eF9xdWV1ZV9za2IgPSBtdDc2dV90eF9xdWV1ZV9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTExMjktXHQua2ljayA9IG10NzZ1X3R4X2tpY2ssXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE3OAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDE0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBtdDc2dV90eF9xdWV1ZV9za2JgIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldHMgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYC4gUmlnaHQsIHRoYXQmIzM5O3MgYSBVU0Igd2lyZWxlc3MgZHJpdmVyLCBwYXJ0IG9mIHRoZSBtdDc2IGZhbWlseS4gVGhhdCYjMzk7cyBpbW1lZGlhdGVseSBpbnRlcmVzdGluZyBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZSBiZWNhdXNlIFVTQiBkcml2ZXJzIGFyZSBvZnRlbiBzdXNjZXB0aWJsZSB0byBidWdzIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCB0aHJvdWdoIGNyYWZ0ZWQgVVNCIHBhY2tldHMuIFdlIGNhbiB1c2UgdG9vbHMgbGlrZSBgZHVtbXlfaGNkYCBvciBzaW1pbGFyIFVTQiBlbXVsYXRpb24gdGVjaG5pcXVlcyB0byBnZW5lcmF0ZSB0aG9zZSBwYWNrZXRzLgoKTm93LCB3YWl0IGEgbWludXRlLCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgYXR0YWNrIHN1cmZhY2UuIFNpbmNlIGl0JiMzOTtzIGEgd2lyZWxlc3MgZHJpdmVyLCBjb3VsZCBJIHJlYWNoIGl0IHRocm91Z2ggYG1hYzgwMjExX2h3c2ltYD8gTm8sIG5vLCB0aGF0JiMzOTtzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgZHJpdmVyLiBCdXQgdGhlIGNydWNpYWwgcG9pbnQgaGVyZSBpcyB0aGF0IHN5emthbGxlcuKAmXMgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzLCBlc3BlY2lhbGx5IGxldmVyYWdpbmcgYGR1bW15X2hjZGAsICpzaG91bGQqIGJlIGFwcGxpY2FibGUgaGVyZS4gSSBoYXZlIHRvIHZlcmlmeSB0aGF0LgoKTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIG1ha2UgYWJzb2x1dGVseSBjZXJ0YWluIHRoYXQgYE1UNzZfVVNCYCBpcyBlbmFibGVkIG9yLCBhdCB0aGUgdmVyeSBsZWFzdCwgZmlndXJlIG91dCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgd291bGQgaW5jbHVkZSB0aGlzIGRyaXZlci4gVGhlbiBJIGNhbiBkZXRlcm1pbmUgaWYgdGhpcyBpcyBhIHN1aXRhYmxlIHRhcmdldCBmb3IgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3Nl9VU0ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9Nj1jb25maWcgTVQ3Nl9MRURTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjEyOmNvbmZpZyBNVDc2X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEzLVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjA2CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMjA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHR3ZWFraW5nIGBtdDc2dV90eF9xdWV1ZV9za2JgIHdpdGhpbiB0aGUgYG10NzZgIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY2AuIFRoZSBjaGFuZ2UgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogaXQmIzM5O3MgYWRkaW5nIHNvbWUgZXJyb3IgaGFuZGxpbmcgdG8gZnJlZSB0aGUgU0tCIGlmIGVpdGhlciBgdHhfcHJlcGFyZV9za2JgIG9yIGBtdDc2dV90eF9zZXR1cF9idWZmZXJzYCBmYWlscy4gRnVuY3Rpb25hbGx5LCB0aGlzIGxvb2tzIGxpa2UgYSBnb29kIGFkZGl0aW9uLCBtYWtpbmcgdGhlIGRyaXZlciBtb3JlIHJvYnVzdC4gSXQmIzM5O3MgYSB3aXJlbGVzcyBkcml2ZXIsIGJ1dCBsZXQmIzM5O3MgY29uc2lkZXIgdGhlIGltcGxpY2F0aW9ucyBmb3IgZnV6emluZywgc2luY2UgdGhhdCYjMzk7cyBteSBhcmVhIG9mIGZvY3VzLgoKVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgaXMgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGFuZCBzaW5jZSB0aGlzIGlzIGEgVVNCIGRyaXZlciwgaXQgbW9zdCBjZXJ0YWlubHkgaXMuIEkga25vdyBVU0IgZGV2aWNlcyBjYW4gYmUgZW11bGF0ZWQgdXNpbmcgYSB2YXJpZXR5IG9mIG1ldGhvZHM6IFVTQiBnYWRnZXQsIGBkdW1teV9oY2RgLCB0aGluZ3MgbGlrZSB0aGF0LiBCdXQsIGluIG15IGV4cGVyaWVuY2Ugd2l0aCBmdXp6aW5nLCBlc3BlY2lhbGx5IHdpdGggc3l6a2FsbGVyLCB3ZSYjMzk7ZCB0eXBpY2FsbHkgdXNlIGB2aGNpYCDigJMgdGhlIHJhdyBVU0IgZ2FkZ2V0IOKAkyBmb3IgZW11bGF0aW5nIHRoZXNlIHRoaW5ncy4gQW5kIHN5emthbGxlciBoYXMgdGhhdCBoYW5keSBgc3l6X3VzYl9jb25uZWN0YCBwc2V1ZG8tc3lzY2FsbCwgd2hpY2ggaXMgcGVyZmVjdCBmb3IgcmVwcmVzZW50aW5nIFVTQiBkZXZpY2VzLgoKU28sIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nICYjMzQ7eWVzLiYjMzQ7IFVTQiBkcml2ZXJzIGFyZSBkZWZpbml0ZWx5IHdpdGhpbiBvdXIgZnV6emluZyBzY29wZS4gTm93LCBsZXQgbWUganVzdCBxdWlja2x5IGNoZWNrIHRoZSBLY29uZmlnIGRlcGVuZGVuY2llcyBmb3IgYE1UNzZfVVNCYCB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIG9idmlvdXMgcm9hZGJsb2Nrcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgTVQ3Nl9DT1JFXG4gICAzOlx0XHR0cmlzdGF0ZVxuICAgNDpcdFx0c2VsZWN0IFBBR0VfUE9PTFxuICAgNTpcdFxuICAgNjpcdGNvbmZpZyBNVDc2X0xFRFNcbiAgIDc6XHRcdGJvb2xcbiAgIDg6XHRcdGRlcGVuZHMgb24gTVQ3Nl9DT1JFXG4gICA5Olx0XHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBNVDc2X0NPUkU9TEVEU19DTEFTU1xuICAxMDpcdFx0ZGVmYXVsdCB5XG4gIDExOlx0XG4gIDEyOlx0Y29uZmlnIE1UNzZfVVNCXG4gIDEzOlx0XHR0cmlzdGF0ZVxuICAxNDpcdFx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcbiAgMTU6XHRcbiAgMTY6XHRjb25maWcgTVQ3Nl9TRElPXG4gIDE3Olx0XHR0cmlzdGF0ZVxuICAxODpcdFx0ZGVwZW5kcyBvbiBNVDc2X0NPUkVcbiAgMTk6XHRcbiAgMjA6XHRjb25maWcgTVQ3NngwMl9MSUJcbiAgMjE6XHRcdHRyaXN0YXRlXG4gIDIyOlx0XHRzZWxlY3QgTVQ3Nl9DT1JFXG4gIDIzOlx0XG4gIDI0Olx0Y29uZmlnIE1UNzZ4MDJfVVNCXG4gIDI1Olx0XHR0cmlzdGF0ZVxuICAyNjpcdFx0c2VsZWN0IE1UNzZfVVNCXG4gIDI3Olx0XG4gIDI4Olx0Y29uZmlnIE1UNzZfQ09OTkFDX0xJQlxuICAyOTpcdFx0dHJpc3RhdGVcbiAgMzA6XHRcdHNlbGVjdCBNVDc2X0NPUkVcbiAgMzE6XHRcbiAgMzI6XHRjb25maWcgTVQ3OTJ4X0xJQlxuICAzMzpcdFx0dHJpc3RhdGVcbiAgMzQ6XHRcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcbiAgMzU6XHRcbiAgMzY6XHRjb25maWcgTVQ3OTJ4X1VTQlxuICAzNzpcdFx0dHJpc3RhdGVcbiAgMzg6XHRcdHNlbGVjdCBNVDc2X1VTQlxuICAzOTpcdFxuICA0MDpcdGNvbmZpZyBNVDc2X05QVVxuICA0MTpcdFx0dHJpc3RhdGVcbiAgNDI6XHRcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcbiAgNDM6XHRcbiAgNDQ6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZ1wmIzM0O1xuICA0NTpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnXCYjMzQ7XG4gIDQ2Olx0c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWdcJiMzNDtcbiAgNDc6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZ1wmIzM0O1xuICA0ODpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnXCYjMzQ7XG4gIDQ5Olx0c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWdcJiMzNDtcbiAgNTA6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZ1wmIzM0O1xuICA1MTpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY4NgoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDI1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBNZWRpYXRlayBVU0IgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBgbXQ3NnVfdHhfcXVldWVfc2tiYCBmdW5jdGlvbiB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYCBmaWxlLiBSaWdodCwgdGhpcyBpcyB0aGUgVVNCIGRyaXZlciBmb3IgdGhvc2UgTWVkaWFUZWsgd2lyZWxlc3MgZGV2aWNlcyDigJMgaW1wb3J0YW50IGNvbnRleHQuIFRoZSBrZXkgaGVyZSBpcyB0aGUgVVNCIGFzcGVjdCwgbWVhbmluZyBJIGNhbiBwcm9iYWJseSBnZXQgYXQgdGhpcyBjb2RlIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZy4gU3BlY2lmaWNhbGx5LCBJIHNob3VsZCBiZSBhYmxlIHRvIHRyaWdnZXIgdGhpcyB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbiwgYSBkdW1teSBIQ0Qgc2V0dXAsIG9yIGV2ZW4gYmV0dGVyLCB3aXRoIHNvbWV0aGluZyBsaWtlIHN5emthbGxlciYjMzk7cyBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMuIFRoaXMgaXMgZ3JlYXQsIGFzIGl0IGdpdmVzIG1lIHNvbWUgZmxleGliaWxpdHkgaW4gdGVzdGluZy4KClRoZSBjcnV4IG9mIHRoZSBwYXRjaCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGEgcG90ZW50aWFsIG1lbW9yeSBsZWFrIG9yIGEgbWlzc2luZyBzdGF0dXMgdXBkYXRlIHdoZW4gZWl0aGVyIGB0eF9wcmVwYXJlX3NrYmAgb3IgYG10NzZ1X3R4X3NldHVwX2J1ZmZlcnNgIHRocm93cyBhbiBlcnJvci4gU28sIGl0JiMzOTtzIGFkZGluZyBhIGBnb3RvIGVycl9mcmVlX3NrYmAgdG8gY2xlYW4gdXAgdGhlIFNLQi4gVGhpcyBqdW1wIGRvZXMgY2FsbCBgaWVlZTgwMjExX3R4X3N0YXR1c19leHQoZGV2LSZndDtodywgJmFtcDtzdGF0dXMpO2Agd2hpY2ggc2hvdWxkIGZyZWUgdGhlIFNLQi4gVGhhdCYjMzk7cyBhIHJlYXNvbmFibGUgZml4LgoKTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uOiBob3cgY2FuIEkgYWN0dWFsbHkgcmVhY2ggdGhpcyBjb2RlIHBhdGg/IENhbiBJIHJlcHJvZHVjZSB0aGlzIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZz8gRGVmaW5pdGVseSwgc2luY2UgaXQgaXMgYSBVU0IgZHJpdmVyOyBJIGNhbiBzZWUgaG93IFVTQiBmdXp6aW5nIChlLmcuLCBzeXprYWxsZXImIzM5O3MgdmhjaS91c2IgZnV6emluZykgd291bGQgYmUgYSBkaXJlY3Qgd2F5IHRvIHRyaWdnZXIgdGhlIGNvbmRpdGlvbnMgdGhpcyBwYXRjaCBhZGRyZXNzZXMuIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgbWluaW1hbCBjb25maWd1cmF0aW9uIHJlcXVpcmVkIHRvIG1ha2UgdGhlIGRyaXZlciBidWlsZCBhbmQgcnVuLgoKTGV0JiMzOTtzIHNlZTogSSYjMzk7dmUgZ290IHRvIGVuc3VyZSB0aGUgYE1UNzZfVVNCYCBvcHRpb24gaXMgZW5hYmxlZCwgYW5kIGl0JiMzOTtzIGEgdHJpc3RhdGUgb3B0aW9uLCBzZWxlY3RlZCBieSBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgY29uZmlndXJhdGlvbnMgc3BlY2lmaWNhbGx5IGFjdGl2YXRlIHRob3NlIGBNVDc2eDAyX1VTQmAgYW5kIGBNVDc5MnhfVVNCYCBvcHRpb25zLiBUaGF0JiMzOTtzIHRoZSBuZXh0IHN0ZXA7IGZpZ3VyZSBvdXQgdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlbiBzdGFydCBidWlsZGluZyBhbmQgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IE1UNzZ4MDJfVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZz02PWNvbmZpZyBNVDc2eDBVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy04LVx0c2VsZWN0IE1UNzZ4MF9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWc6OTpcdHNlbGVjdCBNVDc2eDAyX1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZy0xMC1cdGRlcGVuZHMgb24gTUFDODAyMTFcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnPTE4PWNvbmZpZyBNVDc2eDJVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0yMC1cdHNlbGVjdCBNVDc2eDJfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjIxOlx0c2VsZWN0IE1UNzZ4MDJfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnLTIyLVx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDc4CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IE1UNzkyeF9VU0ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnPTI4PWNvbmZpZyBNVDc5MjFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI5LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjMwOlx0c2VsZWN0IE1UNzkyeF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMzEtXHRzZWxlY3QgTVQ3OTIxX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc9MTk9Y29uZmlnIE1UNzkyNVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMjAtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MjVVIChVU0IpIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWc6MjE6XHRzZWxlY3QgTVQ3OTJ4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMi1cdHNlbGVjdCBNVDc5MjVfQ09NTU9OXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4MjcKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAyMDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgRnVuY3Rpb24gaW4gdGhlIE1lZGlhVGVrIFVTQiBXaS1GaSBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcG90ZW50aWFsIGZ1enppbmcgdGFyZ2V0OiB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZnVuY3Rpb24gd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYC4gVGhpcyBpcyBwYXJ0IG9mIHRoZSBNZWRpYVRlayBVU0IgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBpbnRlcmVzdGluZyBiZWNhdXNlIEkga25vdyBVU0IgZGV2aWNlcyBhcmUgZ2VuZXJhbGx5IGFjY2Vzc2libGUgZm9yIGZ1enppbmcgdmlhIGVtdWxhdGlvbiDigJMgdGhpbmdzIGxpa2UgYGR1bW15X2hjZGAsIGByYXctZ2FkZ2V0YCwgb3IgZXZlbiBzeXprYWxsZXImIzM5O3MgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzIHNob3VsZCBiZSBhcHBsaWNhYmxlIGhlcmUuIEFuZCBnaXZlbiB0aGUgZnVuY3Rpb24mIzM5O3MgbmFtZSwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoaXMgaXMgYSBUWCBxdWV1ZSBmdW5jdGlvbiwgbWFraW5nIGl0IGEgZ29vZCBjYW5kaWRhdGUgZm9yIGV4cGxvcmluZyBwb3RlbnRpYWwgcGFja2V0LWhhbmRsaW5nIHZ1bG5lcmFiaWxpdGllcy4KCk5vdywgdG8gZ2V0IHRoaXMgYnVpbGQsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zIGFyZSBzZXQuIExvb2tzIGxpa2UgSSYjMzk7bGwgbmVlZCB0byBlbmFibGUgZWl0aGVyIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIG9yIGBNVDc5MjVVYCwgZGVwZW5kaW5nIG9uIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSBJJiMzOTttIHRhcmdldGluZy4gVGhlc2Ugd2lsbCBwdWxsIGluIGBNVDc2eDAyX1VTQmAgb3IgYE1UNzkyeF9VU0JgIGFuZCBjb25zZXF1ZW50bHkgYE1UNzZfVVNCYCwgd2hpY2ggSSBhc3N1bWUgYXJlIHRoZSByZWxldmFudCBVU0Itc3BlY2lmaWMgY29tcG9uZW50cy4gT2YgY291cnNlLCBgTUFDODAyMTFgIGFuZCBgVVNCYCBhcmUgYWxzbyByZXF1aXJlZC4gVGltZSB0byBjaGVjayB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNVDc2eDBVYCB0byBzZWUgd2hhdCBlbHNlIEkgbWlnaHQgbmVlZCB0byBlbmFibGUgaW4gdGhlIEtjb25maWcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdGNvbmZpZyBNVDc2eDBfQ09NTU9OXG4gICAzOlx0XHR0cmlzdGF0ZVxuICAgNDpcdFx0c2VsZWN0IE1UNzZ4MDJfTElCXG4gICA1Olx0XG4gICA2Olx0Y29uZmlnIE1UNzZ4MFVcbiAgIDc6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MFUgKFVTQikgc3VwcG9ydFwmIzM0O1xuICAgODpcdFx0c2VsZWN0IE1UNzZ4MF9DT01NT05cbiAgIDk6XHRcdHNlbGVjdCBNVDc2eDAyX1VTQlxuICAxMDpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAxMTpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgMTI6XHRcdGhlbHBcbiAgMTM6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzYxMFUtYmFzZWQgVVNCIDIuMCB3aXJlbGVzcyBkb25nbGVzLFxuICAxNDpcdFx0ICB3aGljaCBjb21wbHkgd2l0aCBJRUVFIDgwMi4xMWFjIHN0YW5kYXJkcyBhbmQgc3VwcG9ydCAxeDFcbiAgMTU6XHRcdCAgNDMzTWJwcyBQSFkgcmF0ZS5cbiAgMTY6XHRcbiAgMTc6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMTg6XHRcbiAgMTk6XHRjb25maWcgTVQ3NngwRVxuICAyMDpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NngwRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NTA4CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAyODpcdGNvbmZpZyBNVDc5MjFVXG4gIDI5Olx0XHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MjFVIChVU0IpIHN1cHBvcnRcJiMzNDtcbiAgMzA6XHRcdHNlbGVjdCBNVDc5MnhfVVNCXG4gIDMxOlx0XHRzZWxlY3QgTVQ3OTIxX0NPTU1PTlxuICAzMjpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAzMzpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgMzQ6XHRcdGhlbHBcbiAgMzU6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyMVUgODAyLjExYXggMngyOjJTUyB3aXJlbGVzcyBkZXZpY2VzLlxuICAzNjpcdFxuICAzNzpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NzIzCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNzkwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIE1UNzYgVVNCIERyaXZlciYjMzk7cyBUWCBQYXRoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggdGFyZ2V0cyBgbXQ3NnVfdHhfcXVldWVfc2tiYCB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNgLiBUaGlzIGlzIHRoZSBVU0IgZHJpdmVyIGZvciBNZWRpYVRlayBNVDc2IHdpcmVsZXNzIGRldmljZXMsIGFuZCB0aGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgaXMgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgYmVjYXVzZSB3ZSBjYW4gZW11bGF0ZSB0aGUgVVNCIGRldmljZSB1c2luZyBzb21ldGhpbmcgbGlrZSBgZHVtbXlfaGNkYCBvciBgcmF3LWdhZGdldGAgaW4gc3l6a2FsbGVyLiBHb29kLgoKVGhlIHBhdGNoIGl0c2VsZiBpcyBhYm91dCBlcnJvciBoYW5kbGluZyBpbiBgbXQ3NnVfdHhfcXVldWVfc2tiYCwgc3BlY2lmaWNhbGx5IHdoZW4gZWl0aGVyIGB0eF9wcmVwYXJlX3NrYmAgb3IgYG10NzZ1X3R4X3NldHVwX2J1ZmZlcnNgIGZhaWxzLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGhhbmRsaW5nIHRoZSBjbGVhbnVwIHByb3Blcmx5IGJ5IGNhbGxpbmcgYGllZWU4MDIxMV90eF9zdGF0dXNfZXh0YCB0byBmcmVlIHRoZSBza2IgaW4gY2FzZSBvZiBhbiBlcnJvci4gU3RhbmRhcmQgc3R1ZmYsIGJ1dCBpbXBvcnRhbnQgZm9yIGZ1enppbmcgY292ZXJhZ2UuCgpOb3csIGhvdyBkbyB3ZSBnZXQgdGhpcyBjb2RlIHRvIGV4ZWN1dGU/IFdlIG5lZWQgdG8gZW5hYmxlIHRoZSByaWdodCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBNVDc2IFVTQiBkcml2ZXJzLiBMZXQmIzM5O3Mgc2VlLi4uIGxvb2tpbmcgYXQgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AsIGBNVDc2X1VTQmAgaXMgc2VsZWN0ZWQgYnkgYm90aCBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAuIFRob3NlIGFyZSB0aGUgdHdvIG1haW4gb3B0aW9ucy4gVGhlbiwgYE1UNzZ4MDJfVVNCYCBpcyBzZWxlY3RlZCBieSBgTVQ3NngwVWAgYW5kIGBNVDc2eDJVYC4gYE1UNzkyeF9VU0JgIGlzIHNlbGVjdGVkIGJ5IGBNVDc5MjFVYCBhbmQgYE1UNzkyNVVgLiBUaGF0IG1lYW5zIHdlIG5lZWQgdG8gZW5hYmxlIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBgTVQ3OTI1VWAuIEVhc3kgZW5vdWdoLgoKV2Ugc2hvdWxkIGNoZWNrIHRoZWlyIGRlcGVuZGVuY2llczogYE1UNzZ4MlVgIGRlcGVuZHMgb24gYE1BQzgwMjExYCBhbmQgYFVTQmAuIGBNVDc5MjVVYCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAgYW5kIGBVU0JgLiBObyBzdXJwcmlzZXMgdGhlcmUuIEV2ZXJ5dGhpbmcgc2VlbXMgdG8gYmUgaW4gb3JkZXIuCgpUaGUgZnVuY3Rpb24gYG10NzZ1X3R4X3F1ZXVlX3NrYmAgaXRzZWxmIGlzIHRoZSBwcmltYXJ5IHRhcmdldC4gSXQmIzM5O3MgYXNzaWduZWQgdG8gdGhlIGAudHhfcXVldWVfc2tiYCBmdW5jdGlvbiBwb2ludGVyIGluIGB1c2JfcXVldWVfb3BzYC4gVGhhdOKAmXMgdGhlIGtleSBoZXJlLgoKTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIGlmIGBtdDc2dV90eF9xdWV1ZV9za2JgIGlzIHN0YXRpYy4gTG9va3MgbGlrZSBpdCBpcy4gQnV0LCBpdCBpcyBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgYHR4X3F1ZXVlX3NrYmAgaW4gYG10NzZfcXVldWVfb3BzYCwgc28gaXQgc2hvdWxkIHN0aWxsIGJlIHJlYWNoYWJsZS4gSXMgdGhlcmUgYSBub24tc3RhdGljIGVudHJ5IHBvaW50PyBJIHNob3VsZCBzZWFyY2ggZm9yIGBtdDc2dV90eF9xdWV1ZV9za2JgIG9yIGB1c2JfcXVldWVfb3BzYCB0byBtYWtlIHN1cmUuIElzIGB1c2JfcXVldWVfb3BzYCB1c2VkIGluIGBtdDc2dV9xdWV1ZXNfaW5pdGAgb3Igc2ltaWxhcj8gVGhhdCYjMzk7cyB3aGF0IEkgd2lsbCBzZWFyY2ggZm9yIG5leHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VzYl9xdWV1ZV9vcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM9MTEyNT1FWFBPUlRfU1lNQk9MX0dQTChtdDc2dV9hbGxvY19xdWV1ZXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy0xMTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYzoxMTI3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9vcHMgdXNiX3F1ZXVlX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMtMTEyOC1cdC50eF9xdWV1ZV9za2IgPSBtdDc2dV90eF9xdWV1ZV9za2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYz0xMTMyPWludCBfX210NzZ1X2luaXQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMtMTE1MS1cdGRldi1cdTAwM2VidXMgPSBvcHM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jOjExNTI6XHRkZXYtXHUwMDNlcXVldWVfb3BzID0gXHUwMDI2dXNiX3F1ZXVlX29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMtMTE1My1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTUzNwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgaWYgdGhleSBhcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIFVTQiBRdWV1ZSBPcGVyYXRpb25zKioKCkFscmlnaHQsIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoaXMgVVNCIGNvZGUgYW5kIEkmIzM5O3ZlIGp1c3Qgc2VlbiB0aGF0IGBkZXYtJmd0O3F1ZXVlX29wc2AgaXMgYXNzaWduZWQgdG8gYCZhbXA7dXNiX3F1ZXVlX29wc2AuIE1ha2VzIHNlbnNlLCBzdGFuZGFyZCBVU0IgcXVldWluZyBzdHVmZi4gQnV0IG5vdyB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXMsIHdoZXJlIHRoZSBoZWNrIGlzIGBxdWV1ZV9vcHMtJmd0O3R4X3F1ZXVlX3NrYmAgYWN0dWFsbHkgKmNhbGxlZCo/IEkgbmVlZCB0byB0cmFjZSB0aGUgZXhlY3V0aW9uIHBhdGggdG8gdW5kZXJzdGFuZCBob3cgU0tCcyBhcmUgYmVpbmcgaW5qZWN0ZWQgaW50byB0aGUgVVNCIHRyYW5zbWlzc2lvbiBwaXBlbGluZS4gS25vd2luZyB0aGUgY2FsbHNpdGUgb2YgYHR4X3F1ZXVlX3NrYmAgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGRhdGEgZmxvdyBhbmQgaG93IHRoaXMgcGFydGljdWxhciBxdWV1ZSBpbnRlcmFjdHMgd2l0aCB0aGUgb3ZlcmFsbCBVU0Igc3RhY2suIEkgbmVlZCB0byBmaW5kIHRoZSBmdW5jdGlvbihzKSBvciBkcml2ZXIgY29tcG9uZW50cyB0aGF0IGFyZSByZXNwb25zaWJsZSBmb3Iga2lja2luZyBvZmYgdGhvc2UgcGFja2V0IHRyYW5zbWlzc2lvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3R4X3F1ZXVlX3NrYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9NjMzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NjM0Om10NzZfZG1hX3R4X3F1ZXVlX3NrYl9yYXcoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy02MzUtXHRcdFx0ICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgdHhfaW5mbylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTY2Nj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjY2NzptdDc2X2RtYV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy02NjgtXHRcdCAgICAgIGVudW0gbXQ3Nl90eHFfaWQgcWlkLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MTE3Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG10NzZfcXVldWVfb3BzIG10NzZfZG1hX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNzktXHQucmVzZXRfcSA9IG10NzZfZG1hX3F1ZXVlX3Jlc2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTgwOlx0LnR4X3F1ZXVlX3NrYl9yYXcgPSBtdDc2X2RtYV90eF9xdWV1ZV9za2JfcmF3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTgxOlx0LnR4X3F1ZXVlX3NrYiA9IG10NzZfZG1hX3R4X3F1ZXVlX3NrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE4Mi1cdC50eF9jbGVhbnVwID0gbXQ3Nl9kbWFfdHhfY2xlYW51cCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0yOTI9c3RydWN0IG10NzZfcXVldWVfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0yOTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDozMDA6XHRpbnQgKCp0eF9xdWV1ZV9za2IpKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTMwMS1cdFx0XHQgICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMzAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MzA0Olx0aW50ICgqdHhfcXVldWVfc2tiX3Jhdykoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMzA1LVx0XHRcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHR4X2luZm8pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTEyNjg9c3RhdGljIGlubGluZSBpbnQgbXQ3Nl93ZWRfZG1hX3NldHVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjc5LSNkZWZpbmUgbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIC4uLilcdChkZXYpLVx1MDAzZW10NzYucXVldWVfb3BzLVx1MDAzZWFsbG9jKFx1MDAyNigoZGV2KS1cdTAwM2VtdDc2KSwgX19WQV9BUkdTX18pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjgwOiNkZWZpbmUgbXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgLi4uKVx0KGRldiktXHUwMDNlbXQ3Ni5xdWV1ZV9vcHMtXHUwMDNldHhfcXVldWVfc2tiX3JhdyhcdTAwMjYoKGRldiktXHUwMDNlbXQ3NiksIF9fVkFfQVJHU19fKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI4MTojZGVmaW5lIG10NzZfdHhfcXVldWVfc2tiKGRldiwgLi4uKVx0KGRldiktXHUwMDNlbXQ3Ni5xdWV1ZV9vcHMtXHUwMDNldHhfcXVldWVfc2tiKFx1MDAyNigoZGV2KS1cdTAwM2VtcGh5KSwgX19WQV9BUkdTX18pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjgyLSNkZWZpbmUgbXQ3Nl9xdWV1ZV9yeF9yZXNldChkZXYsIC4uLilcdChkZXYpLVx1MDAzZW10NzYucXVldWVfb3BzLVx1MDAzZXJ4X3Jlc2V0KFx1MDAyNigoZGV2KS1cdTAwM2VtdDc2KSwgX19WQV9BUkdTX18pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM9MzA9bXQ3NjAzX3VwZGF0ZV9iZWFjb25faXRlcih2b2lkICpwcml2LCB1OCAqbWFjLCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6NzE6XHRtdDc2X3R4X3F1ZXVlX3NrYihkZXYsIGRldi1cdTAwM2VtcGh5LnFfdHhbTVRfVFhRX0JFQUNPTl0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy03Mi1cdFx0XHQgIE1UX1RYUV9CRUFDT04sIHNrYiwgXHUwMDI2bXZpZi1cdTAwM2VzdGEud2NpZCwgTlVMTCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM9MTAzPXZvaWQgbXQ3NjAzX3ByZV90YnR0X3Rhc2tsZXQoc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE2Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjE2NzpcdFx0bXQ3Nl90eF9xdWV1ZV9za2IoZGV2LCBxLCBNVF9UWFFfQ0FCLCBza2IsIFx1MDAyNm12aWYtXHUwMDNlc3RhLndjaWQsIE5VTEwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTY4LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21haW4uYz0zOTQ9bXQ3NjAzX3BzX3R4X2xpc3Qoc3RydWN0IG10NzYwM19kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmMtNDAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jOjQwMTpcdFx0bXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgZGV2LVx1MDAzZW1waHkucV90eFtxaWRdLCBza2IsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jLTQwMi1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tY3UuYz0zOD1tdDc2MDNfbWN1X3NrYl9zZW5kX21zZyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWN1LmMtNzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tY3UuYzo3NTpcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVx1MDAzZXFfbWN1W01UX01DVVFfV01dLCBza2IsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWN1LmMtNzYtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYz0yNTE9bXQ3NjE1X3Jlc2V0X3Rlc3Rfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTI2NS1cdG10NzYxNV9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmM6MjY2Olx0bXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgZGV2LVx1MDAzZW1waHkucV90eFswXSwgc2tiLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYy0yNjctXHRtdDc2MTVfbXV0ZXhfcmVsZWFzZShkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jPTE4ND1tdDc2MTVfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmMtMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmM6MTk2Olx0cmV0dXJuIG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIGRldi1cdTAwM2VtdDc2LnFfbWN1W3FpZF0sIHNrYiwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYy0xOTctfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW9fbWN1LmM9Mzk9bXQ3NjYzc19tY3Vfc2VuZF9tZXNzYWdlKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvX21jdS5jLTQ1LVx0bXQ3NjE1X21jdV9maWxsX21zZyhkZXYsIHNrYiwgY21kLCBzZXEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpb19tY3UuYzo0NjpcdHJldCA9IG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIG1kZXYtXHUwMDNlcV9tY3VbTVRfTUNVUV9XTV0sIHNrYiwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvX21jdS5jLTQ3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbWN1LmM9MzQ9aW50IG10NzZ4MDJfbWN1X21zZ19zZW5kKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgaW50IGNtZCwgY29uc3Qgdm9pZCAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbWN1LmMtNjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbWN1LmM6NjM6XHRyZXQgPSBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVx1MDAzZXFfbWN1W01UX01DVVFfV01dLCBza2IsIHR4X2luZm8pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX21jdS5jLTY0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbW1pby5jPTE0PXN0YXRpYyB2b2lkIG10NzZ4MDJfcHJlX3RidHRfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX21taW8uYy02OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9tbWlvLmM6Njk6XHRcdG10NzZfdHhfcXVldWVfc2tiKGRldiwgcSwgTVRfVFhRX1BTRCwgc2tiLCBcdTAwMjZtdmlmLVx1MDAzZWdyb3VwX3djaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbW1pby5jLTcwLVx0XHRcdFx0ICBOVUxMKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYz0yMjI9bXQ3OTE1X21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jOjIzNzpcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVx1MDAzZXFfbWN1W3FpZF0sIHNrYiwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYy0yMzgtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaV9tY3UuYz0yMj1tdDc5MjFfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpX21jdS5jLTM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpX21jdS5jOjM4Olx0cmV0dXJuIG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIG1kZXYtXHUwMDNlcV9tY3VbdHhxXSwgc2tiLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaV9tY3UuYy0zOS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpb19tY3UuYz0xNj1tdDc5MjFzX21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW9fbWN1LmMtNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvX21jdS5jOjQ1Olx0cmV0ID0gbXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgbWRldi1cdTAwM2VxX21jdVt0eHFdLCBza2IsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpb19tY3UuYy00Ni1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpX21jdS5jPTg9bXQ3OTI1X21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaV9tY3UuYy0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaV9tY3UuYzoyNDpcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVx1MDAzZXFfbWN1W3R4cV0sIHNrYiwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2lfbWN1LmMtMjUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jPTI5MD1tdDc5OTZfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmM6MzgxOlx0cmV0dXJuIG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIG1kZXYtXHUwMDNlcV9tY3VbcWlkXSwgc2tiLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTM4Mi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM9NTE3PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Rpby5jOjUxODptdDc2c190eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmMtNTE5LVx0XHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYz01NTg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM6NTU5Om10NzZzX3R4X3F1ZXVlX3NrYl9yYXcoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmMtNTYwLVx0XHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHR4X2luZm8pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM9NjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9vcHMgc2Rpb19xdWV1ZV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYzo2MDQ6XHQudHhfcXVldWVfc2tiID0gbXQ3NnNfdHhfcXVldWVfc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmMtNjA1LVx0LmtpY2sgPSBtdDc2c190eF9raWNrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM6NjA2Olx0LnR4X3F1ZXVlX3NrYl9yYXcgPSBtdDc2c190eF9xdWV1ZV9za2JfcmF3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmMtNjA3LX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90ZXN0bW9kZS5jPTMxPXZvaWQgbXQ3Nl90ZXN0bW9kZV90eF9wZW5kaW5nKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdGVzdG1vZGUuYy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdGVzdG1vZGUuYzo1NjpcdFx0cmV0ID0gZGV2LVx1MDAzZXF1ZXVlX29wcy1cdTAwM2V0eF9xdWV1ZV9za2IocGh5LCBxLCBxaWQsIHNrYl9nZXQoc2tiKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdGVzdG1vZGUuYy01Ny1cdFx0XHRcdFx0XHQgICB3Y2lkLCBOVUxMKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM9MzI1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYzozMjY6X19tdDc2X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgaW50IHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy0zMjctXHRcdCAgICBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy0zMzctXHRub25fYXFsID0gIWluZm8tXHUwMDNldHhfdGltZV9lc3Q7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM6MzM4Olx0aWR4ID0gZGV2LVx1MDAzZXF1ZXVlX29wcy1cdTAwM2V0eF9xdWV1ZV9za2IocGh5LCBxLCBxaWQsIHNrYiwgd2NpZCwgc3RhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy0zMzktXHRpZiAoaWR4IFx1MDAzYyAwIHx8ICFzdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jPTQxND1tdDc2X3F1ZXVlX3BzX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNDMyLVx0bXQ3Nl9za2Jfc2V0X21vcmVkYXRhKHNrYiwgIWxhc3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jOjQzMzpcdF9fbXQ3Nl90eF9xdWV1ZV9za2IocGh5LCBNVF9UWFFfUFNELCBza2IsIHdjaWQsIHN0YSwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNDM0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM9NDkwPW10NzZfdHhxX3NlbmRfYnVyc3Qoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy01MjEtXHRzcGluX2xvY2soXHUwMDI2cS1cdTAwM2Vsb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYzo1MjI6XHRpZHggPSBfX210NzZfdHhfcXVldWVfc2tiKHBoeSwgcWlkLCBza2IsIHdjaWQsIHR4cS1cdTAwM2VzdGEsIFx1MDAyNnN0b3ApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTUyMy1cdHNwaW5fdW5sb2NrKFx1MDAyNnEtXHUwMDNlbG9jayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTU0Ni1cdFx0c3Bpbl9sb2NrKFx1MDAyNnEtXHUwMDNlbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM6NTQ3Olx0XHRpZHggPSBfX210NzZfdHhfcXVldWVfc2tiKHBoeSwgcWlkLCBza2IsIHdjaWQsIHR4cS1cdTAwM2VzdGEsIFx1MDAyNnN0b3ApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTU0OC1cdFx0c3Bpbl91bmxvY2soXHUwMDI2cS1cdTAwM2Vsb2NrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM9NjYwPW10NzZfdHhxX3NjaGVkdWxlX3BlbmRpbmdfd2NpZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNjk0LVx0XHRzcGluX2xvY2soXHUwMDI2cS1cdTAwM2Vsb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYzo2OTU6XHRcdF9fbXQ3Nl90eF9xdWV1ZV9za2IocGh5LCBxaWQsIHNrYiwgd2NpZCwgc3RhLCBOVUxMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy02OTYtXHRcdGRldi1cdTAwM2VxdWV1ZV9vcHMtXHUwMDNla2ljayhkZXYsIHEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM9ODkxPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6ODkyOm10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTg5My1cdFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYz0xMTI3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9vcHMgdXNiX3F1ZXVlX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6MTEyODpcdC50eF9xdWV1ZV9za2IgPSBtdDc2dV90eF9xdWV1ZV9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTExMjktXHQua2ljayA9IG10NzZ1X3R4X2tpY2ssXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNDcxCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogODkxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA4OTE6XHRzdGF0aWMgaW50XG4gODkyOlx0bXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbiA4OTM6XHRcdFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXG4gODk0Olx0XHRcdCAgIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4gODk1Olx0e1xuIDg5NjpcdFx0c3RydWN0IGllZWU4MDIxMV90eF9zdGF0dXMgc3RhdHVzID0ge1xuIDg5NzpcdFx0XHQuc3RhID0gc3RhLFxuIDg5ODpcdFx0fTtcbiA4OTk6XHRcdHN0cnVjdCBtdDc2X3R4X2luZm8gdHhfaW5mbyA9IHtcbiA5MDA6XHRcdFx0LnNrYiA9IHNrYixcbiA5MDE6XHRcdH07XG4gOTAyOlx0XHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG4gOTAzOlx0XHR1MTYgaWR4ID0gcS1cdTAwM2VoZWFkO1xuIDkwNDpcdFx0aW50IGVycjtcbiA5MDU6XHRcbiA5MDY6XHRcdGlmIChxLVx1MDAzZXF1ZXVlZCA9PSBxLVx1MDAzZW5kZXNjKVxuIDkwNzpcdFx0XHRyZXR1cm4gLUVOT1NQQztcbiA5MDg6XHRcbiA5MDk6XHRcdHNrYi1cdTAwM2VwcmV2ID0gc2tiLVx1MDAzZW5leHQgPSBOVUxMO1xuIDkxMDpcdFx0ZXJyID0gZGV2LVx1MDAzZWRydi1cdTAwM2V0eF9wcmVwYXJlX3NrYihkZXYsIE5VTEwsIHFpZCwgd2NpZCwgc3RhLCBcdTAwMjZ0eF9pbmZvKTtcbiA5MTE6XHRcdGlmIChlcnIgXHUwMDNjIDApXG4gOTEyOlx0XHRcdGdvdG8gZXJyX2ZyZWVfc2tiO1xuIDkxMzpcdFxuIDkxNDpcdFx0ZXJyID0gbXQ3NnVfdHhfc2V0dXBfYnVmZmVycyhkZXYsIHR4X2luZm8uc2tiLCBxLVx1MDAzZWVudHJ5W2lkeF0udXJiKTtcbiA5MTU6XHRcdGlmIChlcnIgXHUwMDNjIDApXG4gOTE2Olx0XHRcdGdvdG8gZXJyX2ZyZWVfc2tiO1xuIDkxNzpcdFxuIDkxODpcdFx0bXQ3NnVfZmlsbF9idWxrX3VyYihkZXYsIFVTQl9ESVJfT1VULCBxLVx1MDAzZWVwLCBxLVx1MDAzZWVudHJ5W2lkeF0udXJiLFxuIDkxOTpcdFx0XHRcdCAgICBtdDc2dV9jb21wbGV0ZV90eCwgXHUwMDI2cS1cdTAwM2VlbnRyeVtpZHhdKTtcbiA5MjA6XHRcbiA5MjE6XHRcdHEtXHUwMDNlaGVhZCA9IChxLVx1MDAzZWhlYWQgJiM0MzsgMSkgJSBxLVx1MDAzZW5kZXNjO1xuIDkyMjpcdFx0cS1cdTAwM2VlbnRyeVtpZHhdLnNrYiA9IHR4X2luZm8uc2tiO1xuIDkyMzpcdFx0cS1cdTAwM2VlbnRyeVtpZHhdLndjaWQgPSAweGZmZmY7XG4gOTI0Olx0XHRxLVx1MDAzZXF1ZXVlZCYjNDM7JiM0Mzs7XG4gOTI1Olx0XG4gOTI2Olx0XHRyZXR1cm4gaWR4O1xuIDkyNzpcdFxuIDkyODpcdGVycl9mcmVlX3NrYjpcbiA5Mjk6XHRcdHN0YXR1cy5za2IgPSB0eF9pbmZvLnNrYjtcbiA5MzA6XHRcdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcnhfbG9jayk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0MjA2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTY1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiBNZWRpYVRlayBNVDc2IFVTQiBEcml2ZXIgUGF0Y2ggZm9yIEZ1enppbmcqKgoKT2theSwgbGV0JiMzOTtzIHNlZS4gVGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgbXQ3NnVfdHhfcXVldWVfc2tiYCBpbiB0aGUgYG10NzZgIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgdXNiLmNgLiBJdCYjMzk7cyBhYm91dCBlcnJvciBoYW5kbGluZyBkdXJpbmcgVFgsIGVuc3VyaW5nIHRoZSBTS0IgaXMgZnJlZWQgYW5kIGl0cyBzdGF0dXMgcmVwb3J0ZWQgaWYgYHR4X3ByZXBhcmVfc2tiYCBvciBgbXQ3NnVfdHhfc2V0dXBfYnVmZmVyc2AgZmFpbHMuIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgcHJldHR5IHN0YW5kYXJkIHRoaW5nIHRvIGxvb2sgZm9yIHdoZW4gZnV6emluZyBkcml2ZXJzLiBUaGUgZmFjdCBpdCYjMzk7cyBVU0ItYmFzZWQgbWVhbnMgd2UgY2FuIGhpdCBpdCB3aXRoIFVTQiBnYWRnZXQgZW11bGF0aW9uLCBtYXliZSB3aXRoIHNvbWV0aGluZyBsaWtlIGBkdW1teV9oY2RgIG9yIHN5emthbGxlciYjMzk7cyBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMg4oCTIHBlcmZlY3QuCgpOb3csIHRvIG1ha2Ugc3VyZSB3ZSBjYW4gdHJpZ2dlciB0aGlzLCB3ZSBuZWVkIHRvIGdldCB0aGUgcmlnaHQgY29uZmlncyBzZXQuIExldCYjMzk7cyBzdGFydCB3aXRoIHRoZSBiYXNlLCBgTVQ3Nl9VU0JgLiBUaGVuLCB0aGUgZHJpdmVycyB0aGF0IHNlbGVjdCB0aGF0IGFyZSBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAsIGJ1dCB0aG9zZSBhcmVuJiMzOTt0IHRoZSBhY3R1YWwgZHJpdmVycy4gQWgsIHJpZ2h0LiBJdCYjMzk7cyBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgIHRoYXQgKnNlbGVjdCogdGhvc2UgY29uZmlncy4gU28sIGl0IGxvb2tzIGxpa2Ugd2Ugd2FudCB0byBlbmFibGUgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIGBNVDc5MjVVYC4gQSBxdWljayBjaGVjayByZXZlYWxzIHRoYXQgYWxsIHRoZXNlIGRyaXZlcnMgZGVwZW5kIG9uIGJvdGggYE1BQzgwMjExYCBhbmQgYFVTQmAsIHdoaWNoIGNvbmZpcm1zIG91ciBhcHByb2FjaC4KCmBNVDc2X1VTQmAgaXMganVzdCB0cmlzdGF0ZSwgc2VsZWN0ZWQgYnkgYE1UNzZ4MDJfVVNCYCBhbmQgYE1UNzkyeF9VU0JgLiBTbywgd2UgbmVlZCB0byBlbmFibGUgdGhlIG9uZXMgd2l0aCBwcm9tcHRzOiBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgLiBUaGF0IHNob3VsZCBwdWxsIGluIHRoZSBuZWVkZWQgZGVwZW5kZW5jaWVzLCBpbmNsdWRpbmcgYFVTQmAuIEdvb2QuIExldCYjMzk7cyBtYWtlIHN1cmUgdGhlIHByb21wdHMgYXJlIHNhbmUg4oCTIHllcCwgYWxsIHRob3NlIGNvbmZpZ3MgaGF2ZSBwcm9tcHRzIGluIHRoZWlyIHJlc3BlY3RpdmUgS2NvbmZpZyBmaWxlcywgYWxsIGdvb2QuCgpUaGUga2V5IGZ1bmN0aW9uIGhlcmUsIHRoZSBvbmUgYmVpbmcgbW9kaWZpZWQsIGlzIGBtdDc2dV90eF9xdWV1ZV9za2JgLiBPa2F5LCBub3csIHRoZSBwcm9tcHQmIzM5O3MgcHJlZmVyZW5jZSBpcyBmb3Igbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zLiBCdXQsIGBtdDc2dV90eF9xdWV1ZV9za2JgICppcyogc3RhdGljLiBCdXQgd2FpdCEgSXRzIGFkZHJlc3MgaXMgdGFrZW4gYW5kIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciwgd2hpY2ggbWVhbnMgaXQgZGVmaW5pdGVseSB3b24mIzM5O3QgYmUgZnVsbHkgaW5saW5lZC4gRXZlbiBpZiBpdCAqY291bGQqIGJlIGlubGluZWQsIGFzc2lnbmluZyBpdCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgd2lsbCBwcmV2ZW50IHRoYXQuIFNvLCBpdCYjMzk7cyBub3QgYWN0dWFsbHkgYW4gaXNzdWUhIFRoYXQgbWVhbnMgd2UgY2FuIHN0aWxsIGdldCBhIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzIGV2ZW4gdGhvdWdoIGl0JiMzOTtzIGRlY2xhcmVkIGBzdGF0aWNgLiBCZXNpZGVzLCBpdCYjMzk7cyB0aGUgZXhhY3QgZnVuY3Rpb24gYmVpbmcgbW9kaWZpZWQsIHNvIHBlcmZlY3QuIFdlIGNhbiBhbHNvIGluY2x1ZGUgYG10NzZfdHhxX3NlbmRfYnVyc3RgIG9yIGBtdDc2X3R4cV9zY2hlZHVsZV9wZW5kaW5nX3djaWRgIHdoaWNoIGFyZSBub24tc3RhdGljIGFzIHdlbGwuIEhvd2V2ZXIsIGBtdDc2dV90eF9xdWV1ZV9za2JgIGlzIHRoZSBkaXJlY3QgdGFyZ2V0IGFuZCB0aGUgY2hhbmdlIHRoYXQgaXMgbW9kaWZpZWQuIExldCYjMzk7cyBzdGljayB3aXRoIGBtdDc2dV90eF9xdWV1ZV9za2JgIGFzIHRoZSBmb2N1cy4KClNvLCBpbiBzdW1tYXJ5LCB3ZSYjMzk7cmUgbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgZml4ZXMgYW4gZXJyb3IgcGF0aCwgcHJvYmFibHkgYSBtZW1vcnkgbGVhayBvciBhIHN0YXR1cyByZXBvcnRpbmcgaXNzdWUgd2hlbiBUWCBwcmVwYXJhdGlvbiBmYWlscy4gSXQmIzM5O3MgaW4gdGhlIFVTQiBkcml2ZXIsIHNvIGl0JiMzOTtzIGRpcmVjdGx5IHJlYWNoYWJsZSB2aWEgVVNCIGZ1enppbmcgdGVjaG5pcXVlcy4KCkVuYWJsZUNvbmZpZ3M6IGBbJiMzNDtNVDc2eDBVJiMzNDssICYjMzQ7TVQ3NngyVSYjMzQ7LCAmIzM0O01UNzkyMVUmIzM0OywgJiMzNDtNVDc5MjVVJiMzNDtdYC4KRm9jdXNTeW1ib2xzOiBgWyYjMzQ7bXQ3NnVfdHhfcXVldWVfc2tiJiMzNDtdYC4KCkZpbmFsbHksIGp1c3QgYSBxdWljayBzYW5pdHkgY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgVVNCIGRyaXZlcnMgaW4gdGhlIGBtdDc2YCBkaXJlY3RvcnkuIExldCYjMzk7cyBzZWUuLi4gbm90aGluZyBpbW1lZGlhdGVseSBqdW1waW5nIG91dC4gQWxyaWdodCwgdGhhdCYjMzk7cyBpdCEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzYwMVUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2MDF1L0tjb25maWc6Mjpjb25maWcgTVQ3NjAxVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc2MDFVIChVU0IpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTUyMjgKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3Nl9VU0ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9Nj1jb25maWcgTVQ3Nl9MRURTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjEyOmNvbmZpZyBNVDc2X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEzLVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTUzNzcKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3NngwMl9VU0ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9MjA9Y29uZmlnIE1UNzZ4MDJfTElCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI0OmNvbmZpZyBNVDc2eDAyX1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI1LVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkwNTAKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAxMDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNZWRpYXRlayBXaXJlbGVzcyBEcml2ZXJzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHRoZSBgTVQ3NjAxVWAgZHJpdmVyIGlzIGFuIG91dGxpZXIsIHJlc2lkaW5nIGluZGVwZW5kZW50bHkgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvYC4gSXQmIzM5O3Mgbm90IGxldmVyYWdpbmcgdGhlIGNvbW1vbiBgbXQ3Ni91c2IuY2AgZnJhbWV3b3JrLiBIbW0sIGludGVyZXN0aW5nLgoKQnV0IHRoYXQgbWVhbnMgdGhlIG90aGVyIGRyaXZlcnMgSSYjMzk7bSBmYW1pbGlhciB3aXRoLCB0aGUgb25lcyBsaWtlIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBgTVQ3OTI1VWAsIHRoZXkgYXJlIGxpa2VseSB0aGUgb25lcyB1dGlsaXppbmcgdGhlIGBtdDc2L3VzYi5jYCBtb2R1bGUsIHdoaWNoIG1ha2VzIHNlbnNlLiBJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgdGhhdCwgZ2l2ZW4gdGhlaXIgc2hhcmVkIGFyY2hpdGVjdHVyZS4KCk5vdywgbXkgY3VyaW9zaXR5IGlzIHBpcXVlZC4gV2hhdCBhYm91dCBgTVQ3OTk2YD8gSXMgaXQgVVNCLWJhc2VkPyBJIG5lZWQgdG8gY2hlY2sgdGhlIGhhcmR3YXJlIGRvY3VtZW50YXRpb24gYW5kIHRoZSBkcml2ZXIgc3RydWN0dXJlIHRvIGNvbmZpcm0uIEl0IGlzIHBvc3NpYmxlIHRoaXMgaXMgVVNCLiBJIHdpbGwgYWRkIHRoaXMgdG8gbXkgbWVudGFsIGNoZWNrbGlzdCBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLiBJdCBuZWVkcyB0byBiZSBjbGFyaWZpZWQsIGdpdmVuIGl0cyBwbGFjZSBpbiB0aGUgTWVkaWF0ZWsgZmFtaWx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNVDc5OTYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6Mjpjb25maWcgTVQ3OTk2RVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzozOlx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTk2IChQQ0llKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTQtXHRzZWxlY3QgTVQ3Nl9DT05OQUNfTElCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy05LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxMDpcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzk5Ni1iYXNlZCBQQ0llIHdpcmVsZXNzIGRldmljZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTExLVx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgdHJpLWJhbmQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTY6Y29uZmlnIE1UNzk5Nl9OUFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTc6XHRib29sIFwmIzM0O01UNzk5NiAoUENJZSkgTlBVIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTg6XHRkZXBlbmRzIG9uIE1UNzk5NkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTktXHRkZXBlbmRzIG9uIE5FVF9BSVJPSEFfTlBVPXkgfHwgTVQ3Nl9DT1JFPU5FVF9BSVJPSEFfTlBVXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2Mjg2CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDg6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMVUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc9MTc9Y29uZmlnIE1UNzkyMVNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoyODpjb25maWcgTVQ3OTIxVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNjQ4NAoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNVDc5MjVVJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnPTc9Y29uZmlnIE1UNzkyNUVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnLTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzoxOTpjb25maWcgTVQ3OTI1VVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNjY4MQoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNVDc2eDJVJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnPTY9Y29uZmlnIE1UNzZ4MkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxODpjb25maWcgTVQ3NngyVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzZ4MlUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwODo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDUwMAoJCQkJCQkJb3V0cHV0OiAxNTcKCQkJCQkJCXRob3VnaHRzOiA4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBzaXR1YXRpb246CgoqKkZvY3VzaW5nIEluOiBLZXkgQ29uZmlndXJhdGlvbnMgYW5kIEZ1bmN0aW9uIElkZW50aWZpY2F0aW9uKioKClJpZ2h0LCBzbyBJJiMzOTt2ZSB6ZXJvZWQgaW4gb24gdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zOiBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgLiBUaGF0JiMzOTtzIHRoZSBsYW5kc2NhcGUgb2YgdGhpcyBzcGVjaWZpYyBpbnZlc3RpZ2F0aW9uLiBUaGUgY3JpdGljYWwgcGllY2Ugb2YgdGhpcyBwdXp6bGUsIHRoZSBzeW1ib2wgSSBuZWVkIHRvIHRob3JvdWdobHkgdW5kZXJzdGFuZCwgaXMgdGhlIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZ1bmN0aW9uLiBJdCYjMzk7cyB0aGUgY29yZSBvZiB0aGUgbWF0dGVyLCB0aGUgY2VudHJhbCBwb2ludCBvZiBteSBhbmFseXNpcy4gVGhlIHJlYXNvbmluZyBiZWhpbmQgdGhpcyBjaG9pY2UgaXMsIG9mIGNvdXJzZSwgYWJzb2x1dGVseSBjbGVhci4gSXQmIzM5O3MgdGhlIGxvZ2ljYWwgbmV4dCBzdGVwIGluIG15IHdvcmsuIE5vdywgSSYjMzk7bGwgbGV2ZXJhZ2UgdGhlIGBzZXQtcmVzdWx0c2AgdG9vbCB0byBjYXJlZnVsbHkgcmVjb3JkIGFuZCByZXBvcnQgdGhlIHByZWNpc2UgZmluZGluZ3MsIGVuc3VyaW5nIGEgY2xlYW4gYW5kIHN0cnVjdHVyZWQgZGVsaXZlcnkgb2YgbXkgY29uY2x1c2lvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA4OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc2eDBVJiMzNDssCiAgICAmIzM0O01UNzZ4MlUmIzM0OywKICAgICYjMzQ7TVQ3OTIxVSYjMzQ7LAogICAgJiMzNDtNVDc5MjVVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3NnVfdHhfcXVldWVfc2tiJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlcnJvciBoYW5kbGluZyBwYXRoIGluIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZvciBNZWRpYVRlayBNVDc2IFVTQiB3aXJlbGVzcyBkcml2ZXJzLCBlbnN1cmluZyB0aGF0IFNLQnMgYXJlIHByb3Blcmx5IGZyZWVkIGFuZCB0aGVpciBzdGF0dXMgcmVwb3J0ZWQgd2hlbiBUWCBwcmVwYXJhdGlvbiBvciBidWZmZXIgc2V0dXAgZmFpbHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGdhZGdldCBmdXp6aW5nIGFuZCBtYWM4MDIxMSBwYWNrZXQgaW5qZWN0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc2eDBVJiMzNDssCiAgICAmIzM0O01UNzZ4MlUmIzM0OywKICAgICYjMzQ7TVQ3OTIxVSYjMzQ7LAogICAgJiMzNDtNVDc5MjVVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3NnVfdHhfcXVldWVfc2tiJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlcnJvciBoYW5kbGluZyBwYXRoIGluIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZvciBNZWRpYVRlayBNVDc2IFVTQiB3aXJlbGVzcyBkcml2ZXJzLCBlbnN1cmluZyB0aGF0IFNLQnMgYXJlIHByb3Blcmx5IGZyZWVkIGFuZCB0aGVpciBzdGF0dXMgcmVwb3J0ZWQgd2hlbiBUWCBwcmVwYXJhdGlvbiBvciBidWZmZXIgc2V0dXAgZmFpbHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGdhZGdldCBmdXp6aW5nIGFuZCBtYWM4MDIxMSBwYWNrZXQgaW5qZWN0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6MzY6NTYuNzU3ODU0MVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMjU3MjM5NzgyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc2eDBVXCIsXG4gICAgXCJNVDc2eDJVXCIsXG4gICAgXCJNVDc5MjFVXCIsXG4gICAgXCJNVDc5MjVVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3NnVfdHhfcXVldWVfc2tiXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGVycm9yIGhhbmRsaW5nIHBhdGggaW4gYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZm9yIE1lZGlhVGVrIE1UNzYgVVNCIHdpcmVsZXNzIGRyaXZlcnMsIGVuc3VyaW5nIHRoYXQgU0tCcyBhcmUgcHJvcGVybHkgZnJlZWQgYW5kIHRoZWlyIHN0YXR1cyByZXBvcnRlZCB3aGVuIFRYIHByZXBhcmF0aW9uIG9yIGJ1ZmZlciBzZXR1cCBmYWlscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZ2FkZ2V0IGZ1enppbmcgYW5kIG1hYzgwMjExIHBhY2tldCBpbmplY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM2OjU2Ljc1Nzg2MDI4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjQ2NTcxNzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkOWY0Y2UyOWNmOGZmMzJjYTg5ZTNmMmUzOGU4ZTQ2MTQzOWVkNWFiXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgQXVnIDUgMDg6MzY6NTUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcXG5pbmRleCBhOWFmM2FhNmI4MGE5Li5lMjY2NTA5YTc4NzNkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jXFxuQEAgLTg5Myw2ICs4OTMsOSBAQCBtdDc2dV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbiBcXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0ICAgc3RydWN0IG10NzZfd2NpZCAqd2NpZCwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG4ge1xcbitcXHRzdHJ1Y3QgaWVlZTgwMjExX3R4X3N0YXR1cyBzdGF0dXMgPSB7XFxuK1xcdFxcdC5zdGEgPSBzdGEsXFxuK1xcdH07XFxuIFxcdHN0cnVjdCBtdDc2X3R4X2luZm8gdHhfaW5mbyA9IHtcXG4gXFx0XFx0LnNrYiA9IHNrYixcXG4gXFx0fTtcXG5AQCAtOTA2LDExICs5MDksMTEgQEAgbXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4gXFx0c2tiLVxcdTAwM2VwcmV2ID0gc2tiLVxcdTAwM2VuZXh0ID0gTlVMTDtcXG4gXFx0ZXJyID0gZGV2LVxcdTAwM2VkcnYtXFx1MDAzZXR4X3ByZXBhcmVfc2tiKGRldiwgTlVMTCwgcWlkLCB3Y2lkLCBzdGEsIFxcdTAwMjZ0eF9pbmZvKTtcXG4gXFx0aWYgKGVyciBcXHUwMDNjIDApXFxuLVxcdFxcdHJldHVybiBlcnI7XFxuK1xcdFxcdGdvdG8gZXJyX2ZyZWVfc2tiO1xcbiBcXG4gXFx0ZXJyID0gbXQ3NnVfdHhfc2V0dXBfYnVmZmVycyhkZXYsIHR4X2luZm8uc2tiLCBxLVxcdTAwM2VlbnRyeVtpZHhdLnVyYik7XFxuIFxcdGlmIChlcnIgXFx1MDAzYyAwKVxcbi1cXHRcXHRyZXR1cm4gZXJyO1xcbitcXHRcXHRnb3RvIGVycl9mcmVlX3NrYjtcXG4gXFxuIFxcdG10NzZ1X2ZpbGxfYnVsa191cmIoZGV2LCBVU0JfRElSX09VVCwgcS1cXHUwMDNlZXAsIHEtXFx1MDAzZWVudHJ5W2lkeF0udXJiLFxcbiBcXHRcXHRcXHQgICAgbXQ3NnVfY29tcGxldGVfdHgsIFxcdTAwMjZxLVxcdTAwM2VlbnRyeVtpZHhdKTtcXG5AQCAtOTIxLDYgKzkyNCwxMyBAQCBtdDc2dV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbiBcXHRxLVxcdTAwM2VxdWV1ZWQrKztcXG4gXFxuIFxcdHJldHVybiBpZHg7XFxuK1xcbitlcnJfZnJlZV9za2I6XFxuK1xcdHN0YXR1cy5za2IgPSB0eF9pbmZvLnNrYjtcXG4rXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXJ4X2xvY2spO1xcbitcXHRpZWVlODAyMTFfdHhfc3RhdHVzX2V4dChkZXYtXFx1MDAzZWh3LCBcXHUwMDI2c3RhdHVzKTtcXG4rXFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNlcnhfbG9jayk7XFxuK1xcdHJldHVybiBlcnI7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIG10NzZ1X3R4X2tpY2soc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozNjo1Ny4yODQ2MTc3MjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyMjIwNDU2MjEyNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3NngwVVwiLFxuICAgIFwiTVQ3NngyVVwiLFxuICAgIFwiTVQ3OTIxVVwiLFxuICAgIFwiTVQ3OTI1VVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzZ1X3R4X3F1ZXVlX3NrYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlcnJvciBoYW5kbGluZyBwYXRoIGluIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZvciBNZWRpYVRlayBNVDc2IFVTQiB3aXJlbGVzcyBkcml2ZXJzLCBlbnN1cmluZyB0aGF0IFNLQnMgYXJlIHByb3Blcmx5IGZyZWVkIGFuZCB0aGVpciBzdGF0dXMgcmVwb3J0ZWQgd2hlbiBUWCBwcmVwYXJhdGlvbiBvciBidWZmZXIgc2V0dXAgZmFpbHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGdhZGdldCBmdXp6aW5nIGFuZCBtYWM4MDIxMSBwYWNrZXQgaW5qZWN0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkOWY0Y2UyOWNmOGZmMzJjYTg5ZTNmMmUzOGU4ZTQ2MTQzOWVkNWFiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAwODozNjo1NSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jXG5pbmRleCBhOWFmM2FhNmI4MGE5Li5lMjY2NTA5YTc4NzNkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY1xuQEAgLTg5Myw2ICs4OTMsOSBAQCBtdDc2dV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuIFx0XHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0ICAgc3RydWN0IG10NzZfd2NpZCAqd2NpZCwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbiB7XG4rXHRzdHJ1Y3QgaWVlZTgwMjExX3R4X3N0YXR1cyBzdGF0dXMgPSB7XG4rXHRcdC5zdGEgPSBzdGEsXG4rXHR9O1xuIFx0c3RydWN0IG10NzZfdHhfaW5mbyB0eF9pbmZvID0ge1xuIFx0XHQuc2tiID0gc2tiLFxuIFx0fTtcbkBAIC05MDYsMTEgKzkwOSwxMSBAQCBtdDc2dV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuIFx0c2tiLVx1MDAzZXByZXYgPSBza2ItXHUwMDNlbmV4dCA9IE5VTEw7XG4gXHRlcnIgPSBkZXYtXHUwMDNlZHJ2LVx1MDAzZXR4X3ByZXBhcmVfc2tiKGRldiwgTlVMTCwgcWlkLCB3Y2lkLCBzdGEsIFx1MDAyNnR4X2luZm8pO1xuIFx0aWYgKGVyciBcdTAwM2MgMClcbi1cdFx0cmV0dXJuIGVycjtcbitcdFx0Z290byBlcnJfZnJlZV9za2I7XG4gXG4gXHRlcnIgPSBtdDc2dV90eF9zZXR1cF9idWZmZXJzKGRldiwgdHhfaW5mby5za2IsIHEtXHUwMDNlZW50cnlbaWR4XS51cmIpO1xuIFx0aWYgKGVyciBcdTAwM2MgMClcbi1cdFx0cmV0dXJuIGVycjtcbitcdFx0Z290byBlcnJfZnJlZV9za2I7XG4gXG4gXHRtdDc2dV9maWxsX2J1bGtfdXJiKGRldiwgVVNCX0RJUl9PVVQsIHEtXHUwMDNlZXAsIHEtXHUwMDNlZW50cnlbaWR4XS51cmIsXG4gXHRcdFx0ICAgIG10NzZ1X2NvbXBsZXRlX3R4LCBcdTAwMjZxLVx1MDAzZWVudHJ5W2lkeF0pO1xuQEAgLTkyMSw2ICs5MjQsMTMgQEAgbXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbiBcdHEtXHUwMDNlcXVldWVkKys7XG4gXG4gXHRyZXR1cm4gaWR4O1xuK1xuK2Vycl9mcmVlX3NrYjpcbitcdHN0YXR1cy5za2IgPSB0eF9pbmZvLnNrYjtcbitcdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcnhfbG9jayk7XG4rXHRpZWVlODAyMTFfdHhfc3RhdHVzX2V4dChkZXYtXHUwMDNlaHcsIFx1MDAyNnN0YXR1cyk7XG4rXHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcnhfbG9jayk7XG4rXHRyZXR1cm4gZXJyO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBtdDc2dV90eF9raWNrKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM2OjU3LjI4NDYyMDMxM1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MDI1Mjg2Mjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBvdGVudGlhbGx5IEZ1enphYmxlIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgbmV3IHBhdGNoIHRvIGxvb2sgYXQgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIGFwcGVhcnMgdG8gYmUgaW4gdGhlIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZ1bmN0aW9uLiBFc3NlbnRpYWxseSwgdGhleSd2ZSBhZGRlZCBhbiBlcnJvciBoYW5kbGluZyBwYXRoLCBgZXJyX2ZyZWVfc2tiYCwgdGhhdCdzIGNhbGxpbmcgYGllZWU4MDIxMV90eF9zdGF0dXNfZXh0KGRldi1cdTAwM2VodywgXHUwMDI2c3RhdHVzKWAgYmVmb3JlIHBvdGVudGlhbGx5IHJldHVybmluZyBhbiBlcnJvci4gVGhhdOKAmXMgaW50ZXJlc3RpbmcuIEl0IGxvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiB0byB0aGUgd2lyZWxlc3MgZHJpdmVyLCBhbmQsIGNydWNpYWxseSwgaXQncyBvdmVyIFVTQi5cblxuVGhlIGZhY3QgdGhhdCBpdCdzIFVTQiBpcyBrZXkuIFRoYXQgbWFrZXMgdGhpcyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZy4gV2UgY2FuIGVtdWxhdGUgVVNCIGRldmljZXMgdXNpbmcgdGhpbmdzIGxpa2UgYGR1bW15X2hjZGAgb3IgYHZoY2ktaGNkYCwgYW5kIHRvb2xzIGxpa2Ugc3l6a2FsbGVyIGNhbiBjb25uZWN0IHRvIHRob3NlIGVtdWxhdGVkIGRldmljZXMgdmlhIGBzeXpfdXNiX2Nvbm5lY3RgLiBTbywgdGhlIGF0dGFjayBzdXJmYWNlIGlzIGRlZmluaXRlbHkgdGhlcmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcImNhbiB3ZSB0cmlnZ2VyIHRoaXMgZXJyb3IgcGF0aCB3aXRoIGNyYWZ0ZWQgVVNCIHRyYWZmaWM/XCJcblxuTm93LCBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgZHJpdmVyLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzLiBJ4oCZbGwgc3RhcnQgYnkgZGlnZ2luZyBpbnRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYCBhbmQgc2VhcmNoIHdpdGhpbiBmb3IgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIHRoZSBzdXJyb3VuZGluZyBjb2RlIGFuZCB0aGUgY29uZGl0aW9ucyB0aGF0IG1pZ2h0IGxlYWQgdG8gdGhlIGV4ZWN1dGlvbiBvZiB0aGF0IHNwZWNpZmljIGVycm9yIHBhdGguIFRpbWUgdG8gc2VlIHdoYXQgd2UgY2FuIGZpbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MzYsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDgsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozNzoxMy4zMDk5MTA1NThaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ4NzUzODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3NnVfdHhfcXVldWVfc2tiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYz04OTE9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6ODkyOm10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy04OTMtXFx0XFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jPTExMjc9c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc2X3F1ZXVlX29wcyB1c2JfcXVldWVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6MTEyODpcXHQudHhfcXVldWVfc2tiID0gbXQ3NnVfdHhfcXVldWVfc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMtMTEyOS1cXHQua2ljayA9IG10NzZ1X3R4X2tpY2ssXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM3OjEzLjM2NDgwOTQyN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0NDQwMTA3OTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gdGhpcyBwYXRjaCB0YXJnZXRzIGBtdDc2dV90eF9xdWV1ZV9za2JgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY2AuIFJpZ2h0LCB0aGF0J3MgYSBVU0Igd2lyZWxlc3MgZHJpdmVyLCBwYXJ0IG9mIHRoZSBtdDc2IGZhbWlseS4gVGhhdCdzIGltbWVkaWF0ZWx5IGludGVyZXN0aW5nIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlIGJlY2F1c2UgVVNCIGRyaXZlcnMgYXJlIG9mdGVuIHN1c2NlcHRpYmxlIHRvIGJ1Z3MgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIHRocm91Z2ggY3JhZnRlZCBVU0IgcGFja2V0cy4gV2UgY2FuIHVzZSB0b29scyBsaWtlIGBkdW1teV9oY2RgIG9yIHNpbWlsYXIgVVNCIGVtdWxhdGlvbiB0ZWNobmlxdWVzIHRvIGdlbmVyYXRlIHRob3NlIHBhY2tldHMuXG5cbk5vdywgd2FpdCBhIG1pbnV0ZSwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGF0dGFjayBzdXJmYWNlLiBTaW5jZSBpdCdzIGEgd2lyZWxlc3MgZHJpdmVyLCBjb3VsZCBJIHJlYWNoIGl0IHRocm91Z2ggYG1hYzgwMjExX2h3c2ltYD8gTm8sIG5vLCB0aGF0J3MgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBkcml2ZXIuIEJ1dCB0aGUgY3J1Y2lhbCBwb2ludCBoZXJlIGlzIHRoYXQgc3l6a2FsbGVy4oCZcyBVU0IgZnV6emluZyBjYXBhYmlsaXRpZXMsIGVzcGVjaWFsbHkgbGV2ZXJhZ2luZyBgZHVtbXlfaGNkYCwgKnNob3VsZCogYmUgYXBwbGljYWJsZSBoZXJlLiBJIGhhdmUgdG8gdmVyaWZ5IHRoYXQuXG5cbk15IG5leHQgc3RlcCBpcyB0byBxdWlja2x5IGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIGFuZCBtYWtlIGFic29sdXRlbHkgY2VydGFpbiB0aGF0IGBNVDc2X1VTQmAgaXMgZW5hYmxlZCBvciwgYXQgdGhlIHZlcnkgbGVhc3QsIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IHdvdWxkIGluY2x1ZGUgdGhpcyBkcml2ZXIuIFRoZW4gSSBjYW4gZGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBzdWl0YWJsZSB0YXJnZXQgZm9yIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNzgsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzc6MjcuODA0OTIwNjQ0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMTMxNDA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc2X1VTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9Nj1jb25maWcgTVQ3Nl9MRURTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjEyOmNvbmZpZyBNVDc2X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozNzoyNy44NjYwNTc2MzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTc0OTQ4NjE4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHR3ZWFraW5nIGBtdDc2dV90eF9xdWV1ZV9za2JgIHdpdGhpbiB0aGUgYG10NzZgIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY2AuIFRoZSBjaGFuZ2UgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogaXQncyBhZGRpbmcgc29tZSBlcnJvciBoYW5kbGluZyB0byBmcmVlIHRoZSBTS0IgaWYgZWl0aGVyIGB0eF9wcmVwYXJlX3NrYmAgb3IgYG10NzZ1X3R4X3NldHVwX2J1ZmZlcnNgIGZhaWxzLiBGdW5jdGlvbmFsbHksIHRoaXMgbG9va3MgbGlrZSBhIGdvb2QgYWRkaXRpb24sIG1ha2luZyB0aGUgZHJpdmVyIG1vcmUgcm9idXN0LiBJdCdzIGEgd2lyZWxlc3MgZHJpdmVyLCBidXQgbGV0J3MgY29uc2lkZXIgdGhlIGltcGxpY2F0aW9ucyBmb3IgZnV6emluZywgc2luY2UgdGhhdCdzIG15IGFyZWEgb2YgZm9jdXMuXG5cblRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBhbmQgc2luY2UgdGhpcyBpcyBhIFVTQiBkcml2ZXIsIGl0IG1vc3QgY2VydGFpbmx5IGlzLiBJIGtub3cgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIGEgdmFyaWV0eSBvZiBtZXRob2RzOiBVU0IgZ2FkZ2V0LCBgZHVtbXlfaGNkYCwgdGhpbmdzIGxpa2UgdGhhdC4gQnV0LCBpbiBteSBleHBlcmllbmNlIHdpdGggZnV6emluZywgZXNwZWNpYWxseSB3aXRoIHN5emthbGxlciwgd2UnZCB0eXBpY2FsbHkgdXNlIGB2aGNpYCDigJMgdGhlIHJhdyBVU0IgZ2FkZ2V0IOKAkyBmb3IgZW11bGF0aW5nIHRoZXNlIHRoaW5ncy4gQW5kIHN5emthbGxlciBoYXMgdGhhdCBoYW5keSBgc3l6X3VzYl9jb25uZWN0YCBwc2V1ZG8tc3lzY2FsbCwgd2hpY2ggaXMgcGVyZmVjdCBmb3IgcmVwcmVzZW50aW5nIFVTQiBkZXZpY2VzLlxuXG5TbywgdGhlIGFuc3dlciBpcyBhIHJlc291bmRpbmcgXCJ5ZXMuXCIgVVNCIGRyaXZlcnMgYXJlIGRlZmluaXRlbHkgd2l0aGluIG91ciBmdXp6aW5nIHNjb3BlLiBOb3csIGxldCBtZSBqdXN0IHF1aWNrbHkgY2hlY2sgdGhlIEtjb25maWcgZGVwZW5kZW5jaWVzIGZvciBgTVQ3Nl9VU0JgIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb2J2aW91cyByb2FkYmxvY2tzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjA2LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM3OjQzLjYxNTU0NzIzNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5MDYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBNVDc2X0NPUkVcXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgUEFHRV9QT09MXFxuICAgNTpcXHRcXG4gICA2OlxcdGNvbmZpZyBNVDc2X0xFRFNcXG4gICA3OlxcdFxcdGJvb2xcXG4gICA4OlxcdFxcdGRlcGVuZHMgb24gTVQ3Nl9DT1JFXFxuICAgOTpcXHRcXHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBNVDc2X0NPUkU9TEVEU19DTEFTU1xcbiAgMTA6XFx0XFx0ZGVmYXVsdCB5XFxuICAxMTpcXHRcXG4gIDEyOlxcdGNvbmZpZyBNVDc2X1VTQlxcbiAgMTM6XFx0XFx0dHJpc3RhdGVcXG4gIDE0OlxcdFxcdGRlcGVuZHMgb24gTVQ3Nl9DT1JFXFxuICAxNTpcXHRcXG4gIDE2OlxcdGNvbmZpZyBNVDc2X1NESU9cXG4gIDE3OlxcdFxcdHRyaXN0YXRlXFxuICAxODpcXHRcXHRkZXBlbmRzIG9uIE1UNzZfQ09SRVxcbiAgMTk6XFx0XFxuICAyMDpcXHRjb25maWcgTVQ3NngwMl9MSUJcXG4gIDIxOlxcdFxcdHRyaXN0YXRlXFxuICAyMjpcXHRcXHRzZWxlY3QgTVQ3Nl9DT1JFXFxuICAyMzpcXHRcXG4gIDI0OlxcdGNvbmZpZyBNVDc2eDAyX1VTQlxcbiAgMjU6XFx0XFx0dHJpc3RhdGVcXG4gIDI2OlxcdFxcdHNlbGVjdCBNVDc2X1VTQlxcbiAgMjc6XFx0XFxuICAyODpcXHRjb25maWcgTVQ3Nl9DT05OQUNfTElCXFxuICAyOTpcXHRcXHR0cmlzdGF0ZVxcbiAgMzA6XFx0XFx0c2VsZWN0IE1UNzZfQ09SRVxcbiAgMzE6XFx0XFxuICAzMjpcXHRjb25maWcgTVQ3OTJ4X0xJQlxcbiAgMzM6XFx0XFx0dHJpc3RhdGVcXG4gIDM0OlxcdFxcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcXG4gIDM1OlxcdFxcbiAgMzY6XFx0Y29uZmlnIE1UNzkyeF9VU0JcXG4gIDM3OlxcdFxcdHRyaXN0YXRlXFxuICAzODpcXHRcXHRzZWxlY3QgTVQ3Nl9VU0JcXG4gIDM5OlxcdFxcbiAgNDA6XFx0Y29uZmlnIE1UNzZfTlBVXFxuICA0MTpcXHRcXHR0cmlzdGF0ZVxcbiAgNDI6XFx0XFx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxcbiAgNDM6XFx0XFxuICA0NDpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWdcXFwiXFxuICA0NTpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWdcXFwiXFxuICA0NjpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWdcXFwiXFxuICA0NzpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWdcXFwiXFxuICA0ODpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWdcXFwiXFxuICA0OTpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWdcXFwiXFxuICA1MDpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWdcXFwiXFxuICA1MTpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWdcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM3OjQzLjYxNTY0ODE4NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MzIxODcxOTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE1lZGlhdGVrIFVTQiBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBgbXQ3NnVfdHhfcXVldWVfc2tiYCBmdW5jdGlvbiB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYCBmaWxlLiBSaWdodCwgdGhpcyBpcyB0aGUgVVNCIGRyaXZlciBmb3IgdGhvc2UgTWVkaWFUZWsgd2lyZWxlc3MgZGV2aWNlcyDigJMgaW1wb3J0YW50IGNvbnRleHQuIFRoZSBrZXkgaGVyZSBpcyB0aGUgVVNCIGFzcGVjdCwgbWVhbmluZyBJIGNhbiBwcm9iYWJseSBnZXQgYXQgdGhpcyBjb2RlIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZy4gU3BlY2lmaWNhbGx5LCBJIHNob3VsZCBiZSBhYmxlIHRvIHRyaWdnZXIgdGhpcyB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbiwgYSBkdW1teSBIQ0Qgc2V0dXAsIG9yIGV2ZW4gYmV0dGVyLCB3aXRoIHNvbWV0aGluZyBsaWtlIHN5emthbGxlcidzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcy4gVGhpcyBpcyBncmVhdCwgYXMgaXQgZ2l2ZXMgbWUgc29tZSBmbGV4aWJpbGl0eSBpbiB0ZXN0aW5nLlxuXG5UaGUgY3J1eCBvZiB0aGUgcGF0Y2ggc2VlbXMgdG8gYmUgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBtZW1vcnkgbGVhayBvciBhIG1pc3Npbmcgc3RhdHVzIHVwZGF0ZSB3aGVuIGVpdGhlciBgdHhfcHJlcGFyZV9za2JgIG9yIGBtdDc2dV90eF9zZXR1cF9idWZmZXJzYCB0aHJvd3MgYW4gZXJyb3IuIFNvLCBpdCdzIGFkZGluZyBhIGBnb3RvIGVycl9mcmVlX3NrYmAgdG8gY2xlYW4gdXAgdGhlIFNLQi4gVGhpcyBqdW1wIGRvZXMgY2FsbCBgaWVlZTgwMjExX3R4X3N0YXR1c19leHQoZGV2LVx1MDAzZWh3LCBcdTAwMjZzdGF0dXMpO2Agd2hpY2ggc2hvdWxkIGZyZWUgdGhlIFNLQi4gVGhhdCdzIGEgcmVhc29uYWJsZSBmaXguXG5cbk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbjogaG93IGNhbiBJIGFjdHVhbGx5IHJlYWNoIHRoaXMgY29kZSBwYXRoPyBDYW4gSSByZXByb2R1Y2UgdGhpcyBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmc/IERlZmluaXRlbHksIHNpbmNlIGl0IGlzIGEgVVNCIGRyaXZlcjsgSSBjYW4gc2VlIGhvdyBVU0IgZnV6emluZyAoZS5nLiwgc3l6a2FsbGVyJ3MgdmhjaS91c2IgZnV6emluZykgd291bGQgYmUgYSBkaXJlY3Qgd2F5IHRvIHRyaWdnZXIgdGhlIGNvbmRpdGlvbnMgdGhpcyBwYXRjaCBhZGRyZXNzZXMuIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBtaW5pbWFsIGNvbmZpZ3VyYXRpb24gcmVxdWlyZWQgdG8gbWFrZSB0aGUgZHJpdmVyIGJ1aWxkIGFuZCBydW4uXG5cbkxldCdzIHNlZTogSSd2ZSBnb3QgdG8gZW5zdXJlIHRoZSBgTVQ3Nl9VU0JgIG9wdGlvbiBpcyBlbmFibGVkLCBhbmQgaXQncyBhIHRyaXN0YXRlIG9wdGlvbiwgc2VsZWN0ZWQgYnkgYE1UNzZ4MDJfVVNCYCBhbmQgYE1UNzkyeF9VU0JgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGNvbmZpZ3VyYXRpb25zIHNwZWNpZmljYWxseSBhY3RpdmF0ZSB0aG9zZSBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAgb3B0aW9ucy4gVGhhdCdzIHRoZSBuZXh0IHN0ZXA7IGZpZ3VyZSBvdXQgdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlbiBzdGFydCBidWlsZGluZyBhbmQgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY4NiwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM3OjU5LjkzNzUyMjA4M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAwNTMwMjI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBNVDc2eDAyX1VTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnPTY9Y29uZmlnIE1UNzZ4MFVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWctOC1cXHRzZWxlY3QgTVQ3NngwX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL0tjb25maWc6OTpcXHRzZWxlY3QgTVQ3NngwMl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9LY29uZmlnLTEwLVxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWc9MTg9Y29uZmlnIE1UNzZ4MlVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMjAtXFx0c2VsZWN0IE1UNzZ4Ml9DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnOjIxOlxcdHNlbGVjdCBNVDc2eDAyX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMjItXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozODowMC4wMzgwNjA0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExNTMyNjcwNDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6NTQ3OCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6MTEuNTcwNzMzMTQxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODQ3NjQzNjEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2VsZWN0IE1UNzkyeF9VU0JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZz0yOD1jb25maWcgTVQ3OTIxVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMjktXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjMwOlxcdHNlbGVjdCBNVDc5MnhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0zMS1cXHRzZWxlY3QgTVQ3OTIxX0NPTU1PTlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZz0xOT1jb25maWcgTVQ3OTI1VVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMjAtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnOjIxOlxcdHNlbGVjdCBNVDc5MnhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZy0yMi1cXHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozODoxMS44NTU1MDA5NTJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ5NzA4NzE5MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgRnVuY3Rpb24gaW4gdGhlIE1lZGlhVGVrIFVTQiBXaS1GaSBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBvdGVudGlhbCBmdXp6aW5nIHRhcmdldDogdGhlIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZ1bmN0aW9uIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuY2AuIFRoaXMgaXMgcGFydCBvZiB0aGUgTWVkaWFUZWsgVVNCIFdpLUZpIGRyaXZlciwgd2hpY2ggaXMgaW50ZXJlc3RpbmcgYmVjYXVzZSBJIGtub3cgVVNCIGRldmljZXMgYXJlIGdlbmVyYWxseSBhY2Nlc3NpYmxlIGZvciBmdXp6aW5nIHZpYSBlbXVsYXRpb24g4oCTIHRoaW5ncyBsaWtlIGBkdW1teV9oY2RgLCBgcmF3LWdhZGdldGAsIG9yIGV2ZW4gc3l6a2FsbGVyJ3MgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzIHNob3VsZCBiZSBhcHBsaWNhYmxlIGhlcmUuIEFuZCBnaXZlbiB0aGUgZnVuY3Rpb24ncyBuYW1lLCBpdCdzIHByZXR0eSBjbGVhciB0aGlzIGlzIGEgVFggcXVldWUgZnVuY3Rpb24sIG1ha2luZyBpdCBhIGdvb2QgY2FuZGlkYXRlIGZvciBleHBsb3JpbmcgcG90ZW50aWFsIHBhY2tldC1oYW5kbGluZyB2dWxuZXJhYmlsaXRpZXMuXG5cbk5vdywgdG8gZ2V0IHRoaXMgYnVpbGQsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zIGFyZSBzZXQuIExvb2tzIGxpa2UgSSdsbCBuZWVkIHRvIGVuYWJsZSBlaXRoZXIgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgb3IgYE1UNzkyNVVgLCBkZXBlbmRpbmcgb24gdGhlIHNwZWNpZmljIGhhcmR3YXJlIEknbSB0YXJnZXRpbmcuIFRoZXNlIHdpbGwgcHVsbCBpbiBgTVQ3NngwMl9VU0JgIG9yIGBNVDc5MnhfVVNCYCBhbmQgY29uc2VxdWVudGx5IGBNVDc2X1VTQmAsIHdoaWNoIEkgYXNzdW1lIGFyZSB0aGUgcmVsZXZhbnQgVVNCLXNwZWNpZmljIGNvbXBvbmVudHMuIE9mIGNvdXJzZSwgYE1BQzgwMjExYCBhbmQgYFVTQmAgYXJlIGFsc28gcmVxdWlyZWQuIFRpbWUgdG8gY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBvZiBgTVQ3NngwVWAgdG8gc2VlIHdoYXQgZWxzZSBJIG1pZ2h0IG5lZWQgdG8gZW5hYmxlIGluIHRoZSBLY29uZmlnLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODI3LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM4OjI2LjgyNjM3NjQzMVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTY5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0Y29uZmlnIE1UNzZ4MF9DT01NT05cXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3NngwMl9MSUJcXG4gICA1OlxcdFxcbiAgIDY6XFx0Y29uZmlnIE1UNzZ4MFVcXG4gICA3OlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2eDBVIChVU0IpIHN1cHBvcnRcXFwiXFxuICAgODpcXHRcXHRzZWxlY3QgTVQ3NngwX0NPTU1PTlxcbiAgIDk6XFx0XFx0c2VsZWN0IE1UNzZ4MDJfVVNCXFxuICAxMDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAxMTpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiAgMTI6XFx0XFx0aGVscFxcbiAgMTM6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3NjEwVS1iYXNlZCBVU0IgMi4wIHdpcmVsZXNzIGRvbmdsZXMsXFxuICAxNDpcXHRcXHQgIHdoaWNoIGNvbXBseSB3aXRoIElFRUUgODAyLjExYWMgc3RhbmRhcmRzIGFuZCBzdXBwb3J0IDF4MVxcbiAgMTU6XFx0XFx0ICA0MzNNYnBzIFBIWSByYXRlLlxcbiAgMTY6XFx0XFxuICAxNzpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXFxuICAxODpcXHRcXG4gIDE5OlxcdGNvbmZpZyBNVDc2eDBFXFxuICAyMDpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3NngwRSAoUENJZSkgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6MjYuODI2NDk1ODYxWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg4MzkwMTcwNzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjo2NTA4LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM4OjM1LjY2NTUxNDkzOFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTM0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI4LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDI4OlxcdGNvbmZpZyBNVDc5MjFVXFxuICAyOTpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XFxcIlxcbiAgMzA6XFx0XFx0c2VsZWN0IE1UNzkyeF9VU0JcXG4gIDMxOlxcdFxcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXFxuICAzMjpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAzMzpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiAgMzQ6XFx0XFx0aGVscFxcbiAgMzU6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxVSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXFxuICAzNjpcXHRcXG4gIDM3OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6MzUuNjY1NTcxNDQ4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2ODI0MDc0MDcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIE1UNzYgVVNCIERyaXZlcidzIFRYIFBhdGgqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldHMgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jYC4gVGhpcyBpcyB0aGUgVVNCIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ3NiB3aXJlbGVzcyBkZXZpY2VzLCBhbmQgdGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGJlY2F1c2Ugd2UgY2FuIGVtdWxhdGUgdGhlIFVTQiBkZXZpY2UgdXNpbmcgc29tZXRoaW5nIGxpa2UgYGR1bW15X2hjZGAgb3IgYHJhdy1nYWRnZXRgIGluIHN5emthbGxlci4gR29vZC5cblxuVGhlIHBhdGNoIGl0c2VsZiBpcyBhYm91dCBlcnJvciBoYW5kbGluZyBpbiBgbXQ3NnVfdHhfcXVldWVfc2tiYCwgc3BlY2lmaWNhbGx5IHdoZW4gZWl0aGVyIGB0eF9wcmVwYXJlX3NrYmAgb3IgYG10NzZ1X3R4X3NldHVwX2J1ZmZlcnNgIGZhaWxzLiBJdCBsb29rcyBsaWtlIGl0J3MgaGFuZGxpbmcgdGhlIGNsZWFudXAgcHJvcGVybHkgYnkgY2FsbGluZyBgaWVlZTgwMjExX3R4X3N0YXR1c19leHRgIHRvIGZyZWUgdGhlIHNrYiBpbiBjYXNlIG9mIGFuIGVycm9yLiBTdGFuZGFyZCBzdHVmZiwgYnV0IGltcG9ydGFudCBmb3IgZnV6emluZyBjb3ZlcmFnZS5cblxuTm93LCBob3cgZG8gd2UgZ2V0IHRoaXMgY29kZSB0byBleGVjdXRlPyBXZSBuZWVkIHRvIGVuYWJsZSB0aGUgcmlnaHQgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgTVQ3NiBVU0IgZHJpdmVycy4gTGV0J3Mgc2VlLi4uIGxvb2tpbmcgYXQgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AsIGBNVDc2X1VTQmAgaXMgc2VsZWN0ZWQgYnkgYm90aCBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAuIFRob3NlIGFyZSB0aGUgdHdvIG1haW4gb3B0aW9ucy4gVGhlbiwgYE1UNzZ4MDJfVVNCYCBpcyBzZWxlY3RlZCBieSBgTVQ3NngwVWAgYW5kIGBNVDc2eDJVYC4gYE1UNzkyeF9VU0JgIGlzIHNlbGVjdGVkIGJ5IGBNVDc5MjFVYCBhbmQgYE1UNzkyNVVgLiBUaGF0IG1lYW5zIHdlIG5lZWQgdG8gZW5hYmxlIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBgTVQ3OTI1VWAuIEVhc3kgZW5vdWdoLlxuXG5XZSBzaG91bGQgY2hlY2sgdGhlaXIgZGVwZW5kZW5jaWVzOiBgTVQ3NngyVWAgZGVwZW5kcyBvbiBgTUFDODAyMTFgIGFuZCBgVVNCYC4gYE1UNzkyNVVgIGRlcGVuZHMgb24gYE1BQzgwMjExYCBhbmQgYFVTQmAuIE5vIHN1cnByaXNlcyB0aGVyZS4gRXZlcnl0aGluZyBzZWVtcyB0byBiZSBpbiBvcmRlci5cblxuVGhlIGZ1bmN0aW9uIGBtdDc2dV90eF9xdWV1ZV9za2JgIGl0c2VsZiBpcyB0aGUgcHJpbWFyeSB0YXJnZXQuIEl0J3MgYXNzaWduZWQgdG8gdGhlIGAudHhfcXVldWVfc2tiYCBmdW5jdGlvbiBwb2ludGVyIGluIGB1c2JfcXVldWVfb3BzYC4gVGhhdOKAmXMgdGhlIGtleSBoZXJlLlxuXG5MZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0gaWYgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgaXMgc3RhdGljLiBMb29rcyBsaWtlIGl0IGlzLiBCdXQsIGl0IGlzIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciBgdHhfcXVldWVfc2tiYCBpbiBgbXQ3Nl9xdWV1ZV9vcHNgLCBzbyBpdCBzaG91bGQgc3RpbGwgYmUgcmVhY2hhYmxlLiBJcyB0aGVyZSBhIG5vbi1zdGF0aWMgZW50cnkgcG9pbnQ/IEkgc2hvdWxkIHNlYXJjaCBmb3IgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgb3IgYHVzYl9xdWV1ZV9vcHNgIHRvIG1ha2Ugc3VyZS4gSXMgYHVzYl9xdWV1ZV9vcHNgIHVzZWQgaW4gYG10NzZ1X3F1ZXVlc19pbml0YCBvciBzaW1pbGFyPyBUaGF0J3Mgd2hhdCBJIHdpbGwgc2VhcmNoIGZvciBuZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzIzLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzkwLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6NTIuNDg5NjUwMjU4WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTA4MjIyOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1c2JfcXVldWVfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYz0xMTI1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzZ1X2FsbG9jX3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy0xMTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM6MTEyNzpzdGF0aWMgY29uc3Qgc3RydWN0IG10NzZfcXVldWVfb3BzIHVzYl9xdWV1ZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy0xMTI4LVxcdC50eF9xdWV1ZV9za2IgPSBtdDc2dV90eF9xdWV1ZV9za2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jPTExMzI9aW50IF9fbXQ3NnVfaW5pdChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTExNTEtXFx0ZGV2LVxcdTAwM2VidXMgPSBvcHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYzoxMTUyOlxcdGRldi1cXHUwMDNlcXVldWVfb3BzID0gXFx1MDAyNnVzYl9xdWV1ZV9vcHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy0xMTUzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozODo1Mi41NjA3NDAyODZaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjU2MjM4MjQxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgaWYgdGhleSBhcmUgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgVVNCIFF1ZXVlIE9wZXJhdGlvbnMqKlxuXG5BbHJpZ2h0LCBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgVVNCIGNvZGUgYW5kIEkndmUganVzdCBzZWVuIHRoYXQgYGRldi1cdTAwM2VxdWV1ZV9vcHNgIGlzIGFzc2lnbmVkIHRvIGBcdTAwMjZ1c2JfcXVldWVfb3BzYC4gTWFrZXMgc2Vuc2UsIHN0YW5kYXJkIFVTQiBxdWV1aW5nIHN0dWZmLiBCdXQgbm93IHRoZSBjcml0aWNhbCBxdWVzdGlvbiBpcywgd2hlcmUgdGhlIGhlY2sgaXMgYHF1ZXVlX29wcy1cdTAwM2V0eF9xdWV1ZV9za2JgIGFjdHVhbGx5ICpjYWxsZWQqPyBJIG5lZWQgdG8gdHJhY2UgdGhlIGV4ZWN1dGlvbiBwYXRoIHRvIHVuZGVyc3RhbmQgaG93IFNLQnMgYXJlIGJlaW5nIGluamVjdGVkIGludG8gdGhlIFVTQiB0cmFuc21pc3Npb24gcGlwZWxpbmUuIEtub3dpbmcgdGhlIGNhbGxzaXRlIG9mIGB0eF9xdWV1ZV9za2JgIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBkYXRhIGZsb3cgYW5kIGhvdyB0aGlzIHBhcnRpY3VsYXIgcXVldWUgaW50ZXJhY3RzIHdpdGggdGhlIG92ZXJhbGwgVVNCIHN0YWNrLiBJIG5lZWQgdG8gZmluZCB0aGUgZnVuY3Rpb24ocykgb3IgZHJpdmVyIGNvbXBvbmVudHMgdGhhdCBhcmUgcmVzcG9uc2libGUgZm9yIGtpY2tpbmcgb2ZmIHRob3NlIHBhY2tldCB0cmFuc21pc3Npb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NTM3LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6NTkuMTIzMTI2NzA2WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzM2NTc5MzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHhfcXVldWVfc2tiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9NjMzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjYzNDptdDc2X2RtYV90eF9xdWV1ZV9za2JfcmF3KHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTYzNS1cXHRcXHRcXHQgIHN0cnVjdCBza19idWZmICpza2IsIHUzMiB0eF9pbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz02NjY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NjY3Om10NzZfZG1hX3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy02NjgtXFx0XFx0ICAgICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExNzY9c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc2X3F1ZXVlX29wcyBtdDc2X2RtYV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNzktXFx0LnJlc2V0X3EgPSBtdDc2X2RtYV9xdWV1ZV9yZXNldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjExODA6XFx0LnR4X3F1ZXVlX3NrYl9yYXcgPSBtdDc2X2RtYV90eF9xdWV1ZV9za2JfcmF3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTE4MTpcXHQudHhfcXVldWVfc2tiID0gbXQ3Nl9kbWFfdHhfcXVldWVfc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE4Mi1cXHQudHhfY2xlYW51cCA9IG10NzZfZG1hX3R4X2NsZWFudXAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0yOTI9c3RydWN0IG10NzZfcXVldWVfb3BzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTI5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDozMDA6XFx0aW50ICgqdHhfcXVldWVfc2tiKShzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMzAxLVxcdFxcdFxcdCAgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTMwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDozMDQ6XFx0aW50ICgqdHhfcXVldWVfc2tiX3Jhdykoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTMwNS1cXHRcXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgdHhfaW5mbyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xMjY4PXN0YXRpYyBpbmxpbmUgaW50IG10NzZfd2VkX2RtYV9zZXR1cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjc5LSNkZWZpbmUgbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIC4uLilcXHQoZGV2KS1cXHUwMDNlbXQ3Ni5xdWV1ZV9vcHMtXFx1MDAzZWFsbG9jKFxcdTAwMjYoKGRldiktXFx1MDAzZW10NzYpLCBfX1ZBX0FSR1NfXylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMjgwOiNkZWZpbmUgbXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgLi4uKVxcdChkZXYpLVxcdTAwM2VtdDc2LnF1ZXVlX29wcy1cXHUwMDNldHhfcXVldWVfc2tiX3JhdyhcXHUwMDI2KChkZXYpLVxcdTAwM2VtdDc2KSwgX19WQV9BUkdTX18pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTI4MTojZGVmaW5lIG10NzZfdHhfcXVldWVfc2tiKGRldiwgLi4uKVxcdChkZXYpLVxcdTAwM2VtdDc2LnF1ZXVlX29wcy1cXHUwMDNldHhfcXVldWVfc2tiKFxcdTAwMjYoKGRldiktXFx1MDAzZW1waHkpLCBfX1ZBX0FSR1NfXylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xMjgyLSNkZWZpbmUgbXQ3Nl9xdWV1ZV9yeF9yZXNldChkZXYsIC4uLilcXHQoZGV2KS1cXHUwMDNlbXQ3Ni5xdWV1ZV9vcHMtXFx1MDAzZXJ4X3Jlc2V0KFxcdTAwMjYoKGRldiktXFx1MDAzZW10NzYpLCBfX1ZBX0FSR1NfXylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTMwPW10NzYwM191cGRhdGVfYmVhY29uX2l0ZXIodm9pZCAqcHJpdiwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjcxOlxcdG10NzZfdHhfcXVldWVfc2tiKGRldiwgZGV2LVxcdTAwM2VtcGh5LnFfdHhbTVRfVFhRX0JFQUNPTl0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtNzItXFx0XFx0XFx0ICBNVF9UWFFfQkVBQ09OLCBza2IsIFxcdTAwMjZtdmlmLVxcdTAwM2VzdGEud2NpZCwgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYz0xMDM9dm9pZCBtdDc2MDNfcHJlX3RidHRfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xNjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MTY3OlxcdFxcdG10NzZfdHhfcXVldWVfc2tiKGRldiwgcSwgTVRfVFhRX0NBQiwgc2tiLCBcXHUwMDI2bXZpZi1cXHUwMDNlc3RhLndjaWQsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE2OC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmM9Mzk0PW10NzYwM19wc190eF9saXN0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmMtNDAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21haW4uYzo0MDE6XFx0XFx0bXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgZGV2LVxcdTAwM2VtcGh5LnFfdHhbcWlkXSwgc2tiLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmMtNDAyLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21jdS5jPTM4PW10NzYwM19tY3Vfc2tiX3NlbmRfbXNnKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21jdS5jLTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21jdS5jOjc1OlxcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVxcdTAwM2VxX21jdVtNVF9NQ1VRX1dNXSwgc2tiLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tY3UuYy03Ni19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmM9MjUxPW10NzYxNV9yZXNldF90ZXN0X3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTI2NS1cXHRtdDc2MTVfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYzoyNjY6XFx0bXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgZGV2LVxcdTAwM2VtcGh5LnFfdHhbMF0sIHNrYiwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTI2Ny1cXHRtdDc2MTVfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmM9MTg0PW10NzYxNV9tY3Vfc2VuZF9tZXNzYWdlKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTE5NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYzoxOTY6XFx0cmV0dXJuIG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIGRldi1cXHUwMDNlbXQ3Ni5xX21jdVtxaWRdLCBza2IsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTE5Ny19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvX21jdS5jPTM5PW10NzY2M3NfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvX21jdS5jLTQ1LVxcdG10NzYxNV9tY3VfZmlsbF9tc2coZGV2LCBza2IsIGNtZCwgc2VxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvX21jdS5jOjQ2OlxcdHJldCA9IG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIG1kZXYtXFx1MDAzZXFfbWN1W01UX01DVVFfV01dLCBza2IsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW9fbWN1LmMtNDctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9tY3UuYz0zND1pbnQgbXQ3NngwMl9tY3VfbXNnX3NlbmQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBpbnQgY21kLCBjb25zdCB2b2lkICpkYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX21jdS5jLTYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9tY3UuYzo2MzpcXHRyZXQgPSBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVxcdTAwM2VxX21jdVtNVF9NQ1VRX1dNXSwgc2tiLCB0eF9pbmZvKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfbWN1LmMtNjQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9tbWlvLmM9MTQ9c3RhdGljIHZvaWQgbXQ3NngwMl9wcmVfdGJ0dF90YXNrbGV0KHN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl9tbWlvLmMtNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX21taW8uYzo2OTpcXHRcXHRtdDc2X3R4X3F1ZXVlX3NrYihkZXYsIHEsIE1UX1RYUV9QU0QsIHNrYiwgXFx1MDAyNm12aWYtXFx1MDAzZWdyb3VwX3djaWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX21taW8uYy03MC1cXHRcXHRcXHRcXHQgIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmM9MjIyPW10NzkxNV9tY3Vfc2VuZF9tZXNzYWdlKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jLTIzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYzoyMzc6XFx0cmV0dXJuIG10NzZfdHhfcXVldWVfc2tiX3JhdyhkZXYsIG1kZXYtXFx1MDAzZXFfbWN1W3FpZF0sIHNrYiwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMtMjM4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaV9tY3UuYz0yMj1tdDc5MjFfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2lfbWN1LmMtMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpX21jdS5jOjM4OlxcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVxcdTAwM2VxX21jdVt0eHFdLCBza2IsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaV9tY3UuYy0zOS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvX21jdS5jPTE2PW10NzkyMXNfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvX21jdS5jLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW9fbWN1LmM6NDU6XFx0cmV0ID0gbXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgbWRldi1cXHUwMDNlcV9tY3VbdHhxXSwgc2tiLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvX21jdS5jLTQ2LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2lfbWN1LmM9OD1tdDc5MjVfbWN1X3NlbmRfbWVzc2FnZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2lfbWN1LmMtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpX21jdS5jOjI0OlxcdHJldHVybiBtdDc2X3R4X3F1ZXVlX3NrYl9yYXcoZGV2LCBtZGV2LVxcdTAwM2VxX21jdVt0eHFdLCBza2IsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaV9tY3UuYy0yNS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYz0yOTA9bXQ3OTk2X21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jOjM4MTpcXHRyZXR1cm4gbXQ3Nl90eF9xdWV1ZV9za2JfcmF3KGRldiwgbWRldi1cXHUwMDNlcV9tY3VbcWlkXSwgc2tiLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYy0zODItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM9NTE3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYzo1MTg6bXQ3NnNfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYy01MTktXFx0XFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYz01NTg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Rpby5jOjU1OTptdDc2c190eF9xdWV1ZV9za2JfcmF3KHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYy01NjAtXFx0XFx0ICAgICAgIHN0cnVjdCBza19idWZmICpza2IsIHUzMiB0eF9pbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM9NjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9vcHMgc2Rpb19xdWV1ZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmM6NjA0OlxcdC50eF9xdWV1ZV9za2IgPSBtdDc2c190eF9xdWV1ZV9za2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9zZGlvLmMtNjA1LVxcdC5raWNrID0gbXQ3NnNfdHhfa2ljayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3NkaW8uYzo2MDY6XFx0LnR4X3F1ZXVlX3NrYl9yYXcgPSBtdDc2c190eF9xdWV1ZV9za2JfcmF3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvc2Rpby5jLTYwNy19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90ZXN0bW9kZS5jPTMxPXZvaWQgbXQ3Nl90ZXN0bW9kZV90eF9wZW5kaW5nKHN0cnVjdCBtdDc2X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90ZXN0bW9kZS5jLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdGVzdG1vZGUuYzo1NjpcXHRcXHRyZXQgPSBkZXYtXFx1MDAzZXF1ZXVlX29wcy1cXHUwMDNldHhfcXVldWVfc2tiKHBoeSwgcSwgcWlkLCBza2JfZ2V0KHNrYiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90ZXN0bW9kZS5jLTU3LVxcdFxcdFxcdFxcdFxcdFxcdCAgIHdjaWQsIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jPTMyNT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jOjMyNjpfX210NzZfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBpbnQgcWlkLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy0zMjctXFx0XFx0ICAgIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtMzM3LVxcdG5vbl9hcWwgPSAhaW5mby1cXHUwMDNldHhfdGltZV9lc3Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jOjMzODpcXHRpZHggPSBkZXYtXFx1MDAzZXF1ZXVlX29wcy1cXHUwMDNldHhfcXVldWVfc2tiKHBoeSwgcSwgcWlkLCBza2IsIHdjaWQsIHN0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTMzOS1cXHRpZiAoaWR4IFxcdTAwM2MgMCB8fCAhc3RhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jPTQxND1tdDc2X3F1ZXVlX3BzX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy00MzItXFx0bXQ3Nl9za2Jfc2V0X21vcmVkYXRhKHNrYiwgIWxhc3QpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYzo0MzM6XFx0X19tdDc2X3R4X3F1ZXVlX3NrYihwaHksIE1UX1RYUV9QU0QsIHNrYiwgd2NpZCwgc3RhLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNDM0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYz00OTA9bXQ3Nl90eHFfc2VuZF9idXJzdChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNTIxLVxcdHNwaW5fbG9jayhcXHUwMDI2cS1cXHUwMDNlbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jOjUyMjpcXHRpZHggPSBfX210NzZfdHhfcXVldWVfc2tiKHBoeSwgcWlkLCBza2IsIHdjaWQsIHR4cS1cXHUwMDNlc3RhLCBcXHUwMDI2c3RvcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTUyMy1cXHRzcGluX3VubG9jayhcXHUwMDI2cS1cXHUwMDNlbG9jayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNTQ2LVxcdFxcdHNwaW5fbG9jayhcXHUwMDI2cS1cXHUwMDNlbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jOjU0NzpcXHRcXHRpZHggPSBfX210NzZfdHhfcXVldWVfc2tiKHBoeSwgcWlkLCBza2IsIHdjaWQsIHR4cS1cXHUwMDNlc3RhLCBcXHUwMDI2c3RvcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni90eC5jLTU0OC1cXHRcXHRzcGluX3VubG9jayhcXHUwMDI2cS1cXHUwMDNlbG9jayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM9NjYwPW10NzZfdHhxX3NjaGVkdWxlX3BlbmRpbmdfd2NpZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdHguYy02OTQtXFx0XFx0c3Bpbl9sb2NrKFxcdTAwMjZxLVxcdTAwM2Vsb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmM6Njk1OlxcdFxcdF9fbXQ3Nl90eF9xdWV1ZV9za2IocGh5LCBxaWQsIHNrYiwgd2NpZCwgc3RhLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3R4LmMtNjk2LVxcdFxcdGRldi1cXHUwMDNlcXVldWVfb3BzLVxcdTAwM2VraWNrKGRldiwgcSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jPTg5MT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYzo4OTI6bXQ3NnVfdHhfcXVldWVfc2tiKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jLTg5My1cXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmM9MTEyNz1zdGF0aWMgY29uc3Qgc3RydWN0IG10NzZfcXVldWVfb3BzIHVzYl9xdWV1ZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYzoxMTI4OlxcdC50eF9xdWV1ZV9za2IgPSBtdDc2dV90eF9xdWV1ZV9za2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91c2IuYy0xMTI5LVxcdC5raWNrID0gbXQ3NnVfdHhfa2ljayxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzg6NTkuMzU2Nzg4OTE4WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg2Njc4MTkxNTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjoxMzQ3MSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzk6MDguMDI0NjExMjFaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1MzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmNcIixcbiAgXCJGaXJzdExpbmVcIjogODkxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgODkxOlxcdHN0YXRpYyBpbnRcXG4gODkyOlxcdG10NzZ1X3R4X3F1ZXVlX3NrYihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuIDg5MzpcXHRcXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gODk0OlxcdFxcdFxcdCAgIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuIDg5NTpcXHR7XFxuIDg5NjpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3R4X3N0YXR1cyBzdGF0dXMgPSB7XFxuIDg5NzpcXHRcXHRcXHQuc3RhID0gc3RhLFxcbiA4OTg6XFx0XFx0fTtcXG4gODk5OlxcdFxcdHN0cnVjdCBtdDc2X3R4X2luZm8gdHhfaW5mbyA9IHtcXG4gOTAwOlxcdFxcdFxcdC5za2IgPSBza2IsXFxuIDkwMTpcXHRcXHR9O1xcbiA5MDI6XFx0XFx0c3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktXFx1MDAzZWRldjtcXG4gOTAzOlxcdFxcdHUxNiBpZHggPSBxLVxcdTAwM2VoZWFkO1xcbiA5MDQ6XFx0XFx0aW50IGVycjtcXG4gOTA1OlxcdFxcbiA5MDY6XFx0XFx0aWYgKHEtXFx1MDAzZXF1ZXVlZCA9PSBxLVxcdTAwM2VuZGVzYylcXG4gOTA3OlxcdFxcdFxcdHJldHVybiAtRU5PU1BDO1xcbiA5MDg6XFx0XFxuIDkwOTpcXHRcXHRza2ItXFx1MDAzZXByZXYgPSBza2ItXFx1MDAzZW5leHQgPSBOVUxMO1xcbiA5MTA6XFx0XFx0ZXJyID0gZGV2LVxcdTAwM2VkcnYtXFx1MDAzZXR4X3ByZXBhcmVfc2tiKGRldiwgTlVMTCwgcWlkLCB3Y2lkLCBzdGEsIFxcdTAwMjZ0eF9pbmZvKTtcXG4gOTExOlxcdFxcdGlmIChlcnIgXFx1MDAzYyAwKVxcbiA5MTI6XFx0XFx0XFx0Z290byBlcnJfZnJlZV9za2I7XFxuIDkxMzpcXHRcXG4gOTE0OlxcdFxcdGVyciA9IG10NzZ1X3R4X3NldHVwX2J1ZmZlcnMoZGV2LCB0eF9pbmZvLnNrYiwgcS1cXHUwMDNlZW50cnlbaWR4XS51cmIpO1xcbiA5MTU6XFx0XFx0aWYgKGVyciBcXHUwMDNjIDApXFxuIDkxNjpcXHRcXHRcXHRnb3RvIGVycl9mcmVlX3NrYjtcXG4gOTE3OlxcdFxcbiA5MTg6XFx0XFx0bXQ3NnVfZmlsbF9idWxrX3VyYihkZXYsIFVTQl9ESVJfT1VULCBxLVxcdTAwM2VlcCwgcS1cXHUwMDNlZW50cnlbaWR4XS51cmIsXFxuIDkxOTpcXHRcXHRcXHRcXHQgICAgbXQ3NnVfY29tcGxldGVfdHgsIFxcdTAwMjZxLVxcdTAwM2VlbnRyeVtpZHhdKTtcXG4gOTIwOlxcdFxcbiA5MjE6XFx0XFx0cS1cXHUwMDNlaGVhZCA9IChxLVxcdTAwM2VoZWFkICsgMSkgJSBxLVxcdTAwM2VuZGVzYztcXG4gOTIyOlxcdFxcdHEtXFx1MDAzZWVudHJ5W2lkeF0uc2tiID0gdHhfaW5mby5za2I7XFxuIDkyMzpcXHRcXHRxLVxcdTAwM2VlbnRyeVtpZHhdLndjaWQgPSAweGZmZmY7XFxuIDkyNDpcXHRcXHRxLVxcdTAwM2VxdWV1ZWQrKztcXG4gOTI1OlxcdFxcbiA5MjY6XFx0XFx0cmV0dXJuIGlkeDtcXG4gOTI3OlxcdFxcbiA5Mjg6XFx0ZXJyX2ZyZWVfc2tiOlxcbiA5Mjk6XFx0XFx0c3RhdHVzLnNrYiA9IHR4X2luZm8uc2tiO1xcbiA5MzA6XFx0XFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXJ4X2xvY2spO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozOTowOC4wMjQ3NDkyWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NjU5NDA4ODU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIE1lZGlhVGVrIE1UNzYgVVNCIERyaXZlciBQYXRjaCBmb3IgRnV6emluZyoqXG5cbk9rYXksIGxldCdzIHNlZS4gVGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgbXQ3NnVfdHhfcXVldWVfc2tiYCBpbiB0aGUgYG10NzZgIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgdXNiLmNgLiBJdCdzIGFib3V0IGVycm9yIGhhbmRsaW5nIGR1cmluZyBUWCwgZW5zdXJpbmcgdGhlIFNLQiBpcyBmcmVlZCBhbmQgaXRzIHN0YXR1cyByZXBvcnRlZCBpZiBgdHhfcHJlcGFyZV9za2JgIG9yIGBtdDc2dV90eF9zZXR1cF9idWZmZXJzYCBmYWlscy4gSXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzdGFuZGFyZCB0aGluZyB0byBsb29rIGZvciB3aGVuIGZ1enppbmcgZHJpdmVycy4gVGhlIGZhY3QgaXQncyBVU0ItYmFzZWQgbWVhbnMgd2UgY2FuIGhpdCBpdCB3aXRoIFVTQiBnYWRnZXQgZW11bGF0aW9uLCBtYXliZSB3aXRoIHNvbWV0aGluZyBsaWtlIGBkdW1teV9oY2RgIG9yIHN5emthbGxlcidzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcyDigJMgcGVyZmVjdC5cblxuTm93LCB0byBtYWtlIHN1cmUgd2UgY2FuIHRyaWdnZXIgdGhpcywgd2UgbmVlZCB0byBnZXQgdGhlIHJpZ2h0IGNvbmZpZ3Mgc2V0LiBMZXQncyBzdGFydCB3aXRoIHRoZSBiYXNlLCBgTVQ3Nl9VU0JgLiBUaGVuLCB0aGUgZHJpdmVycyB0aGF0IHNlbGVjdCB0aGF0IGFyZSBgTVQ3NngwMl9VU0JgIGFuZCBgTVQ3OTJ4X1VTQmAsIGJ1dCB0aG9zZSBhcmVuJ3QgdGhlIGFjdHVhbCBkcml2ZXJzLiBBaCwgcmlnaHQuIEl0J3MgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIGBNVDc5MjVVYCB0aGF0ICpzZWxlY3QqIHRob3NlIGNvbmZpZ3MuIFNvLCBpdCBsb29rcyBsaWtlIHdlIHdhbnQgdG8gZW5hYmxlIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3OTIxVWAsIGFuZCBgTVQ3OTI1VWAuIEEgcXVpY2sgY2hlY2sgcmV2ZWFscyB0aGF0IGFsbCB0aGVzZSBkcml2ZXJzIGRlcGVuZCBvbiBib3RoIGBNQUM4MDIxMWAgYW5kIGBVU0JgLCB3aGljaCBjb25maXJtcyBvdXIgYXBwcm9hY2guXG5cbmBNVDc2X1VTQmAgaXMganVzdCB0cmlzdGF0ZSwgc2VsZWN0ZWQgYnkgYE1UNzZ4MDJfVVNCYCBhbmQgYE1UNzkyeF9VU0JgLiBTbywgd2UgbmVlZCB0byBlbmFibGUgdGhlIG9uZXMgd2l0aCBwcm9tcHRzOiBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgLiBUaGF0IHNob3VsZCBwdWxsIGluIHRoZSBuZWVkZWQgZGVwZW5kZW5jaWVzLCBpbmNsdWRpbmcgYFVTQmAuIEdvb2QuIExldCdzIG1ha2Ugc3VyZSB0aGUgcHJvbXB0cyBhcmUgc2FuZSDigJMgeWVwLCBhbGwgdGhvc2UgY29uZmlncyBoYXZlIHByb21wdHMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBLY29uZmlnIGZpbGVzLCBhbGwgZ29vZC5cblxuVGhlIGtleSBmdW5jdGlvbiBoZXJlLCB0aGUgb25lIGJlaW5nIG1vZGlmaWVkLCBpcyBgbXQ3NnVfdHhfcXVldWVfc2tiYC4gT2theSwgbm93LCB0aGUgcHJvbXB0J3MgcHJlZmVyZW5jZSBpcyBmb3Igbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zLiBCdXQsIGBtdDc2dV90eF9xdWV1ZV9za2JgICppcyogc3RhdGljLiBCdXQgd2FpdCEgSXRzIGFkZHJlc3MgaXMgdGFrZW4gYW5kIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciwgd2hpY2ggbWVhbnMgaXQgZGVmaW5pdGVseSB3b24ndCBiZSBmdWxseSBpbmxpbmVkLiBFdmVuIGlmIGl0ICpjb3VsZCogYmUgaW5saW5lZCwgYXNzaWduaW5nIGl0IHRvIGEgZnVuY3Rpb24gcG9pbnRlciB3aWxsIHByZXZlbnQgdGhhdC4gU28sIGl0J3Mgbm90IGFjdHVhbGx5IGFuIGlzc3VlISBUaGF0IG1lYW5zIHdlIGNhbiBzdGlsbCBnZXQgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcyBldmVuIHRob3VnaCBpdCdzIGRlY2xhcmVkIGBzdGF0aWNgLiBCZXNpZGVzLCBpdCdzIHRoZSBleGFjdCBmdW5jdGlvbiBiZWluZyBtb2RpZmllZCwgc28gcGVyZmVjdC4gV2UgY2FuIGFsc28gaW5jbHVkZSBgbXQ3Nl90eHFfc2VuZF9idXJzdGAgb3IgYG10NzZfdHhxX3NjaGVkdWxlX3BlbmRpbmdfd2NpZGAgd2hpY2ggYXJlIG5vbi1zdGF0aWMgYXMgd2VsbC4gSG93ZXZlciwgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgaXMgdGhlIGRpcmVjdCB0YXJnZXQgYW5kIHRoZSBjaGFuZ2UgdGhhdCBpcyBtb2RpZmllZC4gTGV0J3Mgc3RpY2sgd2l0aCBgbXQ3NnVfdHhfcXVldWVfc2tiYCBhcyB0aGUgZm9jdXMuXG5cblNvLCBpbiBzdW1tYXJ5LCB3ZSdyZSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBmaXhlcyBhbiBlcnJvciBwYXRoLCBwcm9iYWJseSBhIG1lbW9yeSBsZWFrIG9yIGEgc3RhdHVzIHJlcG9ydGluZyBpc3N1ZSB3aGVuIFRYIHByZXBhcmF0aW9uIGZhaWxzLiBJdCdzIGluIHRoZSBVU0IgZHJpdmVyLCBzbyBpdCdzIGRpcmVjdGx5IHJlYWNoYWJsZSB2aWEgVVNCIGZ1enppbmcgdGVjaG5pcXVlcy5cblxuRW5hYmxlQ29uZmlnczogYFtcIk1UNzZ4MFVcIiwgXCJNVDc2eDJVXCIsIFwiTVQ3OTIxVVwiLCBcIk1UNzkyNVVcIl1gLlxuRm9jdXNTeW1ib2xzOiBgW1wibXQ3NnVfdHhfcXVldWVfc2tiXCJdYC5cblxuRmluYWxseSwganVzdCBhIHF1aWNrIHNhbml0eSBjaGVjayB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBVU0IgZHJpdmVycyBpbiB0aGUgYG10NzZgIGRpcmVjdG9yeS4gTGV0J3Mgc2VlLi4uIG5vdGhpbmcgaW1tZWRpYXRlbHkganVtcGluZyBvdXQuIEFscmlnaHQsIHRoYXQncyBpdCFcblxuXG4iLCJJbnB1dFRva2VucyI6MTQyMDYsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjU5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzk6MzcuNjg0MTYxOTY5WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzEyNjM0MzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzYwMVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvS2NvbmZpZzoyOmNvbmZpZyBNVDc2MDFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzYwMVUgKFVTQikgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6Mzk6MzguMDE1NDMxMTk4WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExOTY5MDI1Mjk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTUyMjgsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM5OjQ5Ljk4NDQ1OTU1NVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzIyMzc2MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzZfVVNCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz02PWNvbmZpZyBNVDc2X0xFRFNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTI6Y29uZmlnIE1UNzZfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEzLVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM5OjUwLjA1NjcwMTkyM1oiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4OTgxNDM2MDEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTUzNzcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjM5OjU5LjAzODEzOTgzNFoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE4MjU3MzU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc2eDAyX1VTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9MjA9Y29uZmlnIE1UNzZ4MDJfTElCXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI0OmNvbmZpZyBNVDc2eDAyX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNS1cXHR0cmlzdGF0ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwODozOTo1OS4xNTY0MDIxOVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzIzODEwMDUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTWVkaWF0ZWsgV2lyZWxlc3MgRHJpdmVycyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gSXQgc2VlbXMgdGhlIGBNVDc2MDFVYCBkcml2ZXIgaXMgYW4gb3V0bGllciwgcmVzaWRpbmcgaW5kZXBlbmRlbnRseSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9gLiBJdCdzIG5vdCBsZXZlcmFnaW5nIHRoZSBjb21tb24gYG10NzYvdXNiLmNgIGZyYW1ld29yay4gSG1tLCBpbnRlcmVzdGluZy5cblxuQnV0IHRoYXQgbWVhbnMgdGhlIG90aGVyIGRyaXZlcnMgSSdtIGZhbWlsaWFyIHdpdGgsIHRoZSBvbmVzIGxpa2UgYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc5MjFVYCwgYW5kIGBNVDc5MjVVYCwgdGhleSBhcmUgbGlrZWx5IHRoZSBvbmVzIHV0aWxpemluZyB0aGUgYG10NzYvdXNiLmNgIG1vZHVsZSwgd2hpY2ggbWFrZXMgc2Vuc2UuIEkgd291bGQgaGF2ZSBleHBlY3RlZCB0aGF0LCBnaXZlbiB0aGVpciBzaGFyZWQgYXJjaGl0ZWN0dXJlLlxuXG5Ob3csIG15IGN1cmlvc2l0eSBpcyBwaXF1ZWQuIFdoYXQgYWJvdXQgYE1UNzk5NmA/IElzIGl0IFVTQi1iYXNlZD8gSSBuZWVkIHRvIGNoZWNrIHRoZSBoYXJkd2FyZSBkb2N1bWVudGF0aW9uIGFuZCB0aGUgZHJpdmVyIHN0cnVjdHVyZSB0byBjb25maXJtLiBJdCBpcyBwb3NzaWJsZSB0aGlzIGlzIFVTQi4gSSB3aWxsIGFkZCB0aGlzIHRvIG15IG1lbnRhbCBjaGVja2xpc3QgZm9yIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4gSXQgbmVlZHMgdG8gYmUgY2xhcmlmaWVkLCBnaXZlbiBpdHMgcGxhY2UgaW4gdGhlIE1lZGlhdGVrIGZhbWlseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkwNTAsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6NDA6MDMuNDgwMjE1NDIxWiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzE3ODQ5NjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVQ3OTk2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6Mjpjb25maWcgTVQ3OTk2RVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MzpcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTk2IChQQ0llKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctNC1cXHRzZWxlY3QgTVQ3Nl9DT05OQUNfTElCXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTktXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTA6XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTk2LWJhc2VkIFBDSWUgd2lyZWxlc3MgZGV2aWNlcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTExLVxcdCAgd2hpY2ggc3VwcG9ydCBjb25jdXJyZW50IHRyaS1iYW5kIG9wZXJhdGlvbiBhdCA2R0h6LCA1R0h6LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc5OTZfTlBVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxNzpcXHRib29sIFxcXCJNVDc5OTYgKFBDSWUpIE5QVSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTg6XFx0ZGVwZW5kcyBvbiBNVDc5OTZFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xOS1cXHRkZXBlbmRzIG9uIE5FVF9BSVJPSEFfTlBVPXkgfHwgTVQ3Nl9DT1JFPU5FVF9BSVJPSEFfTlBVXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjQwOjAzLjc1MjAwNjYyM1oiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzAxNzc0MjgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTYyODYsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjQwOjEyLjA1Mzc4MjcxNloiLCJTZXEiOjMyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU3NTI4NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyMVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnPTE3PWNvbmZpZyBNVDc5MjFTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjg6Y29uZmlnIE1UNzkyMVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI5LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFVIChVU0IpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjQwOjEyLjEzOTU0MjA5NFoiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NTA5NTE3ODk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTY0ODQsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjQwOjIxLjY0OTA2MzA5OVoiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTgyMjMzMjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyNVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnPTc9Y29uZmlnIE1UNzkyNUVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZzoxOTpjb25maWcgTVQ3OTI1VVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWctMjAtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6NDA6MjEuNzQ3MjkzNTM2WiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNzI4MzUzMDQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MTY2ODEsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA4OjQwOjM0LjQ3NTY0OTUzOFoiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzczNjk3MzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzZ4MlVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnPTY9Y29uZmlnIE1UNzZ4MkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZzoxODpjb25maWcgTVQ3NngyVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzZ4MlUgKFVTQikgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6NDA6MzQuNTUzMDIzNDk2WiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2MjY5MDcxNDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBzaXR1YXRpb246XG5cbioqRm9jdXNpbmcgSW46IEtleSBDb25maWd1cmF0aW9ucyBhbmQgRnVuY3Rpb24gSWRlbnRpZmljYXRpb24qKlxuXG5SaWdodCwgc28gSSd2ZSB6ZXJvZWQgaW4gb24gdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zOiBgTVQ3NngwVWAsIGBNVDc2eDJVYCwgYE1UNzkyMVVgLCBhbmQgYE1UNzkyNVVgLiBUaGF0J3MgdGhlIGxhbmRzY2FwZSBvZiB0aGlzIHNwZWNpZmljIGludmVzdGlnYXRpb24uIFRoZSBjcml0aWNhbCBwaWVjZSBvZiB0aGlzIHB1enpsZSwgdGhlIHN5bWJvbCBJIG5lZWQgdG8gdGhvcm91Z2hseSB1bmRlcnN0YW5kLCBpcyB0aGUgYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZnVuY3Rpb24uIEl0J3MgdGhlIGNvcmUgb2YgdGhlIG1hdHRlciwgdGhlIGNlbnRyYWwgcG9pbnQgb2YgbXkgYW5hbHlzaXMuIFRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgY2hvaWNlIGlzLCBvZiBjb3Vyc2UsIGFic29sdXRlbHkgY2xlYXIuIEl0J3MgdGhlIGxvZ2ljYWwgbmV4dCBzdGVwIGluIG15IHdvcmsuIE5vdywgSSdsbCBsZXZlcmFnZSB0aGUgYHNldC1yZXN1bHRzYCB0b29sIHRvIGNhcmVmdWxseSByZWNvcmQgYW5kIHJlcG9ydCB0aGUgcHJlY2lzZSBmaW5kaW5ncywgZW5zdXJpbmcgYSBjbGVhbiBhbmQgc3RydWN0dXJlZCBkZWxpdmVyeSBvZiBteSBjb25jbHVzaW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA1MDAsIk91dHB1dFRva2VucyI6MTU3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDg6NDA6MzkuMTc5OTMzNzQ3WiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUwMzAwNzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc2eDBVXCIsXG4gICAgXCJNVDc2eDJVXCIsXG4gICAgXCJNVDc5MjFVXCIsXG4gICAgXCJNVDc5MjVVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3NnVfdHhfcXVldWVfc2tiXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGVycm9yIGhhbmRsaW5nIHBhdGggaW4gYG10NzZ1X3R4X3F1ZXVlX3NrYmAgZm9yIE1lZGlhVGVrIE1UNzYgVVNCIHdpcmVsZXNzIGRyaXZlcnMsIGVuc3VyaW5nIHRoYXQgU0tCcyBhcmUgcHJvcGVybHkgZnJlZWQgYW5kIHRoZWlyIHN0YXR1cyByZXBvcnRlZCB3aGVuIFRYIHByZXBhcmF0aW9uIG9yIGJ1ZmZlciBzZXR1cCBmYWlscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZ2FkZ2V0IGZ1enppbmcgYW5kIG1hYzgwMjExIHBhY2tldCBpbmplY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3NngwVVwiLFxuICAgIFwiTVQ3NngyVVwiLFxuICAgIFwiTVQ3OTIxVVwiLFxuICAgIFwiTVQ3OTI1VVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzZ1X3R4X3F1ZXVlX3NrYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlcnJvciBoYW5kbGluZyBwYXRoIGluIGBtdDc2dV90eF9xdWV1ZV9za2JgIGZvciBNZWRpYVRlayBNVDc2IFVTQiB3aXJlbGVzcyBkcml2ZXJzLCBlbnN1cmluZyB0aGF0IFNLQnMgYXJlIHByb3Blcmx5IGZyZWVkIGFuZCB0aGVpciBzdGF0dXMgcmVwb3J0ZWQgd2hlbiBUWCBwcmVwYXJhdGlvbiBvciBidWZmZXIgc2V0dXAgZmFpbHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGdhZGdldCBmdXp6aW5nIGFuZCBtYWM4MDIxMSBwYWNrZXQgaW5qZWN0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowpzkmn[1] Phase: Succeeded StartedAt: 2026-08-05 08:40:51 +0000 UTC FinishedAt: 2026-08-05 08:40:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-05 08:40:51 +0000 UTC FinishedAt: 2026-08-05 08:40:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2] Phase: Succeeded StartedAt: 2026-08-05 08:40:51 +0000 UTC FinishedAt: 2026-08-05 09:22:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-05 08:40:51 +0000 UTC FinishedAt: 2026-08-05 09:22:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-05 08:40:51 +0000 UTC FinishedAt: 2026-08-05 08:41:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-05 08:40:51 +0000 UTC FinishedAt: 2026-08-05 08:40:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpzkmn/series-workflowpzkmn-convert-artifact-1389195948/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-05 08:41:01 +0000 UTC FinishedAt: 2026-08-05 08:59:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-05 08:41:01 +0000 UTC FinishedAt: 2026-08-05 08:59:42 +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:*e7989de7-01c3-4cd1-8467-6c6294111ab6,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-workflowpzkmn/series-workflowpzkmn-convert-artifact-1389195948/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": "33152c76-cb9f-445b-a6c9-b9ce7c0f97ad", "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-workflowpzkmn/series-workflowpzkmn-build-action-479230170/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-05 08:41:01 +0000 UTC FinishedAt: 2026-08-05 08:59:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*e7989de7-01c3-4cd1-8467-6c6294111ab6,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-workflowpzkmn/series-workflowpzkmn-convert-artifact-1389195948/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": "33152c76-cb9f-445b-a6c9-b9ce7c0f97ad", "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-workflowpzkmn/series-workflowpzkmn-build-action-479230170/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-05 08:59:42 +0000 UTC FinishedAt: 2026-08-05 08:59:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-05 08:59:42 +0000 UTC FinishedAt: 2026-08-05 08:59:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-05 08:59:42 +0000 UTC FinishedAt: 2026-08-05 08:59:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-05 08:59:42 +0000 UTC FinishedAt: 2026-08-05 08:59:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpzkmn/series-workflowpzkmn-convert-artifact-3069519979/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-05 08:59:53 +0000 UTC FinishedAt: 2026-08-05 09:01:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-05 08:59:53 +0000 UTC FinishedAt: 2026-08-05 09:01:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*33152c76-cb9f-445b-a6c9-b9ce7c0f97ad,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-workflowpzkmn/series-workflowpzkmn-build-action-479230170/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-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-05 09:01:46 +0000 UTC FinishedAt: 2026-08-05 09:01:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-05 09:01:46 +0000 UTC FinishedAt: 2026-08-05 09:01:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-05 09:01:46 +0000 UTC FinishedAt: 2026-08-05 09:18:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-05 09:01:46 +0000 UTC FinishedAt: 2026-08-05 09:18:27 +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:*e7989de7-01c3-4cd1-8467-6c6294111ab6,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-workflowpzkmn/series-workflowpzkmn-convert-artifact-3069519979/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": "4049ace6-4c8d-47c6-a298-dd7b2fecb5b3", "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-workflowpzkmn/series-workflowpzkmn-build-action-355100047/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-05 09:01:46 +0000 UTC FinishedAt: 2026-08-05 09:18:17 +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:*e7989de7-01c3-4cd1-8467-6c6294111ab6,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-workflowpzkmn/series-workflowpzkmn-convert-artifact-3069519979/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": "4049ace6-4c8d-47c6-a298-dd7b2fecb5b3", "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-workflowpzkmn/series-workflowpzkmn-build-action-355100047/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-05 09:18:27 +0000 UTC FinishedAt: 2026-08-05 09:18:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-05 09:18:27 +0000 UTC FinishedAt: 2026-08-05 09:18:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-05 09:18:27 +0000 UTC FinishedAt: 2026-08-05 09:20:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-05 09:18:27 +0000 UTC FinishedAt: 2026-08-05 09:19:59 +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:*4049ace6-4c8d-47c6-a298-dd7b2fecb5b3,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-workflowpzkmn/series-workflowpzkmn-build-action-355100047/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-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-05 09:20:09 +0000 UTC FinishedAt: 2026-08-05 09:22:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-05 09:20:09 +0000 UTC FinishedAt: 2026-08-05 09:22:49 +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":["mt76u_tx_queue_skb"],"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:*33152c76-cb9f-445b-a6c9-b9ce7c0f97ad,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4049ace6-4c8d-47c6-a298-dd7b2fecb5b3,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-workflowpzkmn/series-workflowpzkmn-build-action-479230170/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-workflowpzkmn/series-workflowpzkmn-build-action-355100047/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-05 09:20:09 +0000 UTC FinishedAt: 2026-08-05 09:20:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-05 09:20:09 +0000 UTC FinishedAt: 2026-08-05 09:20:14 +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":["mt76u_tx_queue_skb"],"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-workflowpzkmn/series-workflowpzkmn-convert-artifact-3964909956/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-05 09:20:09 +0000 UTC FinishedAt: 2026-08-05 09:20:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-05 09:20:09 +0000 UTC FinishedAt: 2026-08-05 09:20:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-05 09:20:09 +0000 UTC FinishedAt: 2026-08-05 09:20:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-05 09:20:19 +0000 UTC FinishedAt: 2026-08-05 09:22:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpzkmn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76u_tx_queue_skb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT76x0U","MT76x2U","MT7921U","MT7925U"],"series_id":"bed237e5-db01-4c06-a2a0-891b78dcb078","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-05 09:20:19 +0000 UTC FinishedAt: 2026-08-05 09:22:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*33152c76-cb9f-445b-a6c9-b9ce7c0f97ad,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4049ace6-4c8d-47c6-a298-dd7b2fecb5b3,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-workflowpzkmn/series-workflowpzkmn-build-action-479230170/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-workflowpzkmn/series-workflowpzkmn-build-action-355100047/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-workflowpzkmn/series-workflowpzkmn-convert-artifact-3964909956/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,}