Name: series-workflow2zg7m Phase: Succeeded StartedAt: 2026-06-20 16:00:04 +0000 UTC FinishedAt: 2026-06-20 17:18:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[0] Phase: Succeeded StartedAt: 2026-06-20 16:00:04 +0000 UTC FinishedAt: 2026-06-20 16:12:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[0].run-triage Phase: Succeeded StartedAt: 2026-06-20 16:00:04 +0000 UTC FinishedAt: 2026-06-20 16:12:13 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "b85966adbf5de0668a815c6e3527f87e0c387fb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "b85966adbf5de0668a815c6e3527f87e0c387fb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "b38f9101-7b88-415e-b5b1-5ca60f511a2f" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_get_kmem_cache" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDE2OjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX2dldF9rbWVtX2NhY2hlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgbWV0YWRhdGEgZm9yIHRoZSBicGZfZ2V0X2ttZW1fY2FjaGUga2Z1bmMgdG8gZW5mb3JjZSBhIE5VTEwgY2hlY2sgb24gaXRzIHJldHVybiB2YWx1ZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxNjoxMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQyZjA1ZjVmOWI1MzFjOWUwYjgxNDU5MmZkNGVlMzk1YWYwMDIyNzFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1biAyMCAxNjoxMToyMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2hlbHBlcnMuYyBiL2tlcm5lbC9icGYvaGVscGVycy5jXG5pbmRleCBiNTMxNGM5ZmVkM2NmMC4uNTdhNmFiNzJhZTNjYzIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2hlbHBlcnMuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9oZWxwZXJzLmNcbkBAIC00ODE3LDcgJiM0Mzs0ODE3LDcgQEAgQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2JpdHNfbmV4dCwgS0ZfSVRFUl9ORVhUIHwgS0ZfUkVUX05VTEwpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2JpdHNfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZKVxuIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfY29weV9mcm9tX3VzZXJfc3RyLCBLRl9TTEVFUEFCTEUpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9jb3B5X2Zyb21fdXNlcl90YXNrX3N0ciwgS0ZfU0xFRVBBQkxFKVxuLUJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUpXG4mIzQzO0JURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKVxuIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfaXRlcl9rbWVtX2NhY2hlX25ldywgS0ZfSVRFUl9ORVcgfCBLRl9TTEVFUEFCTEUpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfbmV4dCwgS0ZfSVRFUl9ORVhUIHwgS0ZfUkVUX05VTEwgfCBLRl9TTEVFUEFCTEUpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZIHwgS0ZfU0xFRVBBQkxFKVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jXG5pbmRleCAxZmNlN2E3ZThkMDMwYi4uYTA2MmYzYjdiYzc1NjEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jXG5AQCAtMTY4LDMgJiM0MzsxNjgsMzIgQEAgaW50IEJQRl9QUk9HKGNwdW1hc2tfa2Z1bmNfcGVyZl9ldmVudClcbiBcdGNwdW1hc2tfa2Z1bmNfbG9hZF90ZXN0KCk7XG4gXHRyZXR1cm4gMDtcbiB9XG4mIzQzO1xuJiM0MzsvKioqKioqKioqKioqKioqKioqKioqXG4mIzQzOyAqIGttZW1fY2FjaGUga2Z1bmMgKlxuJiM0MzsgKioqKioqKioqKioqKioqKioqKioqL1xuJiM0MztcbiYjNDM7ZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpIF9fa3N5bTtcbiYjNDM7XG4mIzQzO1NFQyhcJiMzNDtyYXdfdHBcJiMzNDspXG4mIzQzO19fZmFpbHVyZSBfX21zZyhcJiMzNDtSMCBpbnZhbGlkIG1lbSBhY2Nlc3MgJiMzOTt1bnRydXN0ZWRfcHRyX29yX251bGxfJiMzOTtcJiMzNDspXG4mIzQzO2ludCBicGZfZ2V0X2ttZW1fY2FjaGVfbm9fbnVsbF9jaGVjayh2b2lkICpjdHgpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3Qga21lbV9jYWNoZSAqcztcbiYjNDM7XG4mIzQzO1x0cyA9IGJwZl9nZXRfa21lbV9jYWNoZSgwKTtcbiYjNDM7XHRyZXR1cm4gcy1cdTAwM2VzaXplO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztTRUMoXCYjMzQ7cmF3X3RwXCYjMzQ7KVxuJiM0MztfX3N1Y2Nlc3NcbiYjNDM7aW50IGJwZl9nZXRfa21lbV9jYWNoZV9udWxsX2NoZWNrKHZvaWQgKmN0eClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBrbWVtX2NhY2hlICpzO1xuJiM0MztcbiYjNDM7XHRzID0gYnBmX2dldF9rbWVtX2NhY2hlKDApO1xuJiM0MztcdGlmICghcylcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gcy1cdTAwM2VzaXplO1xuJiM0Mzt9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTY6MTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfZ2V0X2ttZW1fY2FjaGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBtZXRhZGF0YSBmb3IgdGhlIGJwZl9nZXRfa21lbV9jYWNoZSBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkMmYwNWY1ZjliNTMxYzllMGI4MTQ1OTJmZDRlZTM5NWFmMDAyMjcxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdW4gMjAgMTY6MTE6MjEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2hlbHBlcnMuYyBiL2tlcm5lbC9icGYvaGVscGVycy5jCmluZGV4IGI1MzE0YzlmZWQzY2YwLi41N2E2YWI3MmFlM2NjMiAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi9oZWxwZXJzLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9oZWxwZXJzLmMKQEAgLTQ4MTcsNyAmIzQzOzQ4MTcsNyBAQCBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfYml0c19uZXh0LCBLRl9JVEVSX05FWFQgfCBLRl9SRVRfTlVMTCkKIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfaXRlcl9iaXRzX2Rlc3Ryb3ksIEtGX0lURVJfREVTVFJPWSkKIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfY29weV9mcm9tX3VzZXJfc3RyLCBLRl9TTEVFUEFCTEUpCiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2NvcHlfZnJvbV91c2VyX3Rhc2tfc3RyLCBLRl9TTEVFUEFCTEUpCi1CVEZfSURfRkxBR1MoZnVuYywgYnBmX2dldF9rbWVtX2NhY2hlKQomIzQzO0JURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKQogQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfbmV3LCBLRl9JVEVSX05FVyB8IEtGX1NMRUVQQUJMRSkKIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfaXRlcl9rbWVtX2NhY2hlX25leHQsIEtGX0lURVJfTkVYVCB8IEtGX1JFVF9OVUxMIHwgS0ZfU0xFRVBBQkxFKQogQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZIHwgS0ZfU0xFRVBBQkxFKQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMKaW5kZXggMWZjZTdhN2U4ZDAzMGIuLmEwNjJmM2I3YmM3NTYxIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMKQEAgLTE2OCwzICYjNDM7MTY4LDMyIEBAIGludCBCUEZfUFJPRyhjcHVtYXNrX2tmdW5jX3BlcmZfZXZlbnQpCiAJY3B1bWFza19rZnVuY19sb2FkX3Rlc3QoKTsKIAlyZXR1cm4gMDsKIH0KJiM0MzsKJiM0MzsvKioqKioqKioqKioqKioqKioqKioqCiYjNDM7ICoga21lbV9jYWNoZSBrZnVuYyAqCiYjNDM7ICoqKioqKioqKioqKioqKioqKioqKi8KJiM0MzsKJiM0MztleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcikgX19rc3ltOwomIzQzOwomIzQzO1NFQygmIzM0O3Jhd190cCYjMzQ7KQomIzQzO19fZmFpbHVyZSBfX21zZygmIzM0O1IwIGludmFsaWQgbWVtIGFjY2VzcyAmIzM5O3VudHJ1c3RlZF9wdHJfb3JfbnVsbF8mIzM5OyYjMzQ7KQomIzQzO2ludCBicGZfZ2V0X2ttZW1fY2FjaGVfbm9fbnVsbF9jaGVjayh2b2lkICpjdHgpCiYjNDM7ewomIzQzOwlzdHJ1Y3Qga21lbV9jYWNoZSAqczsKJiM0MzsKJiM0MzsJcyA9IGJwZl9nZXRfa21lbV9jYWNoZSgwKTsKJiM0MzsJcmV0dXJuIHMtJmd0O3NpemU7CiYjNDM7fQomIzQzOwomIzQzO1NFQygmIzM0O3Jhd190cCYjMzQ7KQomIzQzO19fc3VjY2VzcwomIzQzO2ludCBicGZfZ2V0X2ttZW1fY2FjaGVfbnVsbF9jaGVjayh2b2lkICpjdHgpCiYjNDM7ewomIzQzOwlzdHJ1Y3Qga21lbV9jYWNoZSAqczsKJiM0MzsKJiM0MzsJcyA9IGJwZl9nZXRfa21lbV9jYWNoZSgwKTsKJiM0MzsJaWYgKCFzKQomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CiYjNDM7CXJldHVybiBzLSZndDtzaXplOwomIzQzO30KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTY6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQzNgoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDI3OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLZXJuZWwgQlBGIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGtlcm5lbC9icGYvaGVscGVycy5jYC4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBhZGRpbmcgYEtGX1JFVF9OVUxMYCB0byB0aGUgYGJwZl9nZXRfa21lbV9jYWNoZWAga2Z1bmMsIGNoYW5naW5nIHRoZSBkZWZpbml0aW9uIGZyb20gYC1CVEZfSURfRkxBR1MoZnVuYywgYnBmX2dldF9rbWVtX2NhY2hlKWAgdG8gYCYjNDM7QlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9nZXRfa21lbV9jYWNoZSwgS0ZfUkVUX05VTEwpYC4gUmlnaHQgYXdheSwgSSByZWNvZ25pemUgdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYXQgdGhlIEJQRiB2ZXJpZmllciBsZXZlbC4gVGhlIGFkZGl0aW9uIG9mIGBLRl9SRVRfTlVMTGAgbWVhbnMgdGhlIHZlcmlmaWVyIHdpbGwgKm5vdyogcmVxdWlyZSBhIE5VTEwgY2hlY2sgYWZ0ZXIgdGhlIGNhbGwgdG8gYGJwZl9nZXRfa21lbV9jYWNoZWAgYmVmb3JlIGRlcmVmZXJlbmNpbmcgdGhlIHJldHVybmVkIHBvaW50ZXIuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBvbiBgYnBmX2dldF9rbWVtX2NhY2hlYCBhbmQgd2hhdCBgS0ZfUkVUX05VTExgIGFjdHVhbGx5IHNpZ25pZmllcyBpbiBwcmFjdGljZS4gSSBuZWVkIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucy4gVGhlIHBhdGNoIGFsc28gaW5jbHVkZXMgbmV3IHRlc3RzIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jYCwgd2hpY2ggc2hvdWxkIHByb3ZpZGUgc29tZSBoZWxwZnVsIGV4YW1wbGVzLgoKSSYjMzk7bSB0aGlua2luZyBhYm91dCBmdXp6aW5nIHRoaXMgZnVuY3Rpb24gbmV4dC4gYGJwZl9nZXRfa21lbV9jYWNoZWAgKmlzKiBhIEJQRiBrZnVuYywgd2hpY2ggaXMgZ29vZCBmcm9tIGEgc2VjdXJpdHkgcGVyc3BlY3RpdmUuIFRoZSB2ZXJpZmllciBub3cgZW5mb3JjaW5nIE5VTEwgY2hlY2tzIGlzIGFsc28gZ29vZCBhcyBhIGRlZmVuc2UgaW4gZGVwdGggbWVhc3VyZS4gSSBuZWVkIHRvIHJlbWVtYmVyIHRvIGNoZWNrIHdoZXJlIHRoZSBmdW5jdGlvbiBpcyBkZWZpbmVkOiBga2VybmVsL2JwZi9oZWxwZXJzLmNgIHByb2JhYmx5LCBvciBwZXJoYXBzIHNvbWV0aGluZyBsaWtlIGBtbS9zbGFiX2NvbW1vbi5jYD8gQSBxdWljayBncmVwIHNob3VsZCBoZWxwIG1lIHBpbnBvaW50IHRoZSBzb3VyY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTY6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnBmX2dldF9rbWVtX2NhY2hlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvaGVscGVycy5jPTQ4MTk9QlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9jb3B5X2Zyb21fdXNlcl90YXNrX3N0ciwgS0ZfU0xFRVBBQkxFKVxua2VybmVsL2JwZi9oZWxwZXJzLmM6NDgyMDpCVEZfSURfRkxBR1MoZnVuYywgYnBmX2dldF9rbWVtX2NhY2hlLCBLRl9SRVRfTlVMTClcbmtlcm5lbC9icGYvaGVscGVycy5jLTQ4MjEtQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfbmV3LCBLRl9JVEVSX05FVyB8IEtGX1NMRUVQQUJMRSlcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTExMjg9ZW51bSBzcGVjaWFsX2tmdW5jX3R5cGUge1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTE3MC1cdEtGX2JwZl9zZXNzaW9uX2Nvb2tpZSxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMTE3MTpcdEtGX2JwZl9nZXRfa21lbV9jYWNoZSxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTE3Mi1cdEtGX2JwZl9sb2NhbF9pcnFfc2F2ZSxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTEyNTI9QlRGX0lEX1VOVVNFRFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExMjUzLSNlbmRpZlxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMjU0OkJURl9JRChmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTEyNTUtQlRGX0lEKGZ1bmMsIGJwZl9sb2NhbF9pcnFfc2F2ZSlcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTI5ODk9c3RhdGljIGludCBjaGVja19rZnVuY19jYWxsKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTMyNzktXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTMyODA6XHRcdFx0aWYgKG1ldGEuZnVuY19pZCA9PSBzcGVjaWFsX2tmdW5jX2xpc3RbS0ZfYnBmX2dldF9rbWVtX2NhY2hlXSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMzI4MS1cdFx0XHRcdHR5cGUgfD0gUFRSX1VOVFJVU1RFRDtcbi0tXG5tbS9zbGFiX2NvbW1vbi5jPTEyNDQ9X19icGZfa2Z1bmNfc3RhcnRfZGVmcygpO1xubW0vc2xhYl9jb21tb24uYy0xMjQ1LVxubW0vc2xhYl9jb21tb24uYzoxMjQ2Ol9fYnBmX2tmdW5jIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpXG5tbS9zbGFiX2NvbW1vbi5jLTEyNDcte1xuLS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmM9MTc0PXN0cnVjdCBtbV9zdHJ1Y3RfX19uZXcge1xuLS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtMTc3LVxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYzoxNzg6ZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpIF9fa3N5bSBfX3dlYWs7XG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTE3OS1cbi0tXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jPTI0MD1zdGF0aWMgaW5saW5lIGludCBjYW5fcmVjb3JkKHU2NCAqY3R4KVxuLS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtMjg2LVxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYzoyODc6XHRpZiAoaGFzX3NsYWIgXHUwMDI2XHUwMDI2IGJwZl9nZXRfa21lbV9jYWNoZSkge1xudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYy0yODgtXHRcdF9fdTggKm9rO1xuLS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtMjkxLVxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYzoyOTI6XHRcdGttZW1fY2FjaGVfYWRkciA9IChsb25nKWJwZl9nZXRfa21lbV9jYWNoZShhZGRyKTtcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtMjkzLVx0XHRvayA9IGJwZl9tYXBfbG9va3VwX2VsZW0oXHUwMDI2c2xhYl9maWx0ZXIsIFx1MDAyNmttZW1fY2FjaGVfYWRkcik7XG4tLVxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYz02Mzc9aW50IGNvbnRlbnRpb25fZW5kKHU2NCAqY3R4KVxuLS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtODAxLVx0XHRcdC8qIENoZWNrIGlmIGl0JiMzOTtzIGZyb20gYSBzbGFiIG9iamVjdCAqL1xudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYzo4MDI6XHRcdFx0aWYgKGJwZl9nZXRfa21lbV9jYWNoZSkge1xudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYy04MDMtXHRcdFx0XHRzdHJ1Y3Qga21lbV9jYWNoZSAqcztcbi0tXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTgwNS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmM6ODA2Olx0XHRcdFx0cyA9IGJwZl9nZXRfa21lbV9jYWNoZShwZWxlbS1cdTAwM2Vsb2NrKTtcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtODA3LVx0XHRcdFx0aWYgKHMgIT0gTlVMTCkge1xuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYz0yND1zdHJ1Y3Qge1xuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYy0zMC1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYzozMTpleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcikgX19rc3ltO1xudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jLTMyLVxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYz03MT1pbnQgQlBGX1BST0coY2hlY2tfdGFza19zdHJ1Y3QpXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jLTc2LVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jOjc3Olx0cyA9IGJwZl9nZXRfa21lbV9jYWNoZShjdXJyKTtcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYy03OC1cdGlmIChzID09IE5VTEwpIHtcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jPTE2Nj1pbnQgQlBGX1BST0coY3B1bWFza19rZnVuY19wZXJmX2V2ZW50KVxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTc1LVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYzoxNzY6ZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpIF9fa3N5bTtcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTc3LVxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM9MTc5PV9fZmFpbHVyZSBfX21zZyhcJiMzNDtSMCBpbnZhbGlkIG1lbSBhY2Nlc3MgJiMzOTt1bnRydXN0ZWRfcHRyX29yX251bGxfJiMzOTtcJiMzNDspXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jOjE4MDppbnQgYnBmX2dldF9rbWVtX2NhY2hlX25vX251bGxfY2hlY2sodm9pZCAqY3R4KVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYy0xODEte1xuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTgzLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYzoxODQ6XHRzID0gYnBmX2dldF9rbWVtX2NhY2hlKDApO1xudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYy0xODUtXHRyZXR1cm4gcy1cdTAwM2VzaXplO1xuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM9MTg5PV9fc3VjY2Vzc1xudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYzoxOTA6aW50IGJwZl9nZXRfa21lbV9jYWNoZV9udWxsX2NoZWNrKHZvaWQgKmN0eClcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTkxLXtcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jLTE5My1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM6MTk0Olx0cyA9IGJwZl9nZXRfa21lbV9jYWNoZSgwKTtcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTk1LVx0aWYgKCFzKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDE2OjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzMTcKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQb3RlbnRpYWwgSW1wYWN0IG9mIGEgQlBGIFZlcmlmaWVyIENoYW5nZSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYEtGX1JFVF9OVUxMYCB0byBgYnBmX2dldF9rbWVtX2NhY2hlYCBpbiBga2VybmVsL2JwZi9oZWxwZXJzLmNgLiBNeSBpbml0aWFsIHJlYWN0aW9uIGlzIHRvIHRoaW5rLCAmIzM0O0lzIHRoaXMgZnV6ei13b3J0aHk/JiMzNDsgSXQmIzM5O3MgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhbHRlcmluZyBob3cgdGhlIEJQRiB2ZXJpZmllciBpbnRlcmFjdHMgd2l0aCB0aGUgcmV0dXJuIG9mIGBicGZfZ2V0X2ttZW1fY2FjaGVgLiAgSSBzZWUgaXQmIzM5O3MgYWJvdXQgZW5mb3JjaW5nIE5VTEwgY2hlY2tzIGZvciBhIGtmdW5jLgoKVGhlIGNoYW5nZSBpdHNlbGYgbG9va3MgZGVjZXB0aXZlbHkgc2ltcGxlLCBpdCYjMzk7cyByZWFsbHkganVzdCBhZGRpbmcgYSBmbGFnIHRvIGEgbWFjcm8uIEJ1dCwgaG9sZCBvbiwgYGJwZl9nZXRfa21lbV9jYWNoZWAgKmlzKiBhIGtmdW5jLCBzbyB0aGUgdmVyaWZpZXImIzM5O3Mgbm93IGVuZm9yY2luZyBOVUxMIGNoZWNrcyB3aGVyZSBpdCBkaWRuJiMzOTt0IGJlZm9yZS4gIFRoYXQmIzM5O3MgZW5vdWdoIHRvIHdhcnJhbnQgYSBkZWVwZXIgbG9vay4KClRoZSByZWFsIHF1ZXN0aW9uIGlzLCB3aGF0IHNob3VsZCBJIHRhcmdldCBmb3IgZnV6emluZz8gUHJvYmFibHkgYGJwZl9nZXRfa21lbV9jYWNoZWAgaXRzZWxmLCBhbmQvb3IgdGhlIHZlcmlmaWVyIGxvZ2ljIHRoYXQgaGFuZGxlcyBgS0ZfUkVUX05VTExgLiAgQnV0LCBoYW5nIG9uLCBgS0ZfUkVUX05VTExgIGlzIGEgZ2VuZXJhbCBmbGFnLCB3aGljaCB0aGUgdmVyaWZpZXIgZGVhbHMgd2l0aCwgaXQgaXMgYSBnZW5lcmljIGZsYWcgYW5kIHRoZSB2ZXJpZmllciB3aWxsIGhhbmRsZSB0aGlzLgoKVGhlIHBhdGNoIG1vZGlmaWVzIGBrZXJuZWwvYnBmL2hlbHBlcnMuY2AsIHNvIEkgc2hvdWxkIHByb2JhYmx5IHZlcmlmeSBhbnkgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjb25maXJtIHRoYXQgYENPTkZJR19CUEZfU1lTQ0FMTGAgaXMgbmVjZXNzYXJ5LCBhcyB1c3VhbCwgZm9yIEJQRiBmdW5jdGlvbmFsaXR5LiBBbmQsIHF1aWNrIG5vdGUsIGBicGZfZ2V0X2ttZW1fY2FjaGVgIGlzIGFjdHVhbGx5IGRlZmluZWQgaW4gYG1tL3NsYWJfY29tbW9uLmNgLiBJIHNob3VsZCBjaGVjayBpZiBpdCYjMzk7cyBjb25kaXRpb25hbGx5IGNvbXBpbGVkIG9yIGFueXRoaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDE2OjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JwZl9nZXRfa21lbV9jYWNoZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL3NsYWJfY29tbW9uLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vc2xhYl9jb21tb24uYz0xMjQ0PV9fYnBmX2tmdW5jX3N0YXJ0X2RlZnMoKTtcbm1tL3NsYWJfY29tbW9uLmMtMTI0NS1cbm1tL3NsYWJfY29tbW9uLmM6MTI0NjpfX2JwZl9rZnVuYyBzdHJ1Y3Qga21lbV9jYWNoZSAqYnBmX2dldF9rbWVtX2NhY2hlKHU2NCBhZGRyKVxubW0vc2xhYl9jb21tb24uYy0xMjQ3LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxNjoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTAxCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byBgYnBmX2dldF9rbWVtX2NhY2hlYCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBgYnBmX2dldF9rbWVtX2NhY2hlYCBiZXR0ZXIuIEdpdmVuIGl0cyBuYW1lLCBpdCYjMzk7cyBvYnZpb3VzbHkgcmVsYXRlZCB0byBCUEYgYW5kIGtlcm5lbCBtZW1vcnkgY2FjaGVzLiBTaW5jZSBJIGtub3cgdGhpcyBmdW5jdGlvbiBpcyBsb2NhdGVkIGluIGBtbS9zbGFiX2NvbW1vbi5jYCwgbXkgZmlyc3QgbW92ZSBpcyB0byBnbyB0aGVyZSBhbmQgY2hlY2sgdGhlIHN1cnJvdW5kaW5nIGNvZGUuIEkgbmVlZCB0byBzZWUgKmhvdyogaXQmIzM5O3MgYmVpbmcgdXNlZCwgd2hhdCBwYXJhbWV0ZXJzIGl0JiMzOTtzIHRha2luZywgYW5kIHdoYXQgb3RoZXIgZnVuY3Rpb25zIGluIHRoYXQgZmlsZSBtaWdodCBiZSBpbnRlcmFjdGluZyB3aXRoIGl0LiBJJiMzOTttIGhvcGluZyB0aGUgaW1tZWRpYXRlIGNvbnRleHQgd2lsbCByZXZlYWwgaXRzIHB1cnBvc2Ugd2l0aGluIHRoZSBicm9hZGVyIHNsYWIgYWxsb2NhdG9yIGZyYW1ld29yay4gVW5kZXJzdGFuZGluZyBpdHMgcGxhY2UgaW4gYG1tL3NsYWJfY29tbW9uLmNgIGlzIGdvaW5nIHRvIGJlIGtleSB0byByZWFsbHkgZ3Jhc3BpbmcgaXRzIEJQRi1zcGVjaWZpYyBpbnRlcmFjdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTY6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDttbS9zbGFiX2NvbW1vbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTIzMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxMjMwOlx0XHR2b2lkICptZW0gPSAodm9pZCAqKXA7XG4xMjMxOlx0XG4xMjMyOlx0XHRrcyA9IGtzaXplKG1lbSk7XG4xMjMzOlx0XHRpZiAoa3MpIHtcbjEyMzQ6XHRcdFx0a2FzYW5fdW5wb2lzb25fcmFuZ2UobWVtLCBrcyk7XG4xMjM1Olx0XHRcdG1lbXplcm9fZXhwbGljaXQobWVtLCBrcyk7XG4xMjM2Olx0XHR9XG4xMjM3Olx0XHRrZnJlZShtZW0pO1xuMTIzODpcdH1cbjEyMzk6XHRFWFBPUlRfU1lNQk9MKGtmcmVlX3NlbnNpdGl2ZSk7XG4xMjQwOlx0XG4xMjQxOlx0I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuMTI0MjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2J0Zi5oXHUwMDNlXG4xMjQzOlx0XG4xMjQ0Olx0X19icGZfa2Z1bmNfc3RhcnRfZGVmcygpO1xuMTI0NTpcdFxuMTI0NjpcdF9fYnBmX2tmdW5jIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpXG4xMjQ3Olx0e1xuMTI0ODpcdFx0c3RydWN0IHNsYWIgKnNsYWI7XG4xMjQ5Olx0XG4xMjUwOlx0XHRpZiAoIXZpcnRfYWRkcl92YWxpZCgodm9pZCAqKShsb25nKWFkZHIpKVxuMTI1MTpcdFx0XHRyZXR1cm4gTlVMTDtcbjEyNTI6XHRcbjEyNTM6XHRcdHNsYWIgPSB2aXJ0X3RvX3NsYWIoKHZvaWQgKikobG9uZylhZGRyKTtcbjEyNTQ6XHRcdHJldHVybiBzbGFiID8gc2xhYi1cdTAwM2VzbGFiX2NhY2hlIDogTlVMTDtcbjEyNTU6XHR9XG4xMjU2Olx0XG4xMjU3Olx0X19icGZfa2Z1bmNfZW5kX2RlZnMoKTtcbjEyNTg6XHQjZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG4xMjU5Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTY6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjc1NAoJCQkJCQkJb3V0cHV0OiA4MgoJCQkJCQkJdGhvdWdodHM6IDQ2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIERlY2lzaW9uIGZvciBCUEYgVmVyaWZpZXIgQ2hhbmdlKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHdlIGhhdmUgYSBjaGFuZ2UgcmVsYXRlZCB0byB0aGUgQlBGIHZlcmlmaWVyLCBzcGVjaWZpY2FsbHkgdW5kZXIgYENPTkZJR19CUEZfU1lTQ0FMTGAuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgaXMgYWRkaW5nIGBLRl9SRVRfTlVMTGAgdG8gYGJwZl9nZXRfa21lbV9jYWNoZWAgd2l0aGluIGBrZXJuZWwvYnBmL2hlbHBlcnMuY2AuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gZXhhbWluZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBhcyB0aGUgcHJpbWFyeSBmb2N1cywgYnV0IGxldCBtZSByZWZpbmUgdGhhdC4KClllcywgdGhpcyAqaXMqIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCB3aWxsIGFmZmVjdCB0aGUgdmVyaWZpZXImIzM5O3MgYmVoYXZpb3VyLCBhbmQgaXQgaXMgd29ydGggZnV6emluZy4gSSBkaWQgY29uc2lkZXIgd2hldGhlciB0byBmb2N1cyBvbiB0aGUgdmVyaWZpZXIgaXRzZWxmLCBidXQgdGhlIHJvb3Qgb2YgdGhlIGNoYW5nZSBsaWVzIGluIGhvdyB0aGUgdmVyaWZpZXIgKmludGVycHJldHMqIHRoZSBtZXRhZGF0YSBvZiBgYnBmX2dldF9rbWVtX2NhY2hlYCwgYW5kIHRoYXQgaXMgdGhlIGNyaXRpY2FsIHBvaW50LiBUaGUgY3J1Y2lhbCBtb2RpZmljYXRpb24gaXMgdGhhdCB0aGUgdmVyaWZpZXIgd2lsbCBub3cgKnJlcXVpcmUqIGEgTlVMTCBjaGVjayBvbiB0aGUgcmV0dXJuIHZhbHVlIG9mIGBicGZfZ2V0X2ttZW1fY2FjaGVgLiBJZiBzeXprYWxsZXIgaXMgZ29pbmcgdG8gdGFyZ2V0IEJQRiBhbmQgZ2VuZXJhdGUgcHJvZ3JhbXMgdGhhdCBjYWxsIHRoYXQgZnVuY3Rpb24sIHRoZW4geWVzLCBpdOKAmXMgYSBnb29kIHN5bWJvbCB0byBmb2N1cyBvbiBiZWNhdXNlIGl0JiMzOTtzIHRoZSB0YXJnZXQga2Z1bmMgdGhhdCYjMzk7cyBiZWluZyBtb2RpZmllZCwgb3IgcmF0aGVyLCAqaXRzKiBtZXRhZGF0YSBpcy4KClRoZSBjaGFuZ2UgaXRzZWxmIGlzIGFkZGluZyB0aGUgYEtGX1JFVF9OVUxMYCBmbGFnIHRvIGBCVEZfSURfRkxBR1NgIGZvciBgYnBmX2dldF9rbWVtX2NhY2hlYC4gSXQmIzM5O3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogYEJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKWAuIFNvLCB0aGUgaW1wYWN0IGlzIG9uIGhvdyB0aGUgdmVyaWZpZXIgKmhhbmRsZXMqIHRoZSByZXR1cm4gdmFsdWUuIFRoaXMgc2VlbXMgdG8gYmUgdGhlIG9ubHkgZnVuY3Rpb24gaW52b2x2ZWQuIGBDT05GSUdfQlBGX1NZU0NBTExgIGlzIHN0YW5kYXJkIGFuZCB0aGlzIGlzIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZyBoZXJlLgoKU28sIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmdgIHRvIGB0cnVlYC4gTXkgYEZvY3VzU3ltYm9sc2Agd2lsbCBiZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBiZWNhdXNlIHRoYXQmIzM5O3MgdGhlIGtmdW5jIHdob3NlIG1ldGFkYXRhIGhhcyBiZWVuIG1vZGlmaWVkLCB0aGUgYEVuYWJsZUNvbmZpZ3NgIHdpbGwgYmUgYEJQRl9TWVNDQUxMYCwgYW5kIG15IGBSZWFzb25pbmdgIHdpbGwgYmU6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgbWV0YWRhdGEgZm9yIHRoZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLiYjMzQ7IFRoYXQgc2hvdWxkIGNvdmVyIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxNjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfZ2V0X2ttZW1fY2FjaGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBtZXRhZGF0YSBmb3IgdGhlIGJwZl9nZXRfa21lbV9jYWNoZSBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9nZXRfa21lbV9jYWNoZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIG1ldGFkYXRhIGZvciB0aGUgYnBmX2dldF9rbWVtX2NhY2hlIGtmdW5jIHRvIGVuZm9yY2UgYSBOVUxMIGNoZWNrIG9uIGl0cyByZXR1cm4gdmFsdWUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxNjoxMToyMi40Mzk3MDU3NDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTMzNDE1MzU2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9nZXRfa21lbV9jYWNoZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgbWV0YWRhdGEgZm9yIHRoZSBicGZfZ2V0X2ttZW1fY2FjaGUga2Z1bmMgdG8gZW5mb3JjZSBhIE5VTEwgY2hlY2sgb24gaXRzIHJldHVybiB2YWx1ZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTY6MTE6MjIuNDM5NzEwNjg5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Nzk3OTAzNDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkMmYwNWY1ZjliNTMxYzllMGI4MTQ1OTJmZDRlZTM5NWFmMDAyMjcxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVuIDIwIDE2OjExOjIxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvaGVscGVycy5jIGIva2VybmVsL2JwZi9oZWxwZXJzLmNcXG5pbmRleCBiNTMxNGM5ZmVkM2NmMC4uNTdhNmFiNzJhZTNjYzIgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi9oZWxwZXJzLmNcXG4rKysgYi9rZXJuZWwvYnBmL2hlbHBlcnMuY1xcbkBAIC00ODE3LDcgKzQ4MTcsNyBAQCBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfYml0c19uZXh0LCBLRl9JVEVSX05FWFQgfCBLRl9SRVRfTlVMTClcXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2JpdHNfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZKVxcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2NvcHlfZnJvbV91c2VyX3N0ciwgS0ZfU0xFRVBBQkxFKVxcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2NvcHlfZnJvbV91c2VyX3Rhc2tfc3RyLCBLRl9TTEVFUEFCTEUpXFxuLUJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUpXFxuK0JURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKVxcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfa21lbV9jYWNoZV9uZXcsIEtGX0lURVJfTkVXIHwgS0ZfU0xFRVBBQkxFKVxcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfa21lbV9jYWNoZV9uZXh0LCBLRl9JVEVSX05FWFQgfCBLRl9SRVRfTlVMTCB8IEtGX1NMRUVQQUJMRSlcXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZIHwgS0ZfU0xFRVBBQkxFKVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuY1xcbmluZGV4IDFmY2U3YTdlOGQwMzBiLi5hMDYyZjNiN2JjNzU2MSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuY1xcbkBAIC0xNjgsMyArMTY4LDMyIEBAIGludCBCUEZfUFJPRyhjcHVtYXNrX2tmdW5jX3BlcmZfZXZlbnQpXFxuIFxcdGNwdW1hc2tfa2Z1bmNfbG9hZF90ZXN0KCk7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuK1xcbisvKioqKioqKioqKioqKioqKioqKioqXFxuKyAqIGttZW1fY2FjaGUga2Z1bmMgKlxcbisgKioqKioqKioqKioqKioqKioqKioqL1xcbitcXG4rZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpIF9fa3N5bTtcXG4rXFxuK1NFQyhcXFwicmF3X3RwXFxcIilcXG4rX19mYWlsdXJlIF9fbXNnKFxcXCJSMCBpbnZhbGlkIG1lbSBhY2Nlc3MgJ3VudHJ1c3RlZF9wdHJfb3JfbnVsbF8nXFxcIilcXG4raW50IGJwZl9nZXRfa21lbV9jYWNoZV9ub19udWxsX2NoZWNrKHZvaWQgKmN0eClcXG4re1xcbitcXHRzdHJ1Y3Qga21lbV9jYWNoZSAqcztcXG4rXFxuK1xcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUoMCk7XFxuK1xcdHJldHVybiBzLVxcdTAwM2VzaXplO1xcbit9XFxuK1xcbitTRUMoXFxcInJhd190cFxcXCIpXFxuK19fc3VjY2Vzc1xcbitpbnQgYnBmX2dldF9rbWVtX2NhY2hlX251bGxfY2hlY2sodm9pZCAqY3R4KVxcbit7XFxuK1xcdHN0cnVjdCBrbWVtX2NhY2hlICpzO1xcbitcXG4rXFx0cyA9IGJwZl9nZXRfa21lbV9jYWNoZSgwKTtcXG4rXFx0aWYgKCFzKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdHJldHVybiBzLVxcdTAwM2VzaXplO1xcbit9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDE2OjExOjIyLjkyMDQ4NjkwN1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQ4NTMzNjEzMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfZ2V0X2ttZW1fY2FjaGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIG1ldGFkYXRhIGZvciB0aGUgYnBmX2dldF9rbWVtX2NhY2hlIGtmdW5jIHRvIGVuZm9yY2UgYSBOVUxMIGNoZWNrIG9uIGl0cyByZXR1cm4gdmFsdWUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDJmMDVmNWY5YjUzMWM5ZTBiODE0NTkyZmQ0ZWUzOTVhZjAwMjI3MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVuIDIwIDE2OjExOjIxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9oZWxwZXJzLmMgYi9rZXJuZWwvYnBmL2hlbHBlcnMuY1xuaW5kZXggYjUzMTRjOWZlZDNjZjAuLjU3YTZhYjcyYWUzY2MyIDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi9oZWxwZXJzLmNcbisrKyBiL2tlcm5lbC9icGYvaGVscGVycy5jXG5AQCAtNDgxNyw3ICs0ODE3LDcgQEAgQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2JpdHNfbmV4dCwgS0ZfSVRFUl9ORVhUIHwgS0ZfUkVUX05VTEwpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2JpdHNfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZKVxuIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfY29weV9mcm9tX3VzZXJfc3RyLCBLRl9TTEVFUEFCTEUpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9jb3B5X2Zyb21fdXNlcl90YXNrX3N0ciwgS0ZfU0xFRVBBQkxFKVxuLUJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUpXG4rQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9nZXRfa21lbV9jYWNoZSwgS0ZfUkVUX05VTEwpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfbmV3LCBLRl9JVEVSX05FVyB8IEtGX1NMRUVQQUJMRSlcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfa21lbV9jYWNoZV9uZXh0LCBLRl9JVEVSX05FWFQgfCBLRl9SRVRfTlVMTCB8IEtGX1NMRUVQQUJMRSlcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfa21lbV9jYWNoZV9kZXN0cm95LCBLRl9JVEVSX0RFU1RST1kgfCBLRl9TTEVFUEFCTEUpXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmNcbmluZGV4IDFmY2U3YTdlOGQwMzBiLi5hMDYyZjNiN2JjNzU2MSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmNcbkBAIC0xNjgsMyArMTY4LDMyIEBAIGludCBCUEZfUFJPRyhjcHVtYXNrX2tmdW5jX3BlcmZfZXZlbnQpXG4gXHRjcHVtYXNrX2tmdW5jX2xvYWRfdGVzdCgpO1xuIFx0cmV0dXJuIDA7XG4gfVxuK1xuKy8qKioqKioqKioqKioqKioqKioqKipcbisgKiBrbWVtX2NhY2hlIGtmdW5jICpcbisgKioqKioqKioqKioqKioqKioqKioqL1xuK1xuK2V4dGVybiBzdHJ1Y3Qga21lbV9jYWNoZSAqYnBmX2dldF9rbWVtX2NhY2hlKHU2NCBhZGRyKSBfX2tzeW07XG4rXG4rU0VDKFwicmF3X3RwXCIpXG4rX19mYWlsdXJlIF9fbXNnKFwiUjAgaW52YWxpZCBtZW0gYWNjZXNzICd1bnRydXN0ZWRfcHRyX29yX251bGxfJ1wiKVxuK2ludCBicGZfZ2V0X2ttZW1fY2FjaGVfbm9fbnVsbF9jaGVjayh2b2lkICpjdHgpXG4re1xuK1x0c3RydWN0IGttZW1fY2FjaGUgKnM7XG4rXG4rXHRzID0gYnBmX2dldF9rbWVtX2NhY2hlKDApO1xuK1x0cmV0dXJuIHMtXHUwMDNlc2l6ZTtcbit9XG4rXG4rU0VDKFwicmF3X3RwXCIpXG4rX19zdWNjZXNzXG4raW50IGJwZl9nZXRfa21lbV9jYWNoZV9udWxsX2NoZWNrKHZvaWQgKmN0eClcbit7XG4rXHRzdHJ1Y3Qga21lbV9jYWNoZSAqcztcbitcbitcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUoMCk7XG4rXHRpZiAoIXMpXG4rXHRcdHJldHVybiAwO1xuK1xuK1x0cmV0dXJuIHMtXHUwMDNlc2l6ZTtcbit9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxNjoxMToyMi45MjA0ODg2MTdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTI1NDU0NTMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtlcm5lbCBCUEYgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGtlcm5lbC9icGYvaGVscGVycy5jYC4gU3BlY2lmaWNhbGx5LCBpdCdzIGFkZGluZyBgS0ZfUkVUX05VTExgIHRvIHRoZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBrZnVuYywgY2hhbmdpbmcgdGhlIGRlZmluaXRpb24gZnJvbSBgLUJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUpYCB0byBgK0JURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKWAuIFJpZ2h0IGF3YXksIEkgcmVjb2duaXplIHRoYXQgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGF0IHRoZSBCUEYgdmVyaWZpZXIgbGV2ZWwuIFRoZSBhZGRpdGlvbiBvZiBgS0ZfUkVUX05VTExgIG1lYW5zIHRoZSB2ZXJpZmllciB3aWxsICpub3cqIHJlcXVpcmUgYSBOVUxMIGNoZWNrIGFmdGVyIHRoZSBjYWxsIHRvIGBicGZfZ2V0X2ttZW1fY2FjaGVgIGJlZm9yZSBkZXJlZmVyZW5jaW5nIHRoZSByZXR1cm5lZCBwb2ludGVyLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBvbiBgYnBmX2dldF9rbWVtX2NhY2hlYCBhbmQgd2hhdCBgS0ZfUkVUX05VTExgIGFjdHVhbGx5IHNpZ25pZmllcyBpbiBwcmFjdGljZS4gSSBuZWVkIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucy4gVGhlIHBhdGNoIGFsc28gaW5jbHVkZXMgbmV3IHRlc3RzIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jYCwgd2hpY2ggc2hvdWxkIHByb3ZpZGUgc29tZSBoZWxwZnVsIGV4YW1wbGVzLlxuXG5JJ20gdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0aGlzIGZ1bmN0aW9uIG5leHQuIGBicGZfZ2V0X2ttZW1fY2FjaGVgICppcyogYSBCUEYga2Z1bmMsIHdoaWNoIGlzIGdvb2QgZnJvbSBhIHNlY3VyaXR5IHBlcnNwZWN0aXZlLiBUaGUgdmVyaWZpZXIgbm93IGVuZm9yY2luZyBOVUxMIGNoZWNrcyBpcyBhbHNvIGdvb2QgYXMgYSBkZWZlbnNlIGluIGRlcHRoIG1lYXN1cmUuIEkgbmVlZCB0byByZW1lbWJlciB0byBjaGVjayB3aGVyZSB0aGUgZnVuY3Rpb24gaXMgZGVmaW5lZDogYGtlcm5lbC9icGYvaGVscGVycy5jYCBwcm9iYWJseSwgb3IgcGVyaGFwcyBzb21ldGhpbmcgbGlrZSBgbW0vc2xhYl9jb21tb24uY2A/IEEgcXVpY2sgZ3JlcCBzaG91bGQgaGVscCBtZSBwaW5wb2ludCB0aGUgc291cmNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDM2LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjc5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTY6MTE6MjguNDQ1OTQ1MjhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA4Nzc2OTg5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicGZfZ2V0X2ttZW1fY2FjaGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi9oZWxwZXJzLmM9NDgxOT1CVEZfSURfRkxBR1MoZnVuYywgYnBmX2NvcHlfZnJvbV91c2VyX3Rhc2tfc3RyLCBLRl9TTEVFUEFCTEUpXFxua2VybmVsL2JwZi9oZWxwZXJzLmM6NDgyMDpCVEZfSURfRkxBR1MoZnVuYywgYnBmX2dldF9rbWVtX2NhY2hlLCBLRl9SRVRfTlVMTClcXG5rZXJuZWwvYnBmL2hlbHBlcnMuYy00ODIxLUJURl9JRF9GTEFHUyhmdW5jLCBicGZfaXRlcl9rbWVtX2NhY2hlX25ldywgS0ZfSVRFUl9ORVcgfCBLRl9TTEVFUEFCTEUpXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTExMjg9ZW51bSBzcGVjaWFsX2tmdW5jX3R5cGUge1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExMTcwLVxcdEtGX2JwZl9zZXNzaW9uX2Nvb2tpZSxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTExNzE6XFx0S0ZfYnBmX2dldF9rbWVtX2NhY2hlLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTE3Mi1cXHRLRl9icGZfbG9jYWxfaXJxX3NhdmUsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTEyNTI9QlRGX0lEX1VOVVNFRFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTI1My0jZW5kaWZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTEyNTQ6QlRGX0lEKGZ1bmMsIGJwZl9nZXRfa21lbV9jYWNoZSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTEyNTUtQlRGX0lEKGZ1bmMsIGJwZl9sb2NhbF9pcnFfc2F2ZSlcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMjk4OT1zdGF0aWMgaW50IGNoZWNrX2tmdW5jX2NhbGwoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEzMjc5LVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMzI4MDpcXHRcXHRcXHRpZiAobWV0YS5mdW5jX2lkID09IHNwZWNpYWxfa2Z1bmNfbGlzdFtLRl9icGZfZ2V0X2ttZW1fY2FjaGVdKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMzI4MS1cXHRcXHRcXHRcXHR0eXBlIHw9IFBUUl9VTlRSVVNURUQ7XFxuLS1cXG5tbS9zbGFiX2NvbW1vbi5jPTEyNDQ9X19icGZfa2Z1bmNfc3RhcnRfZGVmcygpO1xcbm1tL3NsYWJfY29tbW9uLmMtMTI0NS1cXG5tbS9zbGFiX2NvbW1vbi5jOjEyNDY6X19icGZfa2Z1bmMgc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcilcXG5tbS9zbGFiX2NvbW1vbi5jLTEyNDcte1xcbi0tXFxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYz0xNzQ9c3RydWN0IG1tX3N0cnVjdF9fX25ldyB7XFxuLS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTE3Ny1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jOjE3ODpleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcikgX19rc3ltIF9fd2VhaztcXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTE3OS1cXG4tLVxcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmM9MjQwPXN0YXRpYyBpbmxpbmUgaW50IGNhbl9yZWNvcmQodTY0ICpjdHgpXFxuLS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTI4Ni1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jOjI4NzpcXHRpZiAoaGFzX3NsYWIgXFx1MDAyNlxcdTAwMjYgYnBmX2dldF9rbWVtX2NhY2hlKSB7XFxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYy0yODgtXFx0XFx0X191OCAqb2s7XFxuLS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTI5MS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jOjI5MjpcXHRcXHRrbWVtX2NhY2hlX2FkZHIgPSAobG9uZylicGZfZ2V0X2ttZW1fY2FjaGUoYWRkcik7XFxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYy0yOTMtXFx0XFx0b2sgPSBicGZfbWFwX2xvb2t1cF9lbGVtKFxcdTAwMjZzbGFiX2ZpbHRlciwgXFx1MDAyNmttZW1fY2FjaGVfYWRkcik7XFxuLS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jPTYzNz1pbnQgY29udGVudGlvbl9lbmQodTY0ICpjdHgpXFxuLS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTgwMS1cXHRcXHRcXHQvKiBDaGVjayBpZiBpdCdzIGZyb20gYSBzbGFiIG9iamVjdCAqL1xcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmM6ODAyOlxcdFxcdFxcdGlmIChicGZfZ2V0X2ttZW1fY2FjaGUpIHtcXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTgwMy1cXHRcXHRcXHRcXHRzdHJ1Y3Qga21lbV9jYWNoZSAqcztcXG4tLVxcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtODA1LVxcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmM6ODA2OlxcdFxcdFxcdFxcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUocGVsZW0tXFx1MDAzZWxvY2spO1xcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtODA3LVxcdFxcdFxcdFxcdGlmIChzICE9IE5VTEwpIHtcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYz0yND1zdHJ1Y3Qge1xcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jLTMwLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYzozMTpleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcikgX19rc3ltO1xcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYy0zMi1cXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYz03MT1pbnQgQlBGX1BST0coY2hlY2tfdGFza19zdHJ1Y3QpXFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mva21lbV9jYWNoZV9pdGVyLmMtNzYtXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jOjc3OlxcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUoY3Vycik7XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jLTc4LVxcdGlmIChzID09IE5VTEwpIHtcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM9MTY2PWludCBCUEZfUFJPRyhjcHVtYXNrX2tmdW5jX3BlcmZfZXZlbnQpXFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jLTE3NS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jOjE3NjpleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcikgX19rc3ltO1xcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTc3LVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYz0xNzk9X19mYWlsdXJlIF9fbXNnKFxcXCJSMCBpbnZhbGlkIG1lbSBhY2Nlc3MgJ3VudHJ1c3RlZF9wdHJfb3JfbnVsbF8nXFxcIilcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jOjE4MDppbnQgYnBmX2dldF9rbWVtX2NhY2hlX25vX251bGxfY2hlY2sodm9pZCAqY3R4KVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTgxLXtcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTgzLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM6MTg0OlxcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUoMCk7XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYy0xODUtXFx0cmV0dXJuIHMtXFx1MDAzZXNpemU7XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jPTE4OT1fX3N1Y2Nlc3NcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jOjE5MDppbnQgYnBmX2dldF9rbWVtX2NhY2hlX251bGxfY2hlY2sodm9pZCAqY3R4KVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTkxLXtcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTkzLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM6MTk0OlxcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUoMCk7XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYy0xOTUtXFx0aWYgKCFzKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxNjoxMTozMC41MzM3MjEwMVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzNDc1NzQ1ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQb3RlbnRpYWwgSW1wYWN0IG9mIGEgQlBGIFZlcmlmaWVyIENoYW5nZSoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBgS0ZfUkVUX05VTExgIHRvIGBicGZfZ2V0X2ttZW1fY2FjaGVgIGluIGBrZXJuZWwvYnBmL2hlbHBlcnMuY2AuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdG8gdGhpbmssIFwiSXMgdGhpcyBmdXp6LXdvcnRoeT9cIiBJdCdzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYWx0ZXJpbmcgaG93IHRoZSBCUEYgdmVyaWZpZXIgaW50ZXJhY3RzIHdpdGggdGhlIHJldHVybiBvZiBgYnBmX2dldF9rbWVtX2NhY2hlYC4gIEkgc2VlIGl0J3MgYWJvdXQgZW5mb3JjaW5nIE5VTEwgY2hlY2tzIGZvciBhIGtmdW5jLlxuXG5UaGUgY2hhbmdlIGl0c2VsZiBsb29rcyBkZWNlcHRpdmVseSBzaW1wbGUsIGl0J3MgcmVhbGx5IGp1c3QgYWRkaW5nIGEgZmxhZyB0byBhIG1hY3JvLiBCdXQsIGhvbGQgb24sIGBicGZfZ2V0X2ttZW1fY2FjaGVgICppcyogYSBrZnVuYywgc28gdGhlIHZlcmlmaWVyJ3Mgbm93IGVuZm9yY2luZyBOVUxMIGNoZWNrcyB3aGVyZSBpdCBkaWRuJ3QgYmVmb3JlLiAgVGhhdCdzIGVub3VnaCB0byB3YXJyYW50IGEgZGVlcGVyIGxvb2suXG5cblRoZSByZWFsIHF1ZXN0aW9uIGlzLCB3aGF0IHNob3VsZCBJIHRhcmdldCBmb3IgZnV6emluZz8gUHJvYmFibHkgYGJwZl9nZXRfa21lbV9jYWNoZWAgaXRzZWxmLCBhbmQvb3IgdGhlIHZlcmlmaWVyIGxvZ2ljIHRoYXQgaGFuZGxlcyBgS0ZfUkVUX05VTExgLiAgQnV0LCBoYW5nIG9uLCBgS0ZfUkVUX05VTExgIGlzIGEgZ2VuZXJhbCBmbGFnLCB3aGljaCB0aGUgdmVyaWZpZXIgZGVhbHMgd2l0aCwgaXQgaXMgYSBnZW5lcmljIGZsYWcgYW5kIHRoZSB2ZXJpZmllciB3aWxsIGhhbmRsZSB0aGlzLlxuXG5UaGUgcGF0Y2ggbW9kaWZpZXMgYGtlcm5lbC9icGYvaGVscGVycy5jYCwgc28gSSBzaG91bGQgcHJvYmFibHkgdmVyaWZ5IGFueSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY29uZmlybSB0aGF0IGBDT05GSUdfQlBGX1NZU0NBTExgIGlzIG5lY2Vzc2FyeSwgYXMgdXN1YWwsIGZvciBCUEYgZnVuY3Rpb25hbGl0eS4gQW5kLCBxdWljayBub3RlLCBgYnBmX2dldF9rbWVtX2NhY2hlYCBpcyBhY3R1YWxseSBkZWZpbmVkIGluIGBtbS9zbGFiX2NvbW1vbi5jYC4gSSBzaG91bGQgY2hlY2sgaWYgaXQncyBjb25kaXRpb25hbGx5IGNvbXBpbGVkIG9yIGFueXRoaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzE3LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjg0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDE2OjExOjM1Ljg4MTI5NzUxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxNTk3Mzc4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJwZl9nZXRfa21lbV9jYWNoZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9zbGFiX2NvbW1vbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL3NsYWJfY29tbW9uLmM9MTI0ND1fX2JwZl9rZnVuY19zdGFydF9kZWZzKCk7XFxubW0vc2xhYl9jb21tb24uYy0xMjQ1LVxcbm1tL3NsYWJfY29tbW9uLmM6MTI0NjpfX2JwZl9rZnVuYyBzdHJ1Y3Qga21lbV9jYWNoZSAqYnBmX2dldF9rbWVtX2NhY2hlKHU2NCBhZGRyKVxcbm1tL3NsYWJfY29tbW9uLmMtMTI0Ny17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDE2OjExOjM1Ljk0MjkwNTAyOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MTY4MTc2MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIGludG8gYGJwZl9nZXRfa21lbV9jYWNoZWAqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBgYnBmX2dldF9rbWVtX2NhY2hlYCBiZXR0ZXIuIEdpdmVuIGl0cyBuYW1lLCBpdCdzIG9idmlvdXNseSByZWxhdGVkIHRvIEJQRiBhbmQga2VybmVsIG1lbW9yeSBjYWNoZXMuIFNpbmNlIEkga25vdyB0aGlzIGZ1bmN0aW9uIGlzIGxvY2F0ZWQgaW4gYG1tL3NsYWJfY29tbW9uLmNgLCBteSBmaXJzdCBtb3ZlIGlzIHRvIGdvIHRoZXJlIGFuZCBjaGVjayB0aGUgc3Vycm91bmRpbmcgY29kZS4gSSBuZWVkIHRvIHNlZSAqaG93KiBpdCdzIGJlaW5nIHVzZWQsIHdoYXQgcGFyYW1ldGVycyBpdCdzIHRha2luZywgYW5kIHdoYXQgb3RoZXIgZnVuY3Rpb25zIGluIHRoYXQgZmlsZSBtaWdodCBiZSBpbnRlcmFjdGluZyB3aXRoIGl0LiBJJ20gaG9waW5nIHRoZSBpbW1lZGlhdGUgY29udGV4dCB3aWxsIHJldmVhbCBpdHMgcHVycG9zZSB3aXRoaW4gdGhlIGJyb2FkZXIgc2xhYiBhbGxvY2F0b3IgZnJhbWV3b3JrLiBVbmRlcnN0YW5kaW5nIGl0cyBwbGFjZSBpbiBgbW0vc2xhYl9jb21tb24uY2AgaXMgZ29pbmcgdG8gYmUga2V5IHRvIHJlYWxseSBncmFzcGluZyBpdHMgQlBGLXNwZWNpZmljIGludGVyYWN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjEwMSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDE2OjExOjM4Ljg1OTcyNTYxNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4Njk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJtbS9zbGFiX2NvbW1vbi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEyMzAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjEyMzA6XFx0XFx0dm9pZCAqbWVtID0gKHZvaWQgKilwO1xcbjEyMzE6XFx0XFxuMTIzMjpcXHRcXHRrcyA9IGtzaXplKG1lbSk7XFxuMTIzMzpcXHRcXHRpZiAoa3MpIHtcXG4xMjM0OlxcdFxcdFxcdGthc2FuX3VucG9pc29uX3JhbmdlKG1lbSwga3MpO1xcbjEyMzU6XFx0XFx0XFx0bWVtemVyb19leHBsaWNpdChtZW0sIGtzKTtcXG4xMjM2OlxcdFxcdH1cXG4xMjM3OlxcdFxcdGtmcmVlKG1lbSk7XFxuMTIzODpcXHR9XFxuMTIzOTpcXHRFWFBPUlRfU1lNQk9MKGtmcmVlX3NlbnNpdGl2ZSk7XFxuMTI0MDpcXHRcXG4xMjQxOlxcdCNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG4xMjQyOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9idGYuaFxcdTAwM2VcXG4xMjQzOlxcdFxcbjEyNDQ6XFx0X19icGZfa2Z1bmNfc3RhcnRfZGVmcygpO1xcbjEyNDU6XFx0XFxuMTI0NjpcXHRfX2JwZl9rZnVuYyBzdHJ1Y3Qga21lbV9jYWNoZSAqYnBmX2dldF9rbWVtX2NhY2hlKHU2NCBhZGRyKVxcbjEyNDc6XFx0e1xcbjEyNDg6XFx0XFx0c3RydWN0IHNsYWIgKnNsYWI7XFxuMTI0OTpcXHRcXG4xMjUwOlxcdFxcdGlmICghdmlydF9hZGRyX3ZhbGlkKCh2b2lkICopKGxvbmcpYWRkcikpXFxuMTI1MTpcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4xMjUyOlxcdFxcbjEyNTM6XFx0XFx0c2xhYiA9IHZpcnRfdG9fc2xhYigodm9pZCAqKShsb25nKWFkZHIpO1xcbjEyNTQ6XFx0XFx0cmV0dXJuIHNsYWIgPyBzbGFiLVxcdTAwM2VzbGFiX2NhY2hlIDogTlVMTDtcXG4xMjU1OlxcdH1cXG4xMjU2OlxcdFxcbjEyNTc6XFx0X19icGZfa2Z1bmNfZW5kX2RlZnMoKTtcXG4xMjU4OlxcdCNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cXG4xMjU5OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxNjoxMTozOC44NTk5MTQwMDZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4ODIzMDkxNzAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRGVjaXNpb24gZm9yIEJQRiBWZXJpZmllciBDaGFuZ2UqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHdlIGhhdmUgYSBjaGFuZ2UgcmVsYXRlZCB0byB0aGUgQlBGIHZlcmlmaWVyLCBzcGVjaWZpY2FsbHkgdW5kZXIgYENPTkZJR19CUEZfU1lTQ0FMTGAuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgaXMgYWRkaW5nIGBLRl9SRVRfTlVMTGAgdG8gYGJwZl9nZXRfa21lbV9jYWNoZWAgd2l0aGluIGBrZXJuZWwvYnBmL2hlbHBlcnMuY2AuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gZXhhbWluZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBhcyB0aGUgcHJpbWFyeSBmb2N1cywgYnV0IGxldCBtZSByZWZpbmUgdGhhdC5cblxuWWVzLCB0aGlzICppcyogYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHdpbGwgYWZmZWN0IHRoZSB2ZXJpZmllcidzIGJlaGF2aW91ciwgYW5kIGl0IGlzIHdvcnRoIGZ1enppbmcuIEkgZGlkIGNvbnNpZGVyIHdoZXRoZXIgdG8gZm9jdXMgb24gdGhlIHZlcmlmaWVyIGl0c2VsZiwgYnV0IHRoZSByb290IG9mIHRoZSBjaGFuZ2UgbGllcyBpbiBob3cgdGhlIHZlcmlmaWVyICppbnRlcnByZXRzKiB0aGUgbWV0YWRhdGEgb2YgYGJwZl9nZXRfa21lbV9jYWNoZWAsIGFuZCB0aGF0IGlzIHRoZSBjcml0aWNhbCBwb2ludC4gVGhlIGNydWNpYWwgbW9kaWZpY2F0aW9uIGlzIHRoYXQgdGhlIHZlcmlmaWVyIHdpbGwgbm93ICpyZXF1aXJlKiBhIE5VTEwgY2hlY2sgb24gdGhlIHJldHVybiB2YWx1ZSBvZiBgYnBmX2dldF9rbWVtX2NhY2hlYC4gSWYgc3l6a2FsbGVyIGlzIGdvaW5nIHRvIHRhcmdldCBCUEYgYW5kIGdlbmVyYXRlIHByb2dyYW1zIHRoYXQgY2FsbCB0aGF0IGZ1bmN0aW9uLCB0aGVuIHllcywgaXTigJlzIGEgZ29vZCBzeW1ib2wgdG8gZm9jdXMgb24gYmVjYXVzZSBpdCdzIHRoZSB0YXJnZXQga2Z1bmMgdGhhdCdzIGJlaW5nIG1vZGlmaWVkLCBvciByYXRoZXIsICppdHMqIG1ldGFkYXRhIGlzLlxuXG5UaGUgY2hhbmdlIGl0c2VsZiBpcyBhZGRpbmcgdGhlIGBLRl9SRVRfTlVMTGAgZmxhZyB0byBgQlRGX0lEX0ZMQUdTYCBmb3IgYGJwZl9nZXRfa21lbV9jYWNoZWAuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogYEJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKWAuIFNvLCB0aGUgaW1wYWN0IGlzIG9uIGhvdyB0aGUgdmVyaWZpZXIgKmhhbmRsZXMqIHRoZSByZXR1cm4gdmFsdWUuIFRoaXMgc2VlbXMgdG8gYmUgdGhlIG9ubHkgZnVuY3Rpb24gaW52b2x2ZWQuIGBDT05GSUdfQlBGX1NZU0NBTExgIGlzIHN0YW5kYXJkIGFuZCB0aGlzIGlzIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZyBoZXJlLlxuXG5TbywgSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAuIE15IGBGb2N1c1N5bWJvbHNgIHdpbGwgYmUgYGJwZl9nZXRfa21lbV9jYWNoZWAgYmVjYXVzZSB0aGF0J3MgdGhlIGtmdW5jIHdob3NlIG1ldGFkYXRhIGhhcyBiZWVuIG1vZGlmaWVkLCB0aGUgYEVuYWJsZUNvbmZpZ3NgIHdpbGwgYmUgYEJQRl9TWVNDQUxMYCwgYW5kIG15IGBSZWFzb25pbmdgIHdpbGwgYmU6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgbWV0YWRhdGEgZm9yIHRoZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLlwiIFRoYXQgc2hvdWxkIGNvdmVyIGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzU0LCJPdXRwdXRUb2tlbnMiOjgyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDY5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTY6MTE6NDcuNjgzMDA4MzY2WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTA4MzM4MzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2dldF9rbWVtX2NhY2hlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBtZXRhZGF0YSBmb3IgdGhlIGJwZl9nZXRfa21lbV9jYWNoZSBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2dldF9rbWVtX2NhY2hlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBtZXRhZGF0YSBmb3IgdGhlIGJwZl9nZXRfa21lbV9jYWNoZSBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow2zg7m[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-20 16:00:04 +0000 UTC FinishedAt: 2026-06-20 16:11:49 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "b85966adbf5de0668a815c6e3527f87e0c387fb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "b85966adbf5de0668a815c6e3527f87e0c387fb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "b38f9101-7b88-415e-b5b1-5ca60f511a2f" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_get_kmem_cache" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDE2OjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX2dldF9rbWVtX2NhY2hlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgbWV0YWRhdGEgZm9yIHRoZSBicGZfZ2V0X2ttZW1fY2FjaGUga2Z1bmMgdG8gZW5mb3JjZSBhIE5VTEwgY2hlY2sgb24gaXRzIHJldHVybiB2YWx1ZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxNjoxMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQyZjA1ZjVmOWI1MzFjOWUwYjgxNDU5MmZkNGVlMzk1YWYwMDIyNzFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1biAyMCAxNjoxMToyMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2hlbHBlcnMuYyBiL2tlcm5lbC9icGYvaGVscGVycy5jXG5pbmRleCBiNTMxNGM5ZmVkM2NmMC4uNTdhNmFiNzJhZTNjYzIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2hlbHBlcnMuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9oZWxwZXJzLmNcbkBAIC00ODE3LDcgJiM0Mzs0ODE3LDcgQEAgQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2JpdHNfbmV4dCwgS0ZfSVRFUl9ORVhUIHwgS0ZfUkVUX05VTEwpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2JpdHNfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZKVxuIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfY29weV9mcm9tX3VzZXJfc3RyLCBLRl9TTEVFUEFCTEUpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9jb3B5X2Zyb21fdXNlcl90YXNrX3N0ciwgS0ZfU0xFRVBBQkxFKVxuLUJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUpXG4mIzQzO0JURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKVxuIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfaXRlcl9rbWVtX2NhY2hlX25ldywgS0ZfSVRFUl9ORVcgfCBLRl9TTEVFUEFCTEUpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfbmV4dCwgS0ZfSVRFUl9ORVhUIHwgS0ZfUkVUX05VTEwgfCBLRl9TTEVFUEFCTEUpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZIHwgS0ZfU0xFRVBBQkxFKVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jXG5pbmRleCAxZmNlN2E3ZThkMDMwYi4uYTA2MmYzYjdiYzc1NjEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jXG5AQCAtMTY4LDMgJiM0MzsxNjgsMzIgQEAgaW50IEJQRl9QUk9HKGNwdW1hc2tfa2Z1bmNfcGVyZl9ldmVudClcbiBcdGNwdW1hc2tfa2Z1bmNfbG9hZF90ZXN0KCk7XG4gXHRyZXR1cm4gMDtcbiB9XG4mIzQzO1xuJiM0MzsvKioqKioqKioqKioqKioqKioqKioqXG4mIzQzOyAqIGttZW1fY2FjaGUga2Z1bmMgKlxuJiM0MzsgKioqKioqKioqKioqKioqKioqKioqL1xuJiM0MztcbiYjNDM7ZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpIF9fa3N5bTtcbiYjNDM7XG4mIzQzO1NFQyhcJiMzNDtyYXdfdHBcJiMzNDspXG4mIzQzO19fZmFpbHVyZSBfX21zZyhcJiMzNDtSMCBpbnZhbGlkIG1lbSBhY2Nlc3MgJiMzOTt1bnRydXN0ZWRfcHRyX29yX251bGxfJiMzOTtcJiMzNDspXG4mIzQzO2ludCBicGZfZ2V0X2ttZW1fY2FjaGVfbm9fbnVsbF9jaGVjayh2b2lkICpjdHgpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3Qga21lbV9jYWNoZSAqcztcbiYjNDM7XG4mIzQzO1x0cyA9IGJwZl9nZXRfa21lbV9jYWNoZSgwKTtcbiYjNDM7XHRyZXR1cm4gcy1cdTAwM2VzaXplO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztTRUMoXCYjMzQ7cmF3X3RwXCYjMzQ7KVxuJiM0MztfX3N1Y2Nlc3NcbiYjNDM7aW50IGJwZl9nZXRfa21lbV9jYWNoZV9udWxsX2NoZWNrKHZvaWQgKmN0eClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBrbWVtX2NhY2hlICpzO1xuJiM0MztcbiYjNDM7XHRzID0gYnBmX2dldF9rbWVtX2NhY2hlKDApO1xuJiM0MztcdGlmICghcylcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gcy1cdTAwM2VzaXplO1xuJiM0Mzt9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTY6MTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfZ2V0X2ttZW1fY2FjaGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBtZXRhZGF0YSBmb3IgdGhlIGJwZl9nZXRfa21lbV9jYWNoZSBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkMmYwNWY1ZjliNTMxYzllMGI4MTQ1OTJmZDRlZTM5NWFmMDAyMjcxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdW4gMjAgMTY6MTE6MjEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2hlbHBlcnMuYyBiL2tlcm5lbC9icGYvaGVscGVycy5jCmluZGV4IGI1MzE0YzlmZWQzY2YwLi41N2E2YWI3MmFlM2NjMiAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi9oZWxwZXJzLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9oZWxwZXJzLmMKQEAgLTQ4MTcsNyAmIzQzOzQ4MTcsNyBAQCBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfYml0c19uZXh0LCBLRl9JVEVSX05FWFQgfCBLRl9SRVRfTlVMTCkKIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfaXRlcl9iaXRzX2Rlc3Ryb3ksIEtGX0lURVJfREVTVFJPWSkKIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfY29weV9mcm9tX3VzZXJfc3RyLCBLRl9TTEVFUEFCTEUpCiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2NvcHlfZnJvbV91c2VyX3Rhc2tfc3RyLCBLRl9TTEVFUEFCTEUpCi1CVEZfSURfRkxBR1MoZnVuYywgYnBmX2dldF9rbWVtX2NhY2hlKQomIzQzO0JURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKQogQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfbmV3LCBLRl9JVEVSX05FVyB8IEtGX1NMRUVQQUJMRSkKIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfaXRlcl9rbWVtX2NhY2hlX25leHQsIEtGX0lURVJfTkVYVCB8IEtGX1JFVF9OVUxMIHwgS0ZfU0xFRVBBQkxFKQogQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZIHwgS0ZfU0xFRVBBQkxFKQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMKaW5kZXggMWZjZTdhN2U4ZDAzMGIuLmEwNjJmM2I3YmM3NTYxIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMKQEAgLTE2OCwzICYjNDM7MTY4LDMyIEBAIGludCBCUEZfUFJPRyhjcHVtYXNrX2tmdW5jX3BlcmZfZXZlbnQpCiAJY3B1bWFza19rZnVuY19sb2FkX3Rlc3QoKTsKIAlyZXR1cm4gMDsKIH0KJiM0MzsKJiM0MzsvKioqKioqKioqKioqKioqKioqKioqCiYjNDM7ICoga21lbV9jYWNoZSBrZnVuYyAqCiYjNDM7ICoqKioqKioqKioqKioqKioqKioqKi8KJiM0MzsKJiM0MztleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcikgX19rc3ltOwomIzQzOwomIzQzO1NFQygmIzM0O3Jhd190cCYjMzQ7KQomIzQzO19fZmFpbHVyZSBfX21zZygmIzM0O1IwIGludmFsaWQgbWVtIGFjY2VzcyAmIzM5O3VudHJ1c3RlZF9wdHJfb3JfbnVsbF8mIzM5OyYjMzQ7KQomIzQzO2ludCBicGZfZ2V0X2ttZW1fY2FjaGVfbm9fbnVsbF9jaGVjayh2b2lkICpjdHgpCiYjNDM7ewomIzQzOwlzdHJ1Y3Qga21lbV9jYWNoZSAqczsKJiM0MzsKJiM0MzsJcyA9IGJwZl9nZXRfa21lbV9jYWNoZSgwKTsKJiM0MzsJcmV0dXJuIHMtJmd0O3NpemU7CiYjNDM7fQomIzQzOwomIzQzO1NFQygmIzM0O3Jhd190cCYjMzQ7KQomIzQzO19fc3VjY2VzcwomIzQzO2ludCBicGZfZ2V0X2ttZW1fY2FjaGVfbnVsbF9jaGVjayh2b2lkICpjdHgpCiYjNDM7ewomIzQzOwlzdHJ1Y3Qga21lbV9jYWNoZSAqczsKJiM0MzsKJiM0MzsJcyA9IGJwZl9nZXRfa21lbV9jYWNoZSgwKTsKJiM0MzsJaWYgKCFzKQomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CiYjNDM7CXJldHVybiBzLSZndDtzaXplOwomIzQzO30KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTY6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQzNgoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDI3OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLZXJuZWwgQlBGIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGtlcm5lbC9icGYvaGVscGVycy5jYC4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBhZGRpbmcgYEtGX1JFVF9OVUxMYCB0byB0aGUgYGJwZl9nZXRfa21lbV9jYWNoZWAga2Z1bmMsIGNoYW5naW5nIHRoZSBkZWZpbml0aW9uIGZyb20gYC1CVEZfSURfRkxBR1MoZnVuYywgYnBmX2dldF9rbWVtX2NhY2hlKWAgdG8gYCYjNDM7QlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9nZXRfa21lbV9jYWNoZSwgS0ZfUkVUX05VTEwpYC4gUmlnaHQgYXdheSwgSSByZWNvZ25pemUgdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYXQgdGhlIEJQRiB2ZXJpZmllciBsZXZlbC4gVGhlIGFkZGl0aW9uIG9mIGBLRl9SRVRfTlVMTGAgbWVhbnMgdGhlIHZlcmlmaWVyIHdpbGwgKm5vdyogcmVxdWlyZSBhIE5VTEwgY2hlY2sgYWZ0ZXIgdGhlIGNhbGwgdG8gYGJwZl9nZXRfa21lbV9jYWNoZWAgYmVmb3JlIGRlcmVmZXJlbmNpbmcgdGhlIHJldHVybmVkIHBvaW50ZXIuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBvbiBgYnBmX2dldF9rbWVtX2NhY2hlYCBhbmQgd2hhdCBgS0ZfUkVUX05VTExgIGFjdHVhbGx5IHNpZ25pZmllcyBpbiBwcmFjdGljZS4gSSBuZWVkIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucy4gVGhlIHBhdGNoIGFsc28gaW5jbHVkZXMgbmV3IHRlc3RzIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jYCwgd2hpY2ggc2hvdWxkIHByb3ZpZGUgc29tZSBoZWxwZnVsIGV4YW1wbGVzLgoKSSYjMzk7bSB0aGlua2luZyBhYm91dCBmdXp6aW5nIHRoaXMgZnVuY3Rpb24gbmV4dC4gYGJwZl9nZXRfa21lbV9jYWNoZWAgKmlzKiBhIEJQRiBrZnVuYywgd2hpY2ggaXMgZ29vZCBmcm9tIGEgc2VjdXJpdHkgcGVyc3BlY3RpdmUuIFRoZSB2ZXJpZmllciBub3cgZW5mb3JjaW5nIE5VTEwgY2hlY2tzIGlzIGFsc28gZ29vZCBhcyBhIGRlZmVuc2UgaW4gZGVwdGggbWVhc3VyZS4gSSBuZWVkIHRvIHJlbWVtYmVyIHRvIGNoZWNrIHdoZXJlIHRoZSBmdW5jdGlvbiBpcyBkZWZpbmVkOiBga2VybmVsL2JwZi9oZWxwZXJzLmNgIHByb2JhYmx5LCBvciBwZXJoYXBzIHNvbWV0aGluZyBsaWtlIGBtbS9zbGFiX2NvbW1vbi5jYD8gQSBxdWljayBncmVwIHNob3VsZCBoZWxwIG1lIHBpbnBvaW50IHRoZSBzb3VyY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTY6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnBmX2dldF9rbWVtX2NhY2hlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvaGVscGVycy5jPTQ4MTk9QlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9jb3B5X2Zyb21fdXNlcl90YXNrX3N0ciwgS0ZfU0xFRVBBQkxFKVxua2VybmVsL2JwZi9oZWxwZXJzLmM6NDgyMDpCVEZfSURfRkxBR1MoZnVuYywgYnBmX2dldF9rbWVtX2NhY2hlLCBLRl9SRVRfTlVMTClcbmtlcm5lbC9icGYvaGVscGVycy5jLTQ4MjEtQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfbmV3LCBLRl9JVEVSX05FVyB8IEtGX1NMRUVQQUJMRSlcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTExMjg9ZW51bSBzcGVjaWFsX2tmdW5jX3R5cGUge1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTE3MC1cdEtGX2JwZl9zZXNzaW9uX2Nvb2tpZSxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMTE3MTpcdEtGX2JwZl9nZXRfa21lbV9jYWNoZSxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTE3Mi1cdEtGX2JwZl9sb2NhbF9pcnFfc2F2ZSxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTEyNTI9QlRGX0lEX1VOVVNFRFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExMjUzLSNlbmRpZlxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMjU0OkJURl9JRChmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTEyNTUtQlRGX0lEKGZ1bmMsIGJwZl9sb2NhbF9pcnFfc2F2ZSlcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTI5ODk9c3RhdGljIGludCBjaGVja19rZnVuY19jYWxsKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTMyNzktXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTMyODA6XHRcdFx0aWYgKG1ldGEuZnVuY19pZCA9PSBzcGVjaWFsX2tmdW5jX2xpc3RbS0ZfYnBmX2dldF9rbWVtX2NhY2hlXSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMzI4MS1cdFx0XHRcdHR5cGUgfD0gUFRSX1VOVFJVU1RFRDtcbi0tXG5tbS9zbGFiX2NvbW1vbi5jPTEyNDQ9X19icGZfa2Z1bmNfc3RhcnRfZGVmcygpO1xubW0vc2xhYl9jb21tb24uYy0xMjQ1LVxubW0vc2xhYl9jb21tb24uYzoxMjQ2Ol9fYnBmX2tmdW5jIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpXG5tbS9zbGFiX2NvbW1vbi5jLTEyNDcte1xuLS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmM9MTc0PXN0cnVjdCBtbV9zdHJ1Y3RfX19uZXcge1xuLS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtMTc3LVxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYzoxNzg6ZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpIF9fa3N5bSBfX3dlYWs7XG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTE3OS1cbi0tXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jPTI0MD1zdGF0aWMgaW5saW5lIGludCBjYW5fcmVjb3JkKHU2NCAqY3R4KVxuLS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtMjg2LVxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYzoyODc6XHRpZiAoaGFzX3NsYWIgXHUwMDI2XHUwMDI2IGJwZl9nZXRfa21lbV9jYWNoZSkge1xudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYy0yODgtXHRcdF9fdTggKm9rO1xuLS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtMjkxLVxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYzoyOTI6XHRcdGttZW1fY2FjaGVfYWRkciA9IChsb25nKWJwZl9nZXRfa21lbV9jYWNoZShhZGRyKTtcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtMjkzLVx0XHRvayA9IGJwZl9tYXBfbG9va3VwX2VsZW0oXHUwMDI2c2xhYl9maWx0ZXIsIFx1MDAyNmttZW1fY2FjaGVfYWRkcik7XG4tLVxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYz02Mzc9aW50IGNvbnRlbnRpb25fZW5kKHU2NCAqY3R4KVxuLS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtODAxLVx0XHRcdC8qIENoZWNrIGlmIGl0JiMzOTtzIGZyb20gYSBzbGFiIG9iamVjdCAqL1xudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYzo4MDI6XHRcdFx0aWYgKGJwZl9nZXRfa21lbV9jYWNoZSkge1xudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYy04MDMtXHRcdFx0XHRzdHJ1Y3Qga21lbV9jYWNoZSAqcztcbi0tXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTgwNS1cbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmM6ODA2Olx0XHRcdFx0cyA9IGJwZl9nZXRfa21lbV9jYWNoZShwZWxlbS1cdTAwM2Vsb2NrKTtcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtODA3LVx0XHRcdFx0aWYgKHMgIT0gTlVMTCkge1xuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYz0yND1zdHJ1Y3Qge1xuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYy0zMC1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYzozMTpleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcikgX19rc3ltO1xudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jLTMyLVxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYz03MT1pbnQgQlBGX1BST0coY2hlY2tfdGFza19zdHJ1Y3QpXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jLTc2LVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jOjc3Olx0cyA9IGJwZl9nZXRfa21lbV9jYWNoZShjdXJyKTtcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYy03OC1cdGlmIChzID09IE5VTEwpIHtcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jPTE2Nj1pbnQgQlBGX1BST0coY3B1bWFza19rZnVuY19wZXJmX2V2ZW50KVxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTc1LVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYzoxNzY6ZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpIF9fa3N5bTtcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTc3LVxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM9MTc5PV9fZmFpbHVyZSBfX21zZyhcJiMzNDtSMCBpbnZhbGlkIG1lbSBhY2Nlc3MgJiMzOTt1bnRydXN0ZWRfcHRyX29yX251bGxfJiMzOTtcJiMzNDspXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jOjE4MDppbnQgYnBmX2dldF9rbWVtX2NhY2hlX25vX251bGxfY2hlY2sodm9pZCAqY3R4KVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYy0xODEte1xuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTgzLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYzoxODQ6XHRzID0gYnBmX2dldF9rbWVtX2NhY2hlKDApO1xudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYy0xODUtXHRyZXR1cm4gcy1cdTAwM2VzaXplO1xuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM9MTg5PV9fc3VjY2Vzc1xudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYzoxOTA6aW50IGJwZl9nZXRfa21lbV9jYWNoZV9udWxsX2NoZWNrKHZvaWQgKmN0eClcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTkxLXtcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jLTE5My1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM6MTk0Olx0cyA9IGJwZl9nZXRfa21lbV9jYWNoZSgwKTtcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTk1LVx0aWYgKCFzKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDE2OjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzMTcKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQb3RlbnRpYWwgSW1wYWN0IG9mIGEgQlBGIFZlcmlmaWVyIENoYW5nZSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYEtGX1JFVF9OVUxMYCB0byBgYnBmX2dldF9rbWVtX2NhY2hlYCBpbiBga2VybmVsL2JwZi9oZWxwZXJzLmNgLiBNeSBpbml0aWFsIHJlYWN0aW9uIGlzIHRvIHRoaW5rLCAmIzM0O0lzIHRoaXMgZnV6ei13b3J0aHk/JiMzNDsgSXQmIzM5O3MgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhbHRlcmluZyBob3cgdGhlIEJQRiB2ZXJpZmllciBpbnRlcmFjdHMgd2l0aCB0aGUgcmV0dXJuIG9mIGBicGZfZ2V0X2ttZW1fY2FjaGVgLiAgSSBzZWUgaXQmIzM5O3MgYWJvdXQgZW5mb3JjaW5nIE5VTEwgY2hlY2tzIGZvciBhIGtmdW5jLgoKVGhlIGNoYW5nZSBpdHNlbGYgbG9va3MgZGVjZXB0aXZlbHkgc2ltcGxlLCBpdCYjMzk7cyByZWFsbHkganVzdCBhZGRpbmcgYSBmbGFnIHRvIGEgbWFjcm8uIEJ1dCwgaG9sZCBvbiwgYGJwZl9nZXRfa21lbV9jYWNoZWAgKmlzKiBhIGtmdW5jLCBzbyB0aGUgdmVyaWZpZXImIzM5O3Mgbm93IGVuZm9yY2luZyBOVUxMIGNoZWNrcyB3aGVyZSBpdCBkaWRuJiMzOTt0IGJlZm9yZS4gIFRoYXQmIzM5O3MgZW5vdWdoIHRvIHdhcnJhbnQgYSBkZWVwZXIgbG9vay4KClRoZSByZWFsIHF1ZXN0aW9uIGlzLCB3aGF0IHNob3VsZCBJIHRhcmdldCBmb3IgZnV6emluZz8gUHJvYmFibHkgYGJwZl9nZXRfa21lbV9jYWNoZWAgaXRzZWxmLCBhbmQvb3IgdGhlIHZlcmlmaWVyIGxvZ2ljIHRoYXQgaGFuZGxlcyBgS0ZfUkVUX05VTExgLiAgQnV0LCBoYW5nIG9uLCBgS0ZfUkVUX05VTExgIGlzIGEgZ2VuZXJhbCBmbGFnLCB3aGljaCB0aGUgdmVyaWZpZXIgZGVhbHMgd2l0aCwgaXQgaXMgYSBnZW5lcmljIGZsYWcgYW5kIHRoZSB2ZXJpZmllciB3aWxsIGhhbmRsZSB0aGlzLgoKVGhlIHBhdGNoIG1vZGlmaWVzIGBrZXJuZWwvYnBmL2hlbHBlcnMuY2AsIHNvIEkgc2hvdWxkIHByb2JhYmx5IHZlcmlmeSBhbnkgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjb25maXJtIHRoYXQgYENPTkZJR19CUEZfU1lTQ0FMTGAgaXMgbmVjZXNzYXJ5LCBhcyB1c3VhbCwgZm9yIEJQRiBmdW5jdGlvbmFsaXR5LiBBbmQsIHF1aWNrIG5vdGUsIGBicGZfZ2V0X2ttZW1fY2FjaGVgIGlzIGFjdHVhbGx5IGRlZmluZWQgaW4gYG1tL3NsYWJfY29tbW9uLmNgLiBJIHNob3VsZCBjaGVjayBpZiBpdCYjMzk7cyBjb25kaXRpb25hbGx5IGNvbXBpbGVkIG9yIGFueXRoaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDE2OjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JwZl9nZXRfa21lbV9jYWNoZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL3NsYWJfY29tbW9uLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vc2xhYl9jb21tb24uYz0xMjQ0PV9fYnBmX2tmdW5jX3N0YXJ0X2RlZnMoKTtcbm1tL3NsYWJfY29tbW9uLmMtMTI0NS1cbm1tL3NsYWJfY29tbW9uLmM6MTI0NjpfX2JwZl9rZnVuYyBzdHJ1Y3Qga21lbV9jYWNoZSAqYnBmX2dldF9rbWVtX2NhY2hlKHU2NCBhZGRyKVxubW0vc2xhYl9jb21tb24uYy0xMjQ3LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxNjoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTAxCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byBgYnBmX2dldF9rbWVtX2NhY2hlYCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBgYnBmX2dldF9rbWVtX2NhY2hlYCBiZXR0ZXIuIEdpdmVuIGl0cyBuYW1lLCBpdCYjMzk7cyBvYnZpb3VzbHkgcmVsYXRlZCB0byBCUEYgYW5kIGtlcm5lbCBtZW1vcnkgY2FjaGVzLiBTaW5jZSBJIGtub3cgdGhpcyBmdW5jdGlvbiBpcyBsb2NhdGVkIGluIGBtbS9zbGFiX2NvbW1vbi5jYCwgbXkgZmlyc3QgbW92ZSBpcyB0byBnbyB0aGVyZSBhbmQgY2hlY2sgdGhlIHN1cnJvdW5kaW5nIGNvZGUuIEkgbmVlZCB0byBzZWUgKmhvdyogaXQmIzM5O3MgYmVpbmcgdXNlZCwgd2hhdCBwYXJhbWV0ZXJzIGl0JiMzOTtzIHRha2luZywgYW5kIHdoYXQgb3RoZXIgZnVuY3Rpb25zIGluIHRoYXQgZmlsZSBtaWdodCBiZSBpbnRlcmFjdGluZyB3aXRoIGl0LiBJJiMzOTttIGhvcGluZyB0aGUgaW1tZWRpYXRlIGNvbnRleHQgd2lsbCByZXZlYWwgaXRzIHB1cnBvc2Ugd2l0aGluIHRoZSBicm9hZGVyIHNsYWIgYWxsb2NhdG9yIGZyYW1ld29yay4gVW5kZXJzdGFuZGluZyBpdHMgcGxhY2UgaW4gYG1tL3NsYWJfY29tbW9uLmNgIGlzIGdvaW5nIHRvIGJlIGtleSB0byByZWFsbHkgZ3Jhc3BpbmcgaXRzIEJQRi1zcGVjaWZpYyBpbnRlcmFjdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTY6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDttbS9zbGFiX2NvbW1vbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTIzMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxMjMwOlx0XHR2b2lkICptZW0gPSAodm9pZCAqKXA7XG4xMjMxOlx0XG4xMjMyOlx0XHRrcyA9IGtzaXplKG1lbSk7XG4xMjMzOlx0XHRpZiAoa3MpIHtcbjEyMzQ6XHRcdFx0a2FzYW5fdW5wb2lzb25fcmFuZ2UobWVtLCBrcyk7XG4xMjM1Olx0XHRcdG1lbXplcm9fZXhwbGljaXQobWVtLCBrcyk7XG4xMjM2Olx0XHR9XG4xMjM3Olx0XHRrZnJlZShtZW0pO1xuMTIzODpcdH1cbjEyMzk6XHRFWFBPUlRfU1lNQk9MKGtmcmVlX3NlbnNpdGl2ZSk7XG4xMjQwOlx0XG4xMjQxOlx0I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuMTI0MjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2J0Zi5oXHUwMDNlXG4xMjQzOlx0XG4xMjQ0Olx0X19icGZfa2Z1bmNfc3RhcnRfZGVmcygpO1xuMTI0NTpcdFxuMTI0NjpcdF9fYnBmX2tmdW5jIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpXG4xMjQ3Olx0e1xuMTI0ODpcdFx0c3RydWN0IHNsYWIgKnNsYWI7XG4xMjQ5Olx0XG4xMjUwOlx0XHRpZiAoIXZpcnRfYWRkcl92YWxpZCgodm9pZCAqKShsb25nKWFkZHIpKVxuMTI1MTpcdFx0XHRyZXR1cm4gTlVMTDtcbjEyNTI6XHRcbjEyNTM6XHRcdHNsYWIgPSB2aXJ0X3RvX3NsYWIoKHZvaWQgKikobG9uZylhZGRyKTtcbjEyNTQ6XHRcdHJldHVybiBzbGFiID8gc2xhYi1cdTAwM2VzbGFiX2NhY2hlIDogTlVMTDtcbjEyNTU6XHR9XG4xMjU2Olx0XG4xMjU3Olx0X19icGZfa2Z1bmNfZW5kX2RlZnMoKTtcbjEyNTg6XHQjZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG4xMjU5Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTY6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjc1NAoJCQkJCQkJb3V0cHV0OiA4MgoJCQkJCQkJdGhvdWdodHM6IDQ2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIERlY2lzaW9uIGZvciBCUEYgVmVyaWZpZXIgQ2hhbmdlKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHdlIGhhdmUgYSBjaGFuZ2UgcmVsYXRlZCB0byB0aGUgQlBGIHZlcmlmaWVyLCBzcGVjaWZpY2FsbHkgdW5kZXIgYENPTkZJR19CUEZfU1lTQ0FMTGAuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgaXMgYWRkaW5nIGBLRl9SRVRfTlVMTGAgdG8gYGJwZl9nZXRfa21lbV9jYWNoZWAgd2l0aGluIGBrZXJuZWwvYnBmL2hlbHBlcnMuY2AuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gZXhhbWluZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBhcyB0aGUgcHJpbWFyeSBmb2N1cywgYnV0IGxldCBtZSByZWZpbmUgdGhhdC4KClllcywgdGhpcyAqaXMqIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCB3aWxsIGFmZmVjdCB0aGUgdmVyaWZpZXImIzM5O3MgYmVoYXZpb3VyLCBhbmQgaXQgaXMgd29ydGggZnV6emluZy4gSSBkaWQgY29uc2lkZXIgd2hldGhlciB0byBmb2N1cyBvbiB0aGUgdmVyaWZpZXIgaXRzZWxmLCBidXQgdGhlIHJvb3Qgb2YgdGhlIGNoYW5nZSBsaWVzIGluIGhvdyB0aGUgdmVyaWZpZXIgKmludGVycHJldHMqIHRoZSBtZXRhZGF0YSBvZiBgYnBmX2dldF9rbWVtX2NhY2hlYCwgYW5kIHRoYXQgaXMgdGhlIGNyaXRpY2FsIHBvaW50LiBUaGUgY3J1Y2lhbCBtb2RpZmljYXRpb24gaXMgdGhhdCB0aGUgdmVyaWZpZXIgd2lsbCBub3cgKnJlcXVpcmUqIGEgTlVMTCBjaGVjayBvbiB0aGUgcmV0dXJuIHZhbHVlIG9mIGBicGZfZ2V0X2ttZW1fY2FjaGVgLiBJZiBzeXprYWxsZXIgaXMgZ29pbmcgdG8gdGFyZ2V0IEJQRiBhbmQgZ2VuZXJhdGUgcHJvZ3JhbXMgdGhhdCBjYWxsIHRoYXQgZnVuY3Rpb24sIHRoZW4geWVzLCBpdOKAmXMgYSBnb29kIHN5bWJvbCB0byBmb2N1cyBvbiBiZWNhdXNlIGl0JiMzOTtzIHRoZSB0YXJnZXQga2Z1bmMgdGhhdCYjMzk7cyBiZWluZyBtb2RpZmllZCwgb3IgcmF0aGVyLCAqaXRzKiBtZXRhZGF0YSBpcy4KClRoZSBjaGFuZ2UgaXRzZWxmIGlzIGFkZGluZyB0aGUgYEtGX1JFVF9OVUxMYCBmbGFnIHRvIGBCVEZfSURfRkxBR1NgIGZvciBgYnBmX2dldF9rbWVtX2NhY2hlYC4gSXQmIzM5O3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogYEJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKWAuIFNvLCB0aGUgaW1wYWN0IGlzIG9uIGhvdyB0aGUgdmVyaWZpZXIgKmhhbmRsZXMqIHRoZSByZXR1cm4gdmFsdWUuIFRoaXMgc2VlbXMgdG8gYmUgdGhlIG9ubHkgZnVuY3Rpb24gaW52b2x2ZWQuIGBDT05GSUdfQlBGX1NZU0NBTExgIGlzIHN0YW5kYXJkIGFuZCB0aGlzIGlzIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZyBoZXJlLgoKU28sIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmdgIHRvIGB0cnVlYC4gTXkgYEZvY3VzU3ltYm9sc2Agd2lsbCBiZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBiZWNhdXNlIHRoYXQmIzM5O3MgdGhlIGtmdW5jIHdob3NlIG1ldGFkYXRhIGhhcyBiZWVuIG1vZGlmaWVkLCB0aGUgYEVuYWJsZUNvbmZpZ3NgIHdpbGwgYmUgYEJQRl9TWVNDQUxMYCwgYW5kIG15IGBSZWFzb25pbmdgIHdpbGwgYmU6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgbWV0YWRhdGEgZm9yIHRoZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLiYjMzQ7IFRoYXQgc2hvdWxkIGNvdmVyIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxNjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfZ2V0X2ttZW1fY2FjaGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBtZXRhZGF0YSBmb3IgdGhlIGJwZl9nZXRfa21lbV9jYWNoZSBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9nZXRfa21lbV9jYWNoZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIG1ldGFkYXRhIGZvciB0aGUgYnBmX2dldF9rbWVtX2NhY2hlIGtmdW5jIHRvIGVuZm9yY2UgYSBOVUxMIGNoZWNrIG9uIGl0cyByZXR1cm4gdmFsdWUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxNjoxMToyMi40Mzk3MDU3NDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTMzNDE1MzU2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9nZXRfa21lbV9jYWNoZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgbWV0YWRhdGEgZm9yIHRoZSBicGZfZ2V0X2ttZW1fY2FjaGUga2Z1bmMgdG8gZW5mb3JjZSBhIE5VTEwgY2hlY2sgb24gaXRzIHJldHVybiB2YWx1ZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTY6MTE6MjIuNDM5NzEwNjg5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Nzk3OTAzNDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkMmYwNWY1ZjliNTMxYzllMGI4MTQ1OTJmZDRlZTM5NWFmMDAyMjcxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVuIDIwIDE2OjExOjIxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvaGVscGVycy5jIGIva2VybmVsL2JwZi9oZWxwZXJzLmNcXG5pbmRleCBiNTMxNGM5ZmVkM2NmMC4uNTdhNmFiNzJhZTNjYzIgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi9oZWxwZXJzLmNcXG4rKysgYi9rZXJuZWwvYnBmL2hlbHBlcnMuY1xcbkBAIC00ODE3LDcgKzQ4MTcsNyBAQCBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfYml0c19uZXh0LCBLRl9JVEVSX05FWFQgfCBLRl9SRVRfTlVMTClcXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2JpdHNfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZKVxcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2NvcHlfZnJvbV91c2VyX3N0ciwgS0ZfU0xFRVBBQkxFKVxcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2NvcHlfZnJvbV91c2VyX3Rhc2tfc3RyLCBLRl9TTEVFUEFCTEUpXFxuLUJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUpXFxuK0JURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKVxcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfa21lbV9jYWNoZV9uZXcsIEtGX0lURVJfTkVXIHwgS0ZfU0xFRVBBQkxFKVxcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfa21lbV9jYWNoZV9uZXh0LCBLRl9JVEVSX05FWFQgfCBLRl9SRVRfTlVMTCB8IEtGX1NMRUVQQUJMRSlcXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZIHwgS0ZfU0xFRVBBQkxFKVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuY1xcbmluZGV4IDFmY2U3YTdlOGQwMzBiLi5hMDYyZjNiN2JjNzU2MSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuY1xcbkBAIC0xNjgsMyArMTY4LDMyIEBAIGludCBCUEZfUFJPRyhjcHVtYXNrX2tmdW5jX3BlcmZfZXZlbnQpXFxuIFxcdGNwdW1hc2tfa2Z1bmNfbG9hZF90ZXN0KCk7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuK1xcbisvKioqKioqKioqKioqKioqKioqKioqXFxuKyAqIGttZW1fY2FjaGUga2Z1bmMgKlxcbisgKioqKioqKioqKioqKioqKioqKioqL1xcbitcXG4rZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpicGZfZ2V0X2ttZW1fY2FjaGUodTY0IGFkZHIpIF9fa3N5bTtcXG4rXFxuK1NFQyhcXFwicmF3X3RwXFxcIilcXG4rX19mYWlsdXJlIF9fbXNnKFxcXCJSMCBpbnZhbGlkIG1lbSBhY2Nlc3MgJ3VudHJ1c3RlZF9wdHJfb3JfbnVsbF8nXFxcIilcXG4raW50IGJwZl9nZXRfa21lbV9jYWNoZV9ub19udWxsX2NoZWNrKHZvaWQgKmN0eClcXG4re1xcbitcXHRzdHJ1Y3Qga21lbV9jYWNoZSAqcztcXG4rXFxuK1xcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUoMCk7XFxuK1xcdHJldHVybiBzLVxcdTAwM2VzaXplO1xcbit9XFxuK1xcbitTRUMoXFxcInJhd190cFxcXCIpXFxuK19fc3VjY2Vzc1xcbitpbnQgYnBmX2dldF9rbWVtX2NhY2hlX251bGxfY2hlY2sodm9pZCAqY3R4KVxcbit7XFxuK1xcdHN0cnVjdCBrbWVtX2NhY2hlICpzO1xcbitcXG4rXFx0cyA9IGJwZl9nZXRfa21lbV9jYWNoZSgwKTtcXG4rXFx0aWYgKCFzKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdHJldHVybiBzLVxcdTAwM2VzaXplO1xcbit9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDE2OjExOjIyLjkyMDQ4NjkwN1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQ4NTMzNjEzMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfZ2V0X2ttZW1fY2FjaGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIG1ldGFkYXRhIGZvciB0aGUgYnBmX2dldF9rbWVtX2NhY2hlIGtmdW5jIHRvIGVuZm9yY2UgYSBOVUxMIGNoZWNrIG9uIGl0cyByZXR1cm4gdmFsdWUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDJmMDVmNWY5YjUzMWM5ZTBiODE0NTkyZmQ0ZWUzOTVhZjAwMjI3MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVuIDIwIDE2OjExOjIxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9oZWxwZXJzLmMgYi9rZXJuZWwvYnBmL2hlbHBlcnMuY1xuaW5kZXggYjUzMTRjOWZlZDNjZjAuLjU3YTZhYjcyYWUzY2MyIDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi9oZWxwZXJzLmNcbisrKyBiL2tlcm5lbC9icGYvaGVscGVycy5jXG5AQCAtNDgxNyw3ICs0ODE3LDcgQEAgQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2JpdHNfbmV4dCwgS0ZfSVRFUl9ORVhUIHwgS0ZfUkVUX05VTEwpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2JpdHNfZGVzdHJveSwgS0ZfSVRFUl9ERVNUUk9ZKVxuIEJURl9JRF9GTEFHUyhmdW5jLCBicGZfY29weV9mcm9tX3VzZXJfc3RyLCBLRl9TTEVFUEFCTEUpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9jb3B5X2Zyb21fdXNlcl90YXNrX3N0ciwgS0ZfU0xFRVBBQkxFKVxuLUJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUpXG4rQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9nZXRfa21lbV9jYWNoZSwgS0ZfUkVUX05VTEwpXG4gQlRGX0lEX0ZMQUdTKGZ1bmMsIGJwZl9pdGVyX2ttZW1fY2FjaGVfbmV3LCBLRl9JVEVSX05FVyB8IEtGX1NMRUVQQUJMRSlcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfa21lbV9jYWNoZV9uZXh0LCBLRl9JVEVSX05FWFQgfCBLRl9SRVRfTlVMTCB8IEtGX1NMRUVQQUJMRSlcbiBCVEZfSURfRkxBR1MoZnVuYywgYnBmX2l0ZXJfa21lbV9jYWNoZV9kZXN0cm95LCBLRl9JVEVSX0RFU1RST1kgfCBLRl9TTEVFUEFCTEUpXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmNcbmluZGV4IDFmY2U3YTdlOGQwMzBiLi5hMDYyZjNiN2JjNzU2MSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmNcbkBAIC0xNjgsMyArMTY4LDMyIEBAIGludCBCUEZfUFJPRyhjcHVtYXNrX2tmdW5jX3BlcmZfZXZlbnQpXG4gXHRjcHVtYXNrX2tmdW5jX2xvYWRfdGVzdCgpO1xuIFx0cmV0dXJuIDA7XG4gfVxuK1xuKy8qKioqKioqKioqKioqKioqKioqKipcbisgKiBrbWVtX2NhY2hlIGtmdW5jICpcbisgKioqKioqKioqKioqKioqKioqKioqL1xuK1xuK2V4dGVybiBzdHJ1Y3Qga21lbV9jYWNoZSAqYnBmX2dldF9rbWVtX2NhY2hlKHU2NCBhZGRyKSBfX2tzeW07XG4rXG4rU0VDKFwicmF3X3RwXCIpXG4rX19mYWlsdXJlIF9fbXNnKFwiUjAgaW52YWxpZCBtZW0gYWNjZXNzICd1bnRydXN0ZWRfcHRyX29yX251bGxfJ1wiKVxuK2ludCBicGZfZ2V0X2ttZW1fY2FjaGVfbm9fbnVsbF9jaGVjayh2b2lkICpjdHgpXG4re1xuK1x0c3RydWN0IGttZW1fY2FjaGUgKnM7XG4rXG4rXHRzID0gYnBmX2dldF9rbWVtX2NhY2hlKDApO1xuK1x0cmV0dXJuIHMtXHUwMDNlc2l6ZTtcbit9XG4rXG4rU0VDKFwicmF3X3RwXCIpXG4rX19zdWNjZXNzXG4raW50IGJwZl9nZXRfa21lbV9jYWNoZV9udWxsX2NoZWNrKHZvaWQgKmN0eClcbit7XG4rXHRzdHJ1Y3Qga21lbV9jYWNoZSAqcztcbitcbitcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUoMCk7XG4rXHRpZiAoIXMpXG4rXHRcdHJldHVybiAwO1xuK1xuK1x0cmV0dXJuIHMtXHUwMDNlc2l6ZTtcbit9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxNjoxMToyMi45MjA0ODg2MTdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTI1NDU0NTMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtlcm5lbCBCUEYgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGtlcm5lbC9icGYvaGVscGVycy5jYC4gU3BlY2lmaWNhbGx5LCBpdCdzIGFkZGluZyBgS0ZfUkVUX05VTExgIHRvIHRoZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBrZnVuYywgY2hhbmdpbmcgdGhlIGRlZmluaXRpb24gZnJvbSBgLUJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUpYCB0byBgK0JURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKWAuIFJpZ2h0IGF3YXksIEkgcmVjb2duaXplIHRoYXQgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGF0IHRoZSBCUEYgdmVyaWZpZXIgbGV2ZWwuIFRoZSBhZGRpdGlvbiBvZiBgS0ZfUkVUX05VTExgIG1lYW5zIHRoZSB2ZXJpZmllciB3aWxsICpub3cqIHJlcXVpcmUgYSBOVUxMIGNoZWNrIGFmdGVyIHRoZSBjYWxsIHRvIGBicGZfZ2V0X2ttZW1fY2FjaGVgIGJlZm9yZSBkZXJlZmVyZW5jaW5nIHRoZSByZXR1cm5lZCBwb2ludGVyLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBvbiBgYnBmX2dldF9rbWVtX2NhY2hlYCBhbmQgd2hhdCBgS0ZfUkVUX05VTExgIGFjdHVhbGx5IHNpZ25pZmllcyBpbiBwcmFjdGljZS4gSSBuZWVkIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucy4gVGhlIHBhdGNoIGFsc28gaW5jbHVkZXMgbmV3IHRlc3RzIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jYCwgd2hpY2ggc2hvdWxkIHByb3ZpZGUgc29tZSBoZWxwZnVsIGV4YW1wbGVzLlxuXG5JJ20gdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0aGlzIGZ1bmN0aW9uIG5leHQuIGBicGZfZ2V0X2ttZW1fY2FjaGVgICppcyogYSBCUEYga2Z1bmMsIHdoaWNoIGlzIGdvb2QgZnJvbSBhIHNlY3VyaXR5IHBlcnNwZWN0aXZlLiBUaGUgdmVyaWZpZXIgbm93IGVuZm9yY2luZyBOVUxMIGNoZWNrcyBpcyBhbHNvIGdvb2QgYXMgYSBkZWZlbnNlIGluIGRlcHRoIG1lYXN1cmUuIEkgbmVlZCB0byByZW1lbWJlciB0byBjaGVjayB3aGVyZSB0aGUgZnVuY3Rpb24gaXMgZGVmaW5lZDogYGtlcm5lbC9icGYvaGVscGVycy5jYCBwcm9iYWJseSwgb3IgcGVyaGFwcyBzb21ldGhpbmcgbGlrZSBgbW0vc2xhYl9jb21tb24uY2A/IEEgcXVpY2sgZ3JlcCBzaG91bGQgaGVscCBtZSBwaW5wb2ludCB0aGUgc291cmNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDM2LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjc5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTY6MTE6MjguNDQ1OTQ1MjhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA4Nzc2OTg5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicGZfZ2V0X2ttZW1fY2FjaGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi9oZWxwZXJzLmM9NDgxOT1CVEZfSURfRkxBR1MoZnVuYywgYnBmX2NvcHlfZnJvbV91c2VyX3Rhc2tfc3RyLCBLRl9TTEVFUEFCTEUpXFxua2VybmVsL2JwZi9oZWxwZXJzLmM6NDgyMDpCVEZfSURfRkxBR1MoZnVuYywgYnBmX2dldF9rbWVtX2NhY2hlLCBLRl9SRVRfTlVMTClcXG5rZXJuZWwvYnBmL2hlbHBlcnMuYy00ODIxLUJURl9JRF9GTEFHUyhmdW5jLCBicGZfaXRlcl9rbWVtX2NhY2hlX25ldywgS0ZfSVRFUl9ORVcgfCBLRl9TTEVFUEFCTEUpXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTExMjg9ZW51bSBzcGVjaWFsX2tmdW5jX3R5cGUge1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExMTcwLVxcdEtGX2JwZl9zZXNzaW9uX2Nvb2tpZSxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTExNzE6XFx0S0ZfYnBmX2dldF9rbWVtX2NhY2hlLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTE3Mi1cXHRLRl9icGZfbG9jYWxfaXJxX3NhdmUsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTEyNTI9QlRGX0lEX1VOVVNFRFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTI1My0jZW5kaWZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTEyNTQ6QlRGX0lEKGZ1bmMsIGJwZl9nZXRfa21lbV9jYWNoZSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTEyNTUtQlRGX0lEKGZ1bmMsIGJwZl9sb2NhbF9pcnFfc2F2ZSlcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMjk4OT1zdGF0aWMgaW50IGNoZWNrX2tmdW5jX2NhbGwoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEzMjc5LVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMzI4MDpcXHRcXHRcXHRpZiAobWV0YS5mdW5jX2lkID09IHNwZWNpYWxfa2Z1bmNfbGlzdFtLRl9icGZfZ2V0X2ttZW1fY2FjaGVdKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMzI4MS1cXHRcXHRcXHRcXHR0eXBlIHw9IFBUUl9VTlRSVVNURUQ7XFxuLS1cXG5tbS9zbGFiX2NvbW1vbi5jPTEyNDQ9X19icGZfa2Z1bmNfc3RhcnRfZGVmcygpO1xcbm1tL3NsYWJfY29tbW9uLmMtMTI0NS1cXG5tbS9zbGFiX2NvbW1vbi5jOjEyNDY6X19icGZfa2Z1bmMgc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcilcXG5tbS9zbGFiX2NvbW1vbi5jLTEyNDcte1xcbi0tXFxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYz0xNzQ9c3RydWN0IG1tX3N0cnVjdF9fX25ldyB7XFxuLS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTE3Ny1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jOjE3ODpleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcikgX19rc3ltIF9fd2VhaztcXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTE3OS1cXG4tLVxcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmM9MjQwPXN0YXRpYyBpbmxpbmUgaW50IGNhbl9yZWNvcmQodTY0ICpjdHgpXFxuLS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTI4Ni1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jOjI4NzpcXHRpZiAoaGFzX3NsYWIgXFx1MDAyNlxcdTAwMjYgYnBmX2dldF9rbWVtX2NhY2hlKSB7XFxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYy0yODgtXFx0XFx0X191OCAqb2s7XFxuLS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTI5MS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jOjI5MjpcXHRcXHRrbWVtX2NhY2hlX2FkZHIgPSAobG9uZylicGZfZ2V0X2ttZW1fY2FjaGUoYWRkcik7XFxudG9vbHMvcGVyZi91dGlsL2JwZl9za2VsL2xvY2tfY29udGVudGlvbi5icGYuYy0yOTMtXFx0XFx0b2sgPSBicGZfbWFwX2xvb2t1cF9lbGVtKFxcdTAwMjZzbGFiX2ZpbHRlciwgXFx1MDAyNmttZW1fY2FjaGVfYWRkcik7XFxuLS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jPTYzNz1pbnQgY29udGVudGlvbl9lbmQodTY0ICpjdHgpXFxuLS1cXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTgwMS1cXHRcXHRcXHQvKiBDaGVjayBpZiBpdCdzIGZyb20gYSBzbGFiIG9iamVjdCAqL1xcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmM6ODAyOlxcdFxcdFxcdGlmIChicGZfZ2V0X2ttZW1fY2FjaGUpIHtcXG50b29scy9wZXJmL3V0aWwvYnBmX3NrZWwvbG9ja19jb250ZW50aW9uLmJwZi5jLTgwMy1cXHRcXHRcXHRcXHRzdHJ1Y3Qga21lbV9jYWNoZSAqcztcXG4tLVxcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtODA1LVxcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmM6ODA2OlxcdFxcdFxcdFxcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUocGVsZW0tXFx1MDAzZWxvY2spO1xcbnRvb2xzL3BlcmYvdXRpbC9icGZfc2tlbC9sb2NrX2NvbnRlbnRpb24uYnBmLmMtODA3LVxcdFxcdFxcdFxcdGlmIChzICE9IE5VTEwpIHtcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYz0yND1zdHJ1Y3Qge1xcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jLTMwLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYzozMTpleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcikgX19rc3ltO1xcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYy0zMi1cXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9rbWVtX2NhY2hlX2l0ZXIuYz03MT1pbnQgQlBGX1BST0coY2hlY2tfdGFza19zdHJ1Y3QpXFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mva21lbV9jYWNoZV9pdGVyLmMtNzYtXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jOjc3OlxcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUoY3Vycik7XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2ttZW1fY2FjaGVfaXRlci5jLTc4LVxcdGlmIChzID09IE5VTEwpIHtcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM9MTY2PWludCBCUEZfUFJPRyhjcHVtYXNrX2tmdW5jX3BlcmZfZXZlbnQpXFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jLTE3NS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jOjE3NjpleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmJwZl9nZXRfa21lbV9jYWNoZSh1NjQgYWRkcikgX19rc3ltO1xcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTc3LVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYz0xNzk9X19mYWlsdXJlIF9fbXNnKFxcXCJSMCBpbnZhbGlkIG1lbSBhY2Nlc3MgJ3VudHJ1c3RlZF9wdHJfb3JfbnVsbF8nXFxcIilcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jOjE4MDppbnQgYnBmX2dldF9rbWVtX2NhY2hlX25vX251bGxfY2hlY2sodm9pZCAqY3R4KVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTgxLXtcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTgzLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM6MTg0OlxcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUoMCk7XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYy0xODUtXFx0cmV0dXJuIHMtXFx1MDAzZXNpemU7XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jPTE4OT1fX3N1Y2Nlc3NcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfa2Z1bmNfcHJvZ190eXBlcy5jOjE5MDppbnQgYnBmX2dldF9rbWVtX2NhY2hlX251bGxfY2hlY2sodm9pZCAqY3R4KVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTkxLXtcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmMtMTkzLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9rZnVuY19wcm9nX3R5cGVzLmM6MTk0OlxcdHMgPSBicGZfZ2V0X2ttZW1fY2FjaGUoMCk7XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2tmdW5jX3Byb2dfdHlwZXMuYy0xOTUtXFx0aWYgKCFzKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxNjoxMTozMC41MzM3MjEwMVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzNDc1NzQ1ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQb3RlbnRpYWwgSW1wYWN0IG9mIGEgQlBGIFZlcmlmaWVyIENoYW5nZSoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBgS0ZfUkVUX05VTExgIHRvIGBicGZfZ2V0X2ttZW1fY2FjaGVgIGluIGBrZXJuZWwvYnBmL2hlbHBlcnMuY2AuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdG8gdGhpbmssIFwiSXMgdGhpcyBmdXp6LXdvcnRoeT9cIiBJdCdzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYWx0ZXJpbmcgaG93IHRoZSBCUEYgdmVyaWZpZXIgaW50ZXJhY3RzIHdpdGggdGhlIHJldHVybiBvZiBgYnBmX2dldF9rbWVtX2NhY2hlYC4gIEkgc2VlIGl0J3MgYWJvdXQgZW5mb3JjaW5nIE5VTEwgY2hlY2tzIGZvciBhIGtmdW5jLlxuXG5UaGUgY2hhbmdlIGl0c2VsZiBsb29rcyBkZWNlcHRpdmVseSBzaW1wbGUsIGl0J3MgcmVhbGx5IGp1c3QgYWRkaW5nIGEgZmxhZyB0byBhIG1hY3JvLiBCdXQsIGhvbGQgb24sIGBicGZfZ2V0X2ttZW1fY2FjaGVgICppcyogYSBrZnVuYywgc28gdGhlIHZlcmlmaWVyJ3Mgbm93IGVuZm9yY2luZyBOVUxMIGNoZWNrcyB3aGVyZSBpdCBkaWRuJ3QgYmVmb3JlLiAgVGhhdCdzIGVub3VnaCB0byB3YXJyYW50IGEgZGVlcGVyIGxvb2suXG5cblRoZSByZWFsIHF1ZXN0aW9uIGlzLCB3aGF0IHNob3VsZCBJIHRhcmdldCBmb3IgZnV6emluZz8gUHJvYmFibHkgYGJwZl9nZXRfa21lbV9jYWNoZWAgaXRzZWxmLCBhbmQvb3IgdGhlIHZlcmlmaWVyIGxvZ2ljIHRoYXQgaGFuZGxlcyBgS0ZfUkVUX05VTExgLiAgQnV0LCBoYW5nIG9uLCBgS0ZfUkVUX05VTExgIGlzIGEgZ2VuZXJhbCBmbGFnLCB3aGljaCB0aGUgdmVyaWZpZXIgZGVhbHMgd2l0aCwgaXQgaXMgYSBnZW5lcmljIGZsYWcgYW5kIHRoZSB2ZXJpZmllciB3aWxsIGhhbmRsZSB0aGlzLlxuXG5UaGUgcGF0Y2ggbW9kaWZpZXMgYGtlcm5lbC9icGYvaGVscGVycy5jYCwgc28gSSBzaG91bGQgcHJvYmFibHkgdmVyaWZ5IGFueSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY29uZmlybSB0aGF0IGBDT05GSUdfQlBGX1NZU0NBTExgIGlzIG5lY2Vzc2FyeSwgYXMgdXN1YWwsIGZvciBCUEYgZnVuY3Rpb25hbGl0eS4gQW5kLCBxdWljayBub3RlLCBgYnBmX2dldF9rbWVtX2NhY2hlYCBpcyBhY3R1YWxseSBkZWZpbmVkIGluIGBtbS9zbGFiX2NvbW1vbi5jYC4gSSBzaG91bGQgY2hlY2sgaWYgaXQncyBjb25kaXRpb25hbGx5IGNvbXBpbGVkIG9yIGFueXRoaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzE3LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjg0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDE2OjExOjM1Ljg4MTI5NzUxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxNTk3Mzc4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJwZl9nZXRfa21lbV9jYWNoZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9zbGFiX2NvbW1vbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL3NsYWJfY29tbW9uLmM9MTI0ND1fX2JwZl9rZnVuY19zdGFydF9kZWZzKCk7XFxubW0vc2xhYl9jb21tb24uYy0xMjQ1LVxcbm1tL3NsYWJfY29tbW9uLmM6MTI0NjpfX2JwZl9rZnVuYyBzdHJ1Y3Qga21lbV9jYWNoZSAqYnBmX2dldF9rbWVtX2NhY2hlKHU2NCBhZGRyKVxcbm1tL3NsYWJfY29tbW9uLmMtMTI0Ny17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDE2OjExOjM1Ljk0MjkwNTAyOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MTY4MTc2MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIGludG8gYGJwZl9nZXRfa21lbV9jYWNoZWAqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBgYnBmX2dldF9rbWVtX2NhY2hlYCBiZXR0ZXIuIEdpdmVuIGl0cyBuYW1lLCBpdCdzIG9idmlvdXNseSByZWxhdGVkIHRvIEJQRiBhbmQga2VybmVsIG1lbW9yeSBjYWNoZXMuIFNpbmNlIEkga25vdyB0aGlzIGZ1bmN0aW9uIGlzIGxvY2F0ZWQgaW4gYG1tL3NsYWJfY29tbW9uLmNgLCBteSBmaXJzdCBtb3ZlIGlzIHRvIGdvIHRoZXJlIGFuZCBjaGVjayB0aGUgc3Vycm91bmRpbmcgY29kZS4gSSBuZWVkIHRvIHNlZSAqaG93KiBpdCdzIGJlaW5nIHVzZWQsIHdoYXQgcGFyYW1ldGVycyBpdCdzIHRha2luZywgYW5kIHdoYXQgb3RoZXIgZnVuY3Rpb25zIGluIHRoYXQgZmlsZSBtaWdodCBiZSBpbnRlcmFjdGluZyB3aXRoIGl0LiBJJ20gaG9waW5nIHRoZSBpbW1lZGlhdGUgY29udGV4dCB3aWxsIHJldmVhbCBpdHMgcHVycG9zZSB3aXRoaW4gdGhlIGJyb2FkZXIgc2xhYiBhbGxvY2F0b3IgZnJhbWV3b3JrLiBVbmRlcnN0YW5kaW5nIGl0cyBwbGFjZSBpbiBgbW0vc2xhYl9jb21tb24uY2AgaXMgZ29pbmcgdG8gYmUga2V5IHRvIHJlYWxseSBncmFzcGluZyBpdHMgQlBGLXNwZWNpZmljIGludGVyYWN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjEwMSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDE2OjExOjM4Ljg1OTcyNTYxNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4Njk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJtbS9zbGFiX2NvbW1vbi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEyMzAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjEyMzA6XFx0XFx0dm9pZCAqbWVtID0gKHZvaWQgKilwO1xcbjEyMzE6XFx0XFxuMTIzMjpcXHRcXHRrcyA9IGtzaXplKG1lbSk7XFxuMTIzMzpcXHRcXHRpZiAoa3MpIHtcXG4xMjM0OlxcdFxcdFxcdGthc2FuX3VucG9pc29uX3JhbmdlKG1lbSwga3MpO1xcbjEyMzU6XFx0XFx0XFx0bWVtemVyb19leHBsaWNpdChtZW0sIGtzKTtcXG4xMjM2OlxcdFxcdH1cXG4xMjM3OlxcdFxcdGtmcmVlKG1lbSk7XFxuMTIzODpcXHR9XFxuMTIzOTpcXHRFWFBPUlRfU1lNQk9MKGtmcmVlX3NlbnNpdGl2ZSk7XFxuMTI0MDpcXHRcXG4xMjQxOlxcdCNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG4xMjQyOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9idGYuaFxcdTAwM2VcXG4xMjQzOlxcdFxcbjEyNDQ6XFx0X19icGZfa2Z1bmNfc3RhcnRfZGVmcygpO1xcbjEyNDU6XFx0XFxuMTI0NjpcXHRfX2JwZl9rZnVuYyBzdHJ1Y3Qga21lbV9jYWNoZSAqYnBmX2dldF9rbWVtX2NhY2hlKHU2NCBhZGRyKVxcbjEyNDc6XFx0e1xcbjEyNDg6XFx0XFx0c3RydWN0IHNsYWIgKnNsYWI7XFxuMTI0OTpcXHRcXG4xMjUwOlxcdFxcdGlmICghdmlydF9hZGRyX3ZhbGlkKCh2b2lkICopKGxvbmcpYWRkcikpXFxuMTI1MTpcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4xMjUyOlxcdFxcbjEyNTM6XFx0XFx0c2xhYiA9IHZpcnRfdG9fc2xhYigodm9pZCAqKShsb25nKWFkZHIpO1xcbjEyNTQ6XFx0XFx0cmV0dXJuIHNsYWIgPyBzbGFiLVxcdTAwM2VzbGFiX2NhY2hlIDogTlVMTDtcXG4xMjU1OlxcdH1cXG4xMjU2OlxcdFxcbjEyNTc6XFx0X19icGZfa2Z1bmNfZW5kX2RlZnMoKTtcXG4xMjU4OlxcdCNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cXG4xMjU5OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxNjoxMTozOC44NTk5MTQwMDZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4ODIzMDkxNzAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRGVjaXNpb24gZm9yIEJQRiBWZXJpZmllciBDaGFuZ2UqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHdlIGhhdmUgYSBjaGFuZ2UgcmVsYXRlZCB0byB0aGUgQlBGIHZlcmlmaWVyLCBzcGVjaWZpY2FsbHkgdW5kZXIgYENPTkZJR19CUEZfU1lTQ0FMTGAuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgaXMgYWRkaW5nIGBLRl9SRVRfTlVMTGAgdG8gYGJwZl9nZXRfa21lbV9jYWNoZWAgd2l0aGluIGBrZXJuZWwvYnBmL2hlbHBlcnMuY2AuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gZXhhbWluZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBhcyB0aGUgcHJpbWFyeSBmb2N1cywgYnV0IGxldCBtZSByZWZpbmUgdGhhdC5cblxuWWVzLCB0aGlzICppcyogYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHdpbGwgYWZmZWN0IHRoZSB2ZXJpZmllcidzIGJlaGF2aW91ciwgYW5kIGl0IGlzIHdvcnRoIGZ1enppbmcuIEkgZGlkIGNvbnNpZGVyIHdoZXRoZXIgdG8gZm9jdXMgb24gdGhlIHZlcmlmaWVyIGl0c2VsZiwgYnV0IHRoZSByb290IG9mIHRoZSBjaGFuZ2UgbGllcyBpbiBob3cgdGhlIHZlcmlmaWVyICppbnRlcnByZXRzKiB0aGUgbWV0YWRhdGEgb2YgYGJwZl9nZXRfa21lbV9jYWNoZWAsIGFuZCB0aGF0IGlzIHRoZSBjcml0aWNhbCBwb2ludC4gVGhlIGNydWNpYWwgbW9kaWZpY2F0aW9uIGlzIHRoYXQgdGhlIHZlcmlmaWVyIHdpbGwgbm93ICpyZXF1aXJlKiBhIE5VTEwgY2hlY2sgb24gdGhlIHJldHVybiB2YWx1ZSBvZiBgYnBmX2dldF9rbWVtX2NhY2hlYC4gSWYgc3l6a2FsbGVyIGlzIGdvaW5nIHRvIHRhcmdldCBCUEYgYW5kIGdlbmVyYXRlIHByb2dyYW1zIHRoYXQgY2FsbCB0aGF0IGZ1bmN0aW9uLCB0aGVuIHllcywgaXTigJlzIGEgZ29vZCBzeW1ib2wgdG8gZm9jdXMgb24gYmVjYXVzZSBpdCdzIHRoZSB0YXJnZXQga2Z1bmMgdGhhdCdzIGJlaW5nIG1vZGlmaWVkLCBvciByYXRoZXIsICppdHMqIG1ldGFkYXRhIGlzLlxuXG5UaGUgY2hhbmdlIGl0c2VsZiBpcyBhZGRpbmcgdGhlIGBLRl9SRVRfTlVMTGAgZmxhZyB0byBgQlRGX0lEX0ZMQUdTYCBmb3IgYGJwZl9nZXRfa21lbV9jYWNoZWAuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogYEJURl9JRF9GTEFHUyhmdW5jLCBicGZfZ2V0X2ttZW1fY2FjaGUsIEtGX1JFVF9OVUxMKWAuIFNvLCB0aGUgaW1wYWN0IGlzIG9uIGhvdyB0aGUgdmVyaWZpZXIgKmhhbmRsZXMqIHRoZSByZXR1cm4gdmFsdWUuIFRoaXMgc2VlbXMgdG8gYmUgdGhlIG9ubHkgZnVuY3Rpb24gaW52b2x2ZWQuIGBDT05GSUdfQlBGX1NZU0NBTExgIGlzIHN0YW5kYXJkIGFuZCB0aGlzIGlzIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZyBoZXJlLlxuXG5TbywgSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAuIE15IGBGb2N1c1N5bWJvbHNgIHdpbGwgYmUgYGJwZl9nZXRfa21lbV9jYWNoZWAgYmVjYXVzZSB0aGF0J3MgdGhlIGtmdW5jIHdob3NlIG1ldGFkYXRhIGhhcyBiZWVuIG1vZGlmaWVkLCB0aGUgYEVuYWJsZUNvbmZpZ3NgIHdpbGwgYmUgYEJQRl9TWVNDQUxMYCwgYW5kIG15IGBSZWFzb25pbmdgIHdpbGwgYmU6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgbWV0YWRhdGEgZm9yIHRoZSBgYnBmX2dldF9rbWVtX2NhY2hlYCBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLlwiIFRoYXQgc2hvdWxkIGNvdmVyIGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzU0LCJPdXRwdXRUb2tlbnMiOjgyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDY5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTY6MTE6NDcuNjgzMDA4MzY2WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTA4MzM4MzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2dldF9rbWVtX2NhY2hlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBtZXRhZGF0YSBmb3IgdGhlIGJwZl9nZXRfa21lbV9jYWNoZSBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2dldF9rbWVtX2NhY2hlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBtZXRhZGF0YSBmb3IgdGhlIGJwZl9nZXRfa21lbV9jYWNoZSBrZnVuYyB0byBlbmZvcmNlIGEgTlVMTCBjaGVjayBvbiBpdHMgcmV0dXJuIHZhbHVlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow2zg7m[1] Phase: Succeeded StartedAt: 2026-06-20 16:12:13 +0000 UTC FinishedAt: 2026-06-20 16:12:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-20 16:12:13 +0000 UTC FinishedAt: 2026-06-20 16:12:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2] Phase: Succeeded StartedAt: 2026-06-20 16:12:13 +0000 UTC FinishedAt: 2026-06-20 17:18:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-20 16:12:13 +0000 UTC FinishedAt: 2026-06-20 17:18:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-20 16:12:13 +0000 UTC FinishedAt: 2026-06-20 16:13:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-20 16:12:13 +0000 UTC FinishedAt: 2026-06-20 16:12:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow2zg7m/series-workflow2zg7m-convert-artifact-2325136252/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-20 16:13:44 +0000 UTC FinishedAt: 2026-06-20 16:41:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-20 16:13:44 +0000 UTC FinishedAt: 2026-06-20 16:41:29 +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:*b8d8f42b-78cc-4075-9273-b79bb1abe892,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-workflow2zg7m/series-workflow2zg7m-convert-artifact-2325136252/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": "c8d14e99-b43c-4d27-ad91-b7d79968e096", "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-workflow2zg7m/series-workflow2zg7m-build-action-222477994/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-20 16:13:44 +0000 UTC FinishedAt: 2026-06-20 16:41:02 +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:*b8d8f42b-78cc-4075-9273-b79bb1abe892,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-workflow2zg7m/series-workflow2zg7m-convert-artifact-2325136252/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": "c8d14e99-b43c-4d27-ad91-b7d79968e096", "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-workflow2zg7m/series-workflow2zg7m-build-action-222477994/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-20 16:41:29 +0000 UTC FinishedAt: 2026-06-20 16:41:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-20 16:41:29 +0000 UTC FinishedAt: 2026-06-20 16:41:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-20 16:41:29 +0000 UTC FinishedAt: 2026-06-20 16:41:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-20 16:41:29 +0000 UTC FinishedAt: 2026-06-20 16:41:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow2zg7m/series-workflow2zg7m-convert-artifact-2072951739/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-20 16:41:39 +0000 UTC FinishedAt: 2026-06-20 16:43:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-20 16:41:39 +0000 UTC FinishedAt: 2026-06-20 16:43:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*c8d14e99-b43c-4d27-ad91-b7d79968e096,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-workflow2zg7m/series-workflow2zg7m-build-action-222477994/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-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-20 16:43:18 +0000 UTC FinishedAt: 2026-06-20 16:43:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-20 16:43:18 +0000 UTC FinishedAt: 2026-06-20 16:43:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-20 16:43:18 +0000 UTC FinishedAt: 2026-06-20 17:11:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-20 16:43:18 +0000 UTC FinishedAt: 2026-06-20 17:11:13 +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:*b8d8f42b-78cc-4075-9273-b79bb1abe892,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-workflow2zg7m/series-workflow2zg7m-convert-artifact-2072951739/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": "ca0641e8-8035-49d6-8f6f-abb3bda62aa5", "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-workflow2zg7m/series-workflow2zg7m-build-action-1386690271/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-20 16:43:18 +0000 UTC FinishedAt: 2026-06-20 17:10:47 +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:*b8d8f42b-78cc-4075-9273-b79bb1abe892,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-workflow2zg7m/series-workflow2zg7m-convert-artifact-2072951739/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": "ca0641e8-8035-49d6-8f6f-abb3bda62aa5", "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-workflow2zg7m/series-workflow2zg7m-build-action-1386690271/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-20 17:11:13 +0000 UTC FinishedAt: 2026-06-20 17:11:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-20 17:11:13 +0000 UTC FinishedAt: 2026-06-20 17:11:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-20 17:11:13 +0000 UTC FinishedAt: 2026-06-20 17:13:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-20 17:11:13 +0000 UTC FinishedAt: 2026-06-20 17:12:50 +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:*ca0641e8-8035-49d6-8f6f-abb3bda62aa5,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-workflow2zg7m/series-workflow2zg7m-build-action-1386690271/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-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-20 17:13:00 +0000 UTC FinishedAt: 2026-06-20 17:18:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-20 17:13:00 +0000 UTC FinishedAt: 2026-06-20 17:18:44 +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-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"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:*c8d14e99-b43c-4d27-ad91-b7d79968e096,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ca0641e8-8035-49d6-8f6f-abb3bda62aa5,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-workflow2zg7m/series-workflow2zg7m-build-action-222477994/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-workflow2zg7m/series-workflow2zg7m-build-action-1386690271/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-20 17:13:00 +0000 UTC FinishedAt: 2026-06-20 17:15:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-20 17:13:00 +0000 UTC FinishedAt: 2026-06-20 17:14:53 +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-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"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-workflow2zg7m/series-workflow2zg7m-convert-artifact-2433787572/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-20 17:13:00 +0000 UTC FinishedAt: 2026-06-20 17:13:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-20 17:13:00 +0000 UTC FinishedAt: 2026-06-20 17:13:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-20 17:13:00 +0000 UTC FinishedAt: 2026-06-20 17:13:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-20 17:15:52 +0000 UTC FinishedAt: 2026-06-20 17:18:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2zg7m[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_get_kmem_cache"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"b38f9101-7b88-415e-b5b1-5ca60f511a2f","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-20 17:15:52 +0000 UTC FinishedAt: 2026-06-20 17:18:24 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*c8d14e99-b43c-4d27-ad91-b7d79968e096,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ca0641e8-8035-49d6-8f6f-abb3bda62aa5,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-workflow2zg7m/series-workflow2zg7m-build-action-222477994/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-workflow2zg7m/series-workflow2zg7m-build-action-1386690271/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-workflow2zg7m/series-workflow2zg7m-convert-artifact-2433787572/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,}