Name: series-workflowv98x5 Phase: Succeeded StartedAt: 2026-08-01 06:51:31 +0000 UTC FinishedAt: 2026-08-01 11:03:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[0] Phase: Succeeded StartedAt: 2026-08-01 06:51:31 +0000 UTC FinishedAt: 2026-08-01 07:06:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[0].run-triage Phase: Succeeded StartedAt: 2026-08-01 06:51:31 +0000 UTC FinishedAt: 2026-08-01 07:06:47 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a2cf4ef33184df0ae9e1a2b05b550133dde1698c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a2cf4ef33184df0ae9e1a2b05b550133dde1698c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "d9f9d71e-7210-4d70-9275-d7349ba45baf" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_vm_ioctl_enable_cap", "kvm_arch_vm_ioctl" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA3OjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV92bV9pb2N0bF9lbmFibGVfY2FwJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX3ZtX2lvY3RsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBib3VuZHMgY2hlY2tpbmcgbG9naWMgZm9yIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYW5kIEtWTV9TRVRfQk9PVF9DUFVfSUQgaW9jdGxzIGluIEtWTSB4ODYuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDc6MDY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2OWVhOWQ3ZjJiMGNmNTc3OTllYzdmOGVlNGYzMjY0YmFjN2YxNGEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMSAwNzowNjowNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbmluZGV4IGUzMDAzYTI0MWQ1YjAuLmRhYjlhMjhjMGZiNTEgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxuQEAgLTg1OTMsMjEgJiM0Mzs4NTkzLDI0IEBAIEtWTV9YODZfUVVJUktfTkVTVEVEX1NWTV9TSEFSRURfUEFUICAgICAgICBCeSBkZWZhdWx0LCBLVk0gZm9yIG5lc3RlZCBTVk0gZ3Vlc3RzXG4gXG4gOkFyY2hpdGVjdHVyZXM6IHg4NlxuIDpUYXJnZXQ6IFZNXG4tOlBhcmFtZXRlcnM6IGFyZ3NbMF0gLSBtYXhpbXVtIEFQSUMgSUQgdmFsdWUgc2V0IGZvciBjdXJyZW50IFZNXG4mIzQzOzpQYXJhbWV0ZXJzOiBhcmdzWzBdIC0gbWF4aW11bSBBUElDIElEIHZhbHVlIChwbHVzIG9uZSkgc2V0IGZvciBjdXJyZW50IFZNXG4gOlJldHVybnM6IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBhcmdzWzBdIGlzIGJleW9uZCBLVk1fTUFYX1ZDUFVfSURTXG4gICAgICAgICAgIHN1cHBvcnRlZCBpbiBLVk0gb3IgaWYgaXQgaGFzIGJlZW4gc2V0LlxuIFxuLVRoaXMgY2FwYWJpbGl0eSBhbGxvd3MgdXNlcnNwYWNlIHRvIHNwZWNpZnkgbWF4aW11bSBwb3NzaWJsZSBBUElDIElEXG4mIzQzO1RoaXMgY2FwYWJpbGl0eSBhbGxvd3MgdXNlcnNwYWNlIHRvIHNwZWNpZnkgYSBsaW1pdCBvbiBBUElDIElEIHZhbHVlc1xuIGFzc2lnbmVkIGZvciBjdXJyZW50IFZNIHNlc3Npb24gcHJpb3IgdG8gdGhlIGNyZWF0aW9uIG9mIHZDUFVzLCBzYXZpbmdcbiBtZW1vcnkgZm9yIGRhdGEgc3RydWN0dXJlcyBpbmRleGVkIGJ5IHRoZSBBUElDIElELiAgVXNlcnNwYWNlIGlzIGFibGVcbiB0byBjYWxjdWxhdGUgdGhlIGxpbWl0IHRvIEFQSUMgSUQgdmFsdWVzIGZyb20gZGVzaWduYXRlZFxuIENQVSB0b3BvbG9neS5cbiBcbi1UaGUgdmFsdWUgY2FuIGJlIGNoYW5nZWQgb25seSB1bnRpbCBLVk1fRU5BQkxFX0NBUCBpcyBzZXQgdG8gYSBub256ZXJvXG4mIzQzO1RoZSBsaW1pdCBpcyBub3QgaW5jbHVzaXZlLCBpLmUuIHRoZSBtYXhpbXVtIHBvc3NpYmxlIEFQSUMgSUQgdmFsdWUgaXNcbiYjNDM7YXJnc1swXSAtIDEuXG4mIzQzO1xuJiM0MztUaGUgY2FwYWJpbGl0eSB2YWx1ZSBjYW4gb25seSBiZSBjaGFuZ2VkIHVudGlsIGl0IGlzIHNldCB0byBhIG5vbnplcm9cbiB2YWx1ZSBvciB1bnRpbCBhIHZDUFUgaXMgY3JlYXRlZC4gIFVwb24gY3JlYXRpb24gb2YgdGhlIGZpcnN0IHZDUFUsXG4gaWYgdGhlIHZhbHVlIHdhcyBzZXQgdG8gemVybyBvciBLVk1fRU5BQkxFX0NBUCB3YXMgbm90IGludm9rZWQsIEtWTVxuLXVzZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBLVk1fQ0hFQ0tfRVhURU5TSU9OKEtWTV9DQVBfTUFYX1ZDUFVfSUQpIGFzXG4tdGhlIG1heGltdW0gQVBJQyBJRC5cbiYjNDM7dXNlcyB0aGUgcmV0dXJuIHZhbHVlIG9mIEtWTV9DSEVDS19FWFRFTlNJT04oS1ZNX0NBUF9NQVhfVkNQVV9JRCkgLSAxXG4mIzQzO2FzIHRoZSBtYXhpbXVtIEFQSUMgSUQuXG4gXG4gNy4zMyBLVk1fQ0FQX1g4Nl9OT1RJRllfVk1FWElUXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5pbmRleCA0N2NiOWViYTExM2IxLi5iNTc2YjQ2ODY5ZDI5IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC02OTA4LDcgJiM0Mzs2OTA4LDcgQEAgaW50IGt2bV92bV9pb2N0bF9lbmFibGVfY2FwKHN0cnVjdCBrdm0gKmt2bSxcbiBcdFx0XHRicmVhaztcbiBcbiBcdFx0bXV0ZXhfbG9jayhcdTAwMjZrdm0tXHUwMDNlbG9jayk7XG4tXHRcdGlmIChrdm0tXHUwMDNlYXJjaC5ic3BfdmNwdV9pZCBcdTAwM2UgY2FwLVx1MDAzZWFyZ3NbMF0pIHtcbiYjNDM7XHRcdGlmIChrdm0tXHUwMDNlYXJjaC5ic3BfdmNwdV9pZCBcdTAwM2U9IGNhcC1cdTAwM2VhcmdzWzBdKSB7XG4gXHRcdFx0O1xuIFx0XHR9IGVsc2UgaWYgKGt2bS1cdTAwM2VhcmNoLm1heF92Y3B1X2lkcyA9PSBjYXAtXHUwMDNlYXJnc1swXSkge1xuIFx0XHRcdHIgPSAwO1xuQEAgLTc0NzgsOCAmIzQzOzc0NzgsOCBAQCBpbnQga3ZtX2FyY2hfdm1faW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCwgdW5zaWduZWQgbG9uZyBhcmcpXG4gXHRcdG11dGV4X2xvY2soXHUwMDI2a3ZtLVx1MDAzZWxvY2spO1xuIFx0XHRpZiAoa3ZtLVx1MDAzZWNyZWF0ZWRfdmNwdXMpXG4gXHRcdFx0ciA9IC1FQlVTWTtcbi1cdFx0ZWxzZSBpZiAoYXJnIFx1MDAzZSBLVk1fTUFYX1ZDUFVfSURTIHx8XG4tXHRcdFx0IChrdm0tXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMgXHUwMDI2XHUwMDI2IGFyZyBcdTAwM2Uga3ZtLVx1MDAzZWFyY2gubWF4X3ZjcHVfaWRzKSlcbiYjNDM7XHRcdGVsc2UgaWYgKGFyZyBcdTAwM2U9IEtWTV9NQVhfVkNQVV9JRFMgfHxcbiYjNDM7XHRcdFx0IChrdm0tXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMgXHUwMDI2XHUwMDI2IGFyZyBcdTAwM2U9IGt2bS1cdTAwM2VhcmNoLm1heF92Y3B1X2lkcykpXG4gXHRcdFx0ciA9IC1FSU5WQUw7XG4gXHRcdGVsc2VcbiBcdFx0XHRrdm0tXHUwMDNlYXJjaC5ic3BfdmNwdV9pZCA9IGFyZztcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L21heF92Y3B1aWRfY2FwX3Rlc3QuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jXG5pbmRleCA3ZTJiZmIzYzNmM2JhLi40M2YxNmMwNTJkZTRhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jXG5AQCAtMzAsMjIgJiM0MzszMCwyNSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKVxuIFx0aWYgKGt2bV9oYXNfY2FwKEtWTV9DQVBfU0VUX0JPT1RfQ1BVX0lEKSkge1xuIFx0XHR2bV9pb2N0bCh2bSwgS1ZNX1NFVF9CT09UX0NQVV9JRCwgKHZvaWQgKilNQVhfVkNQVV9JRCk7XG4gXG4tXHRcdC8qIFRyeSBzZXR0aW5nIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYmVsb3cgQk9PVF9DUFVfSUQgKi9cbi1cdFx0cmV0ID0gX192bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCAtIDEpO1xuJiM0MztcdFx0LyogVHJ5IHNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBiZWxvdyBvciBlcXVhbCB0byBCT09UX0NQVV9JRCAqL1xuJiM0MztcdFx0cmV0ID0gX192bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCk7XG4gXHRcdFRFU1RfQVNTRVJUKHJldCBcdTAwM2MgMCxcbi1cdFx0XHQgICAgXCYjMzQ7U2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIGJlbG93IEJPT1RfQ1BVX0lEIHNob3VsZCBmYWlsXCYjMzQ7KTtcbiYjNDM7XHRcdFx0ICAgIFwmIzM0O1NldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBcdTAwM2M9IEJPT1RfQ1BVX0lEIHNob3VsZCBmYWlsXCYjMzQ7KTtcbiBcdH1cbiBcbi1cdC8qIFNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEICovXG4tXHR2bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCk7XG4mIzQzO1x0LypcbiYjNDM7XHQgKiBTZXQgS1ZNX0NBUF9NQVhfVkNQVV9JRC4gTm90ZTogS1ZNX0NBUF9NQVhfVkNQVV9JRCBpcyBhIG1pc25vbWVyLFxuJiM0MztcdCAqIGl0IGFjdHVhbGx5IHJlcHJlc2VudHMgbWF4aW11bSB2Y3B1X2lkIHBsdXMgb25lLlxuJiM0MztcdCAqL1xuJiM0MztcdHZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEICYjNDM7IDEpO1xuIFxuIFx0LyogVHJ5IHRvIHNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFnYWluICovXG4tXHRyZXQgPSBfX3ZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEICYjNDM7IDEpO1xuJiM0MztcdHJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgJiM0MzsgMik7XG4gXHRURVNUX0FTU0VSVChyZXQgXHUwMDNjIDAsXG4gXHRcdCAgICBcJiMzNDtTZXR0aW5nIEtWTV9DQVBfTUFYX1ZDUFVfSUQgbXVsdGlwbGUgdGltZXMgc2hvdWxkIGZhaWxcJiMzNDspO1xuIFxuIFx0LyogQ3JlYXRlIHZDUFUgd2l0aCBpZCBiZXlvbmQgS1ZNX0NBUF9NQVhfVkNQVV9JRCBjYXAgKi9cbi1cdHJldCA9IF9fdm1faW9jdGwodm0sIEtWTV9DUkVBVEVfVkNQVSwgKHZvaWQgKilNQVhfVkNQVV9JRCk7XG4mIzQzO1x0cmV0ID0gX192bV9pb2N0bCh2bSwgS1ZNX0NSRUFURV9WQ1BVLCAodm9pZCAqKShNQVhfVkNQVV9JRCAmIzQzOyAxKSk7XG4gXHRURVNUX0FTU0VSVChyZXQgXHUwMDNjIDAsIFwmIzM0O0NyZWF0aW5nIHZDUFUgd2l0aCBJRCBcdTAwM2UgTUFYX1ZDUFVfSUQgc2hvdWxkIGZhaWxcJiMzNDspO1xuIFxuIFx0LyogQ3JlYXRlIHZDUFUgd2l0aCBiaXRzIDYzOjMyICE9IDAsIGJ1dCBhbiBvdGhlcndpc2UgdmFsaWQgaWQgKi9cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L3NldF9ib290X2NwdV9pZC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9zZXRfYm9vdF9jcHVfaWQuY1xuaW5kZXggOGUzODk4NjQ2YzY5ZC4uMWM0ZWJkZjhlODJjNSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmNcbkBAIC0zOSw4ICYjNDM7MzksOCBAQCBzdGF0aWMgdm9pZCB0ZXN0X3NldF9pbnZhbGlkX2JzcChzdHJ1Y3Qga3ZtX3ZtICp2bSlcbiBcdGludCByO1xuIFxuIFx0aWYgKG1heF92Y3B1X2lkKSB7XG4tXHRcdHIgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKShtYXhfdmNwdV9pZCAmIzQzOyAxKSk7XG4tXHRcdFRFU1RfQVNTRVJUKHIgPT0gLTEgXHUwMDI2XHUwMDI2IGVycm5vID09IEVJTlZBTCwgXCYjMzQ7QlNQIHdpdGggSUQgXHUwMDNlIE1BWCBzaG91bGQgZmFpbFwmIzM0Oyk7XG4mIzQzO1x0XHRyID0gX192bV9pb2N0bCh2bSwgS1ZNX1NFVF9CT09UX0NQVV9JRCwgKHZvaWQgKiltYXhfdmNwdV9pZCk7XG4mIzQzO1x0XHRURVNUX0FTU0VSVChyID09IC0xIFx1MDAyNlx1MDAyNiBlcnJubyA9PSBFSU5WQUwsIFwmIzM0O0JTUCB3aXRoIElEIFx1MDAzZT0gTUFYIHNob3VsZCBmYWlsXCYjMzQ7KTtcbiBcdH1cbiBcbiBcdHIgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKSgxTCBcdTAwM2NcdTAwM2MgMzIpKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAmIzM0OywKICAgICYjMzQ7a3ZtX2FyY2hfdm1faW9jdGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGJvdW5kcyBjaGVja2luZyBsb2dpYyBmb3IgS1ZNX0NBUF9NQVhfVkNQVV9JRCBhbmQgS1ZNX1NFVF9CT09UX0NQVV9JRCBpb2N0bHMgaW4gS1ZNIHg4Ni4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDY5ZWE5ZDdmMmIwY2Y1Nzc5OWVjN2Y4ZWU0ZjMyNjRiYWM3ZjE0YTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAxIDA3OjA2OjA2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0CmluZGV4IGUzMDAzYTI0MWQ1YjAuLmRhYjlhMjhjMGZiNTEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdAomIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QKQEAgLTg1OTMsMjEgJiM0Mzs4NTkzLDI0IEBAIEtWTV9YODZfUVVJUktfTkVTVEVEX1NWTV9TSEFSRURfUEFUICAgICAgICBCeSBkZWZhdWx0LCBLVk0gZm9yIG5lc3RlZCBTVk0gZ3Vlc3RzCiAKIDpBcmNoaXRlY3R1cmVzOiB4ODYKIDpUYXJnZXQ6IFZNCi06UGFyYW1ldGVyczogYXJnc1swXSAtIG1heGltdW0gQVBJQyBJRCB2YWx1ZSBzZXQgZm9yIGN1cnJlbnQgVk0KJiM0Mzs6UGFyYW1ldGVyczogYXJnc1swXSAtIG1heGltdW0gQVBJQyBJRCB2YWx1ZSAocGx1cyBvbmUpIHNldCBmb3IgY3VycmVudCBWTQogOlJldHVybnM6IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBhcmdzWzBdIGlzIGJleW9uZCBLVk1fTUFYX1ZDUFVfSURTCiAgICAgICAgICAgc3VwcG9ydGVkIGluIEtWTSBvciBpZiBpdCBoYXMgYmVlbiBzZXQuCiAKLVRoaXMgY2FwYWJpbGl0eSBhbGxvd3MgdXNlcnNwYWNlIHRvIHNwZWNpZnkgbWF4aW11bSBwb3NzaWJsZSBBUElDIElECiYjNDM7VGhpcyBjYXBhYmlsaXR5IGFsbG93cyB1c2Vyc3BhY2UgdG8gc3BlY2lmeSBhIGxpbWl0IG9uIEFQSUMgSUQgdmFsdWVzCiBhc3NpZ25lZCBmb3IgY3VycmVudCBWTSBzZXNzaW9uIHByaW9yIHRvIHRoZSBjcmVhdGlvbiBvZiB2Q1BVcywgc2F2aW5nCiBtZW1vcnkgZm9yIGRhdGEgc3RydWN0dXJlcyBpbmRleGVkIGJ5IHRoZSBBUElDIElELiAgVXNlcnNwYWNlIGlzIGFibGUKIHRvIGNhbGN1bGF0ZSB0aGUgbGltaXQgdG8gQVBJQyBJRCB2YWx1ZXMgZnJvbSBkZXNpZ25hdGVkCiBDUFUgdG9wb2xvZ3kuCiAKLVRoZSB2YWx1ZSBjYW4gYmUgY2hhbmdlZCBvbmx5IHVudGlsIEtWTV9FTkFCTEVfQ0FQIGlzIHNldCB0byBhIG5vbnplcm8KJiM0MztUaGUgbGltaXQgaXMgbm90IGluY2x1c2l2ZSwgaS5lLiB0aGUgbWF4aW11bSBwb3NzaWJsZSBBUElDIElEIHZhbHVlIGlzCiYjNDM7YXJnc1swXSAtIDEuCiYjNDM7CiYjNDM7VGhlIGNhcGFiaWxpdHkgdmFsdWUgY2FuIG9ubHkgYmUgY2hhbmdlZCB1bnRpbCBpdCBpcyBzZXQgdG8gYSBub256ZXJvCiB2YWx1ZSBvciB1bnRpbCBhIHZDUFUgaXMgY3JlYXRlZC4gIFVwb24gY3JlYXRpb24gb2YgdGhlIGZpcnN0IHZDUFUsCiBpZiB0aGUgdmFsdWUgd2FzIHNldCB0byB6ZXJvIG9yIEtWTV9FTkFCTEVfQ0FQIHdhcyBub3QgaW52b2tlZCwgS1ZNCi11c2VzIHRoZSByZXR1cm4gdmFsdWUgb2YgS1ZNX0NIRUNLX0VYVEVOU0lPTihLVk1fQ0FQX01BWF9WQ1BVX0lEKSBhcwotdGhlIG1heGltdW0gQVBJQyBJRC4KJiM0Mzt1c2VzIHRoZSByZXR1cm4gdmFsdWUgb2YgS1ZNX0NIRUNLX0VYVEVOU0lPTihLVk1fQ0FQX01BWF9WQ1BVX0lEKSAtIDEKJiM0MzthcyB0aGUgbWF4aW11bSBBUElDIElELgogCiA3LjMzIEtWTV9DQVBfWDg2X05PVElGWV9WTUVYSVQKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IDQ3Y2I5ZWJhMTEzYjEuLmI1NzZiNDY4NjlkMjkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTY5MDgsNyAmIzQzOzY5MDgsNyBAQCBpbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLAogCQkJYnJlYWs7CiAKIAkJbXV0ZXhfbG9jaygmYW1wO2t2bS0mZ3Q7bG9jayk7Ci0JCWlmIChrdm0tJmd0O2FyY2guYnNwX3ZjcHVfaWQgJmd0OyBjYXAtJmd0O2FyZ3NbMF0pIHsKJiM0MzsJCWlmIChrdm0tJmd0O2FyY2guYnNwX3ZjcHVfaWQgJmd0Oz0gY2FwLSZndDthcmdzWzBdKSB7CiAJCQk7CiAJCX0gZWxzZSBpZiAoa3ZtLSZndDthcmNoLm1heF92Y3B1X2lkcyA9PSBjYXAtJmd0O2FyZ3NbMF0pIHsKIAkJCXIgPSAwOwpAQCAtNzQ3OCw4ICYjNDM7NzQ3OCw4IEBAIGludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZykKIAkJbXV0ZXhfbG9jaygmYW1wO2t2bS0mZ3Q7bG9jayk7CiAJCWlmIChrdm0tJmd0O2NyZWF0ZWRfdmNwdXMpCiAJCQlyID0gLUVCVVNZOwotCQllbHNlIGlmIChhcmcgJmd0OyBLVk1fTUFYX1ZDUFVfSURTIHx8Ci0JCQkgKGt2bS0mZ3Q7YXJjaC5tYXhfdmNwdV9pZHMgJmFtcDsmYW1wOyBhcmcgJmd0OyBrdm0tJmd0O2FyY2gubWF4X3ZjcHVfaWRzKSkKJiM0MzsJCWVsc2UgaWYgKGFyZyAmZ3Q7PSBLVk1fTUFYX1ZDUFVfSURTIHx8CiYjNDM7CQkJIChrdm0tJmd0O2FyY2gubWF4X3ZjcHVfaWRzICZhbXA7JmFtcDsgYXJnICZndDs9IGt2bS0mZ3Q7YXJjaC5tYXhfdmNwdV9pZHMpKQogCQkJciA9IC1FSU5WQUw7CiAJCWVsc2UKIAkJCWt2bS0mZ3Q7YXJjaC5ic3BfdmNwdV9pZCA9IGFyZzsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmMKaW5kZXggN2UyYmZiM2MzZjNiYS4uNDNmMTZjMDUyZGU0YSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmMKQEAgLTMwLDIyICYjNDM7MzAsMjUgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlpZiAoa3ZtX2hhc19jYXAoS1ZNX0NBUF9TRVRfQk9PVF9DUFVfSUQpKSB7CiAJCXZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKU1BWF9WQ1BVX0lEKTsKIAotCQkvKiBUcnkgc2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIGJlbG93IEJPT1RfQ1BVX0lEICovCi0JCXJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgLSAxKTsKJiM0MzsJCS8qIFRyeSBzZXR0aW5nIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYmVsb3cgb3IgZXF1YWwgdG8gQk9PVF9DUFVfSUQgKi8KJiM0MzsJCXJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQpOwogCQlURVNUX0FTU0VSVChyZXQgJmx0OyAwLAotCQkJICAgICYjMzQ7U2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIGJlbG93IEJPT1RfQ1BVX0lEIHNob3VsZCBmYWlsJiMzNDspOwomIzQzOwkJCSAgICAmIzM0O1NldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCAmbHQ7PSBCT09UX0NQVV9JRCBzaG91bGQgZmFpbCYjMzQ7KTsKIAl9CiAKLQkvKiBTZXQgS1ZNX0NBUF9NQVhfVkNQVV9JRCAqLwotCXZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEKTsKJiM0MzsJLyoKJiM0MzsJICogU2V0IEtWTV9DQVBfTUFYX1ZDUFVfSUQuIE5vdGU6IEtWTV9DQVBfTUFYX1ZDUFVfSUQgaXMgYSBtaXNub21lciwKJiM0MzsJICogaXQgYWN0dWFsbHkgcmVwcmVzZW50cyBtYXhpbXVtIHZjcHVfaWQgcGx1cyBvbmUuCiYjNDM7CSAqLwomIzQzOwl2bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCAmIzQzOyAxKTsKIAogCS8qIFRyeSB0byBzZXQgS1ZNX0NBUF9NQVhfVkNQVV9JRCBhZ2FpbiAqLwotCXJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgJiM0MzsgMSk7CiYjNDM7CXJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgJiM0MzsgMik7CiAJVEVTVF9BU1NFUlQocmV0ICZsdDsgMCwKIAkJICAgICYjMzQ7U2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIG11bHRpcGxlIHRpbWVzIHNob3VsZCBmYWlsJiMzNDspOwogCiAJLyogQ3JlYXRlIHZDUFUgd2l0aCBpZCBiZXlvbmQgS1ZNX0NBUF9NQVhfVkNQVV9JRCBjYXAgKi8KLQlyZXQgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fQ1JFQVRFX1ZDUFUsICh2b2lkICopTUFYX1ZDUFVfSUQpOwomIzQzOwlyZXQgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fQ1JFQVRFX1ZDUFUsICh2b2lkICopKE1BWF9WQ1BVX0lEICYjNDM7IDEpKTsKIAlURVNUX0FTU0VSVChyZXQgJmx0OyAwLCAmIzM0O0NyZWF0aW5nIHZDUFUgd2l0aCBJRCAmZ3Q7IE1BWF9WQ1BVX0lEIHNob3VsZCBmYWlsJiMzNDspOwogCiAJLyogQ3JlYXRlIHZDUFUgd2l0aCBiaXRzIDYzOjMyICE9IDAsIGJ1dCBhbiBvdGhlcndpc2UgdmFsaWQgaWQgKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L3NldF9ib290X2NwdV9pZC5jCmluZGV4IDhlMzg5ODY0NmM2OWQuLjFjNGViZGY4ZTgyYzUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9zZXRfYm9vdF9jcHVfaWQuYwpAQCAtMzksOCAmIzQzOzM5LDggQEAgc3RhdGljIHZvaWQgdGVzdF9zZXRfaW52YWxpZF9ic3Aoc3RydWN0IGt2bV92bSAqdm0pCiAJaW50IHI7CiAKIAlpZiAobWF4X3ZjcHVfaWQpIHsKLQkJciA9IF9fdm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopKG1heF92Y3B1X2lkICYjNDM7IDEpKTsKLQkJVEVTVF9BU1NFUlQociA9PSAtMSAmYW1wOyZhbXA7IGVycm5vID09IEVJTlZBTCwgJiMzNDtCU1Agd2l0aCBJRCAmZ3Q7IE1BWCBzaG91bGQgZmFpbCYjMzQ7KTsKJiM0MzsJCXIgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKW1heF92Y3B1X2lkKTsKJiM0MzsJCVRFU1RfQVNTRVJUKHIgPT0gLTEgJmFtcDsmYW1wOyBlcnJubyA9PSBFSU5WQUwsICYjMzQ7QlNQIHdpdGggSUQgJmd0Oz0gTUFYIHNob3VsZCBmYWlsJiMzNDspOwogCX0KIAogCXIgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKSgxTCAmbHQ7Jmx0OyAzMikpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDIxCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNTg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEtWTSB4ODYgUGF0Y2gqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIGRvd24gdGhpcyBLVk0geDg2IHBhdGNoLiBJdCBsb29rcyBsaWtlIHdlJiMzOTt2ZSBnb3QgYSBtb2RpZmljYXRpb24gcmVsYXRlZCB0byBob3cgd2UgaGFuZGxlIGBLVk1fQ0FQX01BWF9WQ1BVX0lEYCBhbmQgYEtWTV9TRVRfQk9PVF9DUFVfSURgLiBUaGUgY2hhbmdlcyBhcmUgZm9jdXNlZCBpbiBgYXJjaC94ODYva3ZtL3g4Ni5jYCwgYW5kIGl0JiMzOTtzIGEgc3VidGxlIGJ1dCBwb3RlbnRpYWxseSBzaWduaWZpY2FudCBhZGp1c3RtZW50IHRvIHRoZSBib3VuZHMgY2hlY2tpbmcgbG9naWMuIEkgc2VlIHRoZXkmIzM5O3JlIGNoYW5naW5nIHRoZSBncmVhdGVyLXRoYW4gb3BlcmF0b3JzIChgJmd0O2ApIHRvIGdyZWF0ZXItdGhhbi1vci1lcXVhbCAoYCZndDs9YCkgaW4gYSBjb3VwbGUgb2YgcGxhY2VzLgoKU3BlY2lmaWNhbGx5LCB0aGUgZGlmZiBpbXBhY3RzIGBrdm1fdm1faW9jdGxfZW5hYmxlX2NhcGAgYW5kIGBrdm1fYXJjaF92bV9pb2N0bGAuIE15IGV4cGVydCBpbnN0aW5jdHMgdGVsbCBtZSB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY29zbWV0aWMgb25lLiBNb2RpZnlpbmcgdGhlIGNvbXBhcmlzb24gb3BlcmF0b3JzIGxpa2UgdGhpcyBjYW4gaGF2ZSBpbXBsaWNhdGlvbnMgZm9yIGhvdyB0aGUgc3lzdGVtIGhhbmRsZXMgQ1BVIElEcyBhbmQgdmlydHVhbCBDUFUgaW5pdGlhbGl6YXRpb24sIHBvdGVudGlhbGx5IGFmZmVjdGluZyByZXNvdXJjZSBhbGxvY2F0aW9uIG9yIGhvdyB0aGUgZ3Vlc3QgaW50ZXJhY3RzIHdpdGggdGhlIGhvc3QuCgpOb3csIG15IGltbWVkaWF0ZSBjb25jZXJucyBhcmUgYXJvdW5kIHRoZSBwb3RlbnRpYWwgZm9yIHJlZ3Jlc3Npb25zLCBzdWJ0bGUgYnVncywgb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zLiBUaGlzIGRlZmluaXRlbHkgd2FycmFudHMgdGhvcm91Z2ggZnV6emluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHByZWNpc2UgY29uZGl0aW9ucyB1bmRlciB3aGljaCB0aGVzZSBjaGVja3MgYXJlIHRyaWdnZXJlZC4KCkkmIzM5O20gdGhpbmtpbmcsICYjMzQ7TGV0JiMzOTtzIHRyYWNrIGRvd24gd2hlcmUgdGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIGFuZCB0aGUgY29uZGl0aW9ucyB0aGF0IGxlYWQgdG8gdGhlaXIgaW52b2NhdGlvbi4mIzM0OyBUaGUgY29kZSYjMzk7cyBpbiBgYXJjaC94ODYva3ZtL3g4Ni5jYCwgc28gaXQmIzM5O3MgeDg2LXNwZWNpZmljLiBLVk0gaXRzZWxmIGlzIGVuYWJsZWQgYnkgYENPTkZJR19LVk1gLCBzbyB0aGF0JiMzOTtzIHRoZSBiYXNlbGluZS4gSSBzaG91bGQgc3RhcnQgYnkgdmVyaWZ5aW5nIHRoYXQgYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBpcyBhY3R1YWxseSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgaWYgYW55LCBhZmZlY3QgaXRzIGJlaGF2aW9yLiBJIG5lZWQgdG8ga25vdyB0aGUgY29udHJvbCBmbG93IGhlcmUuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBLVk0gaW9jdGwgaGFuZGxpbmcgdG8gZnVsbHkgdW5kZXJzdGFuZCBob3cgdGhlc2UgbmV3IGNvbXBhcmlzb25zIGltcGFjdCB0aGUgb3ZlcmFsbCBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDc6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0veDg2LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3g4Ni5jPTY3MDU9dm9pZCBrdm1fYXJjaF9zeW5jX2RpcnR5X2xvZyhzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fbWVtb3J5X3Nsb3QgKm1lbXNsb3QpXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTY3MjMtXG5hcmNoL3g4Ni9rdm0veDg2LmM6NjcyNDppbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLFxuYXJjaC94ODYva3ZtL3g4Ni5jLTY3MjUtXHRcdFx0ICAgIHN0cnVjdCBrdm1fZW5hYmxlX2NhcCAqY2FwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA3OjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUyMTcKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGFzIGlmIHRoZXkmIzM5O3JlIG15IG93bjoKCioqQW5hbHl6aW5nIGBrdm1fYXJjaF92bV9pb2N0bGAqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gc3RyYWlnaHQgZm9yIGBrdm1fYXJjaF92bV9pb2N0bGAuIEkga25vdyB0aGlzIGZ1bmN0aW9uIGlzIGNyaXRpY2FsLiBJdCYjMzk7cyB0aGUgZ2F0ZWtlZXBlciwgdGhlIGNlbnRyYWwgcG9pbnQgd2hlcmUgdmlydHVhbCBtYWNoaW5lIG1hbmFnZW1lbnQgaW50ZXJhY3RzIHdpdGggdGhlIHVuZGVybHlpbmcgYXJjaGl0ZWN0dXJlLiBJdCYjMzk7cyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucywgb3Igd2hlcmUgdGhpbmdzIGNhbiBnbyBob3JyaWJseSB3cm9uZyEgU28sIGxldCYjMzk7cyBzdGFydCBoZXJlLiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgYmVpbmcgcmVxdWVzdGVkLCBob3cgdGhlIGluZm9ybWF0aW9uIGlzIGJlaW5nIGhhbmRsZWQsIGFuZCB3aGF0IHNhZmVndWFyZHMgYXJlIGluIHBsYWNlLiBUaGlzIGlzIGdyb3VuZCB6ZXJvIGZvciBhIGRlZXAgZGl2ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fYXJjaF92bV9pb2N0bCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS94ODYuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0veDg2LmM9NzI0NT1sb25nIGt2bV9hcmNoX3ZjcHVfdW5sb2NrZWRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCxcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmMtNzI1Ny1cbmFyY2gveDg2L2t2bS94ODYuYzo3MjU4OmludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZylcbmFyY2gveDg2L2t2bS94ODYuYy03MjU5LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NTc0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biBtZW50YWwgcHJvY2Vzc2luZzoKCioqQW5hbHl6aW5nIGEgS1ZNIFBhdGNoIG9uIHg4NioqCgpBbHJpZ2h0LCBzbyB0aGUgcGF0Y2ggaXMgcG9raW5nIGFyb3VuZCBpbiB0aGUgaGVhcnQgb2YgdGhlIHg4NiBLVk0gaW1wbGVtZW50YXRpb24g4oCTIHNwZWNpZmljYWxseSwgYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBhbmQgYGt2bV9hcmNoX3ZtX2lvY3RsYCwgZm91bmQgaW4gYGFyY2gveDg2L2t2bS94ODYuY2AuIFRob3NlIGFyZSB0aGUgZnVuZGFtZW50YWwgaW9jdGwgaGFuZGxlcnMgZm9yIHRoZSB4ODYgYXJjaGl0ZWN0dXJlIHdpdGhpbiBLVk0uIE1lYW5pbmcgdGhpcyBpcyBsaWtlbHkgYSBmYWlybHkgbG93LWxldmVsIGZlYXR1cmUgb3IgY2FwYWJpbGl0eSBjaGFuZ2UuCgpOb3csIGEgY3JpdGljYWwgZmlyc3Qgc3RlcDogd2hhdCBjb25maWd1cmF0aW9ucyBkb2VzIHRoaXMgZGVwZW5kIG9uPyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgd2hldGhlciBJIGV2ZW4gKmNhcmUqIGFib3V0IHRoaXMgY29kZSBpZiB0aGUgYnVpbGQgZG9lc24mIzM5O3QgYWxpZ24gd2l0aCBteSBjdXJyZW50IGludGVyZXN0cy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcywgb2YgY291cnNlLCB0byBzZWUgaWYgYEtWTWAgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgdGhpcyB0byBiZSBidWlsdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTV9YODZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxLVx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTUxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxuYXJjaC94ODYva3ZtL0tjb25maWctNTMtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjY5OmNvbmZpZyBLVk1fV0VSUk9SXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03MC1cdGJvb2wgXCYjMzQ7Q29tcGlsZSBLVk0gd2l0aCAtV2Vycm9yXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctODItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4Mzpjb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXHRib29sIFwmIzM0O0VuYWJsZSBzdXBwb3J0IGZvciBLVk0gc29mdHdhcmUtcHJvdGVjdGVkIFZNc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTk1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxuYXJjaC94ODYva3ZtL0tjb25maWctOTctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTA3OmNvbmZpZyBLVk1fSU5URUxfUFJPVkVfVkVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXCYjMzQ7Q2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTMzLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzUtXHRib29sIFwmIzM0O0ludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNDY6Y29uZmlnIEtWTV9BTURcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgQU1EIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE1Njpjb25maWcgS1ZNX0FNRF9TRVZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cdGJvb2wgXCYjMzQ7QU1EIFNlY3VyZSBFbmNyeXB0ZWQgVmlydHVhbGl6YXRpb24gKFNFVikgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3MS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mjpjb25maWcgS1ZNX0lPQVBJQ1xuYXJjaC94ODYva3ZtL0tjb25maWctMTczLVx0Ym9vbCBcJiMzNDtJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4MS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE4Mjpjb25maWcgS1ZNX1NNTVxuYXJjaC94ODYva3ZtL0tjb25maWctMTgzLVx0Ym9vbCBcJiMzNDtTeXN0ZW0gTWFuYWdlbWVudCBNb2RlIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE5Mzpjb25maWcgS1ZNX0hZUEVSVlxuYXJjaC94ODYva3ZtL0tjb25maWctMTk0LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBNaWNyb3NvZnQgSHlwZXItViBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDYtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDc6Y29uZmlnIEtWTV9YRU5cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwOC1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMTY6Y29uZmlnIEtWTV9QUk9WRV9NTVVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNy1cdGJvb2wgXCYjMzQ7UHJvdmUgS1ZNIE1NVSBjb3JyZWN0bmVzc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIyOC1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIyOTpjb25maWcgS1ZNX0VYVEVSTkFMX1dSSVRFX1RSQUNLSU5HXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzAtXHRib29sXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzI6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMy1cdGludCBcJiMzNDtNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDc6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzEwNQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDExNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIEtWTSBDb25maWd1cmF0aW9uIGFuZCBSZWFjaGFibGUgRnVuY3Rpb25zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCwgcmlnaHQgb2ZmIHRoZSBiYXQsIGl0JiMzOTtzIGhpdHRpbmcgYEtWTWAgY29uZmlndXJhdGlvbnMuIEkgY2FuIHNlZSB0aGUgY2hhbmdlcyBhcmUgZm9jdXNlZCBvbiBga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBgIGFuZCBga3ZtX2FyY2hfdm1faW9jdGxgLiBNeSBmaXJzdCB0aG91Z2h0IGlzLCB0aGVzZSBhcmUgZGVmaW5pdGVseSByZWFjaGFibGUgYW5kIHNob3VsZCBiZSBoaWdoIG9uIHRoZSBmdXp6aW5nIHByaW9yaXR5IGxpc3QuIEFueXRoaW5nIHRoYXQmIzM5O3MgdG91Y2hlZCBpbiBhIHBhdGNoIGxpa2UgdGhpcyBpcyBwcmltZSByZWFsIGVzdGF0ZSBmb3IgZmluZGluZyB2dWxuZXJhYmlsaXRpZXMuCgpCZWZvcmUgSSBkaXZlIHRvbyBkZWVwIGludG8gZnV6emluZywgSSBzaG91bGQgbWFrZSBzdXJlIEkgaGF2ZSBhbGwgdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9uIGR1Y2tzIGluIGEgcm93LiBJdCYjMzk7cyBzZWNvbmQgbmF0dXJlIGF0IHRoaXMgcG9pbnQgdG8gY2hlY2sgZm9yIGRlcGVuZGVuY2llcy4gSSBrbm93IGBLVk1gIGl0c2VsZiBkZXBlbmRzIG9uIGBWSVJUVUFMSVpBVElPTmAsIGFuZCB0aGVuIGl0JiMzOTtzIGVpdGhlciBgS1ZNX0lOVEVMYCBvciBgS1ZNX0FNRGAsIGRlcGVuZGluZyBvbiB0aGUgaG9zdC4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkmIzM5O2xsIHBvcCBvdmVyIHRvIGBhcmNoL3g4Ni9rdm0vS2NvbmZpZ2AgdG8gcmVjb25maXJtIHRoZSBgY29uZmlnIEtWTWAgZGVwZW5kZW5jaWVzLiBObyBwb2ludCBpbiB3YXN0aW5nIHRpbWUgcnVubmluZyBmdXp6ZXJzIHdpdGhvdXQgYSBwcm9wZXJseSBjb25maWd1cmVkIGVudmlyb25tZW50LiBHb3R0YSBoYXZlIGFsbCB0aGUgYml0cyBzZXQgY29ycmVjdGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWc9NTI9Y29uZmlnIEtWTVxuYXJjaC94ODYva3ZtL0tjb25maWctNTMtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbmFyY2gveDg2L2t2bS9LY29uZmlnOjU0Olx0ZGVwZW5kcyBvbiBYODZfTE9DQUxfQVBJQ1xuYXJjaC94ODYva3ZtL0tjb25maWctNTUtXHRoZWxwXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9Njk9Y29uZmlnIEtWTV9XRVJST1Jcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03Ni1cdCMgdGhlIGtlcm5lbC13aWRlIFdFUlJPUj15LlxuYXJjaC94ODYva3ZtL0tjb25maWc6Nzc6XHRkZXBlbmRzIG9uIEtWTV9YODYgXHUwMDI2XHUwMDI2ICgoRVhQRVJUIFx1MDAyNlx1MDAyNiAhS0FTQU4pIHx8IFdFUlJPUilcbmFyY2gveDg2L2t2bS9LY29uZmlnLTc4LVx0aGVscFxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTgzPWNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04NC1cdGJvb2wgXCYjMzQ7RW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXCYjMzQ7XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4NTpcdGRlcGVuZHMgb24gRVhQRVJUXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4NjpcdGRlcGVuZHMgb24gS1ZNX1g4NiBcdTAwMjZcdTAwMjYgWDg2XzY0XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Ny1cdHNlbGVjdCBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTk2PWNvbmZpZyBLVk1fSU5URUxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuYXJjaC94ODYva3ZtL0tjb25maWc6OTg6XHRkZXBlbmRzIG9uIEtWTSBcdTAwMjZcdTAwMjYgSUEzMl9GRUFUX0NUTFxuYXJjaC94ODYva3ZtL0tjb25maWctOTktXHRzZWxlY3QgWDg2X0ZSRUQgaWYgWDg2XzY0XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTA3PWNvbmZpZyBLVk1fSU5URUxfUFJPVkVfVkVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXCYjMzQ7Q2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcJiMzNDtcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwOTogICAgICAgIGRlcGVuZHMgb24gS1ZNX0lOVEVMIFx1MDAyNlx1MDAyNiBFWFBFUlRcbmFyY2gveDg2L2t2bS9LY29uZmlnLTExMC0gICAgICAgIGhlbHBcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMjMtXHRib29sIFwmIzM0O1NvZnR3YXJlIEd1YXJkIGVYdGVuc2lvbnMgKFNHWCkgVmlydHVhbGl6YXRpb25cJiMzNDtcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEyNDpcdGRlcGVuZHMgb24gWDg2X1NHWCBcdTAwMjZcdTAwMjYgS1ZNX0lOVEVMXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMjUtXHRoZWxwXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTM0PWNvbmZpZyBLVk1fSU5URUxfVERYXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTM2LVx0ZGVmYXVsdCB5XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMzc6XHRkZXBlbmRzIG9uIElOVEVMX1REWF9IT1NUXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzgtXHRzZWxlY3QgS1ZNX0dFTkVSSUNfTUVNT1JZX0FUVFJJQlVURVNcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xNDY9Y29uZmlnIEtWTV9BTURcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgQU1EIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ4Olx0ZGVwZW5kcyBvbiBLVk0gXHUwMDI2XHUwMDI2IChDUFVfU1VQX0FNRCB8fCBDUFVfU1VQX0hZR09OKVxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ5LVx0aGVscFxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTE1Nj1jb25maWcgS1ZNX0FNRF9TRVZcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTgtXHRkZWZhdWx0IHlcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE1OTpcdGRlcGVuZHMgb24gS1ZNX0FNRCBcdTAwMjZcdTAwMjYgWDg2XzY0XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNjA6XHRkZXBlbmRzIG9uIENSWVBUT19ERVZfU1BfUFNQIFx1MDAyNlx1MDAyNiAhKEtWTV9BTUQ9eSBcdTAwMjZcdTAwMjYgQ1JZUFRPX0RFVl9DQ1BfREQ9bSlcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE2MS1cdHNlbGVjdCBBUkNIX0hBU19DQ19QTEFURk9STVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTE3Mj1jb25maWcgS1ZNX0lPQVBJQ1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cdGRlZmF1bHQgeVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTc1Olx0ZGVwZW5kcyBvbiBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzYtXHRoZWxwXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTgyPWNvbmZpZyBLVk1fU01NXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTg0LVx0ZGVmYXVsdCB5XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODU6XHRkZXBlbmRzIG9uIEtWTV9YODZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4Ni1cdGhlbHBcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOTM9Y29uZmlnIEtWTV9IWVBFUlZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NC1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgTWljcm9zb2Z0IEh5cGVyLVYgZW11bGF0aW9uXCYjMzQ7XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxOTU6XHRkZXBlbmRzIG9uIEtWTV9YODZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5Ni1cdGRlZmF1bHQgeVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTIwNz1jb25maWcgS1ZNX1hFTlxuYXJjaC94ODYva3ZtL0tjb25maWctMjA4LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBYZW4gaHlwZXJjYWxsIGludGVyZmFjZVwmIzM0O1xuYXJjaC94ODYva3ZtL0tjb25maWc6MjA5Olx0ZGVwZW5kcyBvbiBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTAtXHRoZWxwXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MjE2PWNvbmZpZyBLVk1fUFJPVkVfTU1VXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTctXHRib29sIFwmIzM0O1Byb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcJiMzNDtcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxODpcdGRlcGVuZHMgb24gREVCVUdfS0VSTkVMXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMTk6XHRkZXBlbmRzIG9uIEtWTV9YODZcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIyMDpcdGRlcGVuZHMgb24gRVhQRVJUXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjEtXHRoZWxwXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MjMyPWNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzMtXHRpbnQgXCYjMzQ7TWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFwmIzM0O1xuYXJjaC94ODYva3ZtL0tjb25maWc6MjM0Olx0ZGVwZW5kcyBvbiBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzUtXHRyYW5nZSAxMDI0IDQwOTZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDc6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTIwNAoJCQkJCQkJb3V0cHV0OiAxMTUKCQkJCQkJCXRob3VnaHRzOiA5OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBicmVha2Rvd24gb2YgdGhpcy4KCioqS1ZNIEZ1enppbmcgU3RyYXRlZ3k6IEZvY3VzaW5nIG9uIEtleSBpb2N0bHMqKgoKUmlnaHQsIHNvIHRoZSBgS1ZNYCBjb25maWd1cmF0aW9uIGl0c2VsZiBzZWVtcyBhZGVxdWF0ZSBmb3IgdGhpcyBlZmZvcnQuIE5vIG5lZWQgdG8gb3ZlcmNvbXBsaWNhdGUgdGhpbmdzIHRoZXJlLiBNeSBpbW1lZGlhdGUgZm9jdXMgbmFycm93cyBpbiBvbiB0aGVzZSB0d28gZnVuY3Rpb25zOiBga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBgIGFuZCBga3ZtX2FyY2hfdm1faW9jdGxgLiBUaG9zZSBzZWVtIGxpa2Ugc29saWQgZW50cnkgcG9pbnRzIGZvciBmdXp6aW5nLiBUaGV5JiMzOTtyZSBsaWtlbHkgaGFuZGxpbmcgaW9jdGxzIGFuZCBkZWFsaW5nIHdpdGggdXNlci1wcm92aWRlZCBkYXRhLCBhIGNsYXNzaWMgYXR0YWNrIHN1cmZhY2UuIEdvb2QuCgpUaGUgcGF0Y2ggaXRzZWxmIGlzIGludGVyZXN0aW5nIOKAkyBpdCYjMzk7cyBhZGRyZXNzaW5nIGEgYm91bmRzIGNoZWNraW5nIGlzc3VlIHJlbGF0ZWQgdG8gYEtWTV9DQVBfTUFYX1ZDUFVfSURgIGFuZCBgS1ZNX1NFVF9CT09UX0NQVV9JRGAuIFRoaXMgaXMgYSBwcmV0dHkgY29tbW9uIGNsYXNzIG9mIHZ1bG5lcmFiaWxpdGllcy4gSW5jb3JyZWN0IGJvdW5kcyBjaGVja2luZyBjYW4gbGVhZCB0byBhbGwgc29ydHMgb2YgbWVtb3J5IGNvcnJ1cHRpb24sIHNvIHRoYXQmIzM5O3Mgc29tZXRoaW5nIEkmIzM5O2xsIGRlZmluaXRlbHkga2VlcCBpbiBtaW5kIHdoZW4gZGVzaWduaW5nIHRoZSBmdXp6aW5nIGNhbXBhaWduLiBUaGlzIGlzIGtleSB0byBleHBsb2l0YWJpbGl0eSEKClRpbWUgdG8gc2V0IHRob3NlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA3OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fdm1faW9jdGxfZW5hYmxlX2NhcCYjMzQ7LAogICAgJiMzNDtrdm1fYXJjaF92bV9pb2N0bCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYm91bmRzIGNoZWNraW5nIGxvZ2ljIGZvciBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFuZCBLVk1fU0VUX0JPT1RfQ1BVX0lEIGlvY3RscyBpbiBLVk0geDg2LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fdm1faW9jdGxfZW5hYmxlX2NhcCYjMzQ7LAogICAgJiMzNDtrdm1fYXJjaF92bV9pb2N0bCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYm91bmRzIGNoZWNraW5nIGxvZ2ljIGZvciBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFuZCBLVk1fU0VUX0JPT1RfQ1BVX0lEIGlvY3RscyBpbiBLVk0geDg2LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MDYuOTMyNDk0NjIyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjkzMDUyNjk0NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBcIixcbiAgICBcImt2bV9hcmNoX3ZtX2lvY3RsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGJvdW5kcyBjaGVja2luZyBsb2dpYyBmb3IgS1ZNX0NBUF9NQVhfVkNQVV9JRCBhbmQgS1ZNX1NFVF9CT09UX0NQVV9JRCBpb2N0bHMgaW4gS1ZNIHg4Ni4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MDYuOTMyNTAwNzAyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTc1MDcwNjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA2OWVhOWQ3ZjJiMGNmNTc3OTllYzdmOGVlNGYzMjY0YmFjN2YxNGEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMDc6MDY6MDYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XFxuaW5kZXggZTMwMDNhMjQxZDViMC4uZGFiOWEyOGMwZmI1MSAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcXG4rKysgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcXG5AQCAtODU5MywyMSArODU5MywyNCBAQCBLVk1fWDg2X1FVSVJLX05FU1RFRF9TVk1fU0hBUkVEX1BBVCAgICAgICAgQnkgZGVmYXVsdCwgS1ZNIGZvciBuZXN0ZWQgU1ZNIGd1ZXN0c1xcbiBcXG4gOkFyY2hpdGVjdHVyZXM6IHg4NlxcbiA6VGFyZ2V0OiBWTVxcbi06UGFyYW1ldGVyczogYXJnc1swXSAtIG1heGltdW0gQVBJQyBJRCB2YWx1ZSBzZXQgZm9yIGN1cnJlbnQgVk1cXG4rOlBhcmFtZXRlcnM6IGFyZ3NbMF0gLSBtYXhpbXVtIEFQSUMgSUQgdmFsdWUgKHBsdXMgb25lKSBzZXQgZm9yIGN1cnJlbnQgVk1cXG4gOlJldHVybnM6IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBhcmdzWzBdIGlzIGJleW9uZCBLVk1fTUFYX1ZDUFVfSURTXFxuICAgICAgICAgICBzdXBwb3J0ZWQgaW4gS1ZNIG9yIGlmIGl0IGhhcyBiZWVuIHNldC5cXG4gXFxuLVRoaXMgY2FwYWJpbGl0eSBhbGxvd3MgdXNlcnNwYWNlIHRvIHNwZWNpZnkgbWF4aW11bSBwb3NzaWJsZSBBUElDIElEXFxuK1RoaXMgY2FwYWJpbGl0eSBhbGxvd3MgdXNlcnNwYWNlIHRvIHNwZWNpZnkgYSBsaW1pdCBvbiBBUElDIElEIHZhbHVlc1xcbiBhc3NpZ25lZCBmb3IgY3VycmVudCBWTSBzZXNzaW9uIHByaW9yIHRvIHRoZSBjcmVhdGlvbiBvZiB2Q1BVcywgc2F2aW5nXFxuIG1lbW9yeSBmb3IgZGF0YSBzdHJ1Y3R1cmVzIGluZGV4ZWQgYnkgdGhlIEFQSUMgSUQuICBVc2Vyc3BhY2UgaXMgYWJsZVxcbiB0byBjYWxjdWxhdGUgdGhlIGxpbWl0IHRvIEFQSUMgSUQgdmFsdWVzIGZyb20gZGVzaWduYXRlZFxcbiBDUFUgdG9wb2xvZ3kuXFxuIFxcbi1UaGUgdmFsdWUgY2FuIGJlIGNoYW5nZWQgb25seSB1bnRpbCBLVk1fRU5BQkxFX0NBUCBpcyBzZXQgdG8gYSBub256ZXJvXFxuK1RoZSBsaW1pdCBpcyBub3QgaW5jbHVzaXZlLCBpLmUuIHRoZSBtYXhpbXVtIHBvc3NpYmxlIEFQSUMgSUQgdmFsdWUgaXNcXG4rYXJnc1swXSAtIDEuXFxuK1xcbitUaGUgY2FwYWJpbGl0eSB2YWx1ZSBjYW4gb25seSBiZSBjaGFuZ2VkIHVudGlsIGl0IGlzIHNldCB0byBhIG5vbnplcm9cXG4gdmFsdWUgb3IgdW50aWwgYSB2Q1BVIGlzIGNyZWF0ZWQuICBVcG9uIGNyZWF0aW9uIG9mIHRoZSBmaXJzdCB2Q1BVLFxcbiBpZiB0aGUgdmFsdWUgd2FzIHNldCB0byB6ZXJvIG9yIEtWTV9FTkFCTEVfQ0FQIHdhcyBub3QgaW52b2tlZCwgS1ZNXFxuLXVzZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBLVk1fQ0hFQ0tfRVhURU5TSU9OKEtWTV9DQVBfTUFYX1ZDUFVfSUQpIGFzXFxuLXRoZSBtYXhpbXVtIEFQSUMgSUQuXFxuK3VzZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBLVk1fQ0hFQ0tfRVhURU5TSU9OKEtWTV9DQVBfTUFYX1ZDUFVfSUQpIC0gMVxcbithcyB0aGUgbWF4aW11bSBBUElDIElELlxcbiBcXG4gNy4zMyBLVk1fQ0FQX1g4Nl9OT1RJRllfVk1FWElUXFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcXG5pbmRleCA0N2NiOWViYTExM2IxLi5iNTc2YjQ2ODY5ZDI5IDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xcbisrKyBiL2FyY2gveDg2L2t2bS94ODYuY1xcbkBAIC02OTA4LDcgKzY5MDgsNyBAQCBpbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLFxcbiBcXHRcXHRcXHRicmVhaztcXG4gXFxuIFxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmt2bS1cXHUwMDNlbG9jayk7XFxuLVxcdFxcdGlmIChrdm0tXFx1MDAzZWFyY2guYnNwX3ZjcHVfaWQgXFx1MDAzZSBjYXAtXFx1MDAzZWFyZ3NbMF0pIHtcXG4rXFx0XFx0aWYgKGt2bS1cXHUwMDNlYXJjaC5ic3BfdmNwdV9pZCBcXHUwMDNlPSBjYXAtXFx1MDAzZWFyZ3NbMF0pIHtcXG4gXFx0XFx0XFx0O1xcbiBcXHRcXHR9IGVsc2UgaWYgKGt2bS1cXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMgPT0gY2FwLVxcdTAwM2VhcmdzWzBdKSB7XFxuIFxcdFxcdFxcdHIgPSAwO1xcbkBAIC03NDc4LDggKzc0NzgsOCBAQCBpbnQga3ZtX2FyY2hfdm1faW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCwgdW5zaWduZWQgbG9uZyBhcmcpXFxuIFxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmt2bS1cXHUwMDNlbG9jayk7XFxuIFxcdFxcdGlmIChrdm0tXFx1MDAzZWNyZWF0ZWRfdmNwdXMpXFxuIFxcdFxcdFxcdHIgPSAtRUJVU1k7XFxuLVxcdFxcdGVsc2UgaWYgKGFyZyBcXHUwMDNlIEtWTV9NQVhfVkNQVV9JRFMgfHxcXG4tXFx0XFx0XFx0IChrdm0tXFx1MDAzZWFyY2gubWF4X3ZjcHVfaWRzIFxcdTAwMjZcXHUwMDI2IGFyZyBcXHUwMDNlIGt2bS1cXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMpKVxcbitcXHRcXHRlbHNlIGlmIChhcmcgXFx1MDAzZT0gS1ZNX01BWF9WQ1BVX0lEUyB8fFxcbitcXHRcXHRcXHQgKGt2bS1cXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMgXFx1MDAyNlxcdTAwMjYgYXJnIFxcdTAwM2U9IGt2bS1cXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMpKVxcbiBcXHRcXHRcXHRyID0gLUVJTlZBTDtcXG4gXFx0XFx0ZWxzZVxcbiBcXHRcXHRcXHRrdm0tXFx1MDAzZWFyY2guYnNwX3ZjcHVfaWQgPSBhcmc7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmNcXG5pbmRleCA3ZTJiZmIzYzNmM2JhLi40M2YxNmMwNTJkZTRhIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmNcXG5AQCAtMzAsMjIgKzMwLDI1IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pXFxuIFxcdGlmIChrdm1faGFzX2NhcChLVk1fQ0FQX1NFVF9CT09UX0NQVV9JRCkpIHtcXG4gXFx0XFx0dm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopTUFYX1ZDUFVfSUQpO1xcbiBcXG4tXFx0XFx0LyogVHJ5IHNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBiZWxvdyBCT09UX0NQVV9JRCAqL1xcbi1cXHRcXHRyZXQgPSBfX3ZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEIC0gMSk7XFxuK1xcdFxcdC8qIFRyeSBzZXR0aW5nIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYmVsb3cgb3IgZXF1YWwgdG8gQk9PVF9DUFVfSUQgKi9cXG4rXFx0XFx0cmV0ID0gX192bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCk7XFxuIFxcdFxcdFRFU1RfQVNTRVJUKHJldCBcXHUwMDNjIDAsXFxuLVxcdFxcdFxcdCAgICBcXFwiU2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIGJlbG93IEJPT1RfQ1BVX0lEIHNob3VsZCBmYWlsXFxcIik7XFxuK1xcdFxcdFxcdCAgICBcXFwiU2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIFxcdTAwM2M9IEJPT1RfQ1BVX0lEIHNob3VsZCBmYWlsXFxcIik7XFxuIFxcdH1cXG4gXFxuLVxcdC8qIFNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEICovXFxuLVxcdHZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEKTtcXG4rXFx0LypcXG4rXFx0ICogU2V0IEtWTV9DQVBfTUFYX1ZDUFVfSUQuIE5vdGU6IEtWTV9DQVBfTUFYX1ZDUFVfSUQgaXMgYSBtaXNub21lcixcXG4rXFx0ICogaXQgYWN0dWFsbHkgcmVwcmVzZW50cyBtYXhpbXVtIHZjcHVfaWQgcGx1cyBvbmUuXFxuK1xcdCAqL1xcbitcXHR2bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCArIDEpO1xcbiBcXG4gXFx0LyogVHJ5IHRvIHNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFnYWluICovXFxuLVxcdHJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgKyAxKTtcXG4rXFx0cmV0ID0gX192bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCArIDIpO1xcbiBcXHRURVNUX0FTU0VSVChyZXQgXFx1MDAzYyAwLFxcbiBcXHRcXHQgICAgXFxcIlNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBtdWx0aXBsZSB0aW1lcyBzaG91bGQgZmFpbFxcXCIpO1xcbiBcXG4gXFx0LyogQ3JlYXRlIHZDUFUgd2l0aCBpZCBiZXlvbmQgS1ZNX0NBUF9NQVhfVkNQVV9JRCBjYXAgKi9cXG4tXFx0cmV0ID0gX192bV9pb2N0bCh2bSwgS1ZNX0NSRUFURV9WQ1BVLCAodm9pZCAqKU1BWF9WQ1BVX0lEKTtcXG4rXFx0cmV0ID0gX192bV9pb2N0bCh2bSwgS1ZNX0NSRUFURV9WQ1BVLCAodm9pZCAqKShNQVhfVkNQVV9JRCArIDEpKTtcXG4gXFx0VEVTVF9BU1NFUlQocmV0IFxcdTAwM2MgMCwgXFxcIkNyZWF0aW5nIHZDUFUgd2l0aCBJRCBcXHUwMDNlIE1BWF9WQ1BVX0lEIHNob3VsZCBmYWlsXFxcIik7XFxuIFxcbiBcXHQvKiBDcmVhdGUgdkNQVSB3aXRoIGJpdHMgNjM6MzIgIT0gMCwgYnV0IGFuIG90aGVyd2lzZSB2YWxpZCBpZCAqL1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L3NldF9ib290X2NwdV9pZC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9zZXRfYm9vdF9jcHVfaWQuY1xcbmluZGV4IDhlMzg5ODY0NmM2OWQuLjFjNGViZGY4ZTgyYzUgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9zZXRfYm9vdF9jcHVfaWQuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmNcXG5AQCAtMzksOCArMzksOCBAQCBzdGF0aWMgdm9pZCB0ZXN0X3NldF9pbnZhbGlkX2JzcChzdHJ1Y3Qga3ZtX3ZtICp2bSlcXG4gXFx0aW50IHI7XFxuIFxcbiBcXHRpZiAobWF4X3ZjcHVfaWQpIHtcXG4tXFx0XFx0ciA9IF9fdm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopKG1heF92Y3B1X2lkICsgMSkpO1xcbi1cXHRcXHRURVNUX0FTU0VSVChyID09IC0xIFxcdTAwMjZcXHUwMDI2IGVycm5vID09IEVJTlZBTCwgXFxcIkJTUCB3aXRoIElEIFxcdTAwM2UgTUFYIHNob3VsZCBmYWlsXFxcIik7XFxuK1xcdFxcdHIgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKW1heF92Y3B1X2lkKTtcXG4rXFx0XFx0VEVTVF9BU1NFUlQociA9PSAtMSBcXHUwMDI2XFx1MDAyNiBlcnJubyA9PSBFSU5WQUwsIFxcXCJCU1Agd2l0aCBJRCBcXHUwMDNlPSBNQVggc2hvdWxkIGZhaWxcXFwiKTtcXG4gXFx0fVxcbiBcXG4gXFx0ciA9IF9fdm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopKDFMIFxcdTAwM2NcXHUwMDNjIDMyKSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA3OjA2OjA3LjUzMDkyNDM4MloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI4NzA2ODI2MzE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV92bV9pb2N0bF9lbmFibGVfY2FwXCIsXG4gICAgXCJrdm1fYXJjaF92bV9pb2N0bFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBib3VuZHMgY2hlY2tpbmcgbG9naWMgZm9yIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYW5kIEtWTV9TRVRfQk9PVF9DUFVfSUQgaW9jdGxzIGluIEtWTSB4ODYuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDY5ZWE5ZDdmMmIwY2Y1Nzc5OWVjN2Y4ZWU0ZjMyNjRiYWM3ZjE0YTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxIDA3OjA2OjA2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG5pbmRleCBlMzAwM2EyNDFkNWIwLi5kYWI5YTI4YzBmYjUxIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG4rKysgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbkBAIC04NTkzLDIxICs4NTkzLDI0IEBAIEtWTV9YODZfUVVJUktfTkVTVEVEX1NWTV9TSEFSRURfUEFUICAgICAgICBCeSBkZWZhdWx0LCBLVk0gZm9yIG5lc3RlZCBTVk0gZ3Vlc3RzXG4gXG4gOkFyY2hpdGVjdHVyZXM6IHg4NlxuIDpUYXJnZXQ6IFZNXG4tOlBhcmFtZXRlcnM6IGFyZ3NbMF0gLSBtYXhpbXVtIEFQSUMgSUQgdmFsdWUgc2V0IGZvciBjdXJyZW50IFZNXG4rOlBhcmFtZXRlcnM6IGFyZ3NbMF0gLSBtYXhpbXVtIEFQSUMgSUQgdmFsdWUgKHBsdXMgb25lKSBzZXQgZm9yIGN1cnJlbnQgVk1cbiA6UmV0dXJuczogMCBvbiBzdWNjZXNzLCAtRUlOVkFMIGlmIGFyZ3NbMF0gaXMgYmV5b25kIEtWTV9NQVhfVkNQVV9JRFNcbiAgICAgICAgICAgc3VwcG9ydGVkIGluIEtWTSBvciBpZiBpdCBoYXMgYmVlbiBzZXQuXG4gXG4tVGhpcyBjYXBhYmlsaXR5IGFsbG93cyB1c2Vyc3BhY2UgdG8gc3BlY2lmeSBtYXhpbXVtIHBvc3NpYmxlIEFQSUMgSURcbitUaGlzIGNhcGFiaWxpdHkgYWxsb3dzIHVzZXJzcGFjZSB0byBzcGVjaWZ5IGEgbGltaXQgb24gQVBJQyBJRCB2YWx1ZXNcbiBhc3NpZ25lZCBmb3IgY3VycmVudCBWTSBzZXNzaW9uIHByaW9yIHRvIHRoZSBjcmVhdGlvbiBvZiB2Q1BVcywgc2F2aW5nXG4gbWVtb3J5IGZvciBkYXRhIHN0cnVjdHVyZXMgaW5kZXhlZCBieSB0aGUgQVBJQyBJRC4gIFVzZXJzcGFjZSBpcyBhYmxlXG4gdG8gY2FsY3VsYXRlIHRoZSBsaW1pdCB0byBBUElDIElEIHZhbHVlcyBmcm9tIGRlc2lnbmF0ZWRcbiBDUFUgdG9wb2xvZ3kuXG4gXG4tVGhlIHZhbHVlIGNhbiBiZSBjaGFuZ2VkIG9ubHkgdW50aWwgS1ZNX0VOQUJMRV9DQVAgaXMgc2V0IHRvIGEgbm9uemVyb1xuK1RoZSBsaW1pdCBpcyBub3QgaW5jbHVzaXZlLCBpLmUuIHRoZSBtYXhpbXVtIHBvc3NpYmxlIEFQSUMgSUQgdmFsdWUgaXNcbithcmdzWzBdIC0gMS5cbitcbitUaGUgY2FwYWJpbGl0eSB2YWx1ZSBjYW4gb25seSBiZSBjaGFuZ2VkIHVudGlsIGl0IGlzIHNldCB0byBhIG5vbnplcm9cbiB2YWx1ZSBvciB1bnRpbCBhIHZDUFUgaXMgY3JlYXRlZC4gIFVwb24gY3JlYXRpb24gb2YgdGhlIGZpcnN0IHZDUFUsXG4gaWYgdGhlIHZhbHVlIHdhcyBzZXQgdG8gemVybyBvciBLVk1fRU5BQkxFX0NBUCB3YXMgbm90IGludm9rZWQsIEtWTVxuLXVzZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBLVk1fQ0hFQ0tfRVhURU5TSU9OKEtWTV9DQVBfTUFYX1ZDUFVfSUQpIGFzXG4tdGhlIG1heGltdW0gQVBJQyBJRC5cbit1c2VzIHRoZSByZXR1cm4gdmFsdWUgb2YgS1ZNX0NIRUNLX0VYVEVOU0lPTihLVk1fQ0FQX01BWF9WQ1BVX0lEKSAtIDFcbithcyB0aGUgbWF4aW11bSBBUElDIElELlxuIFxuIDcuMzMgS1ZNX0NBUF9YODZfTk9USUZZX1ZNRVhJVFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xuaW5kZXggNDdjYjllYmExMTNiMS4uYjU3NmI0Njg2OWQyOSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5AQCAtNjkwOCw3ICs2OTA4LDcgQEAgaW50IGt2bV92bV9pb2N0bF9lbmFibGVfY2FwKHN0cnVjdCBrdm0gKmt2bSxcbiBcdFx0XHRicmVhaztcbiBcbiBcdFx0bXV0ZXhfbG9jayhcdTAwMjZrdm0tXHUwMDNlbG9jayk7XG4tXHRcdGlmIChrdm0tXHUwMDNlYXJjaC5ic3BfdmNwdV9pZCBcdTAwM2UgY2FwLVx1MDAzZWFyZ3NbMF0pIHtcbitcdFx0aWYgKGt2bS1cdTAwM2VhcmNoLmJzcF92Y3B1X2lkIFx1MDAzZT0gY2FwLVx1MDAzZWFyZ3NbMF0pIHtcbiBcdFx0XHQ7XG4gXHRcdH0gZWxzZSBpZiAoa3ZtLVx1MDAzZWFyY2gubWF4X3ZjcHVfaWRzID09IGNhcC1cdTAwM2VhcmdzWzBdKSB7XG4gXHRcdFx0ciA9IDA7XG5AQCAtNzQ3OCw4ICs3NDc4LDggQEAgaW50IGt2bV9hcmNoX3ZtX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgaW9jdGwsIHVuc2lnbmVkIGxvbmcgYXJnKVxuIFx0XHRtdXRleF9sb2NrKFx1MDAyNmt2bS1cdTAwM2Vsb2NrKTtcbiBcdFx0aWYgKGt2bS1cdTAwM2VjcmVhdGVkX3ZjcHVzKVxuIFx0XHRcdHIgPSAtRUJVU1k7XG4tXHRcdGVsc2UgaWYgKGFyZyBcdTAwM2UgS1ZNX01BWF9WQ1BVX0lEUyB8fFxuLVx0XHRcdCAoa3ZtLVx1MDAzZWFyY2gubWF4X3ZjcHVfaWRzIFx1MDAyNlx1MDAyNiBhcmcgXHUwMDNlIGt2bS1cdTAwM2VhcmNoLm1heF92Y3B1X2lkcykpXG4rXHRcdGVsc2UgaWYgKGFyZyBcdTAwM2U9IEtWTV9NQVhfVkNQVV9JRFMgfHxcbitcdFx0XHQgKGt2bS1cdTAwM2VhcmNoLm1heF92Y3B1X2lkcyBcdTAwMjZcdTAwMjYgYXJnIFx1MDAzZT0ga3ZtLVx1MDAzZWFyY2gubWF4X3ZjcHVfaWRzKSlcbiBcdFx0XHRyID0gLUVJTlZBTDtcbiBcdFx0ZWxzZVxuIFx0XHRcdGt2bS1cdTAwM2VhcmNoLmJzcF92Y3B1X2lkID0gYXJnO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmNcbmluZGV4IDdlMmJmYjNjM2YzYmEuLjQzZjE2YzA1MmRlNGEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L21heF92Y3B1aWRfY2FwX3Rlc3QuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmNcbkBAIC0zMCwyMiArMzAsMjUgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSlcbiBcdGlmIChrdm1faGFzX2NhcChLVk1fQ0FQX1NFVF9CT09UX0NQVV9JRCkpIHtcbiBcdFx0dm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopTUFYX1ZDUFVfSUQpO1xuIFxuLVx0XHQvKiBUcnkgc2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIGJlbG93IEJPT1RfQ1BVX0lEICovXG4tXHRcdHJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgLSAxKTtcbitcdFx0LyogVHJ5IHNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBiZWxvdyBvciBlcXVhbCB0byBCT09UX0NQVV9JRCAqL1xuK1x0XHRyZXQgPSBfX3ZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEKTtcbiBcdFx0VEVTVF9BU1NFUlQocmV0IFx1MDAzYyAwLFxuLVx0XHRcdCAgICBcIlNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBiZWxvdyBCT09UX0NQVV9JRCBzaG91bGQgZmFpbFwiKTtcbitcdFx0XHQgICAgXCJTZXR0aW5nIEtWTV9DQVBfTUFYX1ZDUFVfSUQgXHUwMDNjPSBCT09UX0NQVV9JRCBzaG91bGQgZmFpbFwiKTtcbiBcdH1cbiBcbi1cdC8qIFNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEICovXG4tXHR2bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCk7XG4rXHQvKlxuK1x0ICogU2V0IEtWTV9DQVBfTUFYX1ZDUFVfSUQuIE5vdGU6IEtWTV9DQVBfTUFYX1ZDUFVfSUQgaXMgYSBtaXNub21lcixcbitcdCAqIGl0IGFjdHVhbGx5IHJlcHJlc2VudHMgbWF4aW11bSB2Y3B1X2lkIHBsdXMgb25lLlxuK1x0ICovXG4rXHR2bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCArIDEpO1xuIFxuIFx0LyogVHJ5IHRvIHNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFnYWluICovXG4tXHRyZXQgPSBfX3ZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEICsgMSk7XG4rXHRyZXQgPSBfX3ZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEICsgMik7XG4gXHRURVNUX0FTU0VSVChyZXQgXHUwMDNjIDAsXG4gXHRcdCAgICBcIlNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBtdWx0aXBsZSB0aW1lcyBzaG91bGQgZmFpbFwiKTtcbiBcbiBcdC8qIENyZWF0ZSB2Q1BVIHdpdGggaWQgYmV5b25kIEtWTV9DQVBfTUFYX1ZDUFVfSUQgY2FwICovXG4tXHRyZXQgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fQ1JFQVRFX1ZDUFUsICh2b2lkICopTUFYX1ZDUFVfSUQpO1xuK1x0cmV0ID0gX192bV9pb2N0bCh2bSwgS1ZNX0NSRUFURV9WQ1BVLCAodm9pZCAqKShNQVhfVkNQVV9JRCArIDEpKTtcbiBcdFRFU1RfQVNTRVJUKHJldCBcdTAwM2MgMCwgXCJDcmVhdGluZyB2Q1BVIHdpdGggSUQgXHUwMDNlIE1BWF9WQ1BVX0lEIHNob3VsZCBmYWlsXCIpO1xuIFxuIFx0LyogQ3JlYXRlIHZDUFUgd2l0aCBiaXRzIDYzOjMyICE9IDAsIGJ1dCBhbiBvdGhlcndpc2UgdmFsaWQgaWQgKi9cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L3NldF9ib290X2NwdV9pZC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9zZXRfYm9vdF9jcHVfaWQuY1xuaW5kZXggOGUzODk4NjQ2YzY5ZC4uMWM0ZWJkZjhlODJjNSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmNcbkBAIC0zOSw4ICszOSw4IEBAIHN0YXRpYyB2b2lkIHRlc3Rfc2V0X2ludmFsaWRfYnNwKHN0cnVjdCBrdm1fdm0gKnZtKVxuIFx0aW50IHI7XG4gXG4gXHRpZiAobWF4X3ZjcHVfaWQpIHtcbi1cdFx0ciA9IF9fdm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopKG1heF92Y3B1X2lkICsgMSkpO1xuLVx0XHRURVNUX0FTU0VSVChyID09IC0xIFx1MDAyNlx1MDAyNiBlcnJubyA9PSBFSU5WQUwsIFwiQlNQIHdpdGggSUQgXHUwMDNlIE1BWCBzaG91bGQgZmFpbFwiKTtcbitcdFx0ciA9IF9fdm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopbWF4X3ZjcHVfaWQpO1xuK1x0XHRURVNUX0FTU0VSVChyID09IC0xIFx1MDAyNlx1MDAyNiBlcnJubyA9PSBFSU5WQUwsIFwiQlNQIHdpdGggSUQgXHUwMDNlPSBNQVggc2hvdWxkIGZhaWxcIik7XG4gXHR9XG4gXG4gXHRyID0gX192bV9pb2N0bCh2bSwgS1ZNX1NFVF9CT09UX0NQVV9JRCwgKHZvaWQgKikoMUwgXHUwMDNjXHUwMDNjIDMyKSk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNzowNjowNy41MzA5MjY1NzJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MTg2NTQ3NTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtWTSB4ODYgUGF0Y2gqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayBkb3duIHRoaXMgS1ZNIHg4NiBwYXRjaC4gSXQgbG9va3MgbGlrZSB3ZSd2ZSBnb3QgYSBtb2RpZmljYXRpb24gcmVsYXRlZCB0byBob3cgd2UgaGFuZGxlIGBLVk1fQ0FQX01BWF9WQ1BVX0lEYCBhbmQgYEtWTV9TRVRfQk9PVF9DUFVfSURgLiBUaGUgY2hhbmdlcyBhcmUgZm9jdXNlZCBpbiBgYXJjaC94ODYva3ZtL3g4Ni5jYCwgYW5kIGl0J3MgYSBzdWJ0bGUgYnV0IHBvdGVudGlhbGx5IHNpZ25pZmljYW50IGFkanVzdG1lbnQgdG8gdGhlIGJvdW5kcyBjaGVja2luZyBsb2dpYy4gSSBzZWUgdGhleSdyZSBjaGFuZ2luZyB0aGUgZ3JlYXRlci10aGFuIG9wZXJhdG9ycyAoYFx1MDAzZWApIHRvIGdyZWF0ZXItdGhhbi1vci1lcXVhbCAoYFx1MDAzZT1gKSBpbiBhIGNvdXBsZSBvZiBwbGFjZXMuXG5cblNwZWNpZmljYWxseSwgdGhlIGRpZmYgaW1wYWN0cyBga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBgIGFuZCBga3ZtX2FyY2hfdm1faW9jdGxgLiBNeSBleHBlcnQgaW5zdGluY3RzIHRlbGwgbWUgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QganVzdCBhIGNvc21ldGljIG9uZS4gTW9kaWZ5aW5nIHRoZSBjb21wYXJpc29uIG9wZXJhdG9ycyBsaWtlIHRoaXMgY2FuIGhhdmUgaW1wbGljYXRpb25zIGZvciBob3cgdGhlIHN5c3RlbSBoYW5kbGVzIENQVSBJRHMgYW5kIHZpcnR1YWwgQ1BVIGluaXRpYWxpemF0aW9uLCBwb3RlbnRpYWxseSBhZmZlY3RpbmcgcmVzb3VyY2UgYWxsb2NhdGlvbiBvciBob3cgdGhlIGd1ZXN0IGludGVyYWN0cyB3aXRoIHRoZSBob3N0LlxuXG5Ob3csIG15IGltbWVkaWF0ZSBjb25jZXJucyBhcmUgYXJvdW5kIHRoZSBwb3RlbnRpYWwgZm9yIHJlZ3Jlc3Npb25zLCBzdWJ0bGUgYnVncywgb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zLiBUaGlzIGRlZmluaXRlbHkgd2FycmFudHMgdGhvcm91Z2ggZnV6emluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHByZWNpc2UgY29uZGl0aW9ucyB1bmRlciB3aGljaCB0aGVzZSBjaGVja3MgYXJlIHRyaWdnZXJlZC5cblxuSSdtIHRoaW5raW5nLCBcIkxldCdzIHRyYWNrIGRvd24gd2hlcmUgdGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIGFuZCB0aGUgY29uZGl0aW9ucyB0aGF0IGxlYWQgdG8gdGhlaXIgaW52b2NhdGlvbi5cIiBUaGUgY29kZSdzIGluIGBhcmNoL3g4Ni9rdm0veDg2LmNgLCBzbyBpdCdzIHg4Ni1zcGVjaWZpYy4gS1ZNIGl0c2VsZiBpcyBlbmFibGVkIGJ5IGBDT05GSUdfS1ZNYCwgc28gdGhhdCdzIHRoZSBiYXNlbGluZS4gSSBzaG91bGQgc3RhcnQgYnkgdmVyaWZ5aW5nIHRoYXQgYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBpcyBhY3R1YWxseSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgaWYgYW55LCBhZmZlY3QgaXRzIGJlaGF2aW9yLiBJIG5lZWQgdG8ga25vdyB0aGUgY29udHJvbCBmbG93IGhlcmUuIEknbGwgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIEtWTSBpb2N0bCBoYW5kbGluZyB0byBmdWxseSB1bmRlcnN0YW5kIGhvdyB0aGVzZSBuZXcgY29tcGFyaXNvbnMgaW1wYWN0IHRoZSBvdmVyYWxsIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDAyMSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4OCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA3OjA2OjE0LjcxNzQ3NzcyMloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjYyMjcwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fdm1faW9jdGxfZW5hYmxlX2NhcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0veDg2LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3g4Ni5jPTY3MDU9dm9pZCBrdm1fYXJjaF9zeW5jX2RpcnR5X2xvZyhzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fbWVtb3J5X3Nsb3QgKm1lbXNsb3QpXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmMtNjcyMy1cXG5hcmNoL3g4Ni9rdm0veDg2LmM6NjcyNDppbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLFxcbmFyY2gveDg2L2t2bS94ODYuYy02NzI1LVxcdFxcdFxcdCAgICBzdHJ1Y3Qga3ZtX2VuYWJsZV9jYXAgKmNhcClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MTQuNzg0MTA0NzYxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA5NDExMjAyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBhcyBpZiB0aGV5J3JlIG15IG93bjpcblxuKipBbmFseXppbmcgYGt2bV9hcmNoX3ZtX2lvY3RsYCoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGdvIHN0cmFpZ2h0IGZvciBga3ZtX2FyY2hfdm1faW9jdGxgLiBJIGtub3cgdGhpcyBmdW5jdGlvbiBpcyBjcml0aWNhbC4gSXQncyB0aGUgZ2F0ZWtlZXBlciwgdGhlIGNlbnRyYWwgcG9pbnQgd2hlcmUgdmlydHVhbCBtYWNoaW5lIG1hbmFnZW1lbnQgaW50ZXJhY3RzIHdpdGggdGhlIHVuZGVybHlpbmcgYXJjaGl0ZWN0dXJlLiBJdCdzIHdoZXJlIHRoZSBtYWdpYyBoYXBwZW5zLCBvciB3aGVyZSB0aGluZ3MgY2FuIGdvIGhvcnJpYmx5IHdyb25nISBTbywgbGV0J3Mgc3RhcnQgaGVyZS4gTGV0J3Mgc2VlIHdoYXQncyBiZWluZyByZXF1ZXN0ZWQsIGhvdyB0aGUgaW5mb3JtYXRpb24gaXMgYmVpbmcgaGFuZGxlZCwgYW5kIHdoYXQgc2FmZWd1YXJkcyBhcmUgaW4gcGxhY2UuIFRoaXMgaXMgZ3JvdW5kIHplcm8gZm9yIGEgZGVlcCBkaXZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MjE3LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MTcuODc4MjIwMjY0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNzgwMjk4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fYXJjaF92bV9pb2N0bFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0veDg2LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3g4Ni5jPTcyNDU9bG9uZyBrdm1fYXJjaF92Y3B1X3VubG9ja2VkX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgaW9jdGwsXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmMtNzI1Ny1cXG5hcmNoL3g4Ni9rdm0veDg2LmM6NzI1ODppbnQga3ZtX2FyY2hfdm1faW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCwgdW5zaWduZWQgbG9uZyBhcmcpXFxuYXJjaC94ODYva3ZtL3g4Ni5jLTcyNTkte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNzowNjoxNy45ODYwMjcwMzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDE4NjEzMTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biBtZW50YWwgcHJvY2Vzc2luZzpcblxuKipBbmFseXppbmcgYSBLVk0gUGF0Y2ggb24geDg2KipcblxuQWxyaWdodCwgc28gdGhlIHBhdGNoIGlzIHBva2luZyBhcm91bmQgaW4gdGhlIGhlYXJ0IG9mIHRoZSB4ODYgS1ZNIGltcGxlbWVudGF0aW9uIOKAkyBzcGVjaWZpY2FsbHksIGBrdm1fdm1faW9jdGxfZW5hYmxlX2NhcGAgYW5kIGBrdm1fYXJjaF92bV9pb2N0bGAsIGZvdW5kIGluIGBhcmNoL3g4Ni9rdm0veDg2LmNgLiBUaG9zZSBhcmUgdGhlIGZ1bmRhbWVudGFsIGlvY3RsIGhhbmRsZXJzIGZvciB0aGUgeDg2IGFyY2hpdGVjdHVyZSB3aXRoaW4gS1ZNLiBNZWFuaW5nIHRoaXMgaXMgbGlrZWx5IGEgZmFpcmx5IGxvdy1sZXZlbCBmZWF0dXJlIG9yIGNhcGFiaWxpdHkgY2hhbmdlLlxuXG5Ob3csIGEgY3JpdGljYWwgZmlyc3Qgc3RlcDogd2hhdCBjb25maWd1cmF0aW9ucyBkb2VzIHRoaXMgZGVwZW5kIG9uPyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgd2hldGhlciBJIGV2ZW4gKmNhcmUqIGFib3V0IHRoaXMgY29kZSBpZiB0aGUgYnVpbGQgZG9lc24ndCBhbGlnbiB3aXRoIG15IGN1cnJlbnQgaW50ZXJlc3RzLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZXMsIG9mIGNvdXJzZSwgdG8gc2VlIGlmIGBLVk1gIG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgdG8gYmUgYnVpbHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU1NzQsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNzowNjoyMS40MDQ2NDIxOTFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODkyNzUzNzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcxLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mjpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3My1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4MS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODI6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODMtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTItXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTkzOmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk0LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDc6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDgtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE2OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE3LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjgtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzAtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzI6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzMtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNzowNjoyMS40OTM5MjQ4NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNzgxNjYyMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBLVk0gQ29uZmlndXJhdGlvbiBhbmQgUmVhY2hhYmxlIEZ1bmN0aW9ucyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kLCByaWdodCBvZmYgdGhlIGJhdCwgaXQncyBoaXR0aW5nIGBLVk1gIGNvbmZpZ3VyYXRpb25zLiBJIGNhbiBzZWUgdGhlIGNoYW5nZXMgYXJlIGZvY3VzZWQgb24gYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBhbmQgYGt2bV9hcmNoX3ZtX2lvY3RsYC4gTXkgZmlyc3QgdGhvdWdodCBpcywgdGhlc2UgYXJlIGRlZmluaXRlbHkgcmVhY2hhYmxlIGFuZCBzaG91bGQgYmUgaGlnaCBvbiB0aGUgZnV6emluZyBwcmlvcml0eSBsaXN0LiBBbnl0aGluZyB0aGF0J3MgdG91Y2hlZCBpbiBhIHBhdGNoIGxpa2UgdGhpcyBpcyBwcmltZSByZWFsIGVzdGF0ZSBmb3IgZmluZGluZyB2dWxuZXJhYmlsaXRpZXMuXG5cbkJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byBmdXp6aW5nLCBJIHNob3VsZCBtYWtlIHN1cmUgSSBoYXZlIGFsbCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb24gZHVja3MgaW4gYSByb3cuIEl0J3Mgc2Vjb25kIG5hdHVyZSBhdCB0aGlzIHBvaW50IHRvIGNoZWNrIGZvciBkZXBlbmRlbmNpZXMuIEkga25vdyBgS1ZNYCBpdHNlbGYgZGVwZW5kcyBvbiBgVklSVFVBTElaQVRJT05gLCBhbmQgdGhlbiBpdCdzIGVpdGhlciBgS1ZNX0lOVEVMYCBvciBgS1ZNX0FNRGAsIGRlcGVuZGluZyBvbiB0aGUgaG9zdC4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEknbGwgcG9wIG92ZXIgdG8gYGFyY2gveDg2L2t2bS9LY29uZmlnYCB0byByZWNvbmZpcm0gdGhlIGBjb25maWcgS1ZNYCBkZXBlbmRlbmNpZXMuIE5vIHBvaW50IGluIHdhc3RpbmcgdGltZSBydW5uaW5nIGZ1enplcnMgd2l0aG91dCBhIHByb3Blcmx5IGNvbmZpZ3VyZWQgZW52aXJvbm1lbnQuIEdvdHRhIGhhdmUgYWxsIHRoZSBiaXRzIHNldCBjb3JyZWN0bHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxMDUsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MjUuNzcyMDkzODMzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzYzMzIxMTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZz01Mj1jb25maWcgS1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTMtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo1NDpcXHRkZXBlbmRzIG9uIFg4Nl9MT0NBTF9BUElDXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTUtXFx0aGVscFxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9Njk9Y29uZmlnIEtWTV9XRVJST1JcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTc2LVxcdCMgdGhlIGtlcm5lbC13aWRlIFdFUlJPUj15LlxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjc3OlxcdGRlcGVuZHMgb24gS1ZNX1g4NiBcXHUwMDI2XFx1MDAyNiAoKEVYUEVSVCBcXHUwMDI2XFx1MDAyNiAhS0FTQU4pIHx8IFdFUlJPUilcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03OC1cXHRoZWxwXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz04Mz1jb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVxcdGJvb2wgXFxcIkVuYWJsZSBzdXBwb3J0IGZvciBLVk0gc29mdHdhcmUtcHJvdGVjdGVkIFZNc1xcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4NTpcXHRkZXBlbmRzIG9uIEVYUEVSVFxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjg2OlxcdGRlcGVuZHMgb24gS1ZNX1g4NiBcXHUwMDI2XFx1MDAyNiBYODZfNjRcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Ny1cXHRzZWxlY3QgS1ZNX0dFTkVSSUNfTUVNT1JZX0FUVFJJQlVURVNcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnPTk2PWNvbmZpZyBLVk1fSU5URUxcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFxcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo5ODpcXHRkZXBlbmRzIG9uIEtWTSBcXHUwMDI2XFx1MDAyNiBJQTMyX0ZFQVRfQ1RMXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTktXFx0c2VsZWN0IFg4Nl9GUkVEIGlmIFg4Nl82NFxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTA3PWNvbmZpZyBLVk1fSU5URUxfUFJPVkVfVkVcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDgtICAgICAgICBib29sIFxcXCJDaGVjayB0aGF0IGd1ZXN0cyBkbyBub3QgcmVjZWl2ZSAjVkUgZXhjZXB0aW9uc1xcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDk6ICAgICAgICBkZXBlbmRzIG9uIEtWTV9JTlRFTCBcXHUwMDI2XFx1MDAyNiBFWFBFUlRcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMTAtICAgICAgICBoZWxwXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTIzLVxcdGJvb2wgXFxcIlNvZnR3YXJlIEd1YXJkIGVYdGVuc2lvbnMgKFNHWCkgVmlydHVhbGl6YXRpb25cXFwiXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTI0OlxcdGRlcGVuZHMgb24gWDg2X1NHWCBcXHUwMDI2XFx1MDAyNiBLVk1fSU5URUxcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMjUtXFx0aGVscFxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTM0PWNvbmZpZyBLVk1fSU5URUxfVERYXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzYtXFx0ZGVmYXVsdCB5XFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM3OlxcdGRlcGVuZHMgb24gSU5URUxfVERYX0hPU1RcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzgtXFx0c2VsZWN0IEtWTV9HRU5FUklDX01FTU9SWV9BVFRSSUJVVEVTXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xNDY9Y29uZmlnIEtWTV9BTURcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDctXFx0dHJpc3RhdGUgXFxcIktWTSBmb3IgQU1EIHByb2Nlc3NvcnMgc3VwcG9ydFxcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNDg6XFx0ZGVwZW5kcyBvbiBLVk0gXFx1MDAyNlxcdTAwMjYgKENQVV9TVVBfQU1EIHx8IENQVV9TVVBfSFlHT04pXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ5LVxcdGhlbHBcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnPTE1Nj1jb25maWcgS1ZNX0FNRF9TRVZcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1OC1cXHRkZWZhdWx0IHlcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNTk6XFx0ZGVwZW5kcyBvbiBLVk1fQU1EIFxcdTAwMjZcXHUwMDI2IFg4Nl82NFxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE2MDpcXHRkZXBlbmRzIG9uIENSWVBUT19ERVZfU1BfUFNQIFxcdTAwMjZcXHUwMDI2ICEoS1ZNX0FNRD15IFxcdTAwMjZcXHUwMDI2IENSWVBUT19ERVZfQ0NQX0REPW0pXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTYxLVxcdHNlbGVjdCBBUkNIX0hBU19DQ19QTEFURk9STVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTcyPWNvbmZpZyBLVk1fSU9BUElDXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzQtXFx0ZGVmYXVsdCB5XFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTc1OlxcdGRlcGVuZHMgb24gS1ZNX1g4NlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3Ni1cXHRoZWxwXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xODI9Y29uZmlnIEtWTV9TTU1cXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4NC1cXHRkZWZhdWx0IHlcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODU6XFx0ZGVwZW5kcyBvbiBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMTg2LVxcdGhlbHBcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnPTE5Mz1jb25maWcgS1ZNX0hZUEVSVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NC1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBNaWNyb3NvZnQgSHlwZXItViBlbXVsYXRpb25cXFwiXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTk1OlxcdGRlcGVuZHMgb24gS1ZNX1g4NlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5Ni1cXHRkZWZhdWx0IHlcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnPTIwNz1jb25maWcgS1ZNX1hFTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwOC1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBYZW4gaHlwZXJjYWxsIGludGVyZmFjZVxcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDk6XFx0ZGVwZW5kcyBvbiBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEwLVxcdGhlbHBcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnPTIxNj1jb25maWcgS1ZNX1BST1ZFX01NVVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNy1cXHRib29sIFxcXCJQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXFxcIlxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxODpcXHRkZXBlbmRzIG9uIERFQlVHX0tFUk5FTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxOTpcXHRkZXBlbmRzIG9uIEtWTV9YODZcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMjA6XFx0ZGVwZW5kcyBvbiBFWFBFUlRcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjEtXFx0aGVscFxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MjMyPWNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMzLVxcdGludCBcXFwiTWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFxcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzQ6XFx0ZGVwZW5kcyBvbiBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjM1LVxcdHJhbmdlIDEwMjQgNDA5NlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNzowNjoyNS45NDg0MzM5M1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDE1MzcwNTIwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGJyZWFrZG93biBvZiB0aGlzLlxuXG4qKktWTSBGdXp6aW5nIFN0cmF0ZWd5OiBGb2N1c2luZyBvbiBLZXkgaW9jdGxzKipcblxuUmlnaHQsIHNvIHRoZSBgS1ZNYCBjb25maWd1cmF0aW9uIGl0c2VsZiBzZWVtcyBhZGVxdWF0ZSBmb3IgdGhpcyBlZmZvcnQuIE5vIG5lZWQgdG8gb3ZlcmNvbXBsaWNhdGUgdGhpbmdzIHRoZXJlLiBNeSBpbW1lZGlhdGUgZm9jdXMgbmFycm93cyBpbiBvbiB0aGVzZSB0d28gZnVuY3Rpb25zOiBga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBgIGFuZCBga3ZtX2FyY2hfdm1faW9jdGxgLiBUaG9zZSBzZWVtIGxpa2Ugc29saWQgZW50cnkgcG9pbnRzIGZvciBmdXp6aW5nLiBUaGV5J3JlIGxpa2VseSBoYW5kbGluZyBpb2N0bHMgYW5kIGRlYWxpbmcgd2l0aCB1c2VyLXByb3ZpZGVkIGRhdGEsIGEgY2xhc3NpYyBhdHRhY2sgc3VyZmFjZS4gR29vZC5cblxuVGhlIHBhdGNoIGl0c2VsZiBpcyBpbnRlcmVzdGluZyDigJMgaXQncyBhZGRyZXNzaW5nIGEgYm91bmRzIGNoZWNraW5nIGlzc3VlIHJlbGF0ZWQgdG8gYEtWTV9DQVBfTUFYX1ZDUFVfSURgIGFuZCBgS1ZNX1NFVF9CT09UX0NQVV9JRGAuIFRoaXMgaXMgYSBwcmV0dHkgY29tbW9uIGNsYXNzIG9mIHZ1bG5lcmFiaWxpdGllcy4gSW5jb3JyZWN0IGJvdW5kcyBjaGVja2luZyBjYW4gbGVhZCB0byBhbGwgc29ydHMgb2YgbWVtb3J5IGNvcnJ1cHRpb24sIHNvIHRoYXQncyBzb21ldGhpbmcgSSdsbCBkZWZpbml0ZWx5IGtlZXAgaW4gbWluZCB3aGVuIGRlc2lnbmluZyB0aGUgZnV6emluZyBjYW1wYWlnbi4gVGhpcyBpcyBrZXkgdG8gZXhwbG9pdGFiaWxpdHkhXG5cblRpbWUgdG8gc2V0IHRob3NlIHJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkyMDQsIk91dHB1dFRva2VucyI6MTE1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MzYuMTAyMTQxNDgxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1NjA0NzA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fdm1faW9jdGxfZW5hYmxlX2NhcFwiLFxuICAgIFwia3ZtX2FyY2hfdm1faW9jdGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYm91bmRzIGNoZWNraW5nIGxvZ2ljIGZvciBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFuZCBLVk1fU0VUX0JPT1RfQ1BVX0lEIGlvY3RscyBpbiBLVk0geDg2LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV92bV9pb2N0bF9lbmFibGVfY2FwXCIsXG4gICAgXCJrdm1fYXJjaF92bV9pb2N0bFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBib3VuZHMgY2hlY2tpbmcgbG9naWMgZm9yIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYW5kIEtWTV9TRVRfQk9PVF9DUFVfSUQgaW9jdGxzIGluIEtWTSB4ODYuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowv98x5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-01 06:51:31 +0000 UTC FinishedAt: 2026-08-01 07:06:37 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a2cf4ef33184df0ae9e1a2b05b550133dde1698c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a2cf4ef33184df0ae9e1a2b05b550133dde1698c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "d9f9d71e-7210-4d70-9275-d7349ba45baf" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_vm_ioctl_enable_cap", "kvm_arch_vm_ioctl" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA3OjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV92bV9pb2N0bF9lbmFibGVfY2FwJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX3ZtX2lvY3RsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBib3VuZHMgY2hlY2tpbmcgbG9naWMgZm9yIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYW5kIEtWTV9TRVRfQk9PVF9DUFVfSUQgaW9jdGxzIGluIEtWTSB4ODYuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDc6MDY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2OWVhOWQ3ZjJiMGNmNTc3OTllYzdmOGVlNGYzMjY0YmFjN2YxNGEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMSAwNzowNjowNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbmluZGV4IGUzMDAzYTI0MWQ1YjAuLmRhYjlhMjhjMGZiNTEgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxuQEAgLTg1OTMsMjEgJiM0Mzs4NTkzLDI0IEBAIEtWTV9YODZfUVVJUktfTkVTVEVEX1NWTV9TSEFSRURfUEFUICAgICAgICBCeSBkZWZhdWx0LCBLVk0gZm9yIG5lc3RlZCBTVk0gZ3Vlc3RzXG4gXG4gOkFyY2hpdGVjdHVyZXM6IHg4NlxuIDpUYXJnZXQ6IFZNXG4tOlBhcmFtZXRlcnM6IGFyZ3NbMF0gLSBtYXhpbXVtIEFQSUMgSUQgdmFsdWUgc2V0IGZvciBjdXJyZW50IFZNXG4mIzQzOzpQYXJhbWV0ZXJzOiBhcmdzWzBdIC0gbWF4aW11bSBBUElDIElEIHZhbHVlIChwbHVzIG9uZSkgc2V0IGZvciBjdXJyZW50IFZNXG4gOlJldHVybnM6IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBhcmdzWzBdIGlzIGJleW9uZCBLVk1fTUFYX1ZDUFVfSURTXG4gICAgICAgICAgIHN1cHBvcnRlZCBpbiBLVk0gb3IgaWYgaXQgaGFzIGJlZW4gc2V0LlxuIFxuLVRoaXMgY2FwYWJpbGl0eSBhbGxvd3MgdXNlcnNwYWNlIHRvIHNwZWNpZnkgbWF4aW11bSBwb3NzaWJsZSBBUElDIElEXG4mIzQzO1RoaXMgY2FwYWJpbGl0eSBhbGxvd3MgdXNlcnNwYWNlIHRvIHNwZWNpZnkgYSBsaW1pdCBvbiBBUElDIElEIHZhbHVlc1xuIGFzc2lnbmVkIGZvciBjdXJyZW50IFZNIHNlc3Npb24gcHJpb3IgdG8gdGhlIGNyZWF0aW9uIG9mIHZDUFVzLCBzYXZpbmdcbiBtZW1vcnkgZm9yIGRhdGEgc3RydWN0dXJlcyBpbmRleGVkIGJ5IHRoZSBBUElDIElELiAgVXNlcnNwYWNlIGlzIGFibGVcbiB0byBjYWxjdWxhdGUgdGhlIGxpbWl0IHRvIEFQSUMgSUQgdmFsdWVzIGZyb20gZGVzaWduYXRlZFxuIENQVSB0b3BvbG9neS5cbiBcbi1UaGUgdmFsdWUgY2FuIGJlIGNoYW5nZWQgb25seSB1bnRpbCBLVk1fRU5BQkxFX0NBUCBpcyBzZXQgdG8gYSBub256ZXJvXG4mIzQzO1RoZSBsaW1pdCBpcyBub3QgaW5jbHVzaXZlLCBpLmUuIHRoZSBtYXhpbXVtIHBvc3NpYmxlIEFQSUMgSUQgdmFsdWUgaXNcbiYjNDM7YXJnc1swXSAtIDEuXG4mIzQzO1xuJiM0MztUaGUgY2FwYWJpbGl0eSB2YWx1ZSBjYW4gb25seSBiZSBjaGFuZ2VkIHVudGlsIGl0IGlzIHNldCB0byBhIG5vbnplcm9cbiB2YWx1ZSBvciB1bnRpbCBhIHZDUFUgaXMgY3JlYXRlZC4gIFVwb24gY3JlYXRpb24gb2YgdGhlIGZpcnN0IHZDUFUsXG4gaWYgdGhlIHZhbHVlIHdhcyBzZXQgdG8gemVybyBvciBLVk1fRU5BQkxFX0NBUCB3YXMgbm90IGludm9rZWQsIEtWTVxuLXVzZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBLVk1fQ0hFQ0tfRVhURU5TSU9OKEtWTV9DQVBfTUFYX1ZDUFVfSUQpIGFzXG4tdGhlIG1heGltdW0gQVBJQyBJRC5cbiYjNDM7dXNlcyB0aGUgcmV0dXJuIHZhbHVlIG9mIEtWTV9DSEVDS19FWFRFTlNJT04oS1ZNX0NBUF9NQVhfVkNQVV9JRCkgLSAxXG4mIzQzO2FzIHRoZSBtYXhpbXVtIEFQSUMgSUQuXG4gXG4gNy4zMyBLVk1fQ0FQX1g4Nl9OT1RJRllfVk1FWElUXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5pbmRleCA0N2NiOWViYTExM2IxLi5iNTc2YjQ2ODY5ZDI5IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC02OTA4LDcgJiM0Mzs2OTA4LDcgQEAgaW50IGt2bV92bV9pb2N0bF9lbmFibGVfY2FwKHN0cnVjdCBrdm0gKmt2bSxcbiBcdFx0XHRicmVhaztcbiBcbiBcdFx0bXV0ZXhfbG9jayhcdTAwMjZrdm0tXHUwMDNlbG9jayk7XG4tXHRcdGlmIChrdm0tXHUwMDNlYXJjaC5ic3BfdmNwdV9pZCBcdTAwM2UgY2FwLVx1MDAzZWFyZ3NbMF0pIHtcbiYjNDM7XHRcdGlmIChrdm0tXHUwMDNlYXJjaC5ic3BfdmNwdV9pZCBcdTAwM2U9IGNhcC1cdTAwM2VhcmdzWzBdKSB7XG4gXHRcdFx0O1xuIFx0XHR9IGVsc2UgaWYgKGt2bS1cdTAwM2VhcmNoLm1heF92Y3B1X2lkcyA9PSBjYXAtXHUwMDNlYXJnc1swXSkge1xuIFx0XHRcdHIgPSAwO1xuQEAgLTc0NzgsOCAmIzQzOzc0NzgsOCBAQCBpbnQga3ZtX2FyY2hfdm1faW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCwgdW5zaWduZWQgbG9uZyBhcmcpXG4gXHRcdG11dGV4X2xvY2soXHUwMDI2a3ZtLVx1MDAzZWxvY2spO1xuIFx0XHRpZiAoa3ZtLVx1MDAzZWNyZWF0ZWRfdmNwdXMpXG4gXHRcdFx0ciA9IC1FQlVTWTtcbi1cdFx0ZWxzZSBpZiAoYXJnIFx1MDAzZSBLVk1fTUFYX1ZDUFVfSURTIHx8XG4tXHRcdFx0IChrdm0tXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMgXHUwMDI2XHUwMDI2IGFyZyBcdTAwM2Uga3ZtLVx1MDAzZWFyY2gubWF4X3ZjcHVfaWRzKSlcbiYjNDM7XHRcdGVsc2UgaWYgKGFyZyBcdTAwM2U9IEtWTV9NQVhfVkNQVV9JRFMgfHxcbiYjNDM7XHRcdFx0IChrdm0tXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMgXHUwMDI2XHUwMDI2IGFyZyBcdTAwM2U9IGt2bS1cdTAwM2VhcmNoLm1heF92Y3B1X2lkcykpXG4gXHRcdFx0ciA9IC1FSU5WQUw7XG4gXHRcdGVsc2VcbiBcdFx0XHRrdm0tXHUwMDNlYXJjaC5ic3BfdmNwdV9pZCA9IGFyZztcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L21heF92Y3B1aWRfY2FwX3Rlc3QuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jXG5pbmRleCA3ZTJiZmIzYzNmM2JhLi40M2YxNmMwNTJkZTRhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jXG5AQCAtMzAsMjIgJiM0MzszMCwyNSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKVxuIFx0aWYgKGt2bV9oYXNfY2FwKEtWTV9DQVBfU0VUX0JPT1RfQ1BVX0lEKSkge1xuIFx0XHR2bV9pb2N0bCh2bSwgS1ZNX1NFVF9CT09UX0NQVV9JRCwgKHZvaWQgKilNQVhfVkNQVV9JRCk7XG4gXG4tXHRcdC8qIFRyeSBzZXR0aW5nIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYmVsb3cgQk9PVF9DUFVfSUQgKi9cbi1cdFx0cmV0ID0gX192bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCAtIDEpO1xuJiM0MztcdFx0LyogVHJ5IHNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBiZWxvdyBvciBlcXVhbCB0byBCT09UX0NQVV9JRCAqL1xuJiM0MztcdFx0cmV0ID0gX192bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCk7XG4gXHRcdFRFU1RfQVNTRVJUKHJldCBcdTAwM2MgMCxcbi1cdFx0XHQgICAgXCYjMzQ7U2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIGJlbG93IEJPT1RfQ1BVX0lEIHNob3VsZCBmYWlsXCYjMzQ7KTtcbiYjNDM7XHRcdFx0ICAgIFwmIzM0O1NldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBcdTAwM2M9IEJPT1RfQ1BVX0lEIHNob3VsZCBmYWlsXCYjMzQ7KTtcbiBcdH1cbiBcbi1cdC8qIFNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEICovXG4tXHR2bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCk7XG4mIzQzO1x0LypcbiYjNDM7XHQgKiBTZXQgS1ZNX0NBUF9NQVhfVkNQVV9JRC4gTm90ZTogS1ZNX0NBUF9NQVhfVkNQVV9JRCBpcyBhIG1pc25vbWVyLFxuJiM0MztcdCAqIGl0IGFjdHVhbGx5IHJlcHJlc2VudHMgbWF4aW11bSB2Y3B1X2lkIHBsdXMgb25lLlxuJiM0MztcdCAqL1xuJiM0MztcdHZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEICYjNDM7IDEpO1xuIFxuIFx0LyogVHJ5IHRvIHNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFnYWluICovXG4tXHRyZXQgPSBfX3ZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEICYjNDM7IDEpO1xuJiM0MztcdHJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgJiM0MzsgMik7XG4gXHRURVNUX0FTU0VSVChyZXQgXHUwMDNjIDAsXG4gXHRcdCAgICBcJiMzNDtTZXR0aW5nIEtWTV9DQVBfTUFYX1ZDUFVfSUQgbXVsdGlwbGUgdGltZXMgc2hvdWxkIGZhaWxcJiMzNDspO1xuIFxuIFx0LyogQ3JlYXRlIHZDUFUgd2l0aCBpZCBiZXlvbmQgS1ZNX0NBUF9NQVhfVkNQVV9JRCBjYXAgKi9cbi1cdHJldCA9IF9fdm1faW9jdGwodm0sIEtWTV9DUkVBVEVfVkNQVSwgKHZvaWQgKilNQVhfVkNQVV9JRCk7XG4mIzQzO1x0cmV0ID0gX192bV9pb2N0bCh2bSwgS1ZNX0NSRUFURV9WQ1BVLCAodm9pZCAqKShNQVhfVkNQVV9JRCAmIzQzOyAxKSk7XG4gXHRURVNUX0FTU0VSVChyZXQgXHUwMDNjIDAsIFwmIzM0O0NyZWF0aW5nIHZDUFUgd2l0aCBJRCBcdTAwM2UgTUFYX1ZDUFVfSUQgc2hvdWxkIGZhaWxcJiMzNDspO1xuIFxuIFx0LyogQ3JlYXRlIHZDUFUgd2l0aCBiaXRzIDYzOjMyICE9IDAsIGJ1dCBhbiBvdGhlcndpc2UgdmFsaWQgaWQgKi9cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L3NldF9ib290X2NwdV9pZC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9zZXRfYm9vdF9jcHVfaWQuY1xuaW5kZXggOGUzODk4NjQ2YzY5ZC4uMWM0ZWJkZjhlODJjNSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmNcbkBAIC0zOSw4ICYjNDM7MzksOCBAQCBzdGF0aWMgdm9pZCB0ZXN0X3NldF9pbnZhbGlkX2JzcChzdHJ1Y3Qga3ZtX3ZtICp2bSlcbiBcdGludCByO1xuIFxuIFx0aWYgKG1heF92Y3B1X2lkKSB7XG4tXHRcdHIgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKShtYXhfdmNwdV9pZCAmIzQzOyAxKSk7XG4tXHRcdFRFU1RfQVNTRVJUKHIgPT0gLTEgXHUwMDI2XHUwMDI2IGVycm5vID09IEVJTlZBTCwgXCYjMzQ7QlNQIHdpdGggSUQgXHUwMDNlIE1BWCBzaG91bGQgZmFpbFwmIzM0Oyk7XG4mIzQzO1x0XHRyID0gX192bV9pb2N0bCh2bSwgS1ZNX1NFVF9CT09UX0NQVV9JRCwgKHZvaWQgKiltYXhfdmNwdV9pZCk7XG4mIzQzO1x0XHRURVNUX0FTU0VSVChyID09IC0xIFx1MDAyNlx1MDAyNiBlcnJubyA9PSBFSU5WQUwsIFwmIzM0O0JTUCB3aXRoIElEIFx1MDAzZT0gTUFYIHNob3VsZCBmYWlsXCYjMzQ7KTtcbiBcdH1cbiBcbiBcdHIgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKSgxTCBcdTAwM2NcdTAwM2MgMzIpKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAmIzM0OywKICAgICYjMzQ7a3ZtX2FyY2hfdm1faW9jdGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGJvdW5kcyBjaGVja2luZyBsb2dpYyBmb3IgS1ZNX0NBUF9NQVhfVkNQVV9JRCBhbmQgS1ZNX1NFVF9CT09UX0NQVV9JRCBpb2N0bHMgaW4gS1ZNIHg4Ni4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDY5ZWE5ZDdmMmIwY2Y1Nzc5OWVjN2Y4ZWU0ZjMyNjRiYWM3ZjE0YTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAxIDA3OjA2OjA2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0CmluZGV4IGUzMDAzYTI0MWQ1YjAuLmRhYjlhMjhjMGZiNTEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdAomIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QKQEAgLTg1OTMsMjEgJiM0Mzs4NTkzLDI0IEBAIEtWTV9YODZfUVVJUktfTkVTVEVEX1NWTV9TSEFSRURfUEFUICAgICAgICBCeSBkZWZhdWx0LCBLVk0gZm9yIG5lc3RlZCBTVk0gZ3Vlc3RzCiAKIDpBcmNoaXRlY3R1cmVzOiB4ODYKIDpUYXJnZXQ6IFZNCi06UGFyYW1ldGVyczogYXJnc1swXSAtIG1heGltdW0gQVBJQyBJRCB2YWx1ZSBzZXQgZm9yIGN1cnJlbnQgVk0KJiM0Mzs6UGFyYW1ldGVyczogYXJnc1swXSAtIG1heGltdW0gQVBJQyBJRCB2YWx1ZSAocGx1cyBvbmUpIHNldCBmb3IgY3VycmVudCBWTQogOlJldHVybnM6IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBhcmdzWzBdIGlzIGJleW9uZCBLVk1fTUFYX1ZDUFVfSURTCiAgICAgICAgICAgc3VwcG9ydGVkIGluIEtWTSBvciBpZiBpdCBoYXMgYmVlbiBzZXQuCiAKLVRoaXMgY2FwYWJpbGl0eSBhbGxvd3MgdXNlcnNwYWNlIHRvIHNwZWNpZnkgbWF4aW11bSBwb3NzaWJsZSBBUElDIElECiYjNDM7VGhpcyBjYXBhYmlsaXR5IGFsbG93cyB1c2Vyc3BhY2UgdG8gc3BlY2lmeSBhIGxpbWl0IG9uIEFQSUMgSUQgdmFsdWVzCiBhc3NpZ25lZCBmb3IgY3VycmVudCBWTSBzZXNzaW9uIHByaW9yIHRvIHRoZSBjcmVhdGlvbiBvZiB2Q1BVcywgc2F2aW5nCiBtZW1vcnkgZm9yIGRhdGEgc3RydWN0dXJlcyBpbmRleGVkIGJ5IHRoZSBBUElDIElELiAgVXNlcnNwYWNlIGlzIGFibGUKIHRvIGNhbGN1bGF0ZSB0aGUgbGltaXQgdG8gQVBJQyBJRCB2YWx1ZXMgZnJvbSBkZXNpZ25hdGVkCiBDUFUgdG9wb2xvZ3kuCiAKLVRoZSB2YWx1ZSBjYW4gYmUgY2hhbmdlZCBvbmx5IHVudGlsIEtWTV9FTkFCTEVfQ0FQIGlzIHNldCB0byBhIG5vbnplcm8KJiM0MztUaGUgbGltaXQgaXMgbm90IGluY2x1c2l2ZSwgaS5lLiB0aGUgbWF4aW11bSBwb3NzaWJsZSBBUElDIElEIHZhbHVlIGlzCiYjNDM7YXJnc1swXSAtIDEuCiYjNDM7CiYjNDM7VGhlIGNhcGFiaWxpdHkgdmFsdWUgY2FuIG9ubHkgYmUgY2hhbmdlZCB1bnRpbCBpdCBpcyBzZXQgdG8gYSBub256ZXJvCiB2YWx1ZSBvciB1bnRpbCBhIHZDUFUgaXMgY3JlYXRlZC4gIFVwb24gY3JlYXRpb24gb2YgdGhlIGZpcnN0IHZDUFUsCiBpZiB0aGUgdmFsdWUgd2FzIHNldCB0byB6ZXJvIG9yIEtWTV9FTkFCTEVfQ0FQIHdhcyBub3QgaW52b2tlZCwgS1ZNCi11c2VzIHRoZSByZXR1cm4gdmFsdWUgb2YgS1ZNX0NIRUNLX0VYVEVOU0lPTihLVk1fQ0FQX01BWF9WQ1BVX0lEKSBhcwotdGhlIG1heGltdW0gQVBJQyBJRC4KJiM0Mzt1c2VzIHRoZSByZXR1cm4gdmFsdWUgb2YgS1ZNX0NIRUNLX0VYVEVOU0lPTihLVk1fQ0FQX01BWF9WQ1BVX0lEKSAtIDEKJiM0MzthcyB0aGUgbWF4aW11bSBBUElDIElELgogCiA3LjMzIEtWTV9DQVBfWDg2X05PVElGWV9WTUVYSVQKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IDQ3Y2I5ZWJhMTEzYjEuLmI1NzZiNDY4NjlkMjkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTY5MDgsNyAmIzQzOzY5MDgsNyBAQCBpbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLAogCQkJYnJlYWs7CiAKIAkJbXV0ZXhfbG9jaygmYW1wO2t2bS0mZ3Q7bG9jayk7Ci0JCWlmIChrdm0tJmd0O2FyY2guYnNwX3ZjcHVfaWQgJmd0OyBjYXAtJmd0O2FyZ3NbMF0pIHsKJiM0MzsJCWlmIChrdm0tJmd0O2FyY2guYnNwX3ZjcHVfaWQgJmd0Oz0gY2FwLSZndDthcmdzWzBdKSB7CiAJCQk7CiAJCX0gZWxzZSBpZiAoa3ZtLSZndDthcmNoLm1heF92Y3B1X2lkcyA9PSBjYXAtJmd0O2FyZ3NbMF0pIHsKIAkJCXIgPSAwOwpAQCAtNzQ3OCw4ICYjNDM7NzQ3OCw4IEBAIGludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZykKIAkJbXV0ZXhfbG9jaygmYW1wO2t2bS0mZ3Q7bG9jayk7CiAJCWlmIChrdm0tJmd0O2NyZWF0ZWRfdmNwdXMpCiAJCQlyID0gLUVCVVNZOwotCQllbHNlIGlmIChhcmcgJmd0OyBLVk1fTUFYX1ZDUFVfSURTIHx8Ci0JCQkgKGt2bS0mZ3Q7YXJjaC5tYXhfdmNwdV9pZHMgJmFtcDsmYW1wOyBhcmcgJmd0OyBrdm0tJmd0O2FyY2gubWF4X3ZjcHVfaWRzKSkKJiM0MzsJCWVsc2UgaWYgKGFyZyAmZ3Q7PSBLVk1fTUFYX1ZDUFVfSURTIHx8CiYjNDM7CQkJIChrdm0tJmd0O2FyY2gubWF4X3ZjcHVfaWRzICZhbXA7JmFtcDsgYXJnICZndDs9IGt2bS0mZ3Q7YXJjaC5tYXhfdmNwdV9pZHMpKQogCQkJciA9IC1FSU5WQUw7CiAJCWVsc2UKIAkJCWt2bS0mZ3Q7YXJjaC5ic3BfdmNwdV9pZCA9IGFyZzsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmMKaW5kZXggN2UyYmZiM2MzZjNiYS4uNDNmMTZjMDUyZGU0YSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmMKQEAgLTMwLDIyICYjNDM7MzAsMjUgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlpZiAoa3ZtX2hhc19jYXAoS1ZNX0NBUF9TRVRfQk9PVF9DUFVfSUQpKSB7CiAJCXZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKU1BWF9WQ1BVX0lEKTsKIAotCQkvKiBUcnkgc2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIGJlbG93IEJPT1RfQ1BVX0lEICovCi0JCXJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgLSAxKTsKJiM0MzsJCS8qIFRyeSBzZXR0aW5nIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYmVsb3cgb3IgZXF1YWwgdG8gQk9PVF9DUFVfSUQgKi8KJiM0MzsJCXJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQpOwogCQlURVNUX0FTU0VSVChyZXQgJmx0OyAwLAotCQkJICAgICYjMzQ7U2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIGJlbG93IEJPT1RfQ1BVX0lEIHNob3VsZCBmYWlsJiMzNDspOwomIzQzOwkJCSAgICAmIzM0O1NldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCAmbHQ7PSBCT09UX0NQVV9JRCBzaG91bGQgZmFpbCYjMzQ7KTsKIAl9CiAKLQkvKiBTZXQgS1ZNX0NBUF9NQVhfVkNQVV9JRCAqLwotCXZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEKTsKJiM0MzsJLyoKJiM0MzsJICogU2V0IEtWTV9DQVBfTUFYX1ZDUFVfSUQuIE5vdGU6IEtWTV9DQVBfTUFYX1ZDUFVfSUQgaXMgYSBtaXNub21lciwKJiM0MzsJICogaXQgYWN0dWFsbHkgcmVwcmVzZW50cyBtYXhpbXVtIHZjcHVfaWQgcGx1cyBvbmUuCiYjNDM7CSAqLwomIzQzOwl2bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCAmIzQzOyAxKTsKIAogCS8qIFRyeSB0byBzZXQgS1ZNX0NBUF9NQVhfVkNQVV9JRCBhZ2FpbiAqLwotCXJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgJiM0MzsgMSk7CiYjNDM7CXJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgJiM0MzsgMik7CiAJVEVTVF9BU1NFUlQocmV0ICZsdDsgMCwKIAkJICAgICYjMzQ7U2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIG11bHRpcGxlIHRpbWVzIHNob3VsZCBmYWlsJiMzNDspOwogCiAJLyogQ3JlYXRlIHZDUFUgd2l0aCBpZCBiZXlvbmQgS1ZNX0NBUF9NQVhfVkNQVV9JRCBjYXAgKi8KLQlyZXQgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fQ1JFQVRFX1ZDUFUsICh2b2lkICopTUFYX1ZDUFVfSUQpOwomIzQzOwlyZXQgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fQ1JFQVRFX1ZDUFUsICh2b2lkICopKE1BWF9WQ1BVX0lEICYjNDM7IDEpKTsKIAlURVNUX0FTU0VSVChyZXQgJmx0OyAwLCAmIzM0O0NyZWF0aW5nIHZDUFUgd2l0aCBJRCAmZ3Q7IE1BWF9WQ1BVX0lEIHNob3VsZCBmYWlsJiMzNDspOwogCiAJLyogQ3JlYXRlIHZDUFUgd2l0aCBiaXRzIDYzOjMyICE9IDAsIGJ1dCBhbiBvdGhlcndpc2UgdmFsaWQgaWQgKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L3NldF9ib290X2NwdV9pZC5jCmluZGV4IDhlMzg5ODY0NmM2OWQuLjFjNGViZGY4ZTgyYzUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9zZXRfYm9vdF9jcHVfaWQuYwpAQCAtMzksOCAmIzQzOzM5LDggQEAgc3RhdGljIHZvaWQgdGVzdF9zZXRfaW52YWxpZF9ic3Aoc3RydWN0IGt2bV92bSAqdm0pCiAJaW50IHI7CiAKIAlpZiAobWF4X3ZjcHVfaWQpIHsKLQkJciA9IF9fdm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopKG1heF92Y3B1X2lkICYjNDM7IDEpKTsKLQkJVEVTVF9BU1NFUlQociA9PSAtMSAmYW1wOyZhbXA7IGVycm5vID09IEVJTlZBTCwgJiMzNDtCU1Agd2l0aCBJRCAmZ3Q7IE1BWCBzaG91bGQgZmFpbCYjMzQ7KTsKJiM0MzsJCXIgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKW1heF92Y3B1X2lkKTsKJiM0MzsJCVRFU1RfQVNTRVJUKHIgPT0gLTEgJmFtcDsmYW1wOyBlcnJubyA9PSBFSU5WQUwsICYjMzQ7QlNQIHdpdGggSUQgJmd0Oz0gTUFYIHNob3VsZCBmYWlsJiMzNDspOwogCX0KIAogCXIgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKSgxTCAmbHQ7Jmx0OyAzMikpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDIxCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNTg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEtWTSB4ODYgUGF0Y2gqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIGRvd24gdGhpcyBLVk0geDg2IHBhdGNoLiBJdCBsb29rcyBsaWtlIHdlJiMzOTt2ZSBnb3QgYSBtb2RpZmljYXRpb24gcmVsYXRlZCB0byBob3cgd2UgaGFuZGxlIGBLVk1fQ0FQX01BWF9WQ1BVX0lEYCBhbmQgYEtWTV9TRVRfQk9PVF9DUFVfSURgLiBUaGUgY2hhbmdlcyBhcmUgZm9jdXNlZCBpbiBgYXJjaC94ODYva3ZtL3g4Ni5jYCwgYW5kIGl0JiMzOTtzIGEgc3VidGxlIGJ1dCBwb3RlbnRpYWxseSBzaWduaWZpY2FudCBhZGp1c3RtZW50IHRvIHRoZSBib3VuZHMgY2hlY2tpbmcgbG9naWMuIEkgc2VlIHRoZXkmIzM5O3JlIGNoYW5naW5nIHRoZSBncmVhdGVyLXRoYW4gb3BlcmF0b3JzIChgJmd0O2ApIHRvIGdyZWF0ZXItdGhhbi1vci1lcXVhbCAoYCZndDs9YCkgaW4gYSBjb3VwbGUgb2YgcGxhY2VzLgoKU3BlY2lmaWNhbGx5LCB0aGUgZGlmZiBpbXBhY3RzIGBrdm1fdm1faW9jdGxfZW5hYmxlX2NhcGAgYW5kIGBrdm1fYXJjaF92bV9pb2N0bGAuIE15IGV4cGVydCBpbnN0aW5jdHMgdGVsbCBtZSB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY29zbWV0aWMgb25lLiBNb2RpZnlpbmcgdGhlIGNvbXBhcmlzb24gb3BlcmF0b3JzIGxpa2UgdGhpcyBjYW4gaGF2ZSBpbXBsaWNhdGlvbnMgZm9yIGhvdyB0aGUgc3lzdGVtIGhhbmRsZXMgQ1BVIElEcyBhbmQgdmlydHVhbCBDUFUgaW5pdGlhbGl6YXRpb24sIHBvdGVudGlhbGx5IGFmZmVjdGluZyByZXNvdXJjZSBhbGxvY2F0aW9uIG9yIGhvdyB0aGUgZ3Vlc3QgaW50ZXJhY3RzIHdpdGggdGhlIGhvc3QuCgpOb3csIG15IGltbWVkaWF0ZSBjb25jZXJucyBhcmUgYXJvdW5kIHRoZSBwb3RlbnRpYWwgZm9yIHJlZ3Jlc3Npb25zLCBzdWJ0bGUgYnVncywgb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zLiBUaGlzIGRlZmluaXRlbHkgd2FycmFudHMgdGhvcm91Z2ggZnV6emluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHByZWNpc2UgY29uZGl0aW9ucyB1bmRlciB3aGljaCB0aGVzZSBjaGVja3MgYXJlIHRyaWdnZXJlZC4KCkkmIzM5O20gdGhpbmtpbmcsICYjMzQ7TGV0JiMzOTtzIHRyYWNrIGRvd24gd2hlcmUgdGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIGFuZCB0aGUgY29uZGl0aW9ucyB0aGF0IGxlYWQgdG8gdGhlaXIgaW52b2NhdGlvbi4mIzM0OyBUaGUgY29kZSYjMzk7cyBpbiBgYXJjaC94ODYva3ZtL3g4Ni5jYCwgc28gaXQmIzM5O3MgeDg2LXNwZWNpZmljLiBLVk0gaXRzZWxmIGlzIGVuYWJsZWQgYnkgYENPTkZJR19LVk1gLCBzbyB0aGF0JiMzOTtzIHRoZSBiYXNlbGluZS4gSSBzaG91bGQgc3RhcnQgYnkgdmVyaWZ5aW5nIHRoYXQgYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBpcyBhY3R1YWxseSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgaWYgYW55LCBhZmZlY3QgaXRzIGJlaGF2aW9yLiBJIG5lZWQgdG8ga25vdyB0aGUgY29udHJvbCBmbG93IGhlcmUuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBLVk0gaW9jdGwgaGFuZGxpbmcgdG8gZnVsbHkgdW5kZXJzdGFuZCBob3cgdGhlc2UgbmV3IGNvbXBhcmlzb25zIGltcGFjdCB0aGUgb3ZlcmFsbCBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDc6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0veDg2LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3g4Ni5jPTY3MDU9dm9pZCBrdm1fYXJjaF9zeW5jX2RpcnR5X2xvZyhzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fbWVtb3J5X3Nsb3QgKm1lbXNsb3QpXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTY3MjMtXG5hcmNoL3g4Ni9rdm0veDg2LmM6NjcyNDppbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLFxuYXJjaC94ODYva3ZtL3g4Ni5jLTY3MjUtXHRcdFx0ICAgIHN0cnVjdCBrdm1fZW5hYmxlX2NhcCAqY2FwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA3OjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUyMTcKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGFzIGlmIHRoZXkmIzM5O3JlIG15IG93bjoKCioqQW5hbHl6aW5nIGBrdm1fYXJjaF92bV9pb2N0bGAqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gc3RyYWlnaHQgZm9yIGBrdm1fYXJjaF92bV9pb2N0bGAuIEkga25vdyB0aGlzIGZ1bmN0aW9uIGlzIGNyaXRpY2FsLiBJdCYjMzk7cyB0aGUgZ2F0ZWtlZXBlciwgdGhlIGNlbnRyYWwgcG9pbnQgd2hlcmUgdmlydHVhbCBtYWNoaW5lIG1hbmFnZW1lbnQgaW50ZXJhY3RzIHdpdGggdGhlIHVuZGVybHlpbmcgYXJjaGl0ZWN0dXJlLiBJdCYjMzk7cyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucywgb3Igd2hlcmUgdGhpbmdzIGNhbiBnbyBob3JyaWJseSB3cm9uZyEgU28sIGxldCYjMzk7cyBzdGFydCBoZXJlLiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgYmVpbmcgcmVxdWVzdGVkLCBob3cgdGhlIGluZm9ybWF0aW9uIGlzIGJlaW5nIGhhbmRsZWQsIGFuZCB3aGF0IHNhZmVndWFyZHMgYXJlIGluIHBsYWNlLiBUaGlzIGlzIGdyb3VuZCB6ZXJvIGZvciBhIGRlZXAgZGl2ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fYXJjaF92bV9pb2N0bCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS94ODYuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0veDg2LmM9NzI0NT1sb25nIGt2bV9hcmNoX3ZjcHVfdW5sb2NrZWRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCxcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmMtNzI1Ny1cbmFyY2gveDg2L2t2bS94ODYuYzo3MjU4OmludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZylcbmFyY2gveDg2L2t2bS94ODYuYy03MjU5LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NTc0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biBtZW50YWwgcHJvY2Vzc2luZzoKCioqQW5hbHl6aW5nIGEgS1ZNIFBhdGNoIG9uIHg4NioqCgpBbHJpZ2h0LCBzbyB0aGUgcGF0Y2ggaXMgcG9raW5nIGFyb3VuZCBpbiB0aGUgaGVhcnQgb2YgdGhlIHg4NiBLVk0gaW1wbGVtZW50YXRpb24g4oCTIHNwZWNpZmljYWxseSwgYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBhbmQgYGt2bV9hcmNoX3ZtX2lvY3RsYCwgZm91bmQgaW4gYGFyY2gveDg2L2t2bS94ODYuY2AuIFRob3NlIGFyZSB0aGUgZnVuZGFtZW50YWwgaW9jdGwgaGFuZGxlcnMgZm9yIHRoZSB4ODYgYXJjaGl0ZWN0dXJlIHdpdGhpbiBLVk0uIE1lYW5pbmcgdGhpcyBpcyBsaWtlbHkgYSBmYWlybHkgbG93LWxldmVsIGZlYXR1cmUgb3IgY2FwYWJpbGl0eSBjaGFuZ2UuCgpOb3csIGEgY3JpdGljYWwgZmlyc3Qgc3RlcDogd2hhdCBjb25maWd1cmF0aW9ucyBkb2VzIHRoaXMgZGVwZW5kIG9uPyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgd2hldGhlciBJIGV2ZW4gKmNhcmUqIGFib3V0IHRoaXMgY29kZSBpZiB0aGUgYnVpbGQgZG9lc24mIzM5O3QgYWxpZ24gd2l0aCBteSBjdXJyZW50IGludGVyZXN0cy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcywgb2YgY291cnNlLCB0byBzZWUgaWYgYEtWTWAgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgdGhpcyB0byBiZSBidWlsdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTV9YODZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxLVx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTUxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxuYXJjaC94ODYva3ZtL0tjb25maWctNTMtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjY5OmNvbmZpZyBLVk1fV0VSUk9SXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03MC1cdGJvb2wgXCYjMzQ7Q29tcGlsZSBLVk0gd2l0aCAtV2Vycm9yXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctODItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4Mzpjb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXHRib29sIFwmIzM0O0VuYWJsZSBzdXBwb3J0IGZvciBLVk0gc29mdHdhcmUtcHJvdGVjdGVkIFZNc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTk1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxuYXJjaC94ODYva3ZtL0tjb25maWctOTctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTA3OmNvbmZpZyBLVk1fSU5URUxfUFJPVkVfVkVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXCYjMzQ7Q2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTMzLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzUtXHRib29sIFwmIzM0O0ludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNDY6Y29uZmlnIEtWTV9BTURcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgQU1EIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE1Njpjb25maWcgS1ZNX0FNRF9TRVZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cdGJvb2wgXCYjMzQ7QU1EIFNlY3VyZSBFbmNyeXB0ZWQgVmlydHVhbGl6YXRpb24gKFNFVikgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3MS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mjpjb25maWcgS1ZNX0lPQVBJQ1xuYXJjaC94ODYva3ZtL0tjb25maWctMTczLVx0Ym9vbCBcJiMzNDtJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4MS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE4Mjpjb25maWcgS1ZNX1NNTVxuYXJjaC94ODYva3ZtL0tjb25maWctMTgzLVx0Ym9vbCBcJiMzNDtTeXN0ZW0gTWFuYWdlbWVudCBNb2RlIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE5Mzpjb25maWcgS1ZNX0hZUEVSVlxuYXJjaC94ODYva3ZtL0tjb25maWctMTk0LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBNaWNyb3NvZnQgSHlwZXItViBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDYtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDc6Y29uZmlnIEtWTV9YRU5cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwOC1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMTY6Y29uZmlnIEtWTV9QUk9WRV9NTVVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNy1cdGJvb2wgXCYjMzQ7UHJvdmUgS1ZNIE1NVSBjb3JyZWN0bmVzc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIyOC1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIyOTpjb25maWcgS1ZNX0VYVEVSTkFMX1dSSVRFX1RSQUNLSU5HXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzAtXHRib29sXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzI6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMy1cdGludCBcJiMzNDtNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDc6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzEwNQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDExNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIEtWTSBDb25maWd1cmF0aW9uIGFuZCBSZWFjaGFibGUgRnVuY3Rpb25zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCwgcmlnaHQgb2ZmIHRoZSBiYXQsIGl0JiMzOTtzIGhpdHRpbmcgYEtWTWAgY29uZmlndXJhdGlvbnMuIEkgY2FuIHNlZSB0aGUgY2hhbmdlcyBhcmUgZm9jdXNlZCBvbiBga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBgIGFuZCBga3ZtX2FyY2hfdm1faW9jdGxgLiBNeSBmaXJzdCB0aG91Z2h0IGlzLCB0aGVzZSBhcmUgZGVmaW5pdGVseSByZWFjaGFibGUgYW5kIHNob3VsZCBiZSBoaWdoIG9uIHRoZSBmdXp6aW5nIHByaW9yaXR5IGxpc3QuIEFueXRoaW5nIHRoYXQmIzM5O3MgdG91Y2hlZCBpbiBhIHBhdGNoIGxpa2UgdGhpcyBpcyBwcmltZSByZWFsIGVzdGF0ZSBmb3IgZmluZGluZyB2dWxuZXJhYmlsaXRpZXMuCgpCZWZvcmUgSSBkaXZlIHRvbyBkZWVwIGludG8gZnV6emluZywgSSBzaG91bGQgbWFrZSBzdXJlIEkgaGF2ZSBhbGwgdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9uIGR1Y2tzIGluIGEgcm93LiBJdCYjMzk7cyBzZWNvbmQgbmF0dXJlIGF0IHRoaXMgcG9pbnQgdG8gY2hlY2sgZm9yIGRlcGVuZGVuY2llcy4gSSBrbm93IGBLVk1gIGl0c2VsZiBkZXBlbmRzIG9uIGBWSVJUVUFMSVpBVElPTmAsIGFuZCB0aGVuIGl0JiMzOTtzIGVpdGhlciBgS1ZNX0lOVEVMYCBvciBgS1ZNX0FNRGAsIGRlcGVuZGluZyBvbiB0aGUgaG9zdC4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkmIzM5O2xsIHBvcCBvdmVyIHRvIGBhcmNoL3g4Ni9rdm0vS2NvbmZpZ2AgdG8gcmVjb25maXJtIHRoZSBgY29uZmlnIEtWTWAgZGVwZW5kZW5jaWVzLiBObyBwb2ludCBpbiB3YXN0aW5nIHRpbWUgcnVubmluZyBmdXp6ZXJzIHdpdGhvdXQgYSBwcm9wZXJseSBjb25maWd1cmVkIGVudmlyb25tZW50LiBHb3R0YSBoYXZlIGFsbCB0aGUgYml0cyBzZXQgY29ycmVjdGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNzowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWc9NTI9Y29uZmlnIEtWTVxuYXJjaC94ODYva3ZtL0tjb25maWctNTMtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbmFyY2gveDg2L2t2bS9LY29uZmlnOjU0Olx0ZGVwZW5kcyBvbiBYODZfTE9DQUxfQVBJQ1xuYXJjaC94ODYva3ZtL0tjb25maWctNTUtXHRoZWxwXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9Njk9Y29uZmlnIEtWTV9XRVJST1Jcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03Ni1cdCMgdGhlIGtlcm5lbC13aWRlIFdFUlJPUj15LlxuYXJjaC94ODYva3ZtL0tjb25maWc6Nzc6XHRkZXBlbmRzIG9uIEtWTV9YODYgXHUwMDI2XHUwMDI2ICgoRVhQRVJUIFx1MDAyNlx1MDAyNiAhS0FTQU4pIHx8IFdFUlJPUilcbmFyY2gveDg2L2t2bS9LY29uZmlnLTc4LVx0aGVscFxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTgzPWNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04NC1cdGJvb2wgXCYjMzQ7RW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXCYjMzQ7XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4NTpcdGRlcGVuZHMgb24gRVhQRVJUXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4NjpcdGRlcGVuZHMgb24gS1ZNX1g4NiBcdTAwMjZcdTAwMjYgWDg2XzY0XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Ny1cdHNlbGVjdCBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTk2PWNvbmZpZyBLVk1fSU5URUxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuYXJjaC94ODYva3ZtL0tjb25maWc6OTg6XHRkZXBlbmRzIG9uIEtWTSBcdTAwMjZcdTAwMjYgSUEzMl9GRUFUX0NUTFxuYXJjaC94ODYva3ZtL0tjb25maWctOTktXHRzZWxlY3QgWDg2X0ZSRUQgaWYgWDg2XzY0XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTA3PWNvbmZpZyBLVk1fSU5URUxfUFJPVkVfVkVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXCYjMzQ7Q2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcJiMzNDtcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwOTogICAgICAgIGRlcGVuZHMgb24gS1ZNX0lOVEVMIFx1MDAyNlx1MDAyNiBFWFBFUlRcbmFyY2gveDg2L2t2bS9LY29uZmlnLTExMC0gICAgICAgIGhlbHBcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMjMtXHRib29sIFwmIzM0O1NvZnR3YXJlIEd1YXJkIGVYdGVuc2lvbnMgKFNHWCkgVmlydHVhbGl6YXRpb25cJiMzNDtcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEyNDpcdGRlcGVuZHMgb24gWDg2X1NHWCBcdTAwMjZcdTAwMjYgS1ZNX0lOVEVMXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMjUtXHRoZWxwXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTM0PWNvbmZpZyBLVk1fSU5URUxfVERYXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTM2LVx0ZGVmYXVsdCB5XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMzc6XHRkZXBlbmRzIG9uIElOVEVMX1REWF9IT1NUXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzgtXHRzZWxlY3QgS1ZNX0dFTkVSSUNfTUVNT1JZX0FUVFJJQlVURVNcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xNDY9Y29uZmlnIEtWTV9BTURcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgQU1EIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ4Olx0ZGVwZW5kcyBvbiBLVk0gXHUwMDI2XHUwMDI2IChDUFVfU1VQX0FNRCB8fCBDUFVfU1VQX0hZR09OKVxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ5LVx0aGVscFxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTE1Nj1jb25maWcgS1ZNX0FNRF9TRVZcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTgtXHRkZWZhdWx0IHlcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE1OTpcdGRlcGVuZHMgb24gS1ZNX0FNRCBcdTAwMjZcdTAwMjYgWDg2XzY0XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNjA6XHRkZXBlbmRzIG9uIENSWVBUT19ERVZfU1BfUFNQIFx1MDAyNlx1MDAyNiAhKEtWTV9BTUQ9eSBcdTAwMjZcdTAwMjYgQ1JZUFRPX0RFVl9DQ1BfREQ9bSlcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE2MS1cdHNlbGVjdCBBUkNIX0hBU19DQ19QTEFURk9STVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTE3Mj1jb25maWcgS1ZNX0lPQVBJQ1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cdGRlZmF1bHQgeVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTc1Olx0ZGVwZW5kcyBvbiBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzYtXHRoZWxwXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTgyPWNvbmZpZyBLVk1fU01NXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTg0LVx0ZGVmYXVsdCB5XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODU6XHRkZXBlbmRzIG9uIEtWTV9YODZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4Ni1cdGhlbHBcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOTM9Y29uZmlnIEtWTV9IWVBFUlZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NC1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgTWljcm9zb2Z0IEh5cGVyLVYgZW11bGF0aW9uXCYjMzQ7XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxOTU6XHRkZXBlbmRzIG9uIEtWTV9YODZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5Ni1cdGRlZmF1bHQgeVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTIwNz1jb25maWcgS1ZNX1hFTlxuYXJjaC94ODYva3ZtL0tjb25maWctMjA4LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBYZW4gaHlwZXJjYWxsIGludGVyZmFjZVwmIzM0O1xuYXJjaC94ODYva3ZtL0tjb25maWc6MjA5Olx0ZGVwZW5kcyBvbiBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTAtXHRoZWxwXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MjE2PWNvbmZpZyBLVk1fUFJPVkVfTU1VXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTctXHRib29sIFwmIzM0O1Byb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcJiMzNDtcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxODpcdGRlcGVuZHMgb24gREVCVUdfS0VSTkVMXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMTk6XHRkZXBlbmRzIG9uIEtWTV9YODZcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIyMDpcdGRlcGVuZHMgb24gRVhQRVJUXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjEtXHRoZWxwXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MjMyPWNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzMtXHRpbnQgXCYjMzQ7TWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFwmIzM0O1xuYXJjaC94ODYva3ZtL0tjb25maWc6MjM0Olx0ZGVwZW5kcyBvbiBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzUtXHRyYW5nZSAxMDI0IDQwOTZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDc6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTIwNAoJCQkJCQkJb3V0cHV0OiAxMTUKCQkJCQkJCXRob3VnaHRzOiA5OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBicmVha2Rvd24gb2YgdGhpcy4KCioqS1ZNIEZ1enppbmcgU3RyYXRlZ3k6IEZvY3VzaW5nIG9uIEtleSBpb2N0bHMqKgoKUmlnaHQsIHNvIHRoZSBgS1ZNYCBjb25maWd1cmF0aW9uIGl0c2VsZiBzZWVtcyBhZGVxdWF0ZSBmb3IgdGhpcyBlZmZvcnQuIE5vIG5lZWQgdG8gb3ZlcmNvbXBsaWNhdGUgdGhpbmdzIHRoZXJlLiBNeSBpbW1lZGlhdGUgZm9jdXMgbmFycm93cyBpbiBvbiB0aGVzZSB0d28gZnVuY3Rpb25zOiBga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBgIGFuZCBga3ZtX2FyY2hfdm1faW9jdGxgLiBUaG9zZSBzZWVtIGxpa2Ugc29saWQgZW50cnkgcG9pbnRzIGZvciBmdXp6aW5nLiBUaGV5JiMzOTtyZSBsaWtlbHkgaGFuZGxpbmcgaW9jdGxzIGFuZCBkZWFsaW5nIHdpdGggdXNlci1wcm92aWRlZCBkYXRhLCBhIGNsYXNzaWMgYXR0YWNrIHN1cmZhY2UuIEdvb2QuCgpUaGUgcGF0Y2ggaXRzZWxmIGlzIGludGVyZXN0aW5nIOKAkyBpdCYjMzk7cyBhZGRyZXNzaW5nIGEgYm91bmRzIGNoZWNraW5nIGlzc3VlIHJlbGF0ZWQgdG8gYEtWTV9DQVBfTUFYX1ZDUFVfSURgIGFuZCBgS1ZNX1NFVF9CT09UX0NQVV9JRGAuIFRoaXMgaXMgYSBwcmV0dHkgY29tbW9uIGNsYXNzIG9mIHZ1bG5lcmFiaWxpdGllcy4gSW5jb3JyZWN0IGJvdW5kcyBjaGVja2luZyBjYW4gbGVhZCB0byBhbGwgc29ydHMgb2YgbWVtb3J5IGNvcnJ1cHRpb24sIHNvIHRoYXQmIzM5O3Mgc29tZXRoaW5nIEkmIzM5O2xsIGRlZmluaXRlbHkga2VlcCBpbiBtaW5kIHdoZW4gZGVzaWduaW5nIHRoZSBmdXp6aW5nIGNhbXBhaWduLiBUaGlzIGlzIGtleSB0byBleHBsb2l0YWJpbGl0eSEKClRpbWUgdG8gc2V0IHRob3NlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA3OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fdm1faW9jdGxfZW5hYmxlX2NhcCYjMzQ7LAogICAgJiMzNDtrdm1fYXJjaF92bV9pb2N0bCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYm91bmRzIGNoZWNraW5nIGxvZ2ljIGZvciBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFuZCBLVk1fU0VUX0JPT1RfQ1BVX0lEIGlvY3RscyBpbiBLVk0geDg2LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fdm1faW9jdGxfZW5hYmxlX2NhcCYjMzQ7LAogICAgJiMzNDtrdm1fYXJjaF92bV9pb2N0bCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYm91bmRzIGNoZWNraW5nIGxvZ2ljIGZvciBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFuZCBLVk1fU0VUX0JPT1RfQ1BVX0lEIGlvY3RscyBpbiBLVk0geDg2LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MDYuOTMyNDk0NjIyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjkzMDUyNjk0NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBcIixcbiAgICBcImt2bV9hcmNoX3ZtX2lvY3RsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGJvdW5kcyBjaGVja2luZyBsb2dpYyBmb3IgS1ZNX0NBUF9NQVhfVkNQVV9JRCBhbmQgS1ZNX1NFVF9CT09UX0NQVV9JRCBpb2N0bHMgaW4gS1ZNIHg4Ni4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MDYuOTMyNTAwNzAyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTc1MDcwNjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA2OWVhOWQ3ZjJiMGNmNTc3OTllYzdmOGVlNGYzMjY0YmFjN2YxNGEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMDc6MDY6MDYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XFxuaW5kZXggZTMwMDNhMjQxZDViMC4uZGFiOWEyOGMwZmI1MSAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcXG4rKysgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcXG5AQCAtODU5MywyMSArODU5MywyNCBAQCBLVk1fWDg2X1FVSVJLX05FU1RFRF9TVk1fU0hBUkVEX1BBVCAgICAgICAgQnkgZGVmYXVsdCwgS1ZNIGZvciBuZXN0ZWQgU1ZNIGd1ZXN0c1xcbiBcXG4gOkFyY2hpdGVjdHVyZXM6IHg4NlxcbiA6VGFyZ2V0OiBWTVxcbi06UGFyYW1ldGVyczogYXJnc1swXSAtIG1heGltdW0gQVBJQyBJRCB2YWx1ZSBzZXQgZm9yIGN1cnJlbnQgVk1cXG4rOlBhcmFtZXRlcnM6IGFyZ3NbMF0gLSBtYXhpbXVtIEFQSUMgSUQgdmFsdWUgKHBsdXMgb25lKSBzZXQgZm9yIGN1cnJlbnQgVk1cXG4gOlJldHVybnM6IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBhcmdzWzBdIGlzIGJleW9uZCBLVk1fTUFYX1ZDUFVfSURTXFxuICAgICAgICAgICBzdXBwb3J0ZWQgaW4gS1ZNIG9yIGlmIGl0IGhhcyBiZWVuIHNldC5cXG4gXFxuLVRoaXMgY2FwYWJpbGl0eSBhbGxvd3MgdXNlcnNwYWNlIHRvIHNwZWNpZnkgbWF4aW11bSBwb3NzaWJsZSBBUElDIElEXFxuK1RoaXMgY2FwYWJpbGl0eSBhbGxvd3MgdXNlcnNwYWNlIHRvIHNwZWNpZnkgYSBsaW1pdCBvbiBBUElDIElEIHZhbHVlc1xcbiBhc3NpZ25lZCBmb3IgY3VycmVudCBWTSBzZXNzaW9uIHByaW9yIHRvIHRoZSBjcmVhdGlvbiBvZiB2Q1BVcywgc2F2aW5nXFxuIG1lbW9yeSBmb3IgZGF0YSBzdHJ1Y3R1cmVzIGluZGV4ZWQgYnkgdGhlIEFQSUMgSUQuICBVc2Vyc3BhY2UgaXMgYWJsZVxcbiB0byBjYWxjdWxhdGUgdGhlIGxpbWl0IHRvIEFQSUMgSUQgdmFsdWVzIGZyb20gZGVzaWduYXRlZFxcbiBDUFUgdG9wb2xvZ3kuXFxuIFxcbi1UaGUgdmFsdWUgY2FuIGJlIGNoYW5nZWQgb25seSB1bnRpbCBLVk1fRU5BQkxFX0NBUCBpcyBzZXQgdG8gYSBub256ZXJvXFxuK1RoZSBsaW1pdCBpcyBub3QgaW5jbHVzaXZlLCBpLmUuIHRoZSBtYXhpbXVtIHBvc3NpYmxlIEFQSUMgSUQgdmFsdWUgaXNcXG4rYXJnc1swXSAtIDEuXFxuK1xcbitUaGUgY2FwYWJpbGl0eSB2YWx1ZSBjYW4gb25seSBiZSBjaGFuZ2VkIHVudGlsIGl0IGlzIHNldCB0byBhIG5vbnplcm9cXG4gdmFsdWUgb3IgdW50aWwgYSB2Q1BVIGlzIGNyZWF0ZWQuICBVcG9uIGNyZWF0aW9uIG9mIHRoZSBmaXJzdCB2Q1BVLFxcbiBpZiB0aGUgdmFsdWUgd2FzIHNldCB0byB6ZXJvIG9yIEtWTV9FTkFCTEVfQ0FQIHdhcyBub3QgaW52b2tlZCwgS1ZNXFxuLXVzZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBLVk1fQ0hFQ0tfRVhURU5TSU9OKEtWTV9DQVBfTUFYX1ZDUFVfSUQpIGFzXFxuLXRoZSBtYXhpbXVtIEFQSUMgSUQuXFxuK3VzZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBLVk1fQ0hFQ0tfRVhURU5TSU9OKEtWTV9DQVBfTUFYX1ZDUFVfSUQpIC0gMVxcbithcyB0aGUgbWF4aW11bSBBUElDIElELlxcbiBcXG4gNy4zMyBLVk1fQ0FQX1g4Nl9OT1RJRllfVk1FWElUXFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcXG5pbmRleCA0N2NiOWViYTExM2IxLi5iNTc2YjQ2ODY5ZDI5IDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xcbisrKyBiL2FyY2gveDg2L2t2bS94ODYuY1xcbkBAIC02OTA4LDcgKzY5MDgsNyBAQCBpbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLFxcbiBcXHRcXHRcXHRicmVhaztcXG4gXFxuIFxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmt2bS1cXHUwMDNlbG9jayk7XFxuLVxcdFxcdGlmIChrdm0tXFx1MDAzZWFyY2guYnNwX3ZjcHVfaWQgXFx1MDAzZSBjYXAtXFx1MDAzZWFyZ3NbMF0pIHtcXG4rXFx0XFx0aWYgKGt2bS1cXHUwMDNlYXJjaC5ic3BfdmNwdV9pZCBcXHUwMDNlPSBjYXAtXFx1MDAzZWFyZ3NbMF0pIHtcXG4gXFx0XFx0XFx0O1xcbiBcXHRcXHR9IGVsc2UgaWYgKGt2bS1cXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMgPT0gY2FwLVxcdTAwM2VhcmdzWzBdKSB7XFxuIFxcdFxcdFxcdHIgPSAwO1xcbkBAIC03NDc4LDggKzc0NzgsOCBAQCBpbnQga3ZtX2FyY2hfdm1faW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCwgdW5zaWduZWQgbG9uZyBhcmcpXFxuIFxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmt2bS1cXHUwMDNlbG9jayk7XFxuIFxcdFxcdGlmIChrdm0tXFx1MDAzZWNyZWF0ZWRfdmNwdXMpXFxuIFxcdFxcdFxcdHIgPSAtRUJVU1k7XFxuLVxcdFxcdGVsc2UgaWYgKGFyZyBcXHUwMDNlIEtWTV9NQVhfVkNQVV9JRFMgfHxcXG4tXFx0XFx0XFx0IChrdm0tXFx1MDAzZWFyY2gubWF4X3ZjcHVfaWRzIFxcdTAwMjZcXHUwMDI2IGFyZyBcXHUwMDNlIGt2bS1cXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMpKVxcbitcXHRcXHRlbHNlIGlmIChhcmcgXFx1MDAzZT0gS1ZNX01BWF9WQ1BVX0lEUyB8fFxcbitcXHRcXHRcXHQgKGt2bS1cXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMgXFx1MDAyNlxcdTAwMjYgYXJnIFxcdTAwM2U9IGt2bS1cXHUwMDNlYXJjaC5tYXhfdmNwdV9pZHMpKVxcbiBcXHRcXHRcXHRyID0gLUVJTlZBTDtcXG4gXFx0XFx0ZWxzZVxcbiBcXHRcXHRcXHRrdm0tXFx1MDAzZWFyY2guYnNwX3ZjcHVfaWQgPSBhcmc7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmNcXG5pbmRleCA3ZTJiZmIzYzNmM2JhLi40M2YxNmMwNTJkZTRhIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmNcXG5AQCAtMzAsMjIgKzMwLDI1IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pXFxuIFxcdGlmIChrdm1faGFzX2NhcChLVk1fQ0FQX1NFVF9CT09UX0NQVV9JRCkpIHtcXG4gXFx0XFx0dm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopTUFYX1ZDUFVfSUQpO1xcbiBcXG4tXFx0XFx0LyogVHJ5IHNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBiZWxvdyBCT09UX0NQVV9JRCAqL1xcbi1cXHRcXHRyZXQgPSBfX3ZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEIC0gMSk7XFxuK1xcdFxcdC8qIFRyeSBzZXR0aW5nIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYmVsb3cgb3IgZXF1YWwgdG8gQk9PVF9DUFVfSUQgKi9cXG4rXFx0XFx0cmV0ID0gX192bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCk7XFxuIFxcdFxcdFRFU1RfQVNTRVJUKHJldCBcXHUwMDNjIDAsXFxuLVxcdFxcdFxcdCAgICBcXFwiU2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIGJlbG93IEJPT1RfQ1BVX0lEIHNob3VsZCBmYWlsXFxcIik7XFxuK1xcdFxcdFxcdCAgICBcXFwiU2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIFxcdTAwM2M9IEJPT1RfQ1BVX0lEIHNob3VsZCBmYWlsXFxcIik7XFxuIFxcdH1cXG4gXFxuLVxcdC8qIFNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEICovXFxuLVxcdHZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEKTtcXG4rXFx0LypcXG4rXFx0ICogU2V0IEtWTV9DQVBfTUFYX1ZDUFVfSUQuIE5vdGU6IEtWTV9DQVBfTUFYX1ZDUFVfSUQgaXMgYSBtaXNub21lcixcXG4rXFx0ICogaXQgYWN0dWFsbHkgcmVwcmVzZW50cyBtYXhpbXVtIHZjcHVfaWQgcGx1cyBvbmUuXFxuK1xcdCAqL1xcbitcXHR2bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCArIDEpO1xcbiBcXG4gXFx0LyogVHJ5IHRvIHNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFnYWluICovXFxuLVxcdHJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgKyAxKTtcXG4rXFx0cmV0ID0gX192bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCArIDIpO1xcbiBcXHRURVNUX0FTU0VSVChyZXQgXFx1MDAzYyAwLFxcbiBcXHRcXHQgICAgXFxcIlNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBtdWx0aXBsZSB0aW1lcyBzaG91bGQgZmFpbFxcXCIpO1xcbiBcXG4gXFx0LyogQ3JlYXRlIHZDUFUgd2l0aCBpZCBiZXlvbmQgS1ZNX0NBUF9NQVhfVkNQVV9JRCBjYXAgKi9cXG4tXFx0cmV0ID0gX192bV9pb2N0bCh2bSwgS1ZNX0NSRUFURV9WQ1BVLCAodm9pZCAqKU1BWF9WQ1BVX0lEKTtcXG4rXFx0cmV0ID0gX192bV9pb2N0bCh2bSwgS1ZNX0NSRUFURV9WQ1BVLCAodm9pZCAqKShNQVhfVkNQVV9JRCArIDEpKTtcXG4gXFx0VEVTVF9BU1NFUlQocmV0IFxcdTAwM2MgMCwgXFxcIkNyZWF0aW5nIHZDUFUgd2l0aCBJRCBcXHUwMDNlIE1BWF9WQ1BVX0lEIHNob3VsZCBmYWlsXFxcIik7XFxuIFxcbiBcXHQvKiBDcmVhdGUgdkNQVSB3aXRoIGJpdHMgNjM6MzIgIT0gMCwgYnV0IGFuIG90aGVyd2lzZSB2YWxpZCBpZCAqL1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L3NldF9ib290X2NwdV9pZC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9zZXRfYm9vdF9jcHVfaWQuY1xcbmluZGV4IDhlMzg5ODY0NmM2OWQuLjFjNGViZGY4ZTgyYzUgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9zZXRfYm9vdF9jcHVfaWQuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmNcXG5AQCAtMzksOCArMzksOCBAQCBzdGF0aWMgdm9pZCB0ZXN0X3NldF9pbnZhbGlkX2JzcChzdHJ1Y3Qga3ZtX3ZtICp2bSlcXG4gXFx0aW50IHI7XFxuIFxcbiBcXHRpZiAobWF4X3ZjcHVfaWQpIHtcXG4tXFx0XFx0ciA9IF9fdm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopKG1heF92Y3B1X2lkICsgMSkpO1xcbi1cXHRcXHRURVNUX0FTU0VSVChyID09IC0xIFxcdTAwMjZcXHUwMDI2IGVycm5vID09IEVJTlZBTCwgXFxcIkJTUCB3aXRoIElEIFxcdTAwM2UgTUFYIHNob3VsZCBmYWlsXFxcIik7XFxuK1xcdFxcdHIgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fU0VUX0JPT1RfQ1BVX0lELCAodm9pZCAqKW1heF92Y3B1X2lkKTtcXG4rXFx0XFx0VEVTVF9BU1NFUlQociA9PSAtMSBcXHUwMDI2XFx1MDAyNiBlcnJubyA9PSBFSU5WQUwsIFxcXCJCU1Agd2l0aCBJRCBcXHUwMDNlPSBNQVggc2hvdWxkIGZhaWxcXFwiKTtcXG4gXFx0fVxcbiBcXG4gXFx0ciA9IF9fdm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopKDFMIFxcdTAwM2NcXHUwMDNjIDMyKSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA3OjA2OjA3LjUzMDkyNDM4MloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI4NzA2ODI2MzE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV92bV9pb2N0bF9lbmFibGVfY2FwXCIsXG4gICAgXCJrdm1fYXJjaF92bV9pb2N0bFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBib3VuZHMgY2hlY2tpbmcgbG9naWMgZm9yIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYW5kIEtWTV9TRVRfQk9PVF9DUFVfSUQgaW9jdGxzIGluIEtWTSB4ODYuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDY5ZWE5ZDdmMmIwY2Y1Nzc5OWVjN2Y4ZWU0ZjMyNjRiYWM3ZjE0YTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxIDA3OjA2OjA2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG5pbmRleCBlMzAwM2EyNDFkNWIwLi5kYWI5YTI4YzBmYjUxIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG4rKysgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbkBAIC04NTkzLDIxICs4NTkzLDI0IEBAIEtWTV9YODZfUVVJUktfTkVTVEVEX1NWTV9TSEFSRURfUEFUICAgICAgICBCeSBkZWZhdWx0LCBLVk0gZm9yIG5lc3RlZCBTVk0gZ3Vlc3RzXG4gXG4gOkFyY2hpdGVjdHVyZXM6IHg4NlxuIDpUYXJnZXQ6IFZNXG4tOlBhcmFtZXRlcnM6IGFyZ3NbMF0gLSBtYXhpbXVtIEFQSUMgSUQgdmFsdWUgc2V0IGZvciBjdXJyZW50IFZNXG4rOlBhcmFtZXRlcnM6IGFyZ3NbMF0gLSBtYXhpbXVtIEFQSUMgSUQgdmFsdWUgKHBsdXMgb25lKSBzZXQgZm9yIGN1cnJlbnQgVk1cbiA6UmV0dXJuczogMCBvbiBzdWNjZXNzLCAtRUlOVkFMIGlmIGFyZ3NbMF0gaXMgYmV5b25kIEtWTV9NQVhfVkNQVV9JRFNcbiAgICAgICAgICAgc3VwcG9ydGVkIGluIEtWTSBvciBpZiBpdCBoYXMgYmVlbiBzZXQuXG4gXG4tVGhpcyBjYXBhYmlsaXR5IGFsbG93cyB1c2Vyc3BhY2UgdG8gc3BlY2lmeSBtYXhpbXVtIHBvc3NpYmxlIEFQSUMgSURcbitUaGlzIGNhcGFiaWxpdHkgYWxsb3dzIHVzZXJzcGFjZSB0byBzcGVjaWZ5IGEgbGltaXQgb24gQVBJQyBJRCB2YWx1ZXNcbiBhc3NpZ25lZCBmb3IgY3VycmVudCBWTSBzZXNzaW9uIHByaW9yIHRvIHRoZSBjcmVhdGlvbiBvZiB2Q1BVcywgc2F2aW5nXG4gbWVtb3J5IGZvciBkYXRhIHN0cnVjdHVyZXMgaW5kZXhlZCBieSB0aGUgQVBJQyBJRC4gIFVzZXJzcGFjZSBpcyBhYmxlXG4gdG8gY2FsY3VsYXRlIHRoZSBsaW1pdCB0byBBUElDIElEIHZhbHVlcyBmcm9tIGRlc2lnbmF0ZWRcbiBDUFUgdG9wb2xvZ3kuXG4gXG4tVGhlIHZhbHVlIGNhbiBiZSBjaGFuZ2VkIG9ubHkgdW50aWwgS1ZNX0VOQUJMRV9DQVAgaXMgc2V0IHRvIGEgbm9uemVyb1xuK1RoZSBsaW1pdCBpcyBub3QgaW5jbHVzaXZlLCBpLmUuIHRoZSBtYXhpbXVtIHBvc3NpYmxlIEFQSUMgSUQgdmFsdWUgaXNcbithcmdzWzBdIC0gMS5cbitcbitUaGUgY2FwYWJpbGl0eSB2YWx1ZSBjYW4gb25seSBiZSBjaGFuZ2VkIHVudGlsIGl0IGlzIHNldCB0byBhIG5vbnplcm9cbiB2YWx1ZSBvciB1bnRpbCBhIHZDUFUgaXMgY3JlYXRlZC4gIFVwb24gY3JlYXRpb24gb2YgdGhlIGZpcnN0IHZDUFUsXG4gaWYgdGhlIHZhbHVlIHdhcyBzZXQgdG8gemVybyBvciBLVk1fRU5BQkxFX0NBUCB3YXMgbm90IGludm9rZWQsIEtWTVxuLXVzZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBLVk1fQ0hFQ0tfRVhURU5TSU9OKEtWTV9DQVBfTUFYX1ZDUFVfSUQpIGFzXG4tdGhlIG1heGltdW0gQVBJQyBJRC5cbit1c2VzIHRoZSByZXR1cm4gdmFsdWUgb2YgS1ZNX0NIRUNLX0VYVEVOU0lPTihLVk1fQ0FQX01BWF9WQ1BVX0lEKSAtIDFcbithcyB0aGUgbWF4aW11bSBBUElDIElELlxuIFxuIDcuMzMgS1ZNX0NBUF9YODZfTk9USUZZX1ZNRVhJVFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xuaW5kZXggNDdjYjllYmExMTNiMS4uYjU3NmI0Njg2OWQyOSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5AQCAtNjkwOCw3ICs2OTA4LDcgQEAgaW50IGt2bV92bV9pb2N0bF9lbmFibGVfY2FwKHN0cnVjdCBrdm0gKmt2bSxcbiBcdFx0XHRicmVhaztcbiBcbiBcdFx0bXV0ZXhfbG9jayhcdTAwMjZrdm0tXHUwMDNlbG9jayk7XG4tXHRcdGlmIChrdm0tXHUwMDNlYXJjaC5ic3BfdmNwdV9pZCBcdTAwM2UgY2FwLVx1MDAzZWFyZ3NbMF0pIHtcbitcdFx0aWYgKGt2bS1cdTAwM2VhcmNoLmJzcF92Y3B1X2lkIFx1MDAzZT0gY2FwLVx1MDAzZWFyZ3NbMF0pIHtcbiBcdFx0XHQ7XG4gXHRcdH0gZWxzZSBpZiAoa3ZtLVx1MDAzZWFyY2gubWF4X3ZjcHVfaWRzID09IGNhcC1cdTAwM2VhcmdzWzBdKSB7XG4gXHRcdFx0ciA9IDA7XG5AQCAtNzQ3OCw4ICs3NDc4LDggQEAgaW50IGt2bV9hcmNoX3ZtX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgaW9jdGwsIHVuc2lnbmVkIGxvbmcgYXJnKVxuIFx0XHRtdXRleF9sb2NrKFx1MDAyNmt2bS1cdTAwM2Vsb2NrKTtcbiBcdFx0aWYgKGt2bS1cdTAwM2VjcmVhdGVkX3ZjcHVzKVxuIFx0XHRcdHIgPSAtRUJVU1k7XG4tXHRcdGVsc2UgaWYgKGFyZyBcdTAwM2UgS1ZNX01BWF9WQ1BVX0lEUyB8fFxuLVx0XHRcdCAoa3ZtLVx1MDAzZWFyY2gubWF4X3ZjcHVfaWRzIFx1MDAyNlx1MDAyNiBhcmcgXHUwMDNlIGt2bS1cdTAwM2VhcmNoLm1heF92Y3B1X2lkcykpXG4rXHRcdGVsc2UgaWYgKGFyZyBcdTAwM2U9IEtWTV9NQVhfVkNQVV9JRFMgfHxcbitcdFx0XHQgKGt2bS1cdTAwM2VhcmNoLm1heF92Y3B1X2lkcyBcdTAwMjZcdTAwMjYgYXJnIFx1MDAzZT0ga3ZtLVx1MDAzZWFyY2gubWF4X3ZjcHVfaWRzKSlcbiBcdFx0XHRyID0gLUVJTlZBTDtcbiBcdFx0ZWxzZVxuIFx0XHRcdGt2bS1cdTAwM2VhcmNoLmJzcF92Y3B1X2lkID0gYXJnO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvbWF4X3ZjcHVpZF9jYXBfdGVzdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmNcbmluZGV4IDdlMmJmYjNjM2YzYmEuLjQzZjE2YzA1MmRlNGEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L21heF92Y3B1aWRfY2FwX3Rlc3QuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9tYXhfdmNwdWlkX2NhcF90ZXN0LmNcbkBAIC0zMCwyMiArMzAsMjUgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSlcbiBcdGlmIChrdm1faGFzX2NhcChLVk1fQ0FQX1NFVF9CT09UX0NQVV9JRCkpIHtcbiBcdFx0dm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopTUFYX1ZDUFVfSUQpO1xuIFxuLVx0XHQvKiBUcnkgc2V0dGluZyBLVk1fQ0FQX01BWF9WQ1BVX0lEIGJlbG93IEJPT1RfQ1BVX0lEICovXG4tXHRcdHJldCA9IF9fdm1fZW5hYmxlX2NhcCh2bSwgS1ZNX0NBUF9NQVhfVkNQVV9JRCwgTUFYX1ZDUFVfSUQgLSAxKTtcbitcdFx0LyogVHJ5IHNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBiZWxvdyBvciBlcXVhbCB0byBCT09UX0NQVV9JRCAqL1xuK1x0XHRyZXQgPSBfX3ZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEKTtcbiBcdFx0VEVTVF9BU1NFUlQocmV0IFx1MDAzYyAwLFxuLVx0XHRcdCAgICBcIlNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBiZWxvdyBCT09UX0NQVV9JRCBzaG91bGQgZmFpbFwiKTtcbitcdFx0XHQgICAgXCJTZXR0aW5nIEtWTV9DQVBfTUFYX1ZDUFVfSUQgXHUwMDNjPSBCT09UX0NQVV9JRCBzaG91bGQgZmFpbFwiKTtcbiBcdH1cbiBcbi1cdC8qIFNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEICovXG4tXHR2bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCk7XG4rXHQvKlxuK1x0ICogU2V0IEtWTV9DQVBfTUFYX1ZDUFVfSUQuIE5vdGU6IEtWTV9DQVBfTUFYX1ZDUFVfSUQgaXMgYSBtaXNub21lcixcbitcdCAqIGl0IGFjdHVhbGx5IHJlcHJlc2VudHMgbWF4aW11bSB2Y3B1X2lkIHBsdXMgb25lLlxuK1x0ICovXG4rXHR2bV9lbmFibGVfY2FwKHZtLCBLVk1fQ0FQX01BWF9WQ1BVX0lELCBNQVhfVkNQVV9JRCArIDEpO1xuIFxuIFx0LyogVHJ5IHRvIHNldCBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFnYWluICovXG4tXHRyZXQgPSBfX3ZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEICsgMSk7XG4rXHRyZXQgPSBfX3ZtX2VuYWJsZV9jYXAodm0sIEtWTV9DQVBfTUFYX1ZDUFVfSUQsIE1BWF9WQ1BVX0lEICsgMik7XG4gXHRURVNUX0FTU0VSVChyZXQgXHUwMDNjIDAsXG4gXHRcdCAgICBcIlNldHRpbmcgS1ZNX0NBUF9NQVhfVkNQVV9JRCBtdWx0aXBsZSB0aW1lcyBzaG91bGQgZmFpbFwiKTtcbiBcbiBcdC8qIENyZWF0ZSB2Q1BVIHdpdGggaWQgYmV5b25kIEtWTV9DQVBfTUFYX1ZDUFVfSUQgY2FwICovXG4tXHRyZXQgPSBfX3ZtX2lvY3RsKHZtLCBLVk1fQ1JFQVRFX1ZDUFUsICh2b2lkICopTUFYX1ZDUFVfSUQpO1xuK1x0cmV0ID0gX192bV9pb2N0bCh2bSwgS1ZNX0NSRUFURV9WQ1BVLCAodm9pZCAqKShNQVhfVkNQVV9JRCArIDEpKTtcbiBcdFRFU1RfQVNTRVJUKHJldCBcdTAwM2MgMCwgXCJDcmVhdGluZyB2Q1BVIHdpdGggSUQgXHUwMDNlIE1BWF9WQ1BVX0lEIHNob3VsZCBmYWlsXCIpO1xuIFxuIFx0LyogQ3JlYXRlIHZDUFUgd2l0aCBiaXRzIDYzOjMyICE9IDAsIGJ1dCBhbiBvdGhlcndpc2UgdmFsaWQgaWQgKi9cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2L3NldF9ib290X2NwdV9pZC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Ni9zZXRfYm9vdF9jcHVfaWQuY1xuaW5kZXggOGUzODk4NjQ2YzY5ZC4uMWM0ZWJkZjhlODJjNSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODYvc2V0X2Jvb3RfY3B1X2lkLmNcbkBAIC0zOSw4ICszOSw4IEBAIHN0YXRpYyB2b2lkIHRlc3Rfc2V0X2ludmFsaWRfYnNwKHN0cnVjdCBrdm1fdm0gKnZtKVxuIFx0aW50IHI7XG4gXG4gXHRpZiAobWF4X3ZjcHVfaWQpIHtcbi1cdFx0ciA9IF9fdm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopKG1heF92Y3B1X2lkICsgMSkpO1xuLVx0XHRURVNUX0FTU0VSVChyID09IC0xIFx1MDAyNlx1MDAyNiBlcnJubyA9PSBFSU5WQUwsIFwiQlNQIHdpdGggSUQgXHUwMDNlIE1BWCBzaG91bGQgZmFpbFwiKTtcbitcdFx0ciA9IF9fdm1faW9jdGwodm0sIEtWTV9TRVRfQk9PVF9DUFVfSUQsICh2b2lkICopbWF4X3ZjcHVfaWQpO1xuK1x0XHRURVNUX0FTU0VSVChyID09IC0xIFx1MDAyNlx1MDAyNiBlcnJubyA9PSBFSU5WQUwsIFwiQlNQIHdpdGggSUQgXHUwMDNlPSBNQVggc2hvdWxkIGZhaWxcIik7XG4gXHR9XG4gXG4gXHRyID0gX192bV9pb2N0bCh2bSwgS1ZNX1NFVF9CT09UX0NQVV9JRCwgKHZvaWQgKikoMUwgXHUwMDNjXHUwMDNjIDMyKSk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNzowNjowNy41MzA5MjY1NzJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MTg2NTQ3NTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtWTSB4ODYgUGF0Y2gqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayBkb3duIHRoaXMgS1ZNIHg4NiBwYXRjaC4gSXQgbG9va3MgbGlrZSB3ZSd2ZSBnb3QgYSBtb2RpZmljYXRpb24gcmVsYXRlZCB0byBob3cgd2UgaGFuZGxlIGBLVk1fQ0FQX01BWF9WQ1BVX0lEYCBhbmQgYEtWTV9TRVRfQk9PVF9DUFVfSURgLiBUaGUgY2hhbmdlcyBhcmUgZm9jdXNlZCBpbiBgYXJjaC94ODYva3ZtL3g4Ni5jYCwgYW5kIGl0J3MgYSBzdWJ0bGUgYnV0IHBvdGVudGlhbGx5IHNpZ25pZmljYW50IGFkanVzdG1lbnQgdG8gdGhlIGJvdW5kcyBjaGVja2luZyBsb2dpYy4gSSBzZWUgdGhleSdyZSBjaGFuZ2luZyB0aGUgZ3JlYXRlci10aGFuIG9wZXJhdG9ycyAoYFx1MDAzZWApIHRvIGdyZWF0ZXItdGhhbi1vci1lcXVhbCAoYFx1MDAzZT1gKSBpbiBhIGNvdXBsZSBvZiBwbGFjZXMuXG5cblNwZWNpZmljYWxseSwgdGhlIGRpZmYgaW1wYWN0cyBga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBgIGFuZCBga3ZtX2FyY2hfdm1faW9jdGxgLiBNeSBleHBlcnQgaW5zdGluY3RzIHRlbGwgbWUgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3QganVzdCBhIGNvc21ldGljIG9uZS4gTW9kaWZ5aW5nIHRoZSBjb21wYXJpc29uIG9wZXJhdG9ycyBsaWtlIHRoaXMgY2FuIGhhdmUgaW1wbGljYXRpb25zIGZvciBob3cgdGhlIHN5c3RlbSBoYW5kbGVzIENQVSBJRHMgYW5kIHZpcnR1YWwgQ1BVIGluaXRpYWxpemF0aW9uLCBwb3RlbnRpYWxseSBhZmZlY3RpbmcgcmVzb3VyY2UgYWxsb2NhdGlvbiBvciBob3cgdGhlIGd1ZXN0IGludGVyYWN0cyB3aXRoIHRoZSBob3N0LlxuXG5Ob3csIG15IGltbWVkaWF0ZSBjb25jZXJucyBhcmUgYXJvdW5kIHRoZSBwb3RlbnRpYWwgZm9yIHJlZ3Jlc3Npb25zLCBzdWJ0bGUgYnVncywgb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zLiBUaGlzIGRlZmluaXRlbHkgd2FycmFudHMgdGhvcm91Z2ggZnV6emluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHByZWNpc2UgY29uZGl0aW9ucyB1bmRlciB3aGljaCB0aGVzZSBjaGVja3MgYXJlIHRyaWdnZXJlZC5cblxuSSdtIHRoaW5raW5nLCBcIkxldCdzIHRyYWNrIGRvd24gd2hlcmUgdGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIGFuZCB0aGUgY29uZGl0aW9ucyB0aGF0IGxlYWQgdG8gdGhlaXIgaW52b2NhdGlvbi5cIiBUaGUgY29kZSdzIGluIGBhcmNoL3g4Ni9rdm0veDg2LmNgLCBzbyBpdCdzIHg4Ni1zcGVjaWZpYy4gS1ZNIGl0c2VsZiBpcyBlbmFibGVkIGJ5IGBDT05GSUdfS1ZNYCwgc28gdGhhdCdzIHRoZSBiYXNlbGluZS4gSSBzaG91bGQgc3RhcnQgYnkgdmVyaWZ5aW5nIHRoYXQgYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBpcyBhY3R1YWxseSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgaWYgYW55LCBhZmZlY3QgaXRzIGJlaGF2aW9yLiBJIG5lZWQgdG8ga25vdyB0aGUgY29udHJvbCBmbG93IGhlcmUuIEknbGwgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIEtWTSBpb2N0bCBoYW5kbGluZyB0byBmdWxseSB1bmRlcnN0YW5kIGhvdyB0aGVzZSBuZXcgY29tcGFyaXNvbnMgaW1wYWN0IHRoZSBvdmVyYWxsIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDAyMSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4OCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA3OjA2OjE0LjcxNzQ3NzcyMloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjYyMjcwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fdm1faW9jdGxfZW5hYmxlX2NhcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0veDg2LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3g4Ni5jPTY3MDU9dm9pZCBrdm1fYXJjaF9zeW5jX2RpcnR5X2xvZyhzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fbWVtb3J5X3Nsb3QgKm1lbXNsb3QpXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmMtNjcyMy1cXG5hcmNoL3g4Ni9rdm0veDg2LmM6NjcyNDppbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLFxcbmFyY2gveDg2L2t2bS94ODYuYy02NzI1LVxcdFxcdFxcdCAgICBzdHJ1Y3Qga3ZtX2VuYWJsZV9jYXAgKmNhcClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MTQuNzg0MTA0NzYxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA5NDExMjAyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBhcyBpZiB0aGV5J3JlIG15IG93bjpcblxuKipBbmFseXppbmcgYGt2bV9hcmNoX3ZtX2lvY3RsYCoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGdvIHN0cmFpZ2h0IGZvciBga3ZtX2FyY2hfdm1faW9jdGxgLiBJIGtub3cgdGhpcyBmdW5jdGlvbiBpcyBjcml0aWNhbC4gSXQncyB0aGUgZ2F0ZWtlZXBlciwgdGhlIGNlbnRyYWwgcG9pbnQgd2hlcmUgdmlydHVhbCBtYWNoaW5lIG1hbmFnZW1lbnQgaW50ZXJhY3RzIHdpdGggdGhlIHVuZGVybHlpbmcgYXJjaGl0ZWN0dXJlLiBJdCdzIHdoZXJlIHRoZSBtYWdpYyBoYXBwZW5zLCBvciB3aGVyZSB0aGluZ3MgY2FuIGdvIGhvcnJpYmx5IHdyb25nISBTbywgbGV0J3Mgc3RhcnQgaGVyZS4gTGV0J3Mgc2VlIHdoYXQncyBiZWluZyByZXF1ZXN0ZWQsIGhvdyB0aGUgaW5mb3JtYXRpb24gaXMgYmVpbmcgaGFuZGxlZCwgYW5kIHdoYXQgc2FmZWd1YXJkcyBhcmUgaW4gcGxhY2UuIFRoaXMgaXMgZ3JvdW5kIHplcm8gZm9yIGEgZGVlcCBkaXZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MjE3LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MTcuODc4MjIwMjY0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNzgwMjk4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fYXJjaF92bV9pb2N0bFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0veDg2LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3g4Ni5jPTcyNDU9bG9uZyBrdm1fYXJjaF92Y3B1X3VubG9ja2VkX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgaW9jdGwsXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmMtNzI1Ny1cXG5hcmNoL3g4Ni9rdm0veDg2LmM6NzI1ODppbnQga3ZtX2FyY2hfdm1faW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCwgdW5zaWduZWQgbG9uZyBhcmcpXFxuYXJjaC94ODYva3ZtL3g4Ni5jLTcyNTkte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNzowNjoxNy45ODYwMjcwMzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDE4NjEzMTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biBtZW50YWwgcHJvY2Vzc2luZzpcblxuKipBbmFseXppbmcgYSBLVk0gUGF0Y2ggb24geDg2KipcblxuQWxyaWdodCwgc28gdGhlIHBhdGNoIGlzIHBva2luZyBhcm91bmQgaW4gdGhlIGhlYXJ0IG9mIHRoZSB4ODYgS1ZNIGltcGxlbWVudGF0aW9uIOKAkyBzcGVjaWZpY2FsbHksIGBrdm1fdm1faW9jdGxfZW5hYmxlX2NhcGAgYW5kIGBrdm1fYXJjaF92bV9pb2N0bGAsIGZvdW5kIGluIGBhcmNoL3g4Ni9rdm0veDg2LmNgLiBUaG9zZSBhcmUgdGhlIGZ1bmRhbWVudGFsIGlvY3RsIGhhbmRsZXJzIGZvciB0aGUgeDg2IGFyY2hpdGVjdHVyZSB3aXRoaW4gS1ZNLiBNZWFuaW5nIHRoaXMgaXMgbGlrZWx5IGEgZmFpcmx5IGxvdy1sZXZlbCBmZWF0dXJlIG9yIGNhcGFiaWxpdHkgY2hhbmdlLlxuXG5Ob3csIGEgY3JpdGljYWwgZmlyc3Qgc3RlcDogd2hhdCBjb25maWd1cmF0aW9ucyBkb2VzIHRoaXMgZGVwZW5kIG9uPyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgd2hldGhlciBJIGV2ZW4gKmNhcmUqIGFib3V0IHRoaXMgY29kZSBpZiB0aGUgYnVpbGQgZG9lc24ndCBhbGlnbiB3aXRoIG15IGN1cnJlbnQgaW50ZXJlc3RzLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZXMsIG9mIGNvdXJzZSwgdG8gc2VlIGlmIGBLVk1gIG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgdG8gYmUgYnVpbHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU1NzQsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNzowNjoyMS40MDQ2NDIxOTFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODkyNzUzNzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcxLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mjpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3My1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4MS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODI6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODMtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTItXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTkzOmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk0LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDc6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDgtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE2OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE3LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjgtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzAtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzI6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzMtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNzowNjoyMS40OTM5MjQ4NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNzgxNjYyMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBLVk0gQ29uZmlndXJhdGlvbiBhbmQgUmVhY2hhYmxlIEZ1bmN0aW9ucyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kLCByaWdodCBvZmYgdGhlIGJhdCwgaXQncyBoaXR0aW5nIGBLVk1gIGNvbmZpZ3VyYXRpb25zLiBJIGNhbiBzZWUgdGhlIGNoYW5nZXMgYXJlIGZvY3VzZWQgb24gYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBhbmQgYGt2bV9hcmNoX3ZtX2lvY3RsYC4gTXkgZmlyc3QgdGhvdWdodCBpcywgdGhlc2UgYXJlIGRlZmluaXRlbHkgcmVhY2hhYmxlIGFuZCBzaG91bGQgYmUgaGlnaCBvbiB0aGUgZnV6emluZyBwcmlvcml0eSBsaXN0LiBBbnl0aGluZyB0aGF0J3MgdG91Y2hlZCBpbiBhIHBhdGNoIGxpa2UgdGhpcyBpcyBwcmltZSByZWFsIGVzdGF0ZSBmb3IgZmluZGluZyB2dWxuZXJhYmlsaXRpZXMuXG5cbkJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byBmdXp6aW5nLCBJIHNob3VsZCBtYWtlIHN1cmUgSSBoYXZlIGFsbCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb24gZHVja3MgaW4gYSByb3cuIEl0J3Mgc2Vjb25kIG5hdHVyZSBhdCB0aGlzIHBvaW50IHRvIGNoZWNrIGZvciBkZXBlbmRlbmNpZXMuIEkga25vdyBgS1ZNYCBpdHNlbGYgZGVwZW5kcyBvbiBgVklSVFVBTElaQVRJT05gLCBhbmQgdGhlbiBpdCdzIGVpdGhlciBgS1ZNX0lOVEVMYCBvciBgS1ZNX0FNRGAsIGRlcGVuZGluZyBvbiB0aGUgaG9zdC4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEknbGwgcG9wIG92ZXIgdG8gYGFyY2gveDg2L2t2bS9LY29uZmlnYCB0byByZWNvbmZpcm0gdGhlIGBjb25maWcgS1ZNYCBkZXBlbmRlbmNpZXMuIE5vIHBvaW50IGluIHdhc3RpbmcgdGltZSBydW5uaW5nIGZ1enplcnMgd2l0aG91dCBhIHByb3Blcmx5IGNvbmZpZ3VyZWQgZW52aXJvbm1lbnQuIEdvdHRhIGhhdmUgYWxsIHRoZSBiaXRzIHNldCBjb3JyZWN0bHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxMDUsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MjUuNzcyMDkzODMzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzYzMzIxMTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZz01Mj1jb25maWcgS1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTMtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo1NDpcXHRkZXBlbmRzIG9uIFg4Nl9MT0NBTF9BUElDXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTUtXFx0aGVscFxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9Njk9Y29uZmlnIEtWTV9XRVJST1JcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTc2LVxcdCMgdGhlIGtlcm5lbC13aWRlIFdFUlJPUj15LlxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjc3OlxcdGRlcGVuZHMgb24gS1ZNX1g4NiBcXHUwMDI2XFx1MDAyNiAoKEVYUEVSVCBcXHUwMDI2XFx1MDAyNiAhS0FTQU4pIHx8IFdFUlJPUilcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03OC1cXHRoZWxwXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz04Mz1jb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVxcdGJvb2wgXFxcIkVuYWJsZSBzdXBwb3J0IGZvciBLVk0gc29mdHdhcmUtcHJvdGVjdGVkIFZNc1xcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4NTpcXHRkZXBlbmRzIG9uIEVYUEVSVFxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjg2OlxcdGRlcGVuZHMgb24gS1ZNX1g4NiBcXHUwMDI2XFx1MDAyNiBYODZfNjRcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Ny1cXHRzZWxlY3QgS1ZNX0dFTkVSSUNfTUVNT1JZX0FUVFJJQlVURVNcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnPTk2PWNvbmZpZyBLVk1fSU5URUxcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFxcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo5ODpcXHRkZXBlbmRzIG9uIEtWTSBcXHUwMDI2XFx1MDAyNiBJQTMyX0ZFQVRfQ1RMXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTktXFx0c2VsZWN0IFg4Nl9GUkVEIGlmIFg4Nl82NFxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTA3PWNvbmZpZyBLVk1fSU5URUxfUFJPVkVfVkVcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDgtICAgICAgICBib29sIFxcXCJDaGVjayB0aGF0IGd1ZXN0cyBkbyBub3QgcmVjZWl2ZSAjVkUgZXhjZXB0aW9uc1xcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDk6ICAgICAgICBkZXBlbmRzIG9uIEtWTV9JTlRFTCBcXHUwMDI2XFx1MDAyNiBFWFBFUlRcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMTAtICAgICAgICBoZWxwXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTIzLVxcdGJvb2wgXFxcIlNvZnR3YXJlIEd1YXJkIGVYdGVuc2lvbnMgKFNHWCkgVmlydHVhbGl6YXRpb25cXFwiXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTI0OlxcdGRlcGVuZHMgb24gWDg2X1NHWCBcXHUwMDI2XFx1MDAyNiBLVk1fSU5URUxcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMjUtXFx0aGVscFxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTM0PWNvbmZpZyBLVk1fSU5URUxfVERYXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzYtXFx0ZGVmYXVsdCB5XFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM3OlxcdGRlcGVuZHMgb24gSU5URUxfVERYX0hPU1RcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzgtXFx0c2VsZWN0IEtWTV9HRU5FUklDX01FTU9SWV9BVFRSSUJVVEVTXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xNDY9Y29uZmlnIEtWTV9BTURcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDctXFx0dHJpc3RhdGUgXFxcIktWTSBmb3IgQU1EIHByb2Nlc3NvcnMgc3VwcG9ydFxcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNDg6XFx0ZGVwZW5kcyBvbiBLVk0gXFx1MDAyNlxcdTAwMjYgKENQVV9TVVBfQU1EIHx8IENQVV9TVVBfSFlHT04pXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ5LVxcdGhlbHBcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnPTE1Nj1jb25maWcgS1ZNX0FNRF9TRVZcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1OC1cXHRkZWZhdWx0IHlcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNTk6XFx0ZGVwZW5kcyBvbiBLVk1fQU1EIFxcdTAwMjZcXHUwMDI2IFg4Nl82NFxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE2MDpcXHRkZXBlbmRzIG9uIENSWVBUT19ERVZfU1BfUFNQIFxcdTAwMjZcXHUwMDI2ICEoS1ZNX0FNRD15IFxcdTAwMjZcXHUwMDI2IENSWVBUT19ERVZfQ0NQX0REPW0pXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTYxLVxcdHNlbGVjdCBBUkNIX0hBU19DQ19QTEFURk9STVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTcyPWNvbmZpZyBLVk1fSU9BUElDXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzQtXFx0ZGVmYXVsdCB5XFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTc1OlxcdGRlcGVuZHMgb24gS1ZNX1g4NlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3Ni1cXHRoZWxwXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xODI9Y29uZmlnIEtWTV9TTU1cXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4NC1cXHRkZWZhdWx0IHlcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODU6XFx0ZGVwZW5kcyBvbiBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMTg2LVxcdGhlbHBcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnPTE5Mz1jb25maWcgS1ZNX0hZUEVSVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NC1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBNaWNyb3NvZnQgSHlwZXItViBlbXVsYXRpb25cXFwiXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTk1OlxcdGRlcGVuZHMgb24gS1ZNX1g4NlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5Ni1cXHRkZWZhdWx0IHlcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnPTIwNz1jb25maWcgS1ZNX1hFTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwOC1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBYZW4gaHlwZXJjYWxsIGludGVyZmFjZVxcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDk6XFx0ZGVwZW5kcyBvbiBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEwLVxcdGhlbHBcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnPTIxNj1jb25maWcgS1ZNX1BST1ZFX01NVVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNy1cXHRib29sIFxcXCJQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXFxcIlxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxODpcXHRkZXBlbmRzIG9uIERFQlVHX0tFUk5FTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxOTpcXHRkZXBlbmRzIG9uIEtWTV9YODZcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMjA6XFx0ZGVwZW5kcyBvbiBFWFBFUlRcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjEtXFx0aGVscFxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MjMyPWNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMzLVxcdGludCBcXFwiTWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFxcXCJcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzQ6XFx0ZGVwZW5kcyBvbiBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjM1LVxcdHJhbmdlIDEwMjQgNDA5NlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNzowNjoyNS45NDg0MzM5M1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDE1MzcwNTIwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGJyZWFrZG93biBvZiB0aGlzLlxuXG4qKktWTSBGdXp6aW5nIFN0cmF0ZWd5OiBGb2N1c2luZyBvbiBLZXkgaW9jdGxzKipcblxuUmlnaHQsIHNvIHRoZSBgS1ZNYCBjb25maWd1cmF0aW9uIGl0c2VsZiBzZWVtcyBhZGVxdWF0ZSBmb3IgdGhpcyBlZmZvcnQuIE5vIG5lZWQgdG8gb3ZlcmNvbXBsaWNhdGUgdGhpbmdzIHRoZXJlLiBNeSBpbW1lZGlhdGUgZm9jdXMgbmFycm93cyBpbiBvbiB0aGVzZSB0d28gZnVuY3Rpb25zOiBga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBgIGFuZCBga3ZtX2FyY2hfdm1faW9jdGxgLiBUaG9zZSBzZWVtIGxpa2Ugc29saWQgZW50cnkgcG9pbnRzIGZvciBmdXp6aW5nLiBUaGV5J3JlIGxpa2VseSBoYW5kbGluZyBpb2N0bHMgYW5kIGRlYWxpbmcgd2l0aCB1c2VyLXByb3ZpZGVkIGRhdGEsIGEgY2xhc3NpYyBhdHRhY2sgc3VyZmFjZS4gR29vZC5cblxuVGhlIHBhdGNoIGl0c2VsZiBpcyBpbnRlcmVzdGluZyDigJMgaXQncyBhZGRyZXNzaW5nIGEgYm91bmRzIGNoZWNraW5nIGlzc3VlIHJlbGF0ZWQgdG8gYEtWTV9DQVBfTUFYX1ZDUFVfSURgIGFuZCBgS1ZNX1NFVF9CT09UX0NQVV9JRGAuIFRoaXMgaXMgYSBwcmV0dHkgY29tbW9uIGNsYXNzIG9mIHZ1bG5lcmFiaWxpdGllcy4gSW5jb3JyZWN0IGJvdW5kcyBjaGVja2luZyBjYW4gbGVhZCB0byBhbGwgc29ydHMgb2YgbWVtb3J5IGNvcnJ1cHRpb24sIHNvIHRoYXQncyBzb21ldGhpbmcgSSdsbCBkZWZpbml0ZWx5IGtlZXAgaW4gbWluZCB3aGVuIGRlc2lnbmluZyB0aGUgZnV6emluZyBjYW1wYWlnbi4gVGhpcyBpcyBrZXkgdG8gZXhwbG9pdGFiaWxpdHkhXG5cblRpbWUgdG8gc2V0IHRob3NlIHJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkyMDQsIk91dHB1dFRva2VucyI6MTE1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDc6MDY6MzYuMTAyMTQxNDgxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1NjA0NzA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fdm1faW9jdGxfZW5hYmxlX2NhcFwiLFxuICAgIFwia3ZtX2FyY2hfdm1faW9jdGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYm91bmRzIGNoZWNraW5nIGxvZ2ljIGZvciBLVk1fQ0FQX01BWF9WQ1BVX0lEIGFuZCBLVk1fU0VUX0JPT1RfQ1BVX0lEIGlvY3RscyBpbiBLVk0geDg2LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV92bV9pb2N0bF9lbmFibGVfY2FwXCIsXG4gICAgXCJrdm1fYXJjaF92bV9pb2N0bFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBib3VuZHMgY2hlY2tpbmcgbG9naWMgZm9yIEtWTV9DQVBfTUFYX1ZDUFVfSUQgYW5kIEtWTV9TRVRfQk9PVF9DUFVfSUQgaW9jdGxzIGluIEtWTSB4ODYuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowv98x5[1] Phase: Succeeded StartedAt: 2026-08-01 07:06:47 +0000 UTC FinishedAt: 2026-08-01 07:06:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-01 07:06:47 +0000 UTC FinishedAt: 2026-08-01 07:06:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2] Phase: Succeeded StartedAt: 2026-08-01 07:06:47 +0000 UTC FinishedAt: 2026-08-01 11:03:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-01 07:06:47 +0000 UTC FinishedAt: 2026-08-01 11:03:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-01 07:06:47 +0000 UTC FinishedAt: 2026-08-01 07:06:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-01 07:06:47 +0000 UTC FinishedAt: 2026-08-01 07:06:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowv98x5/series-workflowv98x5-convert-artifact-1975324436/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-01 07:06:57 +0000 UTC FinishedAt: 2026-08-01 07:33:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-01 07:06:57 +0000 UTC FinishedAt: 2026-08-01 07:33:01 +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:*1c20b4d7-2cd2-490d-8dbd-2ed2adb1035f,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-workflowv98x5/series-workflowv98x5-convert-artifact-1975324436/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": "4accd3e9-5551-4abf-acfd-ed08540ec154", "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-workflowv98x5/series-workflowv98x5-build-action-3844119442/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-01 07:06:57 +0000 UTC FinishedAt: 2026-08-01 07:32:51 +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:*1c20b4d7-2cd2-490d-8dbd-2ed2adb1035f,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-workflowv98x5/series-workflowv98x5-convert-artifact-1975324436/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": "4accd3e9-5551-4abf-acfd-ed08540ec154", "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-workflowv98x5/series-workflowv98x5-build-action-3844119442/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-01 07:33:01 +0000 UTC FinishedAt: 2026-08-01 07:33:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-01 07:33:01 +0000 UTC FinishedAt: 2026-08-01 07:33:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-01 07:33:01 +0000 UTC FinishedAt: 2026-08-01 07:33:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-01 07:33:01 +0000 UTC FinishedAt: 2026-08-01 07:33:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowv98x5/series-workflowv98x5-convert-artifact-2573613267/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-01 07:33:28 +0000 UTC FinishedAt: 2026-08-01 07:35:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-01 07:33:28 +0000 UTC FinishedAt: 2026-08-01 07:35:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*4accd3e9-5551-4abf-acfd-ed08540ec154,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-workflowv98x5/series-workflowv98x5-build-action-3844119442/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-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-01 07:35:54 +0000 UTC FinishedAt: 2026-08-01 07:35:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-01 07:35:54 +0000 UTC FinishedAt: 2026-08-01 07:35:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-01 07:35:54 +0000 UTC FinishedAt: 2026-08-01 07:58:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-01 07:35:54 +0000 UTC FinishedAt: 2026-08-01 07:58:41 +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:*1c20b4d7-2cd2-490d-8dbd-2ed2adb1035f,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-workflowv98x5/series-workflowv98x5-convert-artifact-2573613267/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": "551f0436-cd66-4511-8ea9-ec950a2e5fbb", "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-workflowv98x5/series-workflowv98x5-build-action-3462163975/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-01 07:35:54 +0000 UTC FinishedAt: 2026-08-01 07:58:30 +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:*1c20b4d7-2cd2-490d-8dbd-2ed2adb1035f,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-workflowv98x5/series-workflowv98x5-convert-artifact-2573613267/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": "551f0436-cd66-4511-8ea9-ec950a2e5fbb", "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-workflowv98x5/series-workflowv98x5-build-action-3462163975/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-01 07:58:41 +0000 UTC FinishedAt: 2026-08-01 07:58:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-01 07:58:41 +0000 UTC FinishedAt: 2026-08-01 07:58:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-01 07:58:41 +0000 UTC FinishedAt: 2026-08-01 08:00:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-01 07:58:41 +0000 UTC FinishedAt: 2026-08-01 08:00:32 +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:*551f0436-cd66-4511-8ea9-ec950a2e5fbb,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-workflowv98x5/series-workflowv98x5-build-action-3462163975/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-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-01 08:00:45 +0000 UTC FinishedAt: 2026-08-01 11:03:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-01 08:00:45 +0000 UTC FinishedAt: 2026-08-01 11:03:50 +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-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"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:*4accd3e9-5551-4abf-acfd-ed08540ec154,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*551f0436-cd66-4511-8ea9-ec950a2e5fbb,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-workflowv98x5/series-workflowv98x5-build-action-3844119442/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-workflowv98x5/series-workflowv98x5-build-action-3462163975/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-01 08:00:45 +0000 UTC FinishedAt: 2026-08-01 08:00:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-01 08:00:45 +0000 UTC FinishedAt: 2026-08-01 08:00:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-01 08:00:46 +0000 UTC FinishedAt: 2026-08-01 08:01:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-01 08:00:46 +0000 UTC FinishedAt: 2026-08-01 08:01:11 +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-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"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-workflowv98x5/series-workflowv98x5-convert-artifact-3915596876/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-01 08:00:46 +0000 UTC FinishedAt: 2026-08-01 08:00:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-01 08:01:19 +0000 UTC FinishedAt: 2026-08-01 11:03:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv98x5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_vm_ioctl_enable_cap","kvm_arch_vm_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a2cf4ef33184df0ae9e1a2b05b550133dde1698c","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"d9f9d71e-7210-4d70-9275-d7349ba45baf","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-01 08:01:19 +0000 UTC FinishedAt: 2026-08-01 11:03:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*4accd3e9-5551-4abf-acfd-ed08540ec154,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*551f0436-cd66-4511-8ea9-ec950a2e5fbb,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-workflowv98x5/series-workflowv98x5-build-action-3844119442/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-workflowv98x5/series-workflowv98x5-build-action-3462163975/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-workflowv98x5/series-workflowv98x5-convert-artifact-3915596876/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,}