Name: series-workflow28ndz Phase: Succeeded StartedAt: 2026-06-28 14:12:00 +0000 UTC FinishedAt: 2026-06-28 18:13:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[0] Phase: Succeeded StartedAt: 2026-06-28 14:12:00 +0000 UTC FinishedAt: 2026-06-28 14:20:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[0].run-triage Phase: Succeeded StartedAt: 2026-06-28 14:12:00 +0000 UTC FinishedAt: 2026-06-28 14:20:12 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "7bfb93e3475be9de894f1cecd3a727d3e1649b03", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "7bfb93e3475be9de894f1cecd3a727d3e1649b03", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "720412a4-8721-412d-806a-b990f19bdc1b" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "check_indirect_jump" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI4IDE0OjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfaW5kaXJlY3RfanVtcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQganVtcGluZyBvdXRzaWRlIHRoZSBjdXJyZW50IHN1YnByb2dyYW0uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEJQRiB2ZXJpZmljYXRpb24gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5Y2M1NTIyODA0ZjcxMDA5MDk2MWIzNzAzZTliYzNmNzY3ZGU1YThkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdW4gMjggMTQ6MTg6MzQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCBlYjQ2YTgxYThjNTFhYy4uMDVhOTk2YTVlY2RkMjUgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTE3MTQ1LDkgJiM0MzsxNzE0NSwxMSBAQCBzdGF0aWMgaW50IGluZGlyZWN0X2p1bXBfbWluX21heF9pbmRleChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIHN0YXRpYyBpbnQgY2hlY2tfaW5kaXJlY3RfanVtcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24pXG4ge1xuIFx0c3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqb3RoZXJfYnJhbmNoO1xuJiM0MztcdHN0cnVjdCBicGZfc3VicHJvZ19pbmZvICpzdWJwcm9nO1xuIFx0c3RydWN0IGJwZl9yZWdfc3RhdGUgKmRzdF9yZWc7XG4gXHRzdHJ1Y3QgYnBmX21hcCAqbWFwO1xuIFx0dTMyIG1pbl9pbmRleCwgbWF4X2luZGV4O1xuJiM0MztcdGludCBzdWJwcm9nX3N0YXJ0LCBzdWJwcm9nX2VuZDtcbiBcdGludCBlcnIgPSAwO1xuIFx0aW50IG47XG4gXHRpbnQgaTtcbkBAIC0xNzE4OCw2ICYjNDM7MTcxOTAsMjMgQEAgc3RhdGljIGludCBjaGVja19pbmRpcmVjdF9qdW1wKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5cbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHR9XG4gXG4mIzQzO1x0c3VicHJvZyA9IGJwZl9maW5kX2NvbnRhaW5pbmdfc3VicHJvZyhlbnYsIGVudi1cdTAwM2VpbnNuX2lkeCk7XG4mIzQzO1x0aWYgKHZlcmlmaWVyX2J1Z19pZighc3VicHJvZywgZW52LFxuJiM0MztcdFx0XHQgICAgXCYjMzQ7Z290b3ggaW5zbiAlZCBpcyBvdXRzaWRlIHN1YnByb2cgYm91bmRzXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHQgICAgZW52LVx1MDAzZWluc25faWR4KSlcbiYjNDM7XHRcdHJldHVybiAtRUZBVUxUO1xuJiM0MztcdHN1YnByb2dfc3RhcnQgPSBzdWJwcm9nLVx1MDAzZXN0YXJ0O1xuJiM0MztcdHN1YnByb2dfZW5kID0gKHN1YnByb2cgJiM0MzsgMSktXHUwMDNlc3RhcnQ7XG4mIzQzO1xuJiM0MztcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG47IGkmIzQzOyYjNDM7KSB7XG4mIzQzO1x0XHR1MzIgdGFyZ2V0ID0gZW52LVx1MDAzZWdvdG94X3RtcF9idWYtXHUwMDNlaXRlbXNbaV07XG4mIzQzO1xuJiM0MztcdFx0aWYgKHRhcmdldCBcdTAwM2Mgc3VicHJvZ19zdGFydCB8fCB0YXJnZXQgXHUwMDNlPSBzdWJwcm9nX2VuZCkge1xuJiM0MztcdFx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7Z290b3ggdGFyZ2V0ICV1IG91dHNpZGUgc3VicHJvZ1xcblwmIzM0OywgdGFyZ2V0KTtcbiYjNDM7XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuJiM0MztcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG4gLSAxOyBpJiM0MzsmIzQzOykge1xuIFx0XHRtYXJrX2luZGlyZWN0X3RhcmdldChlbnYsIGVudi1cdTAwM2Vnb3RveF90bXBfYnVmLVx1MDAzZWl0ZW1zW2ldKTtcbiBcdFx0b3RoZXJfYnJhbmNoID0gcHVzaF9zdGFjayhlbnYsIGVudi1cdTAwM2Vnb3RveF90bXBfYnVmLVx1MDAzZWl0ZW1zW2ldLFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvYnBmX2dvdG94LmNcbmluZGV4IDczZGM2Mzg4MmI3ZDU1Li45OTc3MjRjNjFjOGI2MCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guY1xuQEAgLTI1NSw2ICYjNDM7MjU1LDMwIEBAIHN0YXRpYyBpbnQgY3JlYXRlX2p0X21hcChfX3UzMiBtYXhfZW50cmllcylcbiBcdFx0XHQgICAgICBrZXlfc2l6ZSwgdmFsdWVfc2l6ZSwgbWF4X2VudHJpZXMsIE5VTEwpO1xuIH1cbiBcbiYjNDM7c3RhdGljIGludCBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KF9fdTMyIHRhcmdldClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBicGZfaW5zbl9hcnJheV92YWx1ZSB2YWwgPSB7IC5vcmlnX29mZiA9IHRhcmdldCB9O1xuJiM0MztcdF9fdTMyIGtleSA9IDA7XG4mIzQzO1x0aW50IG1hcF9mZDtcbiYjNDM7XG4mIzQzO1x0bWFwX2ZkID0gY3JlYXRlX2p0X21hcCgxKTtcbiYjNDM7XHRpZiAoIUFTU0VSVF9HRShtYXBfZmQsIDAsIFwmIzM0O2NyZWF0ZV9qdF9tYXBcJiMzNDspKVxuJiM0MztcdFx0cmV0dXJuIC0xO1xuJiM0MztcbiYjNDM7XHRpZiAoIUFTU0VSVF9FUShicGZfbWFwX3VwZGF0ZV9lbGVtKG1hcF9mZCwgXHUwMDI2a2V5LCBcdTAwMjZ2YWwsIDApLFxuJiM0MztcdFx0ICAgICAgIDAsIFwmIzM0O2JwZl9tYXBfdXBkYXRlX2VsZW1cJiMzNDspKSB7XG4mIzQzO1x0XHRjbG9zZShtYXBfZmQpO1xuJiM0MztcdFx0cmV0dXJuIC0xO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0aWYgKCFBU1NFUlRfRVEoYnBmX21hcF9mcmVlemUobWFwX2ZkKSwgMCwgXCYjMzQ7YnBmX21hcF9mcmVlemVcJiMzNDspKSB7XG4mIzQzO1x0XHRjbG9zZShtYXBfZmQpO1xuJiM0MztcdFx0cmV0dXJuIC0xO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0cmV0dXJuIG1hcF9mZDtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgaW50IHByb2dfbG9hZChzdHJ1Y3QgYnBmX2luc24gKmluc25zLCBfX3UzMiBpbnNuX2NudClcbiB7XG4gXHRyZXR1cm4gYnBmX3Byb2dfbG9hZChCUEZfUFJPR19UWVBFX1JBV19UUkFDRVBPSU5ULCBOVUxMLCBcJiMzNDtHUExcJiMzNDssIGluc25zLCBpbnNuX2NudCwgTlVMTCk7XG5AQCAtMzkzLDYgJiM0Mzs0MTcsNTIgQEAgcmVqZWN0X29mZnNldHMoc3RydWN0IGJwZl9pbnNuICppbnNucywgX191MzIgaW5zbl9jbnQsIGludCBvZmYxLCBpbnQgb2ZmMiwgaW50IG9cbiBcdFx0Y2xvc2UocHJvZ19mZCk7XG4gfVxuIFxuJiM0MztzdGF0aWMgdm9pZFxuJiM0MztjaGVja19jcm9zc19zdWJwcm9nX2dvdG94X3RhcmdldCh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGJwZl9pbnNuIGluc25zW10gPSB7XG4mIzQzO1x0XHQvKiBtYWluIHN1YnByb2cgWzAsMTQpICovXG4mIzQzO1x0XHRCUEZfTU9WNjRfUkVHKEJQRl9SRUdfNiwgQlBGX1JFR18xKSxcbiYjNDM7XHRcdEJQRl9SQVdfSU5TTihCUEZfSk1QIHwgQlBGX0NBTEwsIDAsIEJQRl9QU0VVRE9fQ0FMTCwgMCwgMTIpLFxuJiM0MztcdFx0QlBGX0xEWF9NRU0oQlBGX1csIEJQRl9SRUdfNywgQlBGX1JFR182LCAwKSxcbiYjNDM7XHRcdEJQRl9KTVBfSU1NKEJQRl9KRVEsIEJQRl9SRUdfNywgMCwgNCksXG4mIzQzO1x0XHRCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLFxuJiM0MztcdFx0QlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzIsIEJQRl9SRUdfMiwgMCksXG4mIzQzO1x0XHRCUEZfSk1QX0EoMyksXG4mIzQzO1x0XHRCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLFxuJiM0MztcdFx0QlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzIsIEJQRl9SRUdfMiwgMCksXG4mIzQzO1x0XHRCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQSB8IEJQRl9YLCBCUEZfUkVHXzIsIDAsIDAsIDApLFxuJiM0MztcdFx0QlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDEpLFxuJiM0MztcdFx0QlBGX0VYSVRfSU5TTigpLFxuJiM0MztcbiYjNDM7XHRcdC8qIHN0YXRpYyBzdWJwcm9nIFsxNCwxNikgKi9cbiYjNDM7XHRcdEJQRl9NT1Y2NF9JTU0oQlBGX1JFR18wLCA0MiksXG4mIzQzO1x0XHRCUEZfRVhJVF9JTlNOKCksXG4mIzQzO1x0fTtcbiYjNDM7XHRpbnQgZ29vZF9mZCwgYmFkX2ZkLCBwcm9nX2ZkO1xuJiM0MztcbiYjNDM7XHRnb29kX2ZkID0gY3JlYXRlX2p0X21hcF93aXRoX3RhcmdldCgxMik7XG4mIzQzO1x0aWYgKCFBU1NFUlRfR0UoZ29vZF9mZCwgMCwgXCYjMzQ7Y3JlYXRlX2dvb2RfanRfbWFwXCYjMzQ7KSlcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4mIzQzO1x0YmFkX2ZkID0gY3JlYXRlX2p0X21hcF93aXRoX3RhcmdldCgxNCk7XG4mIzQzO1x0aWYgKCFBU1NFUlRfR0UoYmFkX2ZkLCAwLCBcJiMzNDtjcmVhdGVfYmFkX2p0X21hcFwmIzM0OykpIHtcbiYjNDM7XHRcdGNsb3NlKGdvb2RfZmQpO1xuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0aW5zbnNbNF0uaW1tID0gYmFkX2ZkO1xuJiM0MztcdGluc25zWzhdLmltbSA9IGdvb2RfZmQ7XG4mIzQzO1xuJiM0MztcdHByb2dfZmQgPSBicGZfcHJvZ19sb2FkKEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUiwgTlVMTCwgXCYjMzQ7R1BMXCYjMzQ7LFxuJiM0MztcdFx0XHRcdGluc25zLCBBUlJBWV9TSVpFKGluc25zKSwgTlVMTCk7XG4mIzQzO1x0aWYgKCFBU1NFUlRfRVEocHJvZ19mZCwgLUVJTlZBTCwgXCYjMzQ7Y3Jvc3Nfc3VicHJvZ19nb3RveF9wcm9nX2xvYWRcJiMzNDspKVxuJiM0MztcdFx0Y2xvc2UocHJvZ19mZCk7XG4mIzQzO1xuJiM0MztcdGNsb3NlKGJhZF9mZCk7XG4mIzQzO1x0Y2xvc2UoZ29vZF9mZCk7XG4mIzQzO31cbiYjNDM7XG4gLypcbiAgKiBWZXJpZnkgYSBiaXQgbW9yZSBjb21wbGV4IHByb2dyYW1zIHdoaWNoIGluY2x1ZGUgaW5kaXJlY3QganVtcHNcbiAgKiBhbmQgd2l0aCBqdW1wIHRhYmxlcyBsb2FkZWQgd2l0aCBhIG5vbi16ZXJvIG9mZnNldFxuQEAgLTU0MSw1ICYjNDM7NjExLDggQEAgdm9pZCB0ZXN0X2JwZl9nb3RveCh2b2lkKVxuIFx0aWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoXCYjMzQ7Y2hlY2stbGRpbW02NC1vZmYtZ290b3gtbGx2bVwmIzM0OykpXG4gXHRcdF9fc3VidGVzdChza2VsLCBjaGVja19sZGltbTY0X29mZl9nb3RveF9sbHZtKTtcbiBcbiYjNDM7XHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcJiMzNDtjaGVjay1jcm9zcy1zdWJwcm9nLWdvdG94LXRhcmdldFwmIzM0OykpXG4mIzQzO1x0XHRjaGVja19jcm9zc19zdWJwcm9nX2dvdG94X3RhcmdldCgpO1xuJiM0MztcbiBcdGJwZl9nb3RveF9fZGVzdHJveShza2VsKTtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MTg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjaGVja19pbmRpcmVjdF9qdW1wJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBpbmRpcmVjdCBqdW1wcyAoZ290b3gpIGluIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJldmVudCBqdW1waW5nIG91dHNpZGUgdGhlIGN1cnJlbnQgc3VicHJvZ3JhbS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgQlBGIHZlcmlmaWNhdGlvbiBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOWNjNTUyMjgwNGY3MTAwOTA5NjFiMzcwM2U5YmMzZjc2N2RlNWE4ZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gSnVuIDI4IDE0OjE4OjM0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4IGViNDZhODFhOGM1MWFjLi4wNWE5OTZhNWVjZGQyNSAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwpAQCAtMTcxNDUsOSAmIzQzOzE3MTQ1LDExIEBAIHN0YXRpYyBpbnQgaW5kaXJlY3RfanVtcF9taW5fbWF4X2luZGV4KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsCiBzdGF0aWMgaW50IGNoZWNrX2luZGlyZWN0X2p1bXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuKQogewogCXN0cnVjdCBicGZfdmVyaWZpZXJfc3RhdGUgKm90aGVyX2JyYW5jaDsKJiM0MzsJc3RydWN0IGJwZl9zdWJwcm9nX2luZm8gKnN1YnByb2c7CiAJc3RydWN0IGJwZl9yZWdfc3RhdGUgKmRzdF9yZWc7CiAJc3RydWN0IGJwZl9tYXAgKm1hcDsKIAl1MzIgbWluX2luZGV4LCBtYXhfaW5kZXg7CiYjNDM7CWludCBzdWJwcm9nX3N0YXJ0LCBzdWJwcm9nX2VuZDsKIAlpbnQgZXJyID0gMDsKIAlpbnQgbjsKIAlpbnQgaTsKQEAgLTE3MTg4LDYgJiM0MzsxNzE5MCwyMyBAQCBzdGF0aWMgaW50IGNoZWNrX2luZGlyZWN0X2p1bXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbgogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKJiM0MzsJc3VicHJvZyA9IGJwZl9maW5kX2NvbnRhaW5pbmdfc3VicHJvZyhlbnYsIGVudi0mZ3Q7aW5zbl9pZHgpOwomIzQzOwlpZiAodmVyaWZpZXJfYnVnX2lmKCFzdWJwcm9nLCBlbnYsCiYjNDM7CQkJICAgICYjMzQ7Z290b3ggaW5zbiAlZCBpcyBvdXRzaWRlIHN1YnByb2cgYm91bmRzXG4mIzM0OywKJiM0MzsJCQkgICAgZW52LSZndDtpbnNuX2lkeCkpCiYjNDM7CQlyZXR1cm4gLUVGQVVMVDsKJiM0MzsJc3VicHJvZ19zdGFydCA9IHN1YnByb2ctJmd0O3N0YXJ0OwomIzQzOwlzdWJwcm9nX2VuZCA9IChzdWJwcm9nICYjNDM7IDEpLSZndDtzdGFydDsKJiM0MzsKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IG47IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQl1MzIgdGFyZ2V0ID0gZW52LSZndDtnb3RveF90bXBfYnVmLSZndDtpdGVtc1tpXTsKJiM0MzsKJiM0MzsJCWlmICh0YXJnZXQgJmx0OyBzdWJwcm9nX3N0YXJ0IHx8IHRhcmdldCAmZ3Q7PSBzdWJwcm9nX2VuZCkgewomIzQzOwkJCXZlcmJvc2UoZW52LCAmIzM0O2dvdG94IHRhcmdldCAldSBvdXRzaWRlIHN1YnByb2dcbiYjMzQ7LCB0YXJnZXQpOwomIzQzOwkJCXJldHVybiAtRUlOVkFMOwomIzQzOwkJfQomIzQzOwl9CiYjNDM7CiAJZm9yIChpID0gMDsgaSAmbHQ7IG4gLSAxOyBpJiM0MzsmIzQzOykgewogCQltYXJrX2luZGlyZWN0X3RhcmdldChlbnYsIGVudi0mZ3Q7Z290b3hfdG1wX2J1Zi0mZ3Q7aXRlbXNbaV0pOwogCQlvdGhlcl9icmFuY2ggPSBwdXNoX3N0YWNrKGVudiwgZW52LSZndDtnb3RveF90bXBfYnVmLSZndDtpdGVtc1tpXSwKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvYnBmX2dvdG94LmMKaW5kZXggNzNkYzYzODgyYjdkNTUuLjk5NzcyNGM2MWM4YjYwIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guYwpAQCAtMjU1LDYgJiM0MzsyNTUsMzAgQEAgc3RhdGljIGludCBjcmVhdGVfanRfbWFwKF9fdTMyIG1heF9lbnRyaWVzKQogCQkJICAgICAga2V5X3NpemUsIHZhbHVlX3NpemUsIG1heF9lbnRyaWVzLCBOVUxMKTsKIH0KIAomIzQzO3N0YXRpYyBpbnQgY3JlYXRlX2p0X21hcF93aXRoX3RhcmdldChfX3UzMiB0YXJnZXQpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgYnBmX2luc25fYXJyYXlfdmFsdWUgdmFsID0geyAub3JpZ19vZmYgPSB0YXJnZXQgfTsKJiM0MzsJX191MzIga2V5ID0gMDsKJiM0MzsJaW50IG1hcF9mZDsKJiM0MzsKJiM0MzsJbWFwX2ZkID0gY3JlYXRlX2p0X21hcCgxKTsKJiM0MzsJaWYgKCFBU1NFUlRfR0UobWFwX2ZkLCAwLCAmIzM0O2NyZWF0ZV9qdF9tYXAmIzM0OykpCiYjNDM7CQlyZXR1cm4gLTE7CiYjNDM7CiYjNDM7CWlmICghQVNTRVJUX0VRKGJwZl9tYXBfdXBkYXRlX2VsZW0obWFwX2ZkLCAmYW1wO2tleSwgJmFtcDt2YWwsIDApLAomIzQzOwkJICAgICAgIDAsICYjMzQ7YnBmX21hcF91cGRhdGVfZWxlbSYjMzQ7KSkgewomIzQzOwkJY2xvc2UobWFwX2ZkKTsKJiM0MzsJCXJldHVybiAtMTsKJiM0MzsJfQomIzQzOwomIzQzOwlpZiAoIUFTU0VSVF9FUShicGZfbWFwX2ZyZWV6ZShtYXBfZmQpLCAwLCAmIzM0O2JwZl9tYXBfZnJlZXplJiMzNDspKSB7CiYjNDM7CQljbG9zZShtYXBfZmQpOwomIzQzOwkJcmV0dXJuIC0xOwomIzQzOwl9CiYjNDM7CiYjNDM7CXJldHVybiBtYXBfZmQ7CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBwcm9nX2xvYWQoc3RydWN0IGJwZl9pbnNuICppbnNucywgX191MzIgaW5zbl9jbnQpCiB7CiAJcmV0dXJuIGJwZl9wcm9nX2xvYWQoQlBGX1BST0dfVFlQRV9SQVdfVFJBQ0VQT0lOVCwgTlVMTCwgJiMzNDtHUEwmIzM0OywgaW5zbnMsIGluc25fY250LCBOVUxMKTsKQEAgLTM5Myw2ICYjNDM7NDE3LDUyIEBAIHJlamVjdF9vZmZzZXRzKHN0cnVjdCBicGZfaW5zbiAqaW5zbnMsIF9fdTMyIGluc25fY250LCBpbnQgb2ZmMSwgaW50IG9mZjIsIGludCBvCiAJCWNsb3NlKHByb2dfZmQpOwogfQogCiYjNDM7c3RhdGljIHZvaWQKJiM0MztjaGVja19jcm9zc19zdWJwcm9nX2dvdG94X3RhcmdldCh2b2lkKQomIzQzO3sKJiM0MzsJc3RydWN0IGJwZl9pbnNuIGluc25zW10gPSB7CiYjNDM7CQkvKiBtYWluIHN1YnByb2cgWzAsMTQpICovCiYjNDM7CQlCUEZfTU9WNjRfUkVHKEJQRl9SRUdfNiwgQlBGX1JFR18xKSwKJiM0MzsJCUJQRl9SQVdfSU5TTihCUEZfSk1QIHwgQlBGX0NBTEwsIDAsIEJQRl9QU0VVRE9fQ0FMTCwgMCwgMTIpLAomIzQzOwkJQlBGX0xEWF9NRU0oQlBGX1csIEJQRl9SRUdfNywgQlBGX1JFR182LCAwKSwKJiM0MzsJCUJQRl9KTVBfSU1NKEJQRl9KRVEsIEJQRl9SRUdfNywgMCwgNCksCiYjNDM7CQlCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLAomIzQzOwkJQlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzIsIEJQRl9SRUdfMiwgMCksCiYjNDM7CQlCUEZfSk1QX0EoMyksCiYjNDM7CQlCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLAomIzQzOwkJQlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzIsIEJQRl9SRUdfMiwgMCksCiYjNDM7CQlCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQSB8IEJQRl9YLCBCUEZfUkVHXzIsIDAsIDAsIDApLAomIzQzOwkJQlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDEpLAomIzQzOwkJQlBGX0VYSVRfSU5TTigpLAomIzQzOwomIzQzOwkJLyogc3RhdGljIHN1YnByb2cgWzE0LDE2KSAqLwomIzQzOwkJQlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDQyKSwKJiM0MzsJCUJQRl9FWElUX0lOU04oKSwKJiM0MzsJfTsKJiM0MzsJaW50IGdvb2RfZmQsIGJhZF9mZCwgcHJvZ19mZDsKJiM0MzsKJiM0MzsJZ29vZF9mZCA9IGNyZWF0ZV9qdF9tYXBfd2l0aF90YXJnZXQoMTIpOwomIzQzOwlpZiAoIUFTU0VSVF9HRShnb29kX2ZkLCAwLCAmIzM0O2NyZWF0ZV9nb29kX2p0X21hcCYjMzQ7KSkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJYmFkX2ZkID0gY3JlYXRlX2p0X21hcF93aXRoX3RhcmdldCgxNCk7CiYjNDM7CWlmICghQVNTRVJUX0dFKGJhZF9mZCwgMCwgJiMzNDtjcmVhdGVfYmFkX2p0X21hcCYjMzQ7KSkgewomIzQzOwkJY2xvc2UoZ29vZF9mZCk7CiYjNDM7CQlyZXR1cm47CiYjNDM7CX0KJiM0MzsKJiM0MzsJaW5zbnNbNF0uaW1tID0gYmFkX2ZkOwomIzQzOwlpbnNuc1s4XS5pbW0gPSBnb29kX2ZkOwomIzQzOwomIzQzOwlwcm9nX2ZkID0gYnBmX3Byb2dfbG9hZChCUEZfUFJPR19UWVBFX1NPQ0tFVF9GSUxURVIsIE5VTEwsICYjMzQ7R1BMJiMzNDssCiYjNDM7CQkJCWluc25zLCBBUlJBWV9TSVpFKGluc25zKSwgTlVMTCk7CiYjNDM7CWlmICghQVNTRVJUX0VRKHByb2dfZmQsIC1FSU5WQUwsICYjMzQ7Y3Jvc3Nfc3VicHJvZ19nb3RveF9wcm9nX2xvYWQmIzM0OykpCiYjNDM7CQljbG9zZShwcm9nX2ZkKTsKJiM0MzsKJiM0MzsJY2xvc2UoYmFkX2ZkKTsKJiM0MzsJY2xvc2UoZ29vZF9mZCk7CiYjNDM7fQomIzQzOwogLyoKICAqIFZlcmlmeSBhIGJpdCBtb3JlIGNvbXBsZXggcHJvZ3JhbXMgd2hpY2ggaW5jbHVkZSBpbmRpcmVjdCBqdW1wcwogICogYW5kIHdpdGgganVtcCB0YWJsZXMgbG9hZGVkIHdpdGggYSBub24temVybyBvZmZzZXQKQEAgLTU0MSw1ICYjNDM7NjExLDggQEAgdm9pZCB0ZXN0X2JwZl9nb3RveCh2b2lkKQogCWlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KCYjMzQ7Y2hlY2stbGRpbW02NC1vZmYtZ290b3gtbGx2bSYjMzQ7KSkKIAkJX19zdWJ0ZXN0KHNrZWwsIGNoZWNrX2xkaW1tNjRfb2ZmX2dvdG94X2xsdm0pOwogCiYjNDM7CWlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KCYjMzQ7Y2hlY2stY3Jvc3Mtc3VicHJvZy1nb3RveC10YXJnZXQmIzM0OykpCiYjNDM7CQljaGVja19jcm9zc19zdWJwcm9nX2dvdG94X3RhcmdldCgpOwomIzQzOwogCWJwZl9nb3RveF9fZGVzdHJveShza2VsKTsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY5OQoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDQzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEJQRiBWZXJpZmllciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBga2VybmVsL2JwZi92ZXJpZmllci5jYC4gTXkgaW5pdGlhbCByZWFkIHRlbGxzIG1lIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gSXQgc2VlbXMgdGhleSYjMzk7dmUgYWRkZWQgYSBjaGVjayB3aXRoaW4gdGhlIGBjaGVja19pbmRpcmVjdF9qdW1wYCBmdW5jdGlvbi4gVGhlIGdvYWwgaXMgdG8gZW5zdXJlIHRoYXQgYSBgZ290b3hgIGluc3RydWN0aW9uLCBvciBpbmRpcmVjdCBqdW1wLCBpc24mIzM5O3QgdGFyZ2V0aW5nIGFuIGluc3RydWN0aW9uIG91dHNpZGUgdGhlIGN1cnJlbnQgc3VicHJvZ3JhbSYjMzk7cyBib3VuZHMuIFRoaXMgaXMgYSBzb2xpZCBzYWZldHkgbWVhc3VyZTsgd2UgZG9uJiMzOTt0IHdhbnQgcHJvZ3JhbXMganVtcGluZyBhbGwgb3ZlciB0aGUgcGxhY2UuIFByZXZlbnRpbmcgYGdvdG94YCBmcm9tIGp1bXBpbmcgaW50byBvdGhlciBzdWJwcm9ncmFtcyBpcyBkZWZpbml0ZWx5IGEgZGVzaXJhYmxlIG91dGNvbWUuCgpMZXQmIzM5O3MgZGl2ZSBpbnRvIHRoZSBjb2RlIHNuaXBwZXQgaXRzZWxmOgoKYGBgYwomIzQzOwlzdWJwcm9nID0gYnBmX2ZpbmRfY29udGFpbmluZ19zdWJwcm9nKGVudiwgZW52LSZndDtpbnNuX2lkeCk7CiYjNDM7CWlmICh2ZXJpZmllcl9idWdfaWYoIXN1YnByb2csIGVudiwKJiM0MzsJCQkgICAgJiMzNDtnb3RveCBpbnNuICVkIGlzIG91dHNpZGUgc3VicHJvZyBib3VuZHNcbiYjMzQ7LAomIzQzOwkJCSAgICBlbnYtJmd0O2luc25faWR4KSkKJiM0MzsJCXJldHVybiAtRUZBVUxUOwomIzQzOwlzdWJwcm9nX3N0YXJ0ID0gc3VicHJvZy0mZ3Q7c3RhcnQ7CiYjNDM7CXN1YnByb2dfZW5kID0gKHN1YnByb2cgJiM0MzsgMSktJmd0O3N0YXJ0OwomIzQzOwomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgbjsgaSYjNDM7JiM0MzspIHsKJiM0MzsJCXUzMiB0YXJnZXQgPSBlbnYtJmd0O2dvdG94X3RtcF9idWYtJmd0O2l0ZW1zW2ldOwomIzQzOwomIzQzOwkJaWYgKHRhcmdldCAmbHQ7IHN1YnByb2dfc3RhcnQgfHwgdGFyZ2V0ICZndDs9IHN1YnByb2dfZW5kKSB7CiYjNDM7CQkJdmVyYm9zZShlbnYsICYjMzQ7Z290b3ggdGFyZ2V0ICV1IG91dHNpZGUgc3VicHJvZ1xuJiMzNDssIHRhcmdldCk7CiYjNDM7CQkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CQl9CiYjNDM7CX0KYGBgCgpZZXAsIGl0JiMzOTtzIGRvaW5nIGV4YWN0bHkgd2hhdCBJIHRob3VnaHQuIEl0IGZpbmRzIHRoZSBzdWJwcm9ncmFtIHRoYXQgdGhlIGN1cnJlbnQgaW5zdHJ1Y3Rpb24gcmVzaWRlcyBpbiwgY2hlY2tzIGlmIGl0JiMzOTtzIGdvdG94LCB0aGVuIGl0ZXJhdGVzIHRocm91Z2ggYWxsIHBvdGVudGlhbCB0YXJnZXRzIHRvIG1ha2Ugc3VyZSB0aGV5JiMzOTtyZSB3aXRoaW4gdGhlIGNvbmZpbmVzIG9mIHRoYXQgc3VicHJvZ3JhbS4gSWYgdGhleSYjMzk7cmUgbm90LCBpdCBmbGFncyBhbiBlcnJvciBhbmQgcmV0dXJucyBgLUVJTlZBTGAuIFRoaXMgaXMgZGVmaW5pdGVseSBhIHNpZ25pZmljYW50IGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBCUEYgdmVyaWZpZXIuCgpGcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZSwgSSYjMzk7ZCBzYXkgdGhpcyBpcyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0byB0YXJnZXQuIEkmIzM5O2xsIG1hcmsgYFdvcnRoRnV6emluZz10cnVlYC4KCkZvciBmb2N1cyBzeW1ib2xzLCBgY2hlY2tfaW5kaXJlY3RfanVtcGAgaXMgdGhlIGtleSBmdW5jdGlvbiB0byBmb2N1cyBvbi4gYGJwZl9maW5kX2NvbnRhaW5pbmdfc3VicHJvZ2AgKm1pZ2h0KiBiZSByZWxldmFudCwgYnV0IGl0JiMzOTtzIGFuIGV4aXN0aW5nIGZ1bmN0aW9uLCBzbyBsZXQmIzM5O3Mgc3RpY2sgd2l0aCB0aGUgY29yZSBvZiB0aGUgY2hhbmdlOiBgY2hlY2tfaW5kaXJlY3RfanVtcGAuCgpBcyBmb3IgY29uZmlndXJhdGlvbiwgQlBGIGlzIGdlbmVyYWxseSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBJJiMzOTtsbCBtYWtlIHN1cmUgdG8gdmVyaWZ5IHRoZSBjb250ZXh0IG9mIGBDT05GSUdfQlBGX1NZU0NBTExgIOKAkyBpdCYjMzk7cyB0aGUgcHJpbWFyeSBjb25maWcgdG8gY2hlY2suIExldCYjMzk7cyBtYWtlIHN1cmUgdGhlIGRlcGVuZGVuY2llcyBhcmUgYXMgd2UgZXhwZWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE0OjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NoZWNrX2luZGlyZWN0X2p1bXAmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jPTE3MTExPXN0YXRpYyBpbnQgaW5kaXJlY3RfanVtcF9taW5fbWF4X2luZGV4KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3MTQ0LS8qIGdvdG94ICpkc3RfcmVnICovXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTcxNDU6c3RhdGljIGludCBjaGVja19pbmRpcmVjdF9qdW1wKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5zbilcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzE0Ni17XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTE3MjIyPXN0YXRpYyBpbnQgZG9fY2hlY2tfaW5zbihzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBib29sICpkb19wcmludF9zdGF0ZSlcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTcyOTQtXHRcdFx0aWYgKEJQRl9TUkMoaW5zbi1cdTAwM2Vjb2RlKSA9PSBCUEZfWClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNzI5NTpcdFx0XHRcdHJldHVybiBjaGVja19pbmRpcmVjdF9qdW1wKGVudiwgaW5zbik7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTcyOTYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDk5OAoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6CgoqKkZ1enppbmcgdGhlIGBjaGVja19pbmRpcmVjdF9qdW1wYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBgY2hlY2tfaW5kaXJlY3RfanVtcGAgaXMgdHJpZ2dlcmVkIHdpdGhpbiBgZG9fY2hlY2tfaW5zbmAgd2hlbmV2ZXIgYSBCUEYgaW5zdHJ1Y3Rpb24gdXNlcyBgQlBGX1hgIGFzIGl0cyBzb3VyY2Ugb3BlcmFuZC4gVGhhdCBzY3JlYW1zICYjMzQ7aW5kaXJlY3QganVtcCwmIzM0OyBhbmQgdGhhdCBtZWFucyBpdCYjMzk7cyBhIGNyaXRpY2FsIHBhcnQgb2YgdGhlIEJQRiB2ZXJpZmllcuKAlGl0ICpoYXMqIHRvIGJlIHJlYWNoYWJsZSBkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbi4gVGhpcyBtYWtlcyBpdCBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gV2UgbmVlZCB0byByZWFsbHkgdGVzdCBpdHMgYm91bmRhcmllcy4KCkdpdmVuIGl0cyBjcnVjaWFsIHJvbGUsIGl0JiMzOTtzIHdvcnRoIGNoZWNraW5nIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBhbmQgdGhlaXIgaW1wbGljYXRpb25zIGZvciB0aGlzIGZ1bmN0aW9uJiMzOTtzIGJlaGF2aW91ci4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBlbnZpcm9ubWVudGFsIGZhY3RvcnMgY291bGQgaW5mbHVlbmNlIGl0cyBleGVjdXRpb24gcGF0aHMgYW5kIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIEkmIzM5O2xsIG1ha2Ugc3VyZSB0byBnZXQgdGhvc2UgY292ZXJlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX1NZU0NBTEwmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExMjQgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbkRvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLWV4dC5yc3Q9MzU9b3B0aW9ucyBzaG91bGQgYmUgZW5hYmxlZCB0byB1c2Ugc2NoZWRfZXh0OlxuLS1cbkRvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLWV4dC5yc3QtNDAtICAgIENPTkZJR19TQ0hFRF9DTEFTU19FWFQ9eVxuRG9jdW1lbnRhdGlvbi9zY2hlZHVsZXIvc2NoZWQtZXh0LnJzdDo0MTogICAgQ09ORklHX0JQRl9TWVNDQUxMPXlcbkRvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLWV4dC5yc3QtNDItICAgIENPTkZJR19CUEZfSklUPXlcbi0tXG5Eb2N1bWVudGF0aW9uL3RyYWNlL2Zwcm9iZXRyYWNlLnJzdD04ND1wYXJhbWV0ZXJzIGJ5IGl0cyBuYW1lIGluc3RlYWQgb2YgYGAkYXJnTmBgLiBUaGlzIGZlYXR1cmUgaXMgYXZhaWxhYmxlIGlmIHRoZVxuRG9jdW1lbnRhdGlvbi90cmFjZS9mcHJvYmV0cmFjZS5yc3Q6ODU6a2VybmVsIGlzIGNvbmZpZ3VyZWQgd2l0aCBDT05GSUdfQlBGX1NZU0NBTEwgYW5kIENPTkZJR19ERUJVR19JTkZPX0JURi5cbkRvY3VtZW50YXRpb24vdHJhY2UvZnByb2JldHJhY2UucnN0LTg2LUlmIHVzZXIgb25seSBzcGVjaWZ5IHRoZSBCVEYgYXJndW1lbnQsIHRoZSBldmVudCYjMzk7cyBhcmd1bWVudCBuYW1lIGlzIGFsc29cbi0tXG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNF9kZWZjb25maWc9ND1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c0X2RlZmNvbmZpZzo1OkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNF9kZWZjb25maWctNi1DT05GSUdfSUtDT05GSUc9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZz00PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzVfZGVmY29uZmlnOjU6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZy02LUNPTkZJR19JS0NPTkZJRz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnPTM9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnLTUtQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZy0xLSMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnOjI6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnLTMtQ09ORklHX1NDSEVEX0FVVE9HUk9VUD15XG4tLVxuYXJjaC9hcm0va2VybmVsL3NwZWN0cmUuYz04PXN0YXRpYyBib29sIF91bnByaXZpbGVnZWRfZWJwZl9lbmFibGVkKHZvaWQpXG5hcmNoL2FybS9rZXJuZWwvc3BlY3RyZS5jLTkte1xuYXJjaC9hcm0va2VybmVsL3NwZWN0cmUuYzoxMDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5hcmNoL2FybS9rZXJuZWwvc3BlY3RyZS5jLTExLVx0cmV0dXJuICFzeXNjdGxfdW5wcml2aWxlZ2VkX2JwZl9kaXNhYmxlZDtcbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTU9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjY6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWctNy1DT05GSUdfQlBGX0pJVD15XG4tLVxuYXJjaC9hcm02NC9rZXJuZWwvcHJvdG9uLXBhY2suYz0xMTA9c3RhdGljIGJvb2wgX3VucHJpdmlsZWdlZF9lYnBmX2VuYWJsZWQodm9pZClcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmMtMTExLXtcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmM6MTEyOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmMtMTEzLVx0cmV0dXJuICFzeXNjdGxfdW5wcml2aWxlZ2VkX2JwZl9kaXNhYmxlZDtcbi0tXG5hcmNoL2FybTY0L2tlcm5lbC9wcm90b24tcGFjay5jPTExNjc9dm9pZCBfX2luaXQgc3BlY3RyZV9iaGJfcGF0Y2hfY2xlYXJiaGIoc3RydWN0IGFsdF9pbnN0ciAqYWx0LFxuLS1cbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmMtMTE3OC1cbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmM6MTE3OTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5hcmNoL2FybTY0L2tlcm5lbC9wcm90b24tcGFjay5jLTExODAtI2RlZmluZSBFQlBGX1dBUk4gXCYjMzQ7VW5wcml2aWxlZ2VkIGVCUEYgaXMgZW5hYmxlZCwgZGF0YSBsZWFrcyBwb3NzaWJsZSB2aWEgU3BlY3RyZSB2MiBCSEIgYXR0YWNrcyFcXG5cJiMzNDtcbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnPTY9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjc6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWctOC1DT05GSUdfUFJFRU1QVD15XG4tLVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZz02PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZzo3OkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnLTgtQ09ORklHX0JQRl9KSVQ9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnPTc9Q09ORklHX0VYUEVSVD15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWctOS0jIENPTkZJR19TWVNGU19TWVNDQUxMIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEwOkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZy0xMS0jIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZz03PUNPTkZJR19FWFBFUlQ9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnLTktIyBDT05GSUdfU1lTRlNfU1lTQ0FMTCBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMDpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWctMTEtIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnPTc9Q09ORklHX0VYUEVSVD15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnLTktIyBDT05GSUdfU1lTRlNfU1lTQ0FMTCBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTA6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZy0xMS0jIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc9Mz1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo0OkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctNS1DT05GSUdfVEFTS1NUQVRTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc9Mz1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo0OkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWctNS1DT05GSUdfVEFTS1NUQVRTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz0zPUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6NDpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWctNS1DT05GSUdfVEFTS1NUQVRTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZz0xNj1DT05GSUdfQkxLX0RFVl9JTklUUkQ9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc6MTc6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnLTE4LUNPTkZJR19VU0VSRkFVTFRGRD15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZz03PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzo4OkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnLTktQ09ORklHX0JQRl9KSVQ9eVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZz0xNj1DT05GSUdfS0FMTFNZTVNfQUxMPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZzoxNzpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ZzcDJfZGVmY29uZmlnLTE4LUNPTkZJR19FWFBFUlQ9eVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnPTI4PUNPTkZJR19CTEtfREVWX0lOSVRSRD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZzoyOTpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG93ZXJudl9kZWZjb25maWctMzAtIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnPTY9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc6NzpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnLTgtQ09ORklHX0JQRl9KSVQ9eVxuLS1cbmFyY2gvcmlzY3YvY29uZmlncy9kZWZjb25maWc9ND1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcbmFyY2gvcmlzY3YvY29uZmlncy9kZWZjb25maWc6NTpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZy02LUNPTkZJR19JS0NPTkZJRz15XG4tLVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnPTg9Q09ORklHX1BPU0lYX0FVWF9DTE9DS1M9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnOjk6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZy0xMC1DT05GSUdfQlBGX0pJVD15XG4tLVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnPTc9Q09ORklHX1BPU0lYX0FVWF9DTE9DS1M9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnOjg6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZy05LUNPTkZJR19CUEZfSklUPXlcbi0tXG5hcmNoL3MzOTAvY29uZmlncy96ZmNwZHVtcF9kZWZjb25maWc9Mz1DT05GSUdfUE9TSVhfQVVYX0NMT0NLUz15XG5hcmNoL3MzOTAvY29uZmlncy96ZmNwZHVtcF9kZWZjb25maWc6NDpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvemZjcGR1bXBfZGVmY29uZmlnLTUtIyBDT05GSUdfQ1BVX0lTT0xBVElPTiBpcyBub3Qgc2V0XG4tLVxuYXJjaC9zMzkwL2tlcm5lbC9NYWtlZmlsZT04MD1vYmotJChDT05GSUdfVFJBQ0VQT0lOVFMpXHQmIzQzOz0gdHJhY2Uub1xuYXJjaC9zMzkwL2tlcm5lbC9NYWtlZmlsZS04MS1cbmFyY2gvczM5MC9rZXJuZWwvTWFrZWZpbGU6ODI6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKVx0JiM0Mzs9IGJwZi5vXG5hcmNoL3MzOTAva2VybmVsL01ha2VmaWxlLTgzLVxuLS1cbmFyY2gveDg2L2tlcm5lbC9jcHUvYnVncy5jPTE2NTU9c3RhdGljIGlubGluZSBjb25zdCBjaGFyICpzcGVjdHJlX3YyX21vZHVsZV9zdHJpbmcodm9pZCkgeyByZXR1cm4gXCYjMzQ7XCYjMzQ7OyB9XG4tLVxuYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmMtMTY2Mi1cbmFyY2gveDg2L2tlcm5lbC9jcHUvYnVncy5jOjE2NjM6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmMtMTY2NC12b2lkIHVucHJpdl9lYnBmX25vdGlmeShpbnQgbmV3X3N0YXRlKVxuLS1cbmNyeXB0by9NYWtlZmlsZT0yND1vYmotJChDT05GSUdfQ1JZUFRPX1NLQ0lQSEVSMikgJiM0Mzs9IGNyeXB0b19za2NpcGhlci5vXG5jcnlwdG8vTWFrZWZpbGU6MjU6aWZlcSAoJChDT05GSUdfQlBGX1NZU0NBTEwpLHkpXG5jcnlwdG8vTWFrZWZpbGUtMjYtb2JqLSQoQ09ORklHX0NSWVBUT19TS0NJUEhFUjIpICYjNDM7PSBicGZfY3J5cHRvX3NrY2lwaGVyLm9cbi0tXG5kcml2ZXJzL2Jhc2UvcG93ZXIvcG93ZXIuaD0xNjU9c3RhdGljIGlubGluZSB2b2lkIGRldmljZV9wbV9pbml0KHN0cnVjdCBkZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL2Jhc2UvcG93ZXIvcG93ZXIuaC0xNzEtXG5kcml2ZXJzL2Jhc2UvcG93ZXIvcG93ZXIuaDoxNzI6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuZHJpdmVycy9iYXNlL3Bvd2VyL3Bvd2VyLmgtMTczLXN0cnVjdCBicGZfd3NfbG9jayB7IH07XG4tLVxuZHJpdmVycy9iYXNlL3Bvd2VyL3dha2V1cC5jPTExNjM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgd2FrZXVwX3NvdXJjZXNfc3RhdHNfZm9wcyA9IHtcbi0tXG5kcml2ZXJzL2Jhc2UvcG93ZXIvd2FrZXVwLmMtMTE3MC1cbmRyaXZlcnMvYmFzZS9wb3dlci93YWtldXAuYzoxMTcxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmRyaXZlcnMvYmFzZS9wb3dlci93YWtldXAuYy0xMTcyLSNpbmNsdWRlIFx1MDAzY2xpbnV4L2J0Zi5oXHUwMDNlXG4tLVxuZHJpdmVycy9iYXNlL3Bvd2VyL3dha2V1cC5jPTEyMzM9c3RhdGljIGlubGluZSB2b2lkIHdha2V1cF9zb3VyY2VzX2JwZl9pbml0KHZvaWQpIHt9XG5kcml2ZXJzL2Jhc2UvcG93ZXIvd2FrZXVwLmM6MTIzNDojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5kcml2ZXJzL2Jhc2UvcG93ZXIvd2FrZXVwLmMtMTIzNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL01ha2VmaWxlPTY0PWVuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL01ha2VmaWxlLTY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9NYWtlZmlsZTo2NjppZmVxICgkKENPTkZJR19CUEZfU1lTQ0FMTCkseSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvTWFrZWZpbGUtNjctbmZwLW9ianMgJiM0Mzs9IFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfYXBwLmM9MTg9c3RhdGljIGNvbnN0IHN0cnVjdCBuZnBfYXBwX3R5cGUgKmFwcHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZwX2FwcC5jLTE5LVx0W05GUF9BUFBfQ09SRV9OSUNdXHQ9IFx1MDAyNmFwcF9uaWMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9hcHAuYzoyMDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9hcHAuYy0yMS1cdFtORlBfQVBQX0JQRl9OSUNdXHQ9IFx1MDAyNmFwcF9icGYsXG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlPTU9bmV0ZGV2c2ltLW9ianMgOj0gXFxcbi0tXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vTWFrZWZpbGUtNy1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9NYWtlZmlsZTo4OmlmZXEgKCQoQ09ORklHX0JQRl9TWVNDQUxMKSx5KVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlLTktbmV0ZGV2c2ltLW9ianMgJiM0Mzs9IFxcXG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oPTE3OD12b2lkIG5zaW1fdWRwX3R1bm5lbHNfaW5mb19kZXN0cm95KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oLTE3OS1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaDoxODA6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oLTE4MS1pbnQgbnNpbV9icGZfZGV2X2luaXQoc3RydWN0IG5zaW1fZGV2ICpuc2ltX2Rldik7XG4tLVxuZnMvdmVyaXR5L2ZzdmVyaXR5X3ByaXZhdGUuaD0xMDM9ZnN2ZXJpdHlfbXNnKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKmxldmVsLFxuLS1cbmZzL3Zlcml0eS9mc3Zlcml0eV9wcml2YXRlLmgtMTEyLVxuZnMvdmVyaXR5L2ZzdmVyaXR5X3ByaXZhdGUuaDoxMTM6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuZnMvdmVyaXR5L2ZzdmVyaXR5X3ByaXZhdGUuaC0xMTQtdm9pZCBfX2luaXQgZnN2ZXJpdHlfaW5pdF9icGYodm9pZCk7XG4tLVxuZnMvdmVyaXR5L21lYXN1cmUuYz0xMDU9RVhQT1JUX1NZTUJPTF9HUEwoZnN2ZXJpdHlfZ2V0X2RpZ2VzdCk7XG5mcy92ZXJpdHkvbWVhc3VyZS5jLTEwNi1cbmZzL3Zlcml0eS9tZWFzdXJlLmM6MTA3OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmZzL3Zlcml0eS9tZWFzdXJlLmMtMTA4LVxuLS1cbmZzL3Zlcml0eS9tZWFzdXJlLmM9MTgzPXZvaWQgX19pbml0IGZzdmVyaXR5X2luaXRfYnBmKHZvaWQpXG4tLVxuZnMvdmVyaXR5L21lYXN1cmUuYy0xODctXG5mcy92ZXJpdHkvbWVhc3VyZS5jOjE4ODojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0yMTkwPXN0YXRpYyBpbmxpbmUgYm9vbCBpc190cmFjaW5nX211bHRpKGVudW0gYnBmX2F0dGFjaF90eXBlIHR5cGUpXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0yMTk1LVxuaW5jbHVkZS9saW51eC9icGYuaDoyMTk2OiNpZiBkZWZpbmVkKENPTkZJR19CUEZfSklUKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTIxOTctLyogVGhpcyBtYWNybyBoZWxwcyBkZXZlbG9wZXIgdG8gcmVnaXN0ZXIgYSBzdHJ1Y3Rfb3BzIHR5cGUgYW5kIGdlbmVyYXRlXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0yNTQ3PXN0YXRpYyBpbmxpbmUgc3RydWN0IGJwZl9ydW5fY3R4ICpicGZfc2V0X3J1bl9jdHgoc3RydWN0IGJwZl9ydW5fY3R4ICpuZXdfY3R4KVxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmgtMjU1MC1cbmluY2x1ZGUvbGludXgvYnBmLmg6MjU1MTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTI1NTItXHRvbGRfY3R4ID0gY3VycmVudC1cdTAwM2VicGZfY3R4O1xuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9MjU1OD1zdGF0aWMgaW5saW5lIHZvaWQgYnBmX3Jlc2V0X3J1bl9jdHgoc3RydWN0IGJwZl9ydW5fY3R4ICpvbGRfY3R4KVxuaW5jbHVkZS9saW51eC9icGYuaC0yNTU5LXtcbmluY2x1ZGUvbGludXgvYnBmLmg6MjU2MDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTI1NjEtXHRjdXJyZW50LVx1MDAzZWJwZl9jdHggPSBvbGRfY3R4O1xuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9MjY1MT1ib29sIGJwZl9qaXRfYnlwYXNzX3NwZWNfdjQodm9pZCk7XG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0yNjU1LVxuaW5jbHVkZS9saW51eC9icGYuaDoyNjU2OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbGludXgvYnBmLmgtMjY1Ny1ERUNMQVJFX1BFUl9DUFUoaW50LCBicGZfcHJvZ19hY3RpdmUpO1xuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9MzIxNz1icGZfcHJvZ19ydW5fYXJyYXlfc2xlZXBhYmxlKGNvbnN0IHN0cnVjdCBicGZfcHJvZ19hcnJheSAqYXJyYXksXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0zMjY1LVxuaW5jbHVkZS9saW51eC9icGYuaDozMjY2OiNlbHNlIC8qICFDT05GSUdfQlBGX1NZU0NBTEwgKi9cbmluY2x1ZGUvbGludXgvYnBmLmgtMzI2Ny1zdGF0aWMgaW5saW5lIHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2dfZ2V0KHUzMiB1ZmQpXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0zNTU5PXN0YXRpYyBpbmxpbmUgdm9pZCBicGZfcHJvZ19yZXBvcnRfYXJlbmFfdmlvbGF0aW9uKGJvb2wgd3JpdGUsIHVuc2lnbmVkIGxvbmcgYWRkcixcbi0tXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM1NjItfVxuaW5jbHVkZS9saW51eC9icGYuaDozNTYzOiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cbmluY2x1ZGUvbGludXgvYnBmLmgtMzU2NC1cbi0tXG5pbmNsdWRlL2xpbnV4L2JwZi5oPTM2MjE9dm9pZCB1bnByaXZfZWJwZl9ub3RpZnkoaW50IG5ld19zdGF0ZSk7XG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM2MjItXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM2MjM6I2lmIGRlZmluZWQoQ09ORklHX05FVCkgXHUwMDI2XHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxuaW5jbHVkZS9saW51eC9icGYuaC0zNjI0LWludCBicGZfZGV2X2JvdW5kX2tmdW5jX2NoZWNrKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0zNzI4PXN0YXRpYyBpbmxpbmUgaW50IGJwZl9wcm9nX3Rlc3RfcnVuX3N5c2NhbGwoc3RydWN0IGJwZl9wcm9nICpwcm9nLFxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmgtMzczNC1cbmluY2x1ZGUvbGludXgvYnBmLmg6MzczNTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3MzYtc3RhdGljIGlubGluZSBpbnQgc29ja19tYXBfZ2V0X2Zyb21fZmQoY29uc3QgdW5pb24gYnBmX2F0dHIgKmF0dHIsXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0zNzYwPXN0YXRpYyBpbmxpbmUgaW50IHNvY2tfbWFwX2xpbmtfY3JlYXRlKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0zNzYzLX1cbmluY2x1ZGUvbGludXgvYnBmLmg6Mzc2NDojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM3NjU6I2VuZGlmIC8qIENPTkZJR19ORVQgXHUwMDI2XHUwMDI2IENPTkZJR19CUEZfU1lTQ0FMTCAqL1xuaW5jbHVkZS9saW51eC9icGYuaC0zNzY2LVxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9Mzc2OD1icGZfcHJvZ19pbmNfbWlzc2VzX2NvdW50ZXJzKGNvbnN0IHN0cnVjdCBicGZfcHJvZ19hcnJheSAqYXJyYXkpXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0zNzgyLVxuaW5jbHVkZS9saW51eC9icGYuaDozNzgzOiNpZiBkZWZpbmVkKENPTkZJR19JTkVUKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3ODQtdm9pZCBicGZfc2tfcmV1c2Vwb3J0X2RldGFjaChzdHJ1Y3Qgc29jayAqc2spO1xuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9Mzc5MD1zdGF0aWMgaW5saW5lIHZvaWQgYnBmX3NrX3JldXNlcG9ydF9kZXRhY2goc3RydWN0IHNvY2sgKnNrKVxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmgtMzc5My1cbmluY2x1ZGUvbGludXgvYnBmLmg6Mzc5NDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3OTUtc3RhdGljIGlubGluZSBpbnQgYnBmX2ZkX3JldXNlcG9ydF9hcnJheV9sb29rdXBfZWxlbShzdHJ1Y3QgYnBmX21hcCAqbWFwLFxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9MzgwMT1zdGF0aWMgaW5saW5lIGludCBicGZfZmRfcmV1c2Vwb3J0X2FycmF5X3VwZGF0ZV9lbGVtKHN0cnVjdCBicGZfbWFwICptYXAsXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0zODA2LX1cbmluY2x1ZGUvbGludXgvYnBmLmg6MzgwNzojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM4MDg6I2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX0lORVQpIFx1MDAyNlx1MDAyNiBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTCkgKi9cbmluY2x1ZGUvbGludXgvYnBmLmgtMzgwOS1cbi0tXG5pbmNsdWRlL2xpbnV4L2JwZi5oPTM4MTE9c3RydWN0IGJwZl9rZXkge1xuLS1cbmluY2x1ZGUvbGludXgvYnBmLmgtMzgxNi1cbmluY2x1ZGUvbGludXgvYnBmLmg6MzgxNzojaWYgZGVmaW5lZChDT05GSUdfS0VZUykgXHUwMDI2XHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxuaW5jbHVkZS9saW51eC9icGYuaC0zODE4LXN0cnVjdCBicGZfa2V5ICpicGZfbG9va3VwX3VzZXJfa2V5KHMzMiBzZXJpYWwsIHU2NCBmbGFncyk7XG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0zODUxPXN0YXRpYyBpbmxpbmUgczMyIGJwZl9rZXlfc2VyaWFsKGNvbnN0IHN0cnVjdCBicGZfa2V5ICprZXkpXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0zODU0LX1cbmluY2x1ZGUvbGludXgvYnBmLmg6Mzg1NTojZW5kaWYgLyogZGVmaW5lZChDT05GSUdfS0VZUykgXHUwMDI2XHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKSAqL1xuaW5jbHVkZS9saW51eC9icGYuaC0zODU2LVxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9NDE1OD12b2lkIGJwZl9pbnNuX2FycmF5X2FkanVzdF9hZnRlcl9yZW1vdmUoc3RydWN0IGJwZl9tYXAgKm1hcCwgdTMyIG9mZiwgdTMyIGxlbik7XG5pbmNsdWRlL2xpbnV4L2JwZi5oLTQxNTktXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjQxNjA6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuaW5jbHVkZS9saW51eC9icGYuaC00MTYxLXZvaWQgYnBmX3Byb2dfdXBkYXRlX2luc25fcHRycyhzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIHUzMiAqb2Zmc2V0cywgdm9pZCAqaW1hZ2UpO1xuLS1cbmluY2x1ZGUvbGludXgvYnBmX2RlZnMuaC04LVxuaW5jbHVkZS9saW51eC9icGZfZGVmcy5oOjk6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuaW5jbHVkZS9saW51eC9icGZfZGVmcy5oLTEwLWJvb2wgYnBmX2FyZW5hX2hhbmRsZV9wYWdlX2ZhdWx0KHVuc2lnbmVkIGxvbmcgYWRkciwgYm9vbCBpc193cml0ZSwgdW5zaWduZWQgbG9uZyBmYXVsdF9pcCk7XG4tLVxuaW5jbHVkZS9saW51eC9idGYuaD01MzI9c3RydWN0IGJwZl92ZXJpZmllcl9sb2c7XG5pbmNsdWRlL2xpbnV4L2J0Zi5oLTUzMy1cbmluY2x1ZGUvbGludXgvYnRmLmg6NTM0OiNpZiBkZWZpbmVkKENPTkZJR19CUEZfSklUKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXG5pbmNsdWRlL2xpbnV4L2J0Zi5oLTUzNS1zdHJ1Y3QgYnBmX3N0cnVjdF9vcHM7XG4tLVxuaW5jbHVkZS9saW51eC9idGYuaD01NjA9c3RydWN0IGJ0Zl9maWVsZF9pdGVyIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2J0Zi5oLTU2Ny1cbmluY2x1ZGUvbGludXgvYnRmLmg6NTY4OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbGludXgvYnRmLmgtNTY5LWNvbnN0IHN0cnVjdCBidGZfdHlwZSAqYnRmX3R5cGVfYnlfaWQoY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLCB1MzIgdHlwZV9pZCk7XG4tLVxuaW5jbHVkZS9saW51eC9jZ3JvdXAtZGVmcy5oPTQ3ND1zdHJ1Y3QgY2dyb3VwIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmgtNjI4LVxuaW5jbHVkZS9saW51eC9jZ3JvdXAtZGVmcy5oOjYyOTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmgtNjMwLVx0c3RydWN0IGJwZl9sb2NhbF9zdG9yYWdlIF9fcmN1ICAqYnBmX2NncnBfc3RvcmFnZTtcbi0tXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTg4NT1zdGF0aWMgaW5saW5lIHZvaWQgYnBmX25ldF9jdHhfZ2V0X2FsbF91c2VkX2ZsdXNoX2xpc3RzKHN0cnVjdCBsaXN0X2hlYWQgKipsaF9tYXAsXG4tLVxuaW5jbHVkZS9saW51eC9maWx0ZXIuaC04OTQtXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oOjg5NTpcdGlmICghSVNfRU5BQkxFRChDT05GSUdfQlBGX1NZU0NBTEwpKVxuaW5jbHVkZS9saW51eC9maWx0ZXIuaC04OTYtXHRcdHJldHVybjtcbi0tXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTEyMDc9c3RydWN0IGJwZl9wcm9nICpicGZfcGF0Y2hfaW5zbl9zaW5nbGUoc3RydWN0IGJwZl9wcm9nICpwcm9nLCB1MzIgb2ZmLFxuLS1cbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtMTIwOS1cbmluY2x1ZGUvbGludXgvZmlsdGVyLmg6MTIxMDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTEyMTEtc3RydWN0IGJwZl9wcm9nICpicGZfcGF0Y2hfaW5zbl9kYXRhKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHUzMiBvZmYsXG4tLVxuaW5jbHVkZS9saW51eC9maWx0ZXIuaD0xMjI4PXN0YXRpYyBpbmxpbmUgdm9pZCBicGZfcmVzdG9yZV9pbnNuX2F1eF9kYXRhKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxuaW5jbHVkZS9saW51eC9maWx0ZXIuaC0xMjMxLX1cbmluY2x1ZGUvbGludXgvZmlsdGVyLmg6MTIzMjojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTEyMzMtXG4tLVxuaW5jbHVkZS9saW51eC9sc21faG9va19kZWZzLmg9NDM3PUxTTV9IT09LKHZvaWQsIExTTV9SRVRfVk9JRCwgYXVkaXRfcnVsZV9mcmVlLCB2b2lkICpsc21ydWxlKVxuLS1cbmluY2x1ZGUvbGludXgvbHNtX2hvb2tfZGVmcy5oLTQzOS1cbmluY2x1ZGUvbGludXgvbHNtX2hvb2tfZGVmcy5oOjQ0MDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaC00NDEtTFNNX0hPT0soaW50LCAwLCBicGYsIGludCBjbWQsIHVuaW9uIGJwZl9hdHRyICphdHRyLCB1bnNpZ25lZCBpbnQgc2l6ZSwgYm9vbCBrZXJuZWwpXG4tLVxuaW5jbHVkZS9saW51eC9sc21faG9va19kZWZzLmg9NDU0PUxTTV9IT09LKGludCwgMCwgYnBmX3Rva2VuX2NhcGFibGUsIGNvbnN0IHN0cnVjdCBicGZfdG9rZW4gKnRva2VuLCBpbnQgY2FwKVxuaW5jbHVkZS9saW51eC9sc21faG9va19kZWZzLmg6NDU1OiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cbmluY2x1ZGUvbGludXgvbHNtX2hvb2tfZGVmcy5oLTQ1Ni1cbi0tXG5pbmNsdWRlL2xpbnV4L21tLmg9MzE4Nz1leHRlcm4gaW50IGFjY2Vzc19yZW1vdGVfdm0oc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcixcbi0tXG5pbmNsdWRlL2xpbnV4L21tLmgtMzE4OS1cbmluY2x1ZGUvbGludXgvbW0uaDozMTkwOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbGludXgvbW0uaC0zMTkxLWV4dGVybiBpbnQgY29weV9yZW1vdGVfdm1fc3RyKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCB1bnNpZ25lZCBsb25nIGFkZHIsXG4tLVxuaW5jbHVkZS9saW51eC9zY2hlZC5oPTgyMD1zdHJ1Y3QgdGFza19zdHJ1Y3Qge1xuLS1cbmluY2x1ZGUvbGludXgvc2NoZWQuaC0xNTgzLSNlbmRpZlxuaW5jbHVkZS9saW51eC9zY2hlZC5oOjE1ODQ6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuaW5jbHVkZS9saW51eC9zY2hlZC5oLTE1ODUtXHQvKiBVc2VkIGJ5IEJQRiB0YXNrIGxvY2FsIHN0b3JhZ2UgKi9cbi0tXG5pbmNsdWRlL2xpbnV4L3NjaGVkL3VzZXIuaD0xND1zdHJ1Y3QgdXNlcl9zdHJ1Y3Qge1xuLS1cbmluY2x1ZGUvbGludXgvc2NoZWQvdXNlci5oLTI1LVxuaW5jbHVkZS9saW51eC9zY2hlZC91c2VyLmg6MjY6I2lmIGRlZmluZWQoQ09ORklHX1BFUkZfRVZFTlRTKSB8fCBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTCkgfHwgXFxcbmluY2x1ZGUvbGludXgvc2NoZWQvdXNlci5oLTI3LVx0ZGVmaW5lZChDT05GSUdfTkVUKSB8fCBkZWZpbmVkKENPTkZJR19JT19VUklORykgfHwgXFxcbi0tXG5pbmNsdWRlL2xpbnV4L3NlY3VyaXR5Lmg9MjI4OT1zdGF0aWMgaW5saW5lIHZvaWQgc2VjdXJpdHlmc19yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KVxuLS1cbmluY2x1ZGUvbGludXgvc2VjdXJpdHkuaC0yMjkzLVxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oOjIyOTQ6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oLTIyOTUtdW5pb24gYnBmX2F0dHI7XG4tLVxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oPTIzNjM9c3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfYnBmX3Rva2VuX2NhcGFibGUoY29uc3Qgc3RydWN0IGJwZl90b2tlbiAqdG9rZW4sIGludCBjYXApXG4tLVxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oLTIzNjctI2VuZGlmIC8qIENPTkZJR19TRUNVUklUWSAqL1xuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oOjIzNjg6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oLTIzNjktXG4tLVxuaW5jbHVkZS9uZXQvYWZfdnNvY2suaD0yNjE9ZXh0ZXJuIHN0cnVjdCBwcm90byB2c29ja19wcm90bztcbmluY2x1ZGUvbmV0L2FmX3Zzb2NrLmg6MjYyOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbmV0L2FmX3Zzb2NrLmgtMjYzLWludCB2c29ja19icGZfdXBkYXRlX3Byb3RvKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX3Bzb2NrICpwc29jaywgYm9vbCByZXN0b3JlKTtcbi0tXG5pbmNsdWRlL25ldC9icGZfc2tfc3RvcmFnZS5oPTI5PXN0cnVjdCBubGF0dHI7XG5pbmNsdWRlL25ldC9icGZfc2tfc3RvcmFnZS5oLTMwLVxuaW5jbHVkZS9uZXQvYnBmX3NrX3N0b3JhZ2UuaDozMTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL25ldC9icGZfc2tfc3RvcmFnZS5oLTMyLWludCBicGZfc2tfc3RvcmFnZV9jbG9uZShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpuZXdzayk7XG4tLVxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaD00NzY9Zmxvd19kaXNzZWN0b3JfaW5pdF9rZXlzKHN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfY29udHJvbCAqa2V5X2NvbnRyb2wsXG4tLVxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaC00ODItXG5pbmNsdWRlL25ldC9mbG93X2Rpc3NlY3Rvci5oOjQ4MzojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL25ldC9mbG93X2Rpc3NlY3Rvci5oLTQ4NC1pbnQgZmxvd19kaXNzZWN0b3JfYnBmX3Byb2dfYXR0YWNoX2NoZWNrKHN0cnVjdCBuZXQgKm5ldCxcbmluY2x1ZGUvbmV0L2Zsb3dfZGlzc2VjdG9yLmgtNDg1LVx0XHRcdFx0XHQgc3RydWN0IGJwZl9wcm9nICpwcm9nKTtcbmluY2x1ZGUvbmV0L2Zsb3dfZGlzc2VjdG9yLmg6NDg2OiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cbmluY2x1ZGUvbmV0L2Zsb3dfZGlzc2VjdG9yLmgtNDg3LVxuLS1cbmluY2x1ZGUvbmV0L2lwNl9maWIuaD02MzA9dm9pZCBmaWI2X2luZm9faHdfZmxhZ3Nfc2V0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGZpYjZfaW5mbyAqZjZpLFxuLS1cbmluY2x1ZGUvbmV0L2lwNl9maWIuaC02MzItXG5pbmNsdWRlL25ldC9pcDZfZmliLmg6NjMzOiNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXG5pbmNsdWRlL25ldC9pcDZfZmliLmgtNjM0LXN0cnVjdCBicGZfaXRlcl9faXB2Nl9yb3V0ZSB7XG4tLVxuaW5jbHVkZS9uZXQvbXB0Y3AuaD0zMjc9c3RhdGljIGlubGluZSB2b2lkIG1wdGNwdjZfaGFuZGxlX21hcHBlZChzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgbWFwcGVkKSB7IH1cbi0tXG5pbmNsdWRlL25ldC9tcHRjcC5oLTMyOS1cbmluY2x1ZGUvbmV0L21wdGNwLmg6MzMwOiNpZiBkZWZpbmVkKENPTkZJR19NUFRDUCkgXHUwMDI2XHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxuaW5jbHVkZS9uZXQvbXB0Y3AuaC0zMzEtc3RydWN0IG1wdGNwX3NvY2sgKmJwZl9tcHRjcF9zb2NrX2Zyb21fc3ViZmxvdyhzdHJ1Y3Qgc29jayAqc2spO1xuLS1cbmluY2x1ZGUvbmV0L3NvY2suaD0zNjU9c3RydWN0IHNvY2sge1xuLS1cbmluY2x1ZGUvbmV0L3NvY2suaC01ODYtXHRzdHJ1Y3Qgc29ja19yZXVzZXBvcnQgX19yY3VcdCpza19yZXVzZXBvcnRfY2I7XG5pbmNsdWRlL25ldC9zb2NrLmg6NTg3OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbmV0L3NvY2suaC01ODgtXHRzdHJ1Y3QgYnBmX2xvY2FsX3N0b3JhZ2UgX19yY3VcdCpza19icGZfc3RvcmFnZTtcbi0tXG5pbmNsdWRlL25ldC9zb2NrLmg9MTI5MT1zdHJ1Y3QgcHJvdG8ge1xuLS1cbmluY2x1ZGUvbmV0L3NvY2suaC0xMzQzLVx0dm9pZFx0XHRcdCgqcHV0X3BvcnQpKHN0cnVjdCBzb2NrICpzayk7XG5pbmNsdWRlL25ldC9zb2NrLmg6MTM0NDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL25ldC9zb2NrLmgtMTM0NS1cdGludFx0XHRcdCgqcHNvY2tfdXBkYXRlX3NrX3Byb3QpKHN0cnVjdCBzb2NrICpzayxcbi0tXG5pbmNsdWRlL25ldC90Y3AuaD0yODUzPXN0cnVjdCBza19wc29jaztcbmluY2x1ZGUvbmV0L3RjcC5oLTI4NTQtXG5pbmNsdWRlL25ldC90Y3AuaDoyODU1OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbmV0L3RjcC5oLTI4NTYtaW50IHRjcF9icGZfdXBkYXRlX3Byb3RvKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX3Bzb2NrICpwc29jaywgYm9vbCByZXN0b3JlKTtcbi0tXG5pbmNsdWRlL25ldC90Y3AuaD0yODYwPWludCB0Y3BfYnBmX3N0cnBfcmVhZF9zb2NrKHN0cnVjdCBzdHJwYXJzZXIgKnN0cnAsIHJlYWRfZGVzY3JpcHRvcl90ICpkZXNjLFxuLS1cbmluY2x1ZGUvbmV0L3RjcC5oLTI4NjItI2VuZGlmIC8qIENPTkZJR19CUEZfU1RSRUFNX1BBUlNFUiAqL1xuaW5jbHVkZS9uZXQvdGNwLmg6Mjg2MzojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL25ldC90Y3AuaC0yODY0LVxuLS1cbmluY2x1ZGUvbmV0L3RjcC5oPTI4NzM9aW50IHRjcF9icGZfc2VuZG1zZ19yZWRpcihzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgaW5ncmVzcyxcbi0tXG5pbmNsdWRlL25ldC90Y3AuaC0yODc2LVxuaW5jbHVkZS9uZXQvdGNwLmg6Mjg3NzojaWYgIWRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKSB8fCAhZGVmaW5lZChDT05GSUdfTkVUX1NPQ0tfTVNHKVxuaW5jbHVkZS9uZXQvdGNwLmgtMjg3OC1zdGF0aWMgaW5saW5lIHZvaWQgdGNwX2JwZl9jbG9uZShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpuZXdzaylcbi0tXG5pbmNsdWRlL25ldC90Y3guaD0xNDU9c3RhdGljIGlubGluZSBlbnVtIHRjeF9hY3Rpb25fYmFzZSB0Y3hfYWN0aW9uX2NvZGUoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5pbmNsdWRlL25ldC90Y3guaC0xNjEtXG5pbmNsdWRlL25ldC90Y3guaDoxNjI6I2lmIGRlZmluZWQoQ09ORklHX05FVF9YR1JFU1MpIFx1MDAyNlx1MDAyNiBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTClcbmluY2x1ZGUvbmV0L3RjeC5oLTE2My1pbnQgdGN4X3Byb2dfYXR0YWNoKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpO1xuLS1cbmluY2x1ZGUvbmV0L3RjeC5oPTIwMj1zdGF0aWMgaW5saW5lIHZvaWQgZGV2X3RjeF91bmluc3RhbGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5pbmNsdWRlL25ldC90Y3guaC0yMDQtfVxuaW5jbHVkZS9uZXQvdGN4Lmg6MjA1OiNlbmRpZiAvKiBDT05GSUdfTkVUX1hHUkVTUyBcdTAwMjZcdTAwMjYgQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL25ldC90Y3guaC0yMDYtI2VuZGlmIC8qIF9fTkVUX1RDWF9IICovXG4tLVxuaW5jbHVkZS9uZXQvdWRwLmg9NjMyPXN0YXRpYyBpbmxpbmUgdm9pZCB1ZHBfcG9zdF9zZWdtZW50X2ZpeF9jc3VtKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuaW5jbHVkZS9uZXQvdWRwLmgtNjUwLVxuaW5jbHVkZS9uZXQvdWRwLmg6NjUxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbmV0L3VkcC5oLTY1Mi1zdHJ1Y3Qgc2tfcHNvY2s7XG4tLVxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg9MTUwPURFRklORV9FVkVOVCh4ZHBfcmVkaXJlY3RfdGVtcGxhdGUsIHhkcF9yZWRpcmVjdF9lcnIsXG4tLVxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmgtMTcwLVxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg6MTcxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oLTE3Mi1UUkFDRV9FVkVOVCh4ZHBfY3B1bWFwX2t0aHJlYWQsXG4tLVxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg9MjUwPVRSQUNFX0VWRU5UKHhkcF9kZXZtYXBfeG1pdCxcbi0tXG5pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAuaC0yODQtKTtcbmluY2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oOjI4NTojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAuaC0yODYtXG4tLVxua2VybmVsL2JwZi9NYWtlZmlsZT03PUNGTEFHU19jb3JlLm8gJiM0Mzs9IC1Xbm8tb3ZlcnJpZGUtaW5pdCAkKGNmbGFncy1ub2djc2UteXkpXG5rZXJuZWwvYnBmL01ha2VmaWxlLTgtXG5rZXJuZWwvYnBmL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gc3lzY2FsbC5vIHZlcmlmaWVyLm8gaW5vZGUubyBoZWxwZXJzLm8gdG51bS5vIGNudW0ubyBsb2cubyB0b2tlbi5vIGxpdmVuZXNzLm8gY29uc3RfZm9sZC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjEwOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJwZl9pdGVyLm8gbWFwX2l0ZXIubyB0YXNrX2l0ZXIubyBwcm9nX2l0ZXIubyBsaW5rX2l0ZXIub1xua2VybmVsL2JwZi9NYWtlZmlsZToxMTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBoYXNodGFiLm8gYXJyYXltYXAubyBwZXJjcHVfZnJlZWxpc3QubyBicGZfbHJ1X2xpc3QubyBscG1fdHJpZS5vIG1hcF9pbl9tYXAubyBibG9vbV9maWx0ZXIub1xua2VybmVsL2JwZi9NYWtlZmlsZToxMjpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBsb2NhbF9zdG9yYWdlLm8gcXVldWVfc3RhY2tfbWFwcy5vIHJpbmdidWYubyBicGZfaW5zbl9hcnJheS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjEzOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJwZl9sb2NhbF9zdG9yYWdlLm8gYnBmX3Rhc2tfc3RvcmFnZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjE0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGZpeHVwcy5vIGNmZy5vIHN0YXRlcy5vIGJhY2t0cmFjay5vIGNoZWNrX2J0Zi5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTE1LW9iai0ke0NPTkZJR19CUEZfTFNNfVx0ICAmIzQzOz0gYnBmX2lub2RlX3N0b3JhZ2Uub1xua2VybmVsL2JwZi9NYWtlZmlsZToxNjpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBkaXNhc20ubyBtcHJvZy5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTE3LW9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gdHJhbXBvbGluZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjE4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJ0Zi5vIG1lbWFsbG9jLm8gcnFzcGlubG9jay5vIHN0cmVhbS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTE5LWlmZXEgKCQoQ09ORklHX01NVSkkKENPTkZJR182NEJJVCkseXkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjIwOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGFyZW5hLm8gcmFuZ2VfdHJlZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTIxLWVuZGlmXG4tLVxua2VybmVsL2JwZi9NYWtlZmlsZT0yMz1pZmVxICgkKENPTkZJR19ORVQpLHkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGRldm1hcC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGNwdW1hcC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI2Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IG9mZmxvYWQub1xua2VybmVsL2JwZi9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBuZXRfbmFtZXNwYWNlLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6Mjg6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gdGN4Lm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtMjktZW5kaWZcbmtlcm5lbC9icGYvTWFrZWZpbGU9MzA9aWZlcSAoJChDT05GSUdfUEVSRl9FVkVOVFMpLHkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjMxOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHN0YWNrbWFwLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtMzItZW5kaWZcbmtlcm5lbC9icGYvTWFrZWZpbGU9MzM9aWZlcSAoJChDT05GSUdfQ0dST1VQUykseSlcbmtlcm5lbC9icGYvTWFrZWZpbGU6MzQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gY2dyb3VwX2l0ZXIubyBicGZfY2dycF9zdG9yYWdlLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtMzUtZW5kaWZcbi0tXG5rZXJuZWwvYnBmL01ha2VmaWxlPTM3PWlmZXEgKCQoQ09ORklHX0lORVQpLHkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjM4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHJldXNlcG9ydF9hcnJheS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTM5LWVuZGlmXG4tLVxua2VybmVsL2JwZi9NYWtlZmlsZT00Mz1pZmVxICgkKENPTkZJR19CUEZfSklUKSx5KVxua2VybmVsL2JwZi9NYWtlZmlsZTo0NDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBicGZfc3RydWN0X29wcy5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGNwdW1hc2sub1xua2VybmVsL2JwZi9NYWtlZmlsZS00Ni0jIGJwZl9sc21fcHJvdG8ubyBtdXN0IHByZWNlZGUgYnBmX2xzbS5vLiBUaGUgY3VycmVudCBwYWhvbGUgbG9naWNcbi0tXG5rZXJuZWwvYnBmL01ha2VmaWxlPTU4PWlmbmVxICgkKENPTkZJR19DUllQVE8pLClcbmtlcm5lbC9icGYvTWFrZWZpbGU6NTk6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gY3J5cHRvLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtNjAtZW5kaWZcbmtlcm5lbC9icGYvTWFrZWZpbGU9NjE9b2JqLSQoQ09ORklHX0JQRl9QUkVMT0FEKSAmIzQzOz0gcHJlbG9hZC9cbmtlcm5lbC9icGYvTWFrZWZpbGUtNjItXG5rZXJuZWwvYnBmL01ha2VmaWxlOjYzOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHJlbG9fY29yZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJ0Zl9pdGVyLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6NjU6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gYnRmX3JlbG9jYXRlLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6NjY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0ga21lbV9jYWNoZV9pdGVyLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtNjctaWZlcSAoJChDT05GSUdfRE1BX1NIQVJFRF9CVUZGRVIpLHkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGRtYWJ1Zl9pdGVyLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtNjktZW5kaWZcbi0tXG5rZXJuZWwvYnBmL2NvcmUuYz05OT1zdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nX2FsbG9jX25vX3N0YXRzKHVuc2lnbmVkIGludCBzaXplLCBnZnBfdCBnZnBfZXh0cmFfZmxhZ3MpXG4tLVxua2VybmVsL2JwZi9jb3JlLmMtMTQxLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU0MTgKCQkJCQkJCW91dHB1dDogOTEKCQkJCQkJCXRob3VnaHRzOiA0MzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIEJQRiBWZXJpZmllciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjaGFuZ2UgdG8gdGhlIEJQRiB2ZXJpZmllciwgc3BlY2lmaWNhbGx5IGFyb3VuZCBpbmRpcmVjdCBqdW1wcywgb3IgYGdvdG94YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gZW5hYmxlIHRoZSByZWxldmFudCBjb2RlIGlzIGBDT05GSUdfQlBGX1NZU0NBTExgLCBhcyB0aGUgdmVyaWZpZXIgaXRzZWxmIGlzIG9ubHkgY29tcGlsZWQgd2hlbiB0aGF0JiMzOTtzIHNldC4gSSBzaG91bGQgZG91YmxlLWNoZWNrLCB0aG91Z2gsIHRvIGVuc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzLgoKTG9va2luZyBhdCB0aGUgY29kZSBtb2RpZmljYXRpb25zLCB0aGUgcGF0Y2ggdG91Y2hlcyBga2VybmVsL2JwZi92ZXJpZmllci5jYCBhbmQgYSBzZWxmLXRlc3QsIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guY2AuIFRoZSB0ZXN0IHVzZXMgYEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUmAsIHdoaWNoIHN1Z2dlc3RzIGBDT05GSUdfTkVUYCAqbWlnaHQqIGJlIHJlbGV2YW50LCBidXQgYENPTkZJR19CUEZfU1lTQ0FMTGAgaXMgbGlrZWx5IHRoZSBrZXkgb25lLiBMZXQmIzM5O3MgY29uZmlybSB0aGF0IGBDT05GSUdfQlBGX1NZU0NBTExgIGFsb25lIGlzIHN1ZmZpY2llbnQgdG8gdHJpZ2dlciB0aGUgY29tcGlsYXRpb24gb2YgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFllcywgaXQgYXBwZWFycyBzby4KCk5vdywgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhlIGNvcmUgb2YgdGhlIGNoYW5nZS4gYGNoZWNrX2luZGlyZWN0X2p1bXBgIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdhcyBtb2RpZmllZDsgdGhhdCYjMzk7cyB0aGUgZm9jYWwgcG9pbnQuIFdoaWxlIGBicGZfZmluZF9jb250YWluaW5nX3N1YnByb2dgIGlzIGFsc28gY2FsbGVkLCBpdCYjMzk7cyBhbiBleGlzdGluZyBmdW5jdGlvbi4gYGNoZWNrX2luZGlyZWN0X2p1bXBgIGlzIHRoZSBrZXkgZnVuY3Rpb24gdG8gZnV6ei4KCklzIGBjaGVja19pbmRpcmVjdF9qdW1wYCBzdGF0aWM/IFllcywgaXQgaXM6IGBzdGF0aWMgaW50IGNoZWNrX2luZGlyZWN0X2p1bXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuKWAuIEl0IHJlc2lkZXMgd2l0aGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLgoKSSYjMzk7dmUgY29uZmlybWVkIHRoYXQgYGNoZWNrX2luZGlyZWN0X2p1bXBgIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIG1vZGlmaWVkLiBTbywgbXkgcmVhc29uaW5nIGlzIGFzIGZvbGxvd3M6IFRoZSBwYXRjaCBpcyBmdW5jdGlvbmFsbHkgc2lnbmlmaWNhbnQgYmVjYXVzZSBpdCBpbnRyb2R1Y2VzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyLiBUaGlzIGNoYW5nZSBkaXJlY3RseSBpbXBhY3RzIHRoZSBjb3JlIEJQRiB2ZXJpZmljYXRpb24gcHJvY2VzcywgYWltaW5nIHRvIHByZXZlbnQganVtcHMgb3V0c2lkZSBvZiB0aGUgY3VycmVudCBzdWJwcm9ncmFtLiBUaGVyZWZvcmUsIEkmIzM5O2xsIGZsYWcgdGhpcyBhcyB3b3J0aCBmdXp6aW5nLCBmb2N1c2luZyBvbiB0aGUgYGNoZWNrX2luZGlyZWN0X2p1bXBgIGZ1bmN0aW9uIGFuZCByZXF1aXJpbmcgYENPTkZJR19CUEZfU1lTQ0FMTGAgdG8gYmUgZW5hYmxlZC4KCk15IGNvbmZpZ3VyYXRpb24gd2lsbCBiZToKCiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqCiogICAqKkZvY3VzU3ltYm9sczogXFsmIzM0O2NoZWNrXF9pbmRpcmVjdFxfanVtcCYjMzQ7XSoqCiogICAqKkVuYWJsZUNvbmZpZ3M6IFxbJiMzNDtCUEZcX1NZU0NBTEwmIzM0O10qKgoqICAgKipSZWFzb25pbmc6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBpbmRpcmVjdCBqdW1wcyAoZ290b3gpIGluIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJldmVudCBqdW1waW5nIG91dHNpZGUgdGhlIGN1cnJlbnQgc3VicHJvZ3JhbS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgQlBGIHZlcmlmaWNhdGlvbiBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OyoqCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfaW5kaXJlY3RfanVtcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQganVtcGluZyBvdXRzaWRlIHRoZSBjdXJyZW50IHN1YnByb2dyYW0uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEJQRiB2ZXJpZmljYXRpb24gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfaW5kaXJlY3RfanVtcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQganVtcGluZyBvdXRzaWRlIHRoZSBjdXJyZW50IHN1YnByb2dyYW0uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEJQRiB2ZXJpZmljYXRpb24gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yOFQxNDoxODozNi4wNDIyMTU4NTdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NTA3OTc5Mzc1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNoZWNrX2luZGlyZWN0X2p1bXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQganVtcGluZyBvdXRzaWRlIHRoZSBjdXJyZW50IHN1YnByb2dyYW0uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEJQRiB2ZXJpZmljYXRpb24gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE0OjE4OjM2LjA0MjIyNTQ5N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ0MzEyMDE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOWNjNTUyMjgwNGY3MTAwOTA5NjFiMzcwM2U5YmMzZjc2N2RlNWE4ZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1biAyOCAxNDoxODozNCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5pbmRleCBlYjQ2YTgxYThjNTFhYy4uMDVhOTk2YTVlY2RkMjUgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXFxuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuQEAgLTE3MTQ1LDkgKzE3MTQ1LDExIEBAIHN0YXRpYyBpbnQgaW5kaXJlY3RfanVtcF9taW5fbWF4X2luZGV4KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuIHN0YXRpYyBpbnQgY2hlY2tfaW5kaXJlY3RfanVtcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24pXFxuIHtcXG4gXFx0c3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqb3RoZXJfYnJhbmNoO1xcbitcXHRzdHJ1Y3QgYnBmX3N1YnByb2dfaW5mbyAqc3VicHJvZztcXG4gXFx0c3RydWN0IGJwZl9yZWdfc3RhdGUgKmRzdF9yZWc7XFxuIFxcdHN0cnVjdCBicGZfbWFwICptYXA7XFxuIFxcdHUzMiBtaW5faW5kZXgsIG1heF9pbmRleDtcXG4rXFx0aW50IHN1YnByb2dfc3RhcnQsIHN1YnByb2dfZW5kO1xcbiBcXHRpbnQgZXJyID0gMDtcXG4gXFx0aW50IG47XFxuIFxcdGludCBpO1xcbkBAIC0xNzE4OCw2ICsxNzE5MCwyMyBAQCBzdGF0aWMgaW50IGNoZWNrX2luZGlyZWN0X2p1bXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppblxcbiBcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFx0fVxcbiBcXG4rXFx0c3VicHJvZyA9IGJwZl9maW5kX2NvbnRhaW5pbmdfc3VicHJvZyhlbnYsIGVudi1cXHUwMDNlaW5zbl9pZHgpO1xcbitcXHRpZiAodmVyaWZpZXJfYnVnX2lmKCFzdWJwcm9nLCBlbnYsXFxuK1xcdFxcdFxcdCAgICBcXFwiZ290b3ggaW5zbiAlZCBpcyBvdXRzaWRlIHN1YnByb2cgYm91bmRzXFxcXG5cXFwiLFxcbitcXHRcXHRcXHQgICAgZW52LVxcdTAwM2VpbnNuX2lkeCkpXFxuK1xcdFxcdHJldHVybiAtRUZBVUxUO1xcbitcXHRzdWJwcm9nX3N0YXJ0ID0gc3VicHJvZy1cXHUwMDNlc3RhcnQ7XFxuK1xcdHN1YnByb2dfZW5kID0gKHN1YnByb2cgKyAxKS1cXHUwMDNlc3RhcnQ7XFxuK1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbjsgaSsrKSB7XFxuK1xcdFxcdHUzMiB0YXJnZXQgPSBlbnYtXFx1MDAzZWdvdG94X3RtcF9idWYtXFx1MDAzZWl0ZW1zW2ldO1xcbitcXG4rXFx0XFx0aWYgKHRhcmdldCBcXHUwMDNjIHN1YnByb2dfc3RhcnQgfHwgdGFyZ2V0IFxcdTAwM2U9IHN1YnByb2dfZW5kKSB7XFxuK1xcdFxcdFxcdHZlcmJvc2UoZW52LCBcXFwiZ290b3ggdGFyZ2V0ICV1IG91dHNpZGUgc3VicHJvZ1xcXFxuXFxcIiwgdGFyZ2V0KTtcXG4rXFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXG4gXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIG4gLSAxOyBpKyspIHtcXG4gXFx0XFx0bWFya19pbmRpcmVjdF90YXJnZXQoZW52LCBlbnYtXFx1MDAzZWdvdG94X3RtcF9idWYtXFx1MDAzZWl0ZW1zW2ldKTtcXG4gXFx0XFx0b3RoZXJfYnJhbmNoID0gcHVzaF9zdGFjayhlbnYsIGVudi1cXHUwMDNlZ290b3hfdG1wX2J1Zi1cXHUwMDNlaXRlbXNbaV0sXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvYnBmX2dvdG94LmNcXG5pbmRleCA3M2RjNjM4ODJiN2Q1NS4uOTk3NzI0YzYxYzhiNjAgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvYnBmX2dvdG94LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guY1xcbkBAIC0yNTUsNiArMjU1LDMwIEBAIHN0YXRpYyBpbnQgY3JlYXRlX2p0X21hcChfX3UzMiBtYXhfZW50cmllcylcXG4gXFx0XFx0XFx0ICAgICAga2V5X3NpemUsIHZhbHVlX3NpemUsIG1heF9lbnRyaWVzLCBOVUxMKTtcXG4gfVxcbiBcXG4rc3RhdGljIGludCBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KF9fdTMyIHRhcmdldClcXG4re1xcbitcXHRzdHJ1Y3QgYnBmX2luc25fYXJyYXlfdmFsdWUgdmFsID0geyAub3JpZ19vZmYgPSB0YXJnZXQgfTtcXG4rXFx0X191MzIga2V5ID0gMDtcXG4rXFx0aW50IG1hcF9mZDtcXG4rXFxuK1xcdG1hcF9mZCA9IGNyZWF0ZV9qdF9tYXAoMSk7XFxuK1xcdGlmICghQVNTRVJUX0dFKG1hcF9mZCwgMCwgXFxcImNyZWF0ZV9qdF9tYXBcXFwiKSlcXG4rXFx0XFx0cmV0dXJuIC0xO1xcbitcXG4rXFx0aWYgKCFBU1NFUlRfRVEoYnBmX21hcF91cGRhdGVfZWxlbShtYXBfZmQsIFxcdTAwMjZrZXksIFxcdTAwMjZ2YWwsIDApLFxcbitcXHRcXHQgICAgICAgMCwgXFxcImJwZl9tYXBfdXBkYXRlX2VsZW1cXFwiKSkge1xcbitcXHRcXHRjbG9zZShtYXBfZmQpO1xcbitcXHRcXHRyZXR1cm4gLTE7XFxuK1xcdH1cXG4rXFxuK1xcdGlmICghQVNTRVJUX0VRKGJwZl9tYXBfZnJlZXplKG1hcF9mZCksIDAsIFxcXCJicGZfbWFwX2ZyZWV6ZVxcXCIpKSB7XFxuK1xcdFxcdGNsb3NlKG1hcF9mZCk7XFxuK1xcdFxcdHJldHVybiAtMTtcXG4rXFx0fVxcbitcXG4rXFx0cmV0dXJuIG1hcF9mZDtcXG4rfVxcbitcXG4gc3RhdGljIGludCBwcm9nX2xvYWQoc3RydWN0IGJwZl9pbnNuICppbnNucywgX191MzIgaW5zbl9jbnQpXFxuIHtcXG4gXFx0cmV0dXJuIGJwZl9wcm9nX2xvYWQoQlBGX1BST0dfVFlQRV9SQVdfVFJBQ0VQT0lOVCwgTlVMTCwgXFxcIkdQTFxcXCIsIGluc25zLCBpbnNuX2NudCwgTlVMTCk7XFxuQEAgLTM5Myw2ICs0MTcsNTIgQEAgcmVqZWN0X29mZnNldHMoc3RydWN0IGJwZl9pbnNuICppbnNucywgX191MzIgaW5zbl9jbnQsIGludCBvZmYxLCBpbnQgb2ZmMiwgaW50IG9cXG4gXFx0XFx0Y2xvc2UocHJvZ19mZCk7XFxuIH1cXG4gXFxuK3N0YXRpYyB2b2lkXFxuK2NoZWNrX2Nyb3NzX3N1YnByb2dfZ290b3hfdGFyZ2V0KHZvaWQpXFxuK3tcXG4rXFx0c3RydWN0IGJwZl9pbnNuIGluc25zW10gPSB7XFxuK1xcdFxcdC8qIG1haW4gc3VicHJvZyBbMCwxNCkgKi9cXG4rXFx0XFx0QlBGX01PVjY0X1JFRyhCUEZfUkVHXzYsIEJQRl9SRUdfMSksXFxuK1xcdFxcdEJQRl9SQVdfSU5TTihCUEZfSk1QIHwgQlBGX0NBTEwsIDAsIEJQRl9QU0VVRE9fQ0FMTCwgMCwgMTIpLFxcbitcXHRcXHRCUEZfTERYX01FTShCUEZfVywgQlBGX1JFR183LCBCUEZfUkVHXzYsIDApLFxcbitcXHRcXHRCUEZfSk1QX0lNTShCUEZfSkVRLCBCUEZfUkVHXzcsIDAsIDQpLFxcbitcXHRcXHRCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLFxcbitcXHRcXHRCUEZfTERYX01FTShCUEZfRFcsIEJQRl9SRUdfMiwgQlBGX1JFR18yLCAwKSxcXG4rXFx0XFx0QlBGX0pNUF9BKDMpLFxcbitcXHRcXHRCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLFxcbitcXHRcXHRCUEZfTERYX01FTShCUEZfRFcsIEJQRl9SRUdfMiwgQlBGX1JFR18yLCAwKSxcXG4rXFx0XFx0QlBGX1JBV19JTlNOKEJQRl9KTVAgfCBCUEZfSkEgfCBCUEZfWCwgQlBGX1JFR18yLCAwLCAwLCAwKSxcXG4rXFx0XFx0QlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDEpLFxcbitcXHRcXHRCUEZfRVhJVF9JTlNOKCksXFxuK1xcbitcXHRcXHQvKiBzdGF0aWMgc3VicHJvZyBbMTQsMTYpICovXFxuK1xcdFxcdEJQRl9NT1Y2NF9JTU0oQlBGX1JFR18wLCA0MiksXFxuK1xcdFxcdEJQRl9FWElUX0lOU04oKSxcXG4rXFx0fTtcXG4rXFx0aW50IGdvb2RfZmQsIGJhZF9mZCwgcHJvZ19mZDtcXG4rXFxuK1xcdGdvb2RfZmQgPSBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KDEyKTtcXG4rXFx0aWYgKCFBU1NFUlRfR0UoZ29vZF9mZCwgMCwgXFxcImNyZWF0ZV9nb29kX2p0X21hcFxcXCIpKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbitcXHRiYWRfZmQgPSBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KDE0KTtcXG4rXFx0aWYgKCFBU1NFUlRfR0UoYmFkX2ZkLCAwLCBcXFwiY3JlYXRlX2JhZF9qdF9tYXBcXFwiKSkge1xcbitcXHRcXHRjbG9zZShnb29kX2ZkKTtcXG4rXFx0XFx0cmV0dXJuO1xcbitcXHR9XFxuK1xcbitcXHRpbnNuc1s0XS5pbW0gPSBiYWRfZmQ7XFxuK1xcdGluc25zWzhdLmltbSA9IGdvb2RfZmQ7XFxuK1xcbitcXHRwcm9nX2ZkID0gYnBmX3Byb2dfbG9hZChCUEZfUFJPR19UWVBFX1NPQ0tFVF9GSUxURVIsIE5VTEwsIFxcXCJHUExcXFwiLFxcbitcXHRcXHRcXHRcXHRpbnNucywgQVJSQVlfU0laRShpbnNucyksIE5VTEwpO1xcbitcXHRpZiAoIUFTU0VSVF9FUShwcm9nX2ZkLCAtRUlOVkFMLCBcXFwiY3Jvc3Nfc3VicHJvZ19nb3RveF9wcm9nX2xvYWRcXFwiKSlcXG4rXFx0XFx0Y2xvc2UocHJvZ19mZCk7XFxuK1xcbitcXHRjbG9zZShiYWRfZmQpO1xcbitcXHRjbG9zZShnb29kX2ZkKTtcXG4rfVxcbitcXG4gLypcXG4gICogVmVyaWZ5IGEgYml0IG1vcmUgY29tcGxleCBwcm9ncmFtcyB3aGljaCBpbmNsdWRlIGluZGlyZWN0IGp1bXBzXFxuICAqIGFuZCB3aXRoIGp1bXAgdGFibGVzIGxvYWRlZCB3aXRoIGEgbm9uLXplcm8gb2Zmc2V0XFxuQEAgLTU0MSw1ICs2MTEsOCBAQCB2b2lkIHRlc3RfYnBmX2dvdG94KHZvaWQpXFxuIFxcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFxcXCJjaGVjay1sZGltbTY0LW9mZi1nb3RveC1sbHZtXFxcIikpXFxuIFxcdFxcdF9fc3VidGVzdChza2VsLCBjaGVja19sZGltbTY0X29mZl9nb3RveF9sbHZtKTtcXG4gXFxuK1xcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFxcXCJjaGVjay1jcm9zcy1zdWJwcm9nLWdvdG94LXRhcmdldFxcXCIpKVxcbitcXHRcXHRjaGVja19jcm9zc19zdWJwcm9nX2dvdG94X3RhcmdldCgpO1xcbitcXG4gXFx0YnBmX2dvdG94X19kZXN0cm95KHNrZWwpO1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE0OjE4OjM2LjU4NzI2NTg1NFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODQ1MzQ3MDUxNzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19pbmRpcmVjdF9qdW1wXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIGluZGlyZWN0IGp1bXBzIChnb3RveCkgaW4gdGhlIEJQRiB2ZXJpZmllciB0byBwcmV2ZW50IGp1bXBpbmcgb3V0c2lkZSB0aGUgY3VycmVudCBzdWJwcm9ncmFtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBCUEYgdmVyaWZpY2F0aW9uIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDljYzU1MjI4MDRmNzEwMDkwOTYxYjM3MDNlOWJjM2Y3NjdkZTVhOGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1biAyOCAxNDoxODozNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuaW5kZXggZWI0NmE4MWE4YzUxYWMuLjA1YTk5NmE1ZWNkZDI1IDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXG4rKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbkBAIC0xNzE0NSw5ICsxNzE0NSwxMSBAQCBzdGF0aWMgaW50IGluZGlyZWN0X2p1bXBfbWluX21heF9pbmRleChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIHN0YXRpYyBpbnQgY2hlY2tfaW5kaXJlY3RfanVtcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24pXG4ge1xuIFx0c3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqb3RoZXJfYnJhbmNoO1xuK1x0c3RydWN0IGJwZl9zdWJwcm9nX2luZm8gKnN1YnByb2c7XG4gXHRzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqZHN0X3JlZztcbiBcdHN0cnVjdCBicGZfbWFwICptYXA7XG4gXHR1MzIgbWluX2luZGV4LCBtYXhfaW5kZXg7XG4rXHRpbnQgc3VicHJvZ19zdGFydCwgc3VicHJvZ19lbmQ7XG4gXHRpbnQgZXJyID0gMDtcbiBcdGludCBuO1xuIFx0aW50IGk7XG5AQCAtMTcxODgsNiArMTcxOTAsMjMgQEAgc3RhdGljIGludCBjaGVja19pbmRpcmVjdF9qdW1wKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5cbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHR9XG4gXG4rXHRzdWJwcm9nID0gYnBmX2ZpbmRfY29udGFpbmluZ19zdWJwcm9nKGVudiwgZW52LVx1MDAzZWluc25faWR4KTtcbitcdGlmICh2ZXJpZmllcl9idWdfaWYoIXN1YnByb2csIGVudixcbitcdFx0XHQgICAgXCJnb3RveCBpbnNuICVkIGlzIG91dHNpZGUgc3VicHJvZyBib3VuZHNcXG5cIixcbitcdFx0XHQgICAgZW52LVx1MDAzZWluc25faWR4KSlcbitcdFx0cmV0dXJuIC1FRkFVTFQ7XG4rXHRzdWJwcm9nX3N0YXJ0ID0gc3VicHJvZy1cdTAwM2VzdGFydDtcbitcdHN1YnByb2dfZW5kID0gKHN1YnByb2cgKyAxKS1cdTAwM2VzdGFydDtcbitcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG47IGkrKykge1xuK1x0XHR1MzIgdGFyZ2V0ID0gZW52LVx1MDAzZWdvdG94X3RtcF9idWYtXHUwMDNlaXRlbXNbaV07XG4rXG4rXHRcdGlmICh0YXJnZXQgXHUwMDNjIHN1YnByb2dfc3RhcnQgfHwgdGFyZ2V0IFx1MDAzZT0gc3VicHJvZ19lbmQpIHtcbitcdFx0XHR2ZXJib3NlKGVudiwgXCJnb3RveCB0YXJnZXQgJXUgb3V0c2lkZSBzdWJwcm9nXFxuXCIsIHRhcmdldCk7XG4rXHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXHRcdH1cbitcdH1cbitcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG4gLSAxOyBpKyspIHtcbiBcdFx0bWFya19pbmRpcmVjdF90YXJnZXQoZW52LCBlbnYtXHUwMDNlZ290b3hfdG1wX2J1Zi1cdTAwM2VpdGVtc1tpXSk7XG4gXHRcdG90aGVyX2JyYW5jaCA9IHB1c2hfc3RhY2soZW52LCBlbnYtXHUwMDNlZ290b3hfdG1wX2J1Zi1cdTAwM2VpdGVtc1tpXSxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jXG5pbmRleCA3M2RjNjM4ODJiN2Q1NS4uOTk3NzI0YzYxYzhiNjAgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvYnBmX2dvdG94LmNcbkBAIC0yNTUsNiArMjU1LDMwIEBAIHN0YXRpYyBpbnQgY3JlYXRlX2p0X21hcChfX3UzMiBtYXhfZW50cmllcylcbiBcdFx0XHQgICAgICBrZXlfc2l6ZSwgdmFsdWVfc2l6ZSwgbWF4X2VudHJpZXMsIE5VTEwpO1xuIH1cbiBcbitzdGF0aWMgaW50IGNyZWF0ZV9qdF9tYXBfd2l0aF90YXJnZXQoX191MzIgdGFyZ2V0KVxuK3tcbitcdHN0cnVjdCBicGZfaW5zbl9hcnJheV92YWx1ZSB2YWwgPSB7IC5vcmlnX29mZiA9IHRhcmdldCB9O1xuK1x0X191MzIga2V5ID0gMDtcbitcdGludCBtYXBfZmQ7XG4rXG4rXHRtYXBfZmQgPSBjcmVhdGVfanRfbWFwKDEpO1xuK1x0aWYgKCFBU1NFUlRfR0UobWFwX2ZkLCAwLCBcImNyZWF0ZV9qdF9tYXBcIikpXG4rXHRcdHJldHVybiAtMTtcbitcbitcdGlmICghQVNTRVJUX0VRKGJwZl9tYXBfdXBkYXRlX2VsZW0obWFwX2ZkLCBcdTAwMjZrZXksIFx1MDAyNnZhbCwgMCksXG4rXHRcdCAgICAgICAwLCBcImJwZl9tYXBfdXBkYXRlX2VsZW1cIikpIHtcbitcdFx0Y2xvc2UobWFwX2ZkKTtcbitcdFx0cmV0dXJuIC0xO1xuK1x0fVxuK1xuK1x0aWYgKCFBU1NFUlRfRVEoYnBmX21hcF9mcmVlemUobWFwX2ZkKSwgMCwgXCJicGZfbWFwX2ZyZWV6ZVwiKSkge1xuK1x0XHRjbG9zZShtYXBfZmQpO1xuK1x0XHRyZXR1cm4gLTE7XG4rXHR9XG4rXG4rXHRyZXR1cm4gbWFwX2ZkO1xuK31cbitcbiBzdGF0aWMgaW50IHByb2dfbG9hZChzdHJ1Y3QgYnBmX2luc24gKmluc25zLCBfX3UzMiBpbnNuX2NudClcbiB7XG4gXHRyZXR1cm4gYnBmX3Byb2dfbG9hZChCUEZfUFJPR19UWVBFX1JBV19UUkFDRVBPSU5ULCBOVUxMLCBcIkdQTFwiLCBpbnNucywgaW5zbl9jbnQsIE5VTEwpO1xuQEAgLTM5Myw2ICs0MTcsNTIgQEAgcmVqZWN0X29mZnNldHMoc3RydWN0IGJwZl9pbnNuICppbnNucywgX191MzIgaW5zbl9jbnQsIGludCBvZmYxLCBpbnQgb2ZmMiwgaW50IG9cbiBcdFx0Y2xvc2UocHJvZ19mZCk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkXG4rY2hlY2tfY3Jvc3Nfc3VicHJvZ19nb3RveF90YXJnZXQodm9pZClcbit7XG4rXHRzdHJ1Y3QgYnBmX2luc24gaW5zbnNbXSA9IHtcbitcdFx0LyogbWFpbiBzdWJwcm9nIFswLDE0KSAqL1xuK1x0XHRCUEZfTU9WNjRfUkVHKEJQRl9SRUdfNiwgQlBGX1JFR18xKSxcbitcdFx0QlBGX1JBV19JTlNOKEJQRl9KTVAgfCBCUEZfQ0FMTCwgMCwgQlBGX1BTRVVET19DQUxMLCAwLCAxMiksXG4rXHRcdEJQRl9MRFhfTUVNKEJQRl9XLCBCUEZfUkVHXzcsIEJQRl9SRUdfNiwgMCksXG4rXHRcdEJQRl9KTVBfSU1NKEJQRl9KRVEsIEJQRl9SRUdfNywgMCwgNCksXG4rXHRcdEJQRl9MRF9JTU02NF9SQVcoQlBGX1JFR18yLCBCUEZfUFNFVURPX01BUF9WQUxVRSwgMCksXG4rXHRcdEJQRl9MRFhfTUVNKEJQRl9EVywgQlBGX1JFR18yLCBCUEZfUkVHXzIsIDApLFxuK1x0XHRCUEZfSk1QX0EoMyksXG4rXHRcdEJQRl9MRF9JTU02NF9SQVcoQlBGX1JFR18yLCBCUEZfUFNFVURPX01BUF9WQUxVRSwgMCksXG4rXHRcdEJQRl9MRFhfTUVNKEJQRl9EVywgQlBGX1JFR18yLCBCUEZfUkVHXzIsIDApLFxuK1x0XHRCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQSB8IEJQRl9YLCBCUEZfUkVHXzIsIDAsIDAsIDApLFxuK1x0XHRCUEZfTU9WNjRfSU1NKEJQRl9SRUdfMCwgMSksXG4rXHRcdEJQRl9FWElUX0lOU04oKSxcbitcbitcdFx0Lyogc3RhdGljIHN1YnByb2cgWzE0LDE2KSAqL1xuK1x0XHRCUEZfTU9WNjRfSU1NKEJQRl9SRUdfMCwgNDIpLFxuK1x0XHRCUEZfRVhJVF9JTlNOKCksXG4rXHR9O1xuK1x0aW50IGdvb2RfZmQsIGJhZF9mZCwgcHJvZ19mZDtcbitcbitcdGdvb2RfZmQgPSBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KDEyKTtcbitcdGlmICghQVNTRVJUX0dFKGdvb2RfZmQsIDAsIFwiY3JlYXRlX2dvb2RfanRfbWFwXCIpKVxuK1x0XHRyZXR1cm47XG4rXG4rXHRiYWRfZmQgPSBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KDE0KTtcbitcdGlmICghQVNTRVJUX0dFKGJhZF9mZCwgMCwgXCJjcmVhdGVfYmFkX2p0X21hcFwiKSkge1xuK1x0XHRjbG9zZShnb29kX2ZkKTtcbitcdFx0cmV0dXJuO1xuK1x0fVxuK1xuK1x0aW5zbnNbNF0uaW1tID0gYmFkX2ZkO1xuK1x0aW5zbnNbOF0uaW1tID0gZ29vZF9mZDtcbitcbitcdHByb2dfZmQgPSBicGZfcHJvZ19sb2FkKEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUiwgTlVMTCwgXCJHUExcIixcbitcdFx0XHRcdGluc25zLCBBUlJBWV9TSVpFKGluc25zKSwgTlVMTCk7XG4rXHRpZiAoIUFTU0VSVF9FUShwcm9nX2ZkLCAtRUlOVkFMLCBcImNyb3NzX3N1YnByb2dfZ290b3hfcHJvZ19sb2FkXCIpKVxuK1x0XHRjbG9zZShwcm9nX2ZkKTtcbitcbitcdGNsb3NlKGJhZF9mZCk7XG4rXHRjbG9zZShnb29kX2ZkKTtcbit9XG4rXG4gLypcbiAgKiBWZXJpZnkgYSBiaXQgbW9yZSBjb21wbGV4IHByb2dyYW1zIHdoaWNoIGluY2x1ZGUgaW5kaXJlY3QganVtcHNcbiAgKiBhbmQgd2l0aCBqdW1wIHRhYmxlcyBsb2FkZWQgd2l0aCBhIG5vbi16ZXJvIG9mZnNldFxuQEAgLTU0MSw1ICs2MTEsOCBAQCB2b2lkIHRlc3RfYnBmX2dvdG94KHZvaWQpXG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcImNoZWNrLWxkaW1tNjQtb2ZmLWdvdG94LWxsdm1cIikpXG4gXHRcdF9fc3VidGVzdChza2VsLCBjaGVja19sZGltbTY0X29mZl9nb3RveF9sbHZtKTtcbiBcbitcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwiY2hlY2stY3Jvc3Mtc3VicHJvZy1nb3RveC10YXJnZXRcIikpXG4rXHRcdGNoZWNrX2Nyb3NzX3N1YnByb2dfZ290b3hfdGFyZ2V0KCk7XG4rXG4gXHRicGZfZ290b3hfX2Rlc3Ryb3koc2tlbCk7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTQ6MTg6MzYuNTg3MjY4Njg0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE0MTMyOTcxNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCUEYgVmVyaWZpZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBNeSBpbml0aWFsIHJlYWQgdGVsbHMgbWUgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLiBJdCBzZWVtcyB0aGV5J3ZlIGFkZGVkIGEgY2hlY2sgd2l0aGluIHRoZSBgY2hlY2tfaW5kaXJlY3RfanVtcGAgZnVuY3Rpb24uIFRoZSBnb2FsIGlzIHRvIGVuc3VyZSB0aGF0IGEgYGdvdG94YCBpbnN0cnVjdGlvbiwgb3IgaW5kaXJlY3QganVtcCwgaXNuJ3QgdGFyZ2V0aW5nIGFuIGluc3RydWN0aW9uIG91dHNpZGUgdGhlIGN1cnJlbnQgc3VicHJvZ3JhbSdzIGJvdW5kcy4gVGhpcyBpcyBhIHNvbGlkIHNhZmV0eSBtZWFzdXJlOyB3ZSBkb24ndCB3YW50IHByb2dyYW1zIGp1bXBpbmcgYWxsIG92ZXIgdGhlIHBsYWNlLiBQcmV2ZW50aW5nIGBnb3RveGAgZnJvbSBqdW1waW5nIGludG8gb3RoZXIgc3VicHJvZ3JhbXMgaXMgZGVmaW5pdGVseSBhIGRlc2lyYWJsZSBvdXRjb21lLlxuXG5MZXQncyBkaXZlIGludG8gdGhlIGNvZGUgc25pcHBldCBpdHNlbGY6XG5cbmBgYGNcbitcdHN1YnByb2cgPSBicGZfZmluZF9jb250YWluaW5nX3N1YnByb2coZW52LCBlbnYtXHUwMDNlaW5zbl9pZHgpO1xuK1x0aWYgKHZlcmlmaWVyX2J1Z19pZighc3VicHJvZywgZW52LFxuK1x0XHRcdCAgICBcImdvdG94IGluc24gJWQgaXMgb3V0c2lkZSBzdWJwcm9nIGJvdW5kc1xcblwiLFxuK1x0XHRcdCAgICBlbnYtXHUwMDNlaW5zbl9pZHgpKVxuK1x0XHRyZXR1cm4gLUVGQVVMVDtcbitcdHN1YnByb2dfc3RhcnQgPSBzdWJwcm9nLVx1MDAzZXN0YXJ0O1xuK1x0c3VicHJvZ19lbmQgPSAoc3VicHJvZyArIDEpLVx1MDAzZXN0YXJ0O1xuK1xuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgbjsgaSsrKSB7XG4rXHRcdHUzMiB0YXJnZXQgPSBlbnYtXHUwMDNlZ290b3hfdG1wX2J1Zi1cdTAwM2VpdGVtc1tpXTtcbitcbitcdFx0aWYgKHRhcmdldCBcdTAwM2Mgc3VicHJvZ19zdGFydCB8fCB0YXJnZXQgXHUwMDNlPSBzdWJwcm9nX2VuZCkge1xuK1x0XHRcdHZlcmJvc2UoZW52LCBcImdvdG94IHRhcmdldCAldSBvdXRzaWRlIHN1YnByb2dcXG5cIiwgdGFyZ2V0KTtcbitcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbitcdFx0fVxuK1x0fVxuYGBgXG5cblllcCwgaXQncyBkb2luZyBleGFjdGx5IHdoYXQgSSB0aG91Z2h0LiBJdCBmaW5kcyB0aGUgc3VicHJvZ3JhbSB0aGF0IHRoZSBjdXJyZW50IGluc3RydWN0aW9uIHJlc2lkZXMgaW4sIGNoZWNrcyBpZiBpdCdzIGdvdG94LCB0aGVuIGl0ZXJhdGVzIHRocm91Z2ggYWxsIHBvdGVudGlhbCB0YXJnZXRzIHRvIG1ha2Ugc3VyZSB0aGV5J3JlIHdpdGhpbiB0aGUgY29uZmluZXMgb2YgdGhhdCBzdWJwcm9ncmFtLiBJZiB0aGV5J3JlIG5vdCwgaXQgZmxhZ3MgYW4gZXJyb3IgYW5kIHJldHVybnMgYC1FSU5WQUxgLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBzaWduaWZpY2FudCBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQlBGIHZlcmlmaWVyLlxuXG5Gcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZSwgSSdkIHNheSB0aGlzIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIHRhcmdldC4gSSdsbCBtYXJrIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbkZvciBmb2N1cyBzeW1ib2xzLCBgY2hlY2tfaW5kaXJlY3RfanVtcGAgaXMgdGhlIGtleSBmdW5jdGlvbiB0byBmb2N1cyBvbi4gYGJwZl9maW5kX2NvbnRhaW5pbmdfc3VicHJvZ2AgKm1pZ2h0KiBiZSByZWxldmFudCwgYnV0IGl0J3MgYW4gZXhpc3RpbmcgZnVuY3Rpb24sIHNvIGxldCdzIHN0aWNrIHdpdGggdGhlIGNvcmUgb2YgdGhlIGNoYW5nZTogYGNoZWNrX2luZGlyZWN0X2p1bXBgLlxuXG5BcyBmb3IgY29uZmlndXJhdGlvbiwgQlBGIGlzIGdlbmVyYWxseSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBJJ2xsIG1ha2Ugc3VyZSB0byB2ZXJpZnkgdGhlIGNvbnRleHQgb2YgYENPTkZJR19CUEZfU1lTQ0FMTGAg4oCTIGl0J3MgdGhlIHByaW1hcnkgY29uZmlnIHRvIGNoZWNrLiBMZXQncyBtYWtlIHN1cmUgdGhlIGRlcGVuZGVuY2llcyBhcmUgYXMgd2UgZXhwZWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjk5LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTQ6MTk6MjguMDAwNTcwOTQ2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5NzQxMDY1MTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2hlY2tfaW5kaXJlY3RfanVtcFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTcxMTE9c3RhdGljIGludCBpbmRpcmVjdF9qdW1wX21pbl9tYXhfaW5kZXgoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzE0NC0vKiBnb3RveCAqZHN0X3JlZyAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNzE0NTpzdGF0aWMgaW50IGNoZWNrX2luZGlyZWN0X2p1bXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzE0Ni17XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTcyMjI9c3RhdGljIGludCBkb19jaGVja19pbnNuKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGJvb2wgKmRvX3ByaW50X3N0YXRlKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3Mjk0LVxcdFxcdFxcdGlmIChCUEZfU1JDKGluc24tXFx1MDAzZWNvZGUpID09IEJQRl9YKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNzI5NTpcXHRcXHRcXHRcXHRyZXR1cm4gY2hlY2tfaW5kaXJlY3RfanVtcChlbnYsIGluc24pO1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzI5Ni1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTQ6MTk6MzAuOTc0Njg1ODA1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTg2NjA5MDE1MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgZXhwZXJ0OlxuXG4qKkZ1enppbmcgdGhlIGBjaGVja19pbmRpcmVjdF9qdW1wYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIGBjaGVja19pbmRpcmVjdF9qdW1wYCBpcyB0cmlnZ2VyZWQgd2l0aGluIGBkb19jaGVja19pbnNuYCB3aGVuZXZlciBhIEJQRiBpbnN0cnVjdGlvbiB1c2VzIGBCUEZfWGAgYXMgaXRzIHNvdXJjZSBvcGVyYW5kLiBUaGF0IHNjcmVhbXMgXCJpbmRpcmVjdCBqdW1wLFwiIGFuZCB0aGF0IG1lYW5zIGl0J3MgYSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBCUEYgdmVyaWZpZXLigJRpdCAqaGFzKiB0byBiZSByZWFjaGFibGUgZHVyaW5nIG5vcm1hbCBvcGVyYXRpb24uIFRoaXMgbWFrZXMgaXQgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIFdlIG5lZWQgdG8gcmVhbGx5IHRlc3QgaXRzIGJvdW5kYXJpZXMuXG5cbkdpdmVuIGl0cyBjcnVjaWFsIHJvbGUsIGl0J3Mgd29ydGggY2hlY2tpbmcgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGFuZCB0aGVpciBpbXBsaWNhdGlvbnMgZm9yIHRoaXMgZnVuY3Rpb24ncyBiZWhhdmlvdXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgZW52aXJvbm1lbnRhbCBmYWN0b3JzIGNvdWxkIGluZmx1ZW5jZSBpdHMgZXhlY3V0aW9uIHBhdGhzIGFuZCBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLiBJJ2xsIG1ha2Ugc3VyZSB0byBnZXQgdGhvc2UgY292ZXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDk5OCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE0OjE5OjQ5LjYzNTU5MTkyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwNDU5OTQ0NzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX0JQRl9TWVNDQUxMXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTEyNCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9zY2hlZHVsZXIvc2NoZWQtZXh0LnJzdD0zNT1vcHRpb25zIHNob3VsZCBiZSBlbmFibGVkIHRvIHVzZSBzY2hlZF9leHQ6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1leHQucnN0LTQwLSAgICBDT05GSUdfU0NIRURfQ0xBU1NfRVhUPXlcXG5Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1leHQucnN0OjQxOiAgICBDT05GSUdfQlBGX1NZU0NBTEw9eVxcbkRvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLWV4dC5yc3QtNDItICAgIENPTkZJR19CUEZfSklUPXlcXG4tLVxcbkRvY3VtZW50YXRpb24vdHJhY2UvZnByb2JldHJhY2UucnN0PTg0PXBhcmFtZXRlcnMgYnkgaXRzIG5hbWUgaW5zdGVhZCBvZiBgYCRhcmdOYGAuIFRoaXMgZmVhdHVyZSBpcyBhdmFpbGFibGUgaWYgdGhlXFxuRG9jdW1lbnRhdGlvbi90cmFjZS9mcHJvYmV0cmFjZS5yc3Q6ODU6a2VybmVsIGlzIGNvbmZpZ3VyZWQgd2l0aCBDT05GSUdfQlBGX1NZU0NBTEwgYW5kIENPTkZJR19ERUJVR19JTkZPX0JURi5cXG5Eb2N1bWVudGF0aW9uL3RyYWNlL2Zwcm9iZXRyYWNlLnJzdC04Ni1JZiB1c2VyIG9ubHkgc3BlY2lmeSB0aGUgQlRGIGFyZ3VtZW50LCB0aGUgZXZlbnQncyBhcmd1bWVudCBuYW1lIGlzIGFsc29cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c0X2RlZmNvbmZpZz00PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c0X2RlZmNvbmZpZzo1OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzRfZGVmY29uZmlnLTYtQ09ORklHX0lLQ09ORklHPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZz00PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZzo1OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzVfZGVmY29uZmlnLTYtQ09ORklHX0lLQ09ORklHPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz0zPUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZzo0OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnLTUtQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnLTEtIyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnOjI6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZy0zLUNPTkZJR19TQ0hFRF9BVVRPR1JPVVA9eVxcbi0tXFxuYXJjaC9hcm0va2VybmVsL3NwZWN0cmUuYz04PXN0YXRpYyBib29sIF91bnByaXZpbGVnZWRfZWJwZl9lbmFibGVkKHZvaWQpXFxuYXJjaC9hcm0va2VybmVsL3NwZWN0cmUuYy05LXtcXG5hcmNoL2FybS9rZXJuZWwvc3BlY3RyZS5jOjEwOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5hcmNoL2FybS9rZXJuZWwvc3BlY3RyZS5jLTExLVxcdHJldHVybiAhc3lzY3RsX3VucHJpdmlsZWdlZF9icGZfZGlzYWJsZWQ7XFxuLS1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTU9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzo2OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy03LUNPTkZJR19CUEZfSklUPXlcXG4tLVxcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmM9MTEwPXN0YXRpYyBib29sIF91bnByaXZpbGVnZWRfZWJwZl9lbmFibGVkKHZvaWQpXFxuYXJjaC9hcm02NC9rZXJuZWwvcHJvdG9uLXBhY2suYy0xMTEte1xcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmM6MTEyOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5hcmNoL2FybTY0L2tlcm5lbC9wcm90b24tcGFjay5jLTExMy1cXHRyZXR1cm4gIXN5c2N0bF91bnByaXZpbGVnZWRfYnBmX2Rpc2FibGVkO1xcbi0tXFxuYXJjaC9hcm02NC9rZXJuZWwvcHJvdG9uLXBhY2suYz0xMTY3PXZvaWQgX19pbml0IHNwZWN0cmVfYmhiX3BhdGNoX2NsZWFyYmhiKHN0cnVjdCBhbHRfaW5zdHIgKmFsdCxcXG4tLVxcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmMtMTE3OC1cXG5hcmNoL2FybTY0L2tlcm5lbC9wcm90b24tcGFjay5jOjExNzk6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmMtMTE4MC0jZGVmaW5lIEVCUEZfV0FSTiBcXFwiVW5wcml2aWxlZ2VkIGVCUEYgaXMgZW5hYmxlZCwgZGF0YSBsZWFrcyBwb3NzaWJsZSB2aWEgU3BlY3RyZSB2MiBCSEIgYXR0YWNrcyFcXFxcblxcXCJcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9Nj1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjc6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTgtQ09ORklHX1BSRUVNUFQ9eVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZz02PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6NzpDT05GSUdfQlBGX1NZU0NBTEw9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWctOC1DT05GSUdfQlBGX0pJVD15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZz03PUNPTkZJR19FWFBFUlQ9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWctOS0jIENPTkZJR19TWVNGU19TWVNDQUxMIGlzIG5vdCBzZXRcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZzoxMDpDT05GSUdfQlBGX1NZU0NBTEw9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnLTExLSMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc9Nz1DT05GSUdfRVhQRVJUPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnLTktIyBDT05GSUdfU1lTRlNfU1lTQ0FMTCBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTA6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZy0xMS0jIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZz03PUNPTkZJR19FWFBFUlQ9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnLTktIyBDT05GSUdfU1lTRlNfU1lTQ0FMTCBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEwOkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnLTExLSMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnPTM9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjQ6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctNS1DT05GSUdfVEFTS1NUQVRTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZz0zPUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo0OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnLTUtQ09ORklHX1RBU0tTVEFUUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz0zPUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnOjQ6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZy01LUNPTkZJR19UQVNLU1RBVFM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc9MTY9Q09ORklHX0JMS19ERVZfSU5JVFJEPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzoxNzpDT05GSUdfQlBGX1NZU0NBTEw9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnLTE4LUNPTkZJR19VU0VSRkFVTFRGRD15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnPTc9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzo4OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZy05LUNPTkZJR19CUEZfSklUPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZz0xNj1DT05GSUdfS0FMTFNZTVNfQUxMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvZnNwMl9kZWZjb25maWc6MTc6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvZnNwMl9kZWZjb25maWctMTgtQ09ORklHX0VYUEVSVD15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZz0yOD1DT05GSUdfQkxLX0RFVl9JTklUUkQ9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnOjI5OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG93ZXJudl9kZWZjb25maWctMzAtIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc9Nj1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc6NzpDT05GSUdfQlBGX1NZU0NBTEw9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0X2RlZmNvbmZpZy04LUNPTkZJR19CUEZfSklUPXlcXG4tLVxcbmFyY2gvcmlzY3YvY29uZmlncy9kZWZjb25maWc9ND1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnOjU6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnLTYtQ09ORklHX0lLQ09ORklHPXlcXG4tLVxcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZz04PUNPTkZJR19QT1NJWF9BVVhfQ0xPQ0tTPXlcXG5hcmNoL3MzOTAvY29uZmlncy9kZWJ1Z19kZWZjb25maWc6OTpDT05GSUdfQlBGX1NZU0NBTEw9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZy0xMC1DT05GSUdfQlBGX0pJVD15XFxuLS1cXG5hcmNoL3MzOTAvY29uZmlncy9kZWZjb25maWc9Nz1DT05GSUdfUE9TSVhfQVVYX0NMT0NLUz15XFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnOjg6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL3MzOTAvY29uZmlncy9kZWZjb25maWctOS1DT05GSUdfQlBGX0pJVD15XFxuLS1cXG5hcmNoL3MzOTAvY29uZmlncy96ZmNwZHVtcF9kZWZjb25maWc9Mz1DT05GSUdfUE9TSVhfQVVYX0NMT0NLUz15XFxuYXJjaC9zMzkwL2NvbmZpZ3MvemZjcGR1bXBfZGVmY29uZmlnOjQ6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL3MzOTAvY29uZmlncy96ZmNwZHVtcF9kZWZjb25maWctNS0jIENPTkZJR19DUFVfSVNPTEFUSU9OIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvczM5MC9rZXJuZWwvTWFrZWZpbGU9ODA9b2JqLSQoQ09ORklHX1RSQUNFUE9JTlRTKVxcdCs9IHRyYWNlLm9cXG5hcmNoL3MzOTAva2VybmVsL01ha2VmaWxlLTgxLVxcbmFyY2gvczM5MC9rZXJuZWwvTWFrZWZpbGU6ODI6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKVxcdCs9IGJwZi5vXFxuYXJjaC9zMzkwL2tlcm5lbC9NYWtlZmlsZS04My1cXG4tLVxcbmFyY2gveDg2L2tlcm5lbC9jcHUvYnVncy5jPTE2NTU9c3RhdGljIGlubGluZSBjb25zdCBjaGFyICpzcGVjdHJlX3YyX21vZHVsZV9zdHJpbmcodm9pZCkgeyByZXR1cm4gXFxcIlxcXCI7IH1cXG4tLVxcbmFyY2gveDg2L2tlcm5lbC9jcHUvYnVncy5jLTE2NjItXFxuYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmM6MTY2MzojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmMtMTY2NC12b2lkIHVucHJpdl9lYnBmX25vdGlmeShpbnQgbmV3X3N0YXRlKVxcbi0tXFxuY3J5cHRvL01ha2VmaWxlPTI0PW9iai0kKENPTkZJR19DUllQVE9fU0tDSVBIRVIyKSArPSBjcnlwdG9fc2tjaXBoZXIub1xcbmNyeXB0by9NYWtlZmlsZToyNTppZmVxICgkKENPTkZJR19CUEZfU1lTQ0FMTCkseSlcXG5jcnlwdG8vTWFrZWZpbGUtMjYtb2JqLSQoQ09ORklHX0NSWVBUT19TS0NJUEhFUjIpICs9IGJwZl9jcnlwdG9fc2tjaXBoZXIub1xcbi0tXFxuZHJpdmVycy9iYXNlL3Bvd2VyL3Bvd2VyLmg9MTY1PXN0YXRpYyBpbmxpbmUgdm9pZCBkZXZpY2VfcG1faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL2Jhc2UvcG93ZXIvcG93ZXIuaC0xNzEtXFxuZHJpdmVycy9iYXNlL3Bvd2VyL3Bvd2VyLmg6MTcyOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5kcml2ZXJzL2Jhc2UvcG93ZXIvcG93ZXIuaC0xNzMtc3RydWN0IGJwZl93c19sb2NrIHsgfTtcXG4tLVxcbmRyaXZlcnMvYmFzZS9wb3dlci93YWtldXAuYz0xMTYzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHdha2V1cF9zb3VyY2VzX3N0YXRzX2ZvcHMgPSB7XFxuLS1cXG5kcml2ZXJzL2Jhc2UvcG93ZXIvd2FrZXVwLmMtMTE3MC1cXG5kcml2ZXJzL2Jhc2UvcG93ZXIvd2FrZXVwLmM6MTE3MTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuZHJpdmVycy9iYXNlL3Bvd2VyL3dha2V1cC5jLTExNzItI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2J0Zi5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9iYXNlL3Bvd2VyL3dha2V1cC5jPTEyMzM9c3RhdGljIGlubGluZSB2b2lkIHdha2V1cF9zb3VyY2VzX2JwZl9pbml0KHZvaWQpIHt9XFxuZHJpdmVycy9iYXNlL3Bvd2VyL3dha2V1cC5jOjEyMzQ6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmRyaXZlcnMvYmFzZS9wb3dlci93YWtldXAuYy0xMjM1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9NYWtlZmlsZT02ND1lbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvTWFrZWZpbGUtNjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9NYWtlZmlsZTo2NjppZmVxICgkKENPTkZJR19CUEZfU1lTQ0FMTCkseSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL01ha2VmaWxlLTY3LW5mcC1vYmpzICs9IFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZwX2FwcC5jPTE4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZwX2FwcF90eXBlICphcHBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfYXBwLmMtMTktXFx0W05GUF9BUFBfQ09SRV9OSUNdXFx0PSBcXHUwMDI2YXBwX25pYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9hcHAuYzoyMDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfYXBwLmMtMjEtXFx0W05GUF9BUFBfQlBGX05JQ11cXHQ9IFxcdTAwMjZhcHBfYnBmLFxcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlPTU9bmV0ZGV2c2ltLW9ianMgOj0gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlLTctXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlOjg6aWZlcSAoJChDT05GSUdfQlBGX1NZU0NBTEwpLHkpXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlLTktbmV0ZGV2c2ltLW9ianMgKz0gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oPTE3OD12b2lkIG5zaW1fdWRwX3R1bm5lbHNfaW5mb19kZXN0cm95KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaC0xNzktXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oOjE4MDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oLTE4MS1pbnQgbnNpbV9icGZfZGV2X2luaXQoc3RydWN0IG5zaW1fZGV2ICpuc2ltX2Rldik7XFxuLS1cXG5mcy92ZXJpdHkvZnN2ZXJpdHlfcHJpdmF0ZS5oPTEwMz1mc3Zlcml0eV9tc2coY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqbGV2ZWwsXFxuLS1cXG5mcy92ZXJpdHkvZnN2ZXJpdHlfcHJpdmF0ZS5oLTExMi1cXG5mcy92ZXJpdHkvZnN2ZXJpdHlfcHJpdmF0ZS5oOjExMzojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuZnMvdmVyaXR5L2ZzdmVyaXR5X3ByaXZhdGUuaC0xMTQtdm9pZCBfX2luaXQgZnN2ZXJpdHlfaW5pdF9icGYodm9pZCk7XFxuLS1cXG5mcy92ZXJpdHkvbWVhc3VyZS5jPTEwNT1FWFBPUlRfU1lNQk9MX0dQTChmc3Zlcml0eV9nZXRfZGlnZXN0KTtcXG5mcy92ZXJpdHkvbWVhc3VyZS5jLTEwNi1cXG5mcy92ZXJpdHkvbWVhc3VyZS5jOjEwNzojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuZnMvdmVyaXR5L21lYXN1cmUuYy0xMDgtXFxuLS1cXG5mcy92ZXJpdHkvbWVhc3VyZS5jPTE4Mz12b2lkIF9faW5pdCBmc3Zlcml0eV9pbml0X2JwZih2b2lkKVxcbi0tXFxuZnMvdmVyaXR5L21lYXN1cmUuYy0xODctXFxuZnMvdmVyaXR5L21lYXN1cmUuYzoxODg6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0yMTkwPXN0YXRpYyBpbmxpbmUgYm9vbCBpc190cmFjaW5nX211bHRpKGVudW0gYnBmX2F0dGFjaF90eXBlIHR5cGUpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTIxOTUtXFxuaW5jbHVkZS9saW51eC9icGYuaDoyMTk2OiNpZiBkZWZpbmVkKENPTkZJR19CUEZfSklUKSBcXHUwMDI2XFx1MDAyNiBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTClcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTIxOTctLyogVGhpcyBtYWNybyBoZWxwcyBkZXZlbG9wZXIgdG8gcmVnaXN0ZXIgYSBzdHJ1Y3Rfb3BzIHR5cGUgYW5kIGdlbmVyYXRlXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oPTI1NDc9c3RhdGljIGlubGluZSBzdHJ1Y3QgYnBmX3J1bl9jdHggKmJwZl9zZXRfcnVuX2N0eChzdHJ1Y3QgYnBmX3J1bl9jdHggKm5ld19jdHgpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTI1NTAtXFxuaW5jbHVkZS9saW51eC9icGYuaDoyNTUxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTI1NTItXFx0b2xkX2N0eCA9IGN1cnJlbnQtXFx1MDAzZWJwZl9jdHg7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oPTI1NTg9c3RhdGljIGlubGluZSB2b2lkIGJwZl9yZXNldF9ydW5fY3R4KHN0cnVjdCBicGZfcnVuX2N0eCAqb2xkX2N0eClcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTI1NTkte1xcbmluY2x1ZGUvbGludXgvYnBmLmg6MjU2MDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9saW51eC9icGYuaC0yNTYxLVxcdGN1cnJlbnQtXFx1MDAzZWJwZl9jdHggPSBvbGRfY3R4O1xcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0yNjUxPWJvb2wgYnBmX2ppdF9ieXBhc3Nfc3BlY192NCh2b2lkKTtcXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmgtMjY1NS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjI2NTY6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbGludXgvYnBmLmgtMjY1Ny1ERUNMQVJFX1BFUl9DUFUoaW50LCBicGZfcHJvZ19hY3RpdmUpO1xcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0zMjE3PWJwZl9wcm9nX3J1bl9hcnJheV9zbGVlcGFibGUoY29uc3Qgc3RydWN0IGJwZl9wcm9nX2FycmF5ICphcnJheSxcXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmgtMzI2NS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjMyNjY6I2Vsc2UgLyogIUNPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmluY2x1ZGUvbGludXgvYnBmLmgtMzI2Ny1zdGF0aWMgaW5saW5lIHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2dfZ2V0KHUzMiB1ZmQpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oPTM1NTk9c3RhdGljIGlubGluZSB2b2lkIGJwZl9wcm9nX3JlcG9ydF9hcmVuYV92aW9sYXRpb24oYm9vbCB3cml0ZSwgdW5zaWduZWQgbG9uZyBhZGRyLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaC0zNTYyLX1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM1NjM6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmluY2x1ZGUvbGludXgvYnBmLmgtMzU2NC1cXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmg9MzYyMT12b2lkIHVucHJpdl9lYnBmX25vdGlmeShpbnQgbmV3X3N0YXRlKTtcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM2MjItXFxuaW5jbHVkZS9saW51eC9icGYuaDozNjIzOiNpZiBkZWZpbmVkKENPTkZJR19ORVQpIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxcbmluY2x1ZGUvbGludXgvYnBmLmgtMzYyNC1pbnQgYnBmX2Rldl9ib3VuZF9rZnVuY19jaGVjayhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0zNzI4PXN0YXRpYyBpbmxpbmUgaW50IGJwZl9wcm9nX3Rlc3RfcnVuX3N5c2NhbGwoc3RydWN0IGJwZl9wcm9nICpwcm9nLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaC0zNzM0LVxcbmluY2x1ZGUvbGludXgvYnBmLmg6MzczNTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9saW51eC9icGYuaC0zNzM2LXN0YXRpYyBpbmxpbmUgaW50IHNvY2tfbWFwX2dldF9mcm9tX2ZkKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0zNzYwPXN0YXRpYyBpbmxpbmUgaW50IHNvY2tfbWFwX2xpbmtfY3JlYXRlKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3NjMtfVxcbmluY2x1ZGUvbGludXgvYnBmLmg6Mzc2NDojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXFxuaW5jbHVkZS9saW51eC9icGYuaDozNzY1OiNlbmRpZiAvKiBDT05GSUdfTkVUIFxcdTAwMjZcXHUwMDI2IENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmluY2x1ZGUvbGludXgvYnBmLmgtMzc2Ni1cXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmg9Mzc2OD1icGZfcHJvZ19pbmNfbWlzc2VzX2NvdW50ZXJzKGNvbnN0IHN0cnVjdCBicGZfcHJvZ19hcnJheSAqYXJyYXkpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3ODItXFxuaW5jbHVkZS9saW51eC9icGYuaDozNzgzOiNpZiBkZWZpbmVkKENPTkZJR19JTkVUKSBcXHUwMDI2XFx1MDAyNiBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTClcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3ODQtdm9pZCBicGZfc2tfcmV1c2Vwb3J0X2RldGFjaChzdHJ1Y3Qgc29jayAqc2spO1xcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0zNzkwPXN0YXRpYyBpbmxpbmUgdm9pZCBicGZfc2tfcmV1c2Vwb3J0X2RldGFjaChzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3OTMtXFxuaW5jbHVkZS9saW51eC9icGYuaDozNzk0OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3OTUtc3RhdGljIGlubGluZSBpbnQgYnBmX2ZkX3JldXNlcG9ydF9hcnJheV9sb29rdXBfZWxlbShzdHJ1Y3QgYnBmX21hcCAqbWFwLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0zODAxPXN0YXRpYyBpbmxpbmUgaW50IGJwZl9mZF9yZXVzZXBvcnRfYXJyYXlfdXBkYXRlX2VsZW0oc3RydWN0IGJwZl9tYXAgKm1hcCxcXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmgtMzgwNi19XFxuaW5jbHVkZS9saW51eC9icGYuaDozODA3OiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM4MDg6I2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX0lORVQpIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKSAqL1xcbmluY2x1ZGUvbGludXgvYnBmLmgtMzgwOS1cXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmg9MzgxMT1zdHJ1Y3QgYnBmX2tleSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM4MTYtXFxuaW5jbHVkZS9saW51eC9icGYuaDozODE3OiNpZiBkZWZpbmVkKENPTkZJR19LRVlTKSBcXHUwMDI2XFx1MDAyNiBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTClcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM4MTgtc3RydWN0IGJwZl9rZXkgKmJwZl9sb29rdXBfdXNlcl9rZXkoczMyIHNlcmlhbCwgdTY0IGZsYWdzKTtcXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmg9Mzg1MT1zdGF0aWMgaW5saW5lIHMzMiBicGZfa2V5X3NlcmlhbChjb25zdCBzdHJ1Y3QgYnBmX2tleSAqa2V5KVxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaC0zODU0LX1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM4NTU6I2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX0tFWVMpIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKSAqL1xcbmluY2x1ZGUvbGludXgvYnBmLmgtMzg1Ni1cXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmg9NDE1OD12b2lkIGJwZl9pbnNuX2FycmF5X2FkanVzdF9hZnRlcl9yZW1vdmUoc3RydWN0IGJwZl9tYXAgKm1hcCwgdTMyIG9mZiwgdTMyIGxlbik7XFxuaW5jbHVkZS9saW51eC9icGYuaC00MTU5LVxcbmluY2x1ZGUvbGludXgvYnBmLmg6NDE2MDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9saW51eC9icGYuaC00MTYxLXZvaWQgYnBmX3Byb2dfdXBkYXRlX2luc25fcHRycyhzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIHUzMiAqb2Zmc2V0cywgdm9pZCAqaW1hZ2UpO1xcbi0tXFxuaW5jbHVkZS9saW51eC9icGZfZGVmcy5oLTgtXFxuaW5jbHVkZS9saW51eC9icGZfZGVmcy5oOjk6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbGludXgvYnBmX2RlZnMuaC0xMC1ib29sIGJwZl9hcmVuYV9oYW5kbGVfcGFnZV9mYXVsdCh1bnNpZ25lZCBsb25nIGFkZHIsIGJvb2wgaXNfd3JpdGUsIHVuc2lnbmVkIGxvbmcgZmF1bHRfaXApO1xcbi0tXFxuaW5jbHVkZS9saW51eC9idGYuaD01MzI9c3RydWN0IGJwZl92ZXJpZmllcl9sb2c7XFxuaW5jbHVkZS9saW51eC9idGYuaC01MzMtXFxuaW5jbHVkZS9saW51eC9idGYuaDo1MzQ6I2lmIGRlZmluZWQoQ09ORklHX0JQRl9KSVQpIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxcbmluY2x1ZGUvbGludXgvYnRmLmgtNTM1LXN0cnVjdCBicGZfc3RydWN0X29wcztcXG4tLVxcbmluY2x1ZGUvbGludXgvYnRmLmg9NTYwPXN0cnVjdCBidGZfZmllbGRfaXRlciB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2J0Zi5oLTU2Ny1cXG5pbmNsdWRlL2xpbnV4L2J0Zi5oOjU2ODojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9saW51eC9idGYuaC01NjktY29uc3Qgc3RydWN0IGJ0Zl90eXBlICpidGZfdHlwZV9ieV9pZChjb25zdCBzdHJ1Y3QgYnRmICpidGYsIHUzMiB0eXBlX2lkKTtcXG4tLVxcbmluY2x1ZGUvbGludXgvY2dyb3VwLWRlZnMuaD00NzQ9c3RydWN0IGNncm91cCB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmgtNjI4LVxcbmluY2x1ZGUvbGludXgvY2dyb3VwLWRlZnMuaDo2Mjk6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbGludXgvY2dyb3VwLWRlZnMuaC02MzAtXFx0c3RydWN0IGJwZl9sb2NhbF9zdG9yYWdlIF9fcmN1ICAqYnBmX2NncnBfc3RvcmFnZTtcXG4tLVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmg9ODg1PXN0YXRpYyBpbmxpbmUgdm9pZCBicGZfbmV0X2N0eF9nZXRfYWxsX3VzZWRfZmx1c2hfbGlzdHMoc3RydWN0IGxpc3RfaGVhZCAqKmxoX21hcCxcXG4tLVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtODk0LVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmg6ODk1OlxcdGlmICghSVNfRU5BQkxFRChDT05GSUdfQlBGX1NZU0NBTEwpKVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtODk2LVxcdFxcdHJldHVybjtcXG4tLVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmg9MTIwNz1zdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wYXRjaF9pbnNuX3NpbmdsZShzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIHUzMiBvZmYsXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTEyMDktXFxuaW5jbHVkZS9saW51eC9maWx0ZXIuaDoxMjEwOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTEyMTEtc3RydWN0IGJwZl9wcm9nICpicGZfcGF0Y2hfaW5zbl9kYXRhKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHUzMiBvZmYsXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTEyMjg9c3RhdGljIGlubGluZSB2b2lkIGJwZl9yZXN0b3JlX2luc25fYXV4X2RhdGEoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcXG4tLVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtMTIzMS19XFxuaW5jbHVkZS9saW51eC9maWx0ZXIuaDoxMjMyOiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTEyMzMtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaD00Mzc9TFNNX0hPT0sodm9pZCwgTFNNX1JFVF9WT0lELCBhdWRpdF9ydWxlX2ZyZWUsIHZvaWQgKmxzbXJ1bGUpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaC00MzktXFxuaW5jbHVkZS9saW51eC9sc21faG9va19kZWZzLmg6NDQwOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaC00NDEtTFNNX0hPT0soaW50LCAwLCBicGYsIGludCBjbWQsIHVuaW9uIGJwZl9hdHRyICphdHRyLCB1bnNpZ25lZCBpbnQgc2l6ZSwgYm9vbCBrZXJuZWwpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaD00NTQ9TFNNX0hPT0soaW50LCAwLCBicGZfdG9rZW5fY2FwYWJsZSwgY29uc3Qgc3RydWN0IGJwZl90b2tlbiAqdG9rZW4sIGludCBjYXApXFxuaW5jbHVkZS9saW51eC9sc21faG9va19kZWZzLmg6NDU1OiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaC00NTYtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L21tLmg9MzE4Nz1leHRlcm4gaW50IGFjY2Vzc19yZW1vdGVfdm0oc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcixcXG4tLVxcbmluY2x1ZGUvbGludXgvbW0uaC0zMTg5LVxcbmluY2x1ZGUvbGludXgvbW0uaDozMTkwOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL2xpbnV4L21tLmgtMzE5MS1leHRlcm4gaW50IGNvcHlfcmVtb3RlX3ZtX3N0cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgdW5zaWduZWQgbG9uZyBhZGRyLFxcbi0tXFxuaW5jbHVkZS9saW51eC9zY2hlZC5oPTgyMD1zdHJ1Y3QgdGFza19zdHJ1Y3Qge1xcbi0tXFxuaW5jbHVkZS9saW51eC9zY2hlZC5oLTE1ODMtI2VuZGlmXFxuaW5jbHVkZS9saW51eC9zY2hlZC5oOjE1ODQ6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbGludXgvc2NoZWQuaC0xNTg1LVxcdC8qIFVzZWQgYnkgQlBGIHRhc2sgbG9jYWwgc3RvcmFnZSAqL1xcbi0tXFxuaW5jbHVkZS9saW51eC9zY2hlZC91c2VyLmg9MTQ9c3RydWN0IHVzZXJfc3RydWN0IHtcXG4tLVxcbmluY2x1ZGUvbGludXgvc2NoZWQvdXNlci5oLTI1LVxcbmluY2x1ZGUvbGludXgvc2NoZWQvdXNlci5oOjI2OiNpZiBkZWZpbmVkKENPTkZJR19QRVJGX0VWRU5UUykgfHwgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpIHx8IFxcXFxcXG5pbmNsdWRlL2xpbnV4L3NjaGVkL3VzZXIuaC0yNy1cXHRkZWZpbmVkKENPTkZJR19ORVQpIHx8IGRlZmluZWQoQ09ORklHX0lPX1VSSU5HKSB8fCBcXFxcXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3NlY3VyaXR5Lmg9MjI4OT1zdGF0aWMgaW5saW5lIHZvaWQgc2VjdXJpdHlmc19yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KVxcbi0tXFxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oLTIyOTMtXFxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oOjIyOTQ6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbGludXgvc2VjdXJpdHkuaC0yMjk1LXVuaW9uIGJwZl9hdHRyO1xcbi0tXFxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oPTIzNjM9c3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfYnBmX3Rva2VuX2NhcGFibGUoY29uc3Qgc3RydWN0IGJwZl90b2tlbiAqdG9rZW4sIGludCBjYXApXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmgtMjM2Ny0jZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovXFxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oOjIzNjg6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmluY2x1ZGUvbGludXgvc2VjdXJpdHkuaC0yMzY5LVxcbi0tXFxuaW5jbHVkZS9uZXQvYWZfdnNvY2suaD0yNjE9ZXh0ZXJuIHN0cnVjdCBwcm90byB2c29ja19wcm90bztcXG5pbmNsdWRlL25ldC9hZl92c29jay5oOjI2MjojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9uZXQvYWZfdnNvY2suaC0yNjMtaW50IHZzb2NrX2JwZl91cGRhdGVfcHJvdG8oc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfcHNvY2sgKnBzb2NrLCBib29sIHJlc3RvcmUpO1xcbi0tXFxuaW5jbHVkZS9uZXQvYnBmX3NrX3N0b3JhZ2UuaD0yOT1zdHJ1Y3QgbmxhdHRyO1xcbmluY2x1ZGUvbmV0L2JwZl9za19zdG9yYWdlLmgtMzAtXFxuaW5jbHVkZS9uZXQvYnBmX3NrX3N0b3JhZ2UuaDozMTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9uZXQvYnBmX3NrX3N0b3JhZ2UuaC0zMi1pbnQgYnBmX3NrX3N0b3JhZ2VfY2xvbmUoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29jayAqbmV3c2spO1xcbi0tXFxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaD00NzY9Zmxvd19kaXNzZWN0b3JfaW5pdF9rZXlzKHN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfY29udHJvbCAqa2V5X2NvbnRyb2wsXFxuLS1cXG5pbmNsdWRlL25ldC9mbG93X2Rpc3NlY3Rvci5oLTQ4Mi1cXG5pbmNsdWRlL25ldC9mbG93X2Rpc3NlY3Rvci5oOjQ4MzojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaC00ODQtaW50IGZsb3dfZGlzc2VjdG9yX2JwZl9wcm9nX2F0dGFjaF9jaGVjayhzdHJ1Y3QgbmV0ICpuZXQsXFxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaC00ODUtXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBicGZfcHJvZyAqcHJvZyk7XFxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaDo0ODY6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmluY2x1ZGUvbmV0L2Zsb3dfZGlzc2VjdG9yLmgtNDg3LVxcbi0tXFxuaW5jbHVkZS9uZXQvaXA2X2ZpYi5oPTYzMD12b2lkIGZpYjZfaW5mb19od19mbGFnc19zZXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZmliNl9pbmZvICpmNmksXFxuLS1cXG5pbmNsdWRlL25ldC9pcDZfZmliLmgtNjMyLVxcbmluY2x1ZGUvbmV0L2lwNl9maWIuaDo2MzM6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxcbmluY2x1ZGUvbmV0L2lwNl9maWIuaC02MzQtc3RydWN0IGJwZl9pdGVyX19pcHY2X3JvdXRlIHtcXG4tLVxcbmluY2x1ZGUvbmV0L21wdGNwLmg9MzI3PXN0YXRpYyBpbmxpbmUgdm9pZCBtcHRjcHY2X2hhbmRsZV9tYXBwZWQoc3RydWN0IHNvY2sgKnNrLCBib29sIG1hcHBlZCkgeyB9XFxuLS1cXG5pbmNsdWRlL25ldC9tcHRjcC5oLTMyOS1cXG5pbmNsdWRlL25ldC9tcHRjcC5oOjMzMDojaWYgZGVmaW5lZChDT05GSUdfTVBUQ1ApIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxcbmluY2x1ZGUvbmV0L21wdGNwLmgtMzMxLXN0cnVjdCBtcHRjcF9zb2NrICpicGZfbXB0Y3Bfc29ja19mcm9tX3N1YmZsb3coc3RydWN0IHNvY2sgKnNrKTtcXG4tLVxcbmluY2x1ZGUvbmV0L3NvY2suaD0zNjU9c3RydWN0IHNvY2sge1xcbi0tXFxuaW5jbHVkZS9uZXQvc29jay5oLTU4Ni1cXHRzdHJ1Y3Qgc29ja19yZXVzZXBvcnQgX19yY3VcXHQqc2tfcmV1c2Vwb3J0X2NiO1xcbmluY2x1ZGUvbmV0L3NvY2suaDo1ODc6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbmV0L3NvY2suaC01ODgtXFx0c3RydWN0IGJwZl9sb2NhbF9zdG9yYWdlIF9fcmN1XFx0KnNrX2JwZl9zdG9yYWdlO1xcbi0tXFxuaW5jbHVkZS9uZXQvc29jay5oPTEyOTE9c3RydWN0IHByb3RvIHtcXG4tLVxcbmluY2x1ZGUvbmV0L3NvY2suaC0xMzQzLVxcdHZvaWRcXHRcXHRcXHQoKnB1dF9wb3J0KShzdHJ1Y3Qgc29jayAqc2spO1xcbmluY2x1ZGUvbmV0L3NvY2suaDoxMzQ0OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL25ldC9zb2NrLmgtMTM0NS1cXHRpbnRcXHRcXHRcXHQoKnBzb2NrX3VwZGF0ZV9za19wcm90KShzdHJ1Y3Qgc29jayAqc2ssXFxuLS1cXG5pbmNsdWRlL25ldC90Y3AuaD0yODUzPXN0cnVjdCBza19wc29jaztcXG5pbmNsdWRlL25ldC90Y3AuaC0yODU0LVxcbmluY2x1ZGUvbmV0L3RjcC5oOjI4NTU6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbmV0L3RjcC5oLTI4NTYtaW50IHRjcF9icGZfdXBkYXRlX3Byb3RvKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX3Bzb2NrICpwc29jaywgYm9vbCByZXN0b3JlKTtcXG4tLVxcbmluY2x1ZGUvbmV0L3RjcC5oPTI4NjA9aW50IHRjcF9icGZfc3RycF9yZWFkX3NvY2soc3RydWN0IHN0cnBhcnNlciAqc3RycCwgcmVhZF9kZXNjcmlwdG9yX3QgKmRlc2MsXFxuLS1cXG5pbmNsdWRlL25ldC90Y3AuaC0yODYyLSNlbmRpZiAvKiBDT05GSUdfQlBGX1NUUkVBTV9QQVJTRVIgKi9cXG5pbmNsdWRlL25ldC90Y3AuaDoyODYzOiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cXG5pbmNsdWRlL25ldC90Y3AuaC0yODY0LVxcbi0tXFxuaW5jbHVkZS9uZXQvdGNwLmg9Mjg3Mz1pbnQgdGNwX2JwZl9zZW5kbXNnX3JlZGlyKHN0cnVjdCBzb2NrICpzaywgYm9vbCBpbmdyZXNzLFxcbi0tXFxuaW5jbHVkZS9uZXQvdGNwLmgtMjg3Ni1cXG5pbmNsdWRlL25ldC90Y3AuaDoyODc3OiNpZiAhZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpIHx8ICFkZWZpbmVkKENPTkZJR19ORVRfU09DS19NU0cpXFxuaW5jbHVkZS9uZXQvdGNwLmgtMjg3OC1zdGF0aWMgaW5saW5lIHZvaWQgdGNwX2JwZl9jbG9uZShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpuZXdzaylcXG4tLVxcbmluY2x1ZGUvbmV0L3RjeC5oPTE0NT1zdGF0aWMgaW5saW5lIGVudW0gdGN4X2FjdGlvbl9iYXNlIHRjeF9hY3Rpb25fY29kZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuaW5jbHVkZS9uZXQvdGN4LmgtMTYxLVxcbmluY2x1ZGUvbmV0L3RjeC5oOjE2MjojaWYgZGVmaW5lZChDT05GSUdfTkVUX1hHUkVTUykgXFx1MDAyNlxcdTAwMjYgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXFxuaW5jbHVkZS9uZXQvdGN4LmgtMTYzLWludCB0Y3hfcHJvZ19hdHRhY2goY29uc3QgdW5pb24gYnBmX2F0dHIgKmF0dHIsIHN0cnVjdCBicGZfcHJvZyAqcHJvZyk7XFxuLS1cXG5pbmNsdWRlL25ldC90Y3guaD0yMDI9c3RhdGljIGlubGluZSB2b2lkIGRldl90Y3hfdW5pbnN0YWxsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5pbmNsdWRlL25ldC90Y3guaC0yMDQtfVxcbmluY2x1ZGUvbmV0L3RjeC5oOjIwNTojZW5kaWYgLyogQ09ORklHX05FVF9YR1JFU1MgXFx1MDAyNlxcdTAwMjYgQ09ORklHX0JQRl9TWVNDQUxMICovXFxuaW5jbHVkZS9uZXQvdGN4LmgtMjA2LSNlbmRpZiAvKiBfX05FVF9UQ1hfSCAqL1xcbi0tXFxuaW5jbHVkZS9uZXQvdWRwLmg9NjMyPXN0YXRpYyBpbmxpbmUgdm9pZCB1ZHBfcG9zdF9zZWdtZW50X2ZpeF9jc3VtKHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5pbmNsdWRlL25ldC91ZHAuaC02NTAtXFxuaW5jbHVkZS9uZXQvdWRwLmg6NjUxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL25ldC91ZHAuaC02NTItc3RydWN0IHNrX3Bzb2NrO1xcbi0tXFxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg9MTUwPURFRklORV9FVkVOVCh4ZHBfcmVkaXJlY3RfdGVtcGxhdGUsIHhkcF9yZWRpcmVjdF9lcnIsXFxuLS1cXG5pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAuaC0xNzAtXFxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg6MTcxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAuaC0xNzItVFJBQ0VfRVZFTlQoeGRwX2NwdW1hcF9rdGhyZWFkLFxcbi0tXFxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg9MjUwPVRSQUNFX0VWRU5UKHhkcF9kZXZtYXBfeG1pdCxcXG4tLVxcbmluY2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oLTI4NC0pO1xcbmluY2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oOjI4NTojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXFxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmgtMjg2LVxcbi0tXFxua2VybmVsL2JwZi9NYWtlZmlsZT03PUNGTEFHU19jb3JlLm8gKz0gLVduby1vdmVycmlkZS1pbml0ICQoY2ZsYWdzLW5vZ2NzZS15eSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlLTgtXFxua2VybmVsL2JwZi9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gc3lzY2FsbC5vIHZlcmlmaWVyLm8gaW5vZGUubyBoZWxwZXJzLm8gdG51bS5vIGNudW0ubyBsb2cubyB0b2tlbi5vIGxpdmVuZXNzLm8gY29uc3RfZm9sZC5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxMDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGJwZl9pdGVyLm8gbWFwX2l0ZXIubyB0YXNrX2l0ZXIubyBwcm9nX2l0ZXIubyBsaW5rX2l0ZXIub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBoYXNodGFiLm8gYXJyYXltYXAubyBwZXJjcHVfZnJlZWxpc3QubyBicGZfbHJ1X2xpc3QubyBscG1fdHJpZS5vIG1hcF9pbl9tYXAubyBibG9vbV9maWx0ZXIub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBsb2NhbF9zdG9yYWdlLm8gcXVldWVfc3RhY2tfbWFwcy5vIHJpbmdidWYubyBicGZfaW5zbl9hcnJheS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxMzpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGJwZl9sb2NhbF9zdG9yYWdlLm8gYnBmX3Rhc2tfc3RvcmFnZS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxNDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGZpeHVwcy5vIGNmZy5vIHN0YXRlcy5vIGJhY2t0cmFjay5vIGNoZWNrX2J0Zi5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0xNS1vYmotJHtDT05GSUdfQlBGX0xTTX1cXHQgICs9IGJwZl9pbm9kZV9zdG9yYWdlLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjE2Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gZGlzYXNtLm8gbXByb2cub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMTctb2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IHRyYW1wb2xpbmUub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MTg6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBidGYubyBtZW1hbGxvYy5vIHJxc3BpbmxvY2subyBzdHJlYW0ub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMTktaWZlcSAoJChDT05GSUdfTU1VKSQoQ09ORklHXzY0QklUKSx5eSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjIwOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYXJlbmEubyByYW5nZV90cmVlLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTIxLWVuZGlmXFxuLS1cXG5rZXJuZWwvYnBmL01ha2VmaWxlPTIzPWlmZXEgKCQoQ09ORklHX05FVCkseSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gZGV2bWFwLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gY3B1bWFwLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI2Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gb2ZmbG9hZC5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IG5ldF9uYW1lc3BhY2Uub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6Mjg6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSB0Y3gub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMjktZW5kaWZcXG5rZXJuZWwvYnBmL01ha2VmaWxlPTMwPWlmZXEgKCQoQ09ORklHX1BFUkZfRVZFTlRTKSx5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6MzE6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBzdGFja21hcC5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0zMi1lbmRpZlxcbmtlcm5lbC9icGYvTWFrZWZpbGU9MzM9aWZlcSAoJChDT05GSUdfQ0dST1VQUykseSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gY2dyb3VwX2l0ZXIubyBicGZfY2dycF9zdG9yYWdlLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTM1LWVuZGlmXFxuLS1cXG5rZXJuZWwvYnBmL01ha2VmaWxlPTM3PWlmZXEgKCQoQ09ORklHX0lORVQpLHkpXFxua2VybmVsL2JwZi9NYWtlZmlsZTozODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IHJldXNlcG9ydF9hcnJheS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0zOS1lbmRpZlxcbi0tXFxua2VybmVsL2JwZi9NYWtlZmlsZT00Mz1pZmVxICgkKENPTkZJR19CUEZfSklUKSx5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6NDQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBicGZfc3RydWN0X29wcy5vXFxua2VybmVsL2JwZi9NYWtlZmlsZTo0NTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGNwdW1hc2sub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtNDYtIyBicGZfbHNtX3Byb3RvLm8gbXVzdCBwcmVjZWRlIGJwZl9sc20uby4gVGhlIGN1cnJlbnQgcGFob2xlIGxvZ2ljXFxuLS1cXG5rZXJuZWwvYnBmL01ha2VmaWxlPTU4PWlmbmVxICgkKENPTkZJR19DUllQVE8pLClcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjU5Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gY3J5cHRvLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTYwLWVuZGlmXFxua2VybmVsL2JwZi9NYWtlZmlsZT02MT1vYmotJChDT05GSUdfQlBGX1BSRUxPQUQpICs9IHByZWxvYWQvXFxua2VybmVsL2JwZi9NYWtlZmlsZS02Mi1cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjYzOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gcmVsb19jb3JlLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnRmX2l0ZXIub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6NjU6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBidGZfcmVsb2NhdGUub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6NjY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBrbWVtX2NhY2hlX2l0ZXIub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtNjctaWZlcSAoJChDT05GSUdfRE1BX1NIQVJFRF9CVUZGRVIpLHkpXFxua2VybmVsL2JwZi9NYWtlZmlsZTo2ODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGRtYWJ1Zl9pdGVyLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTY5LWVuZGlmXFxuLS1cXG5rZXJuZWwvYnBmL2NvcmUuYz05OT1zdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nX2FsbG9jX25vX3N0YXRzKHVuc2lnbmVkIGludCBzaXplLCBnZnBfdCBnZnBfZXh0cmFfZmxhZ3MpXFxuLS1cXG5rZXJuZWwvYnBmL2NvcmUuYy0xNDEtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE0OjE5OjUyLjY4MTYwMDkzM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgyODQ3ODU3MjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIEJQRiBWZXJpZmllciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNoYW5nZSB0byB0aGUgQlBGIHZlcmlmaWVyLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGluZGlyZWN0IGp1bXBzLCBvciBgZ290b3hgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBlbmFibGUgdGhlIHJlbGV2YW50IGNvZGUgaXMgYENPTkZJR19CUEZfU1lTQ0FMTGAsIGFzIHRoZSB2ZXJpZmllciBpdHNlbGYgaXMgb25seSBjb21waWxlZCB3aGVuIHRoYXQncyBzZXQuIEkgc2hvdWxkIGRvdWJsZS1jaGVjaywgdGhvdWdoLCB0byBlbnN1cmUgSSBoYXZlbid0IG1pc3NlZCBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzLlxuXG5Mb29raW5nIGF0IHRoZSBjb2RlIG1vZGlmaWNhdGlvbnMsIHRoZSBwYXRjaCB0b3VjaGVzIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGFuZCBhIHNlbGYtdGVzdCwgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jYC4gVGhlIHRlc3QgdXNlcyBgQlBGX1BST0dfVFlQRV9TT0NLRVRfRklMVEVSYCwgd2hpY2ggc3VnZ2VzdHMgYENPTkZJR19ORVRgICptaWdodCogYmUgcmVsZXZhbnQsIGJ1dCBgQ09ORklHX0JQRl9TWVNDQUxMYCBpcyBsaWtlbHkgdGhlIGtleSBvbmUuIExldCdzIGNvbmZpcm0gdGhhdCBgQ09ORklHX0JQRl9TWVNDQUxMYCBhbG9uZSBpcyBzdWZmaWNpZW50IHRvIHRyaWdnZXIgdGhlIGNvbXBpbGF0aW9uIG9mIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBZZXMsIGl0IGFwcGVhcnMgc28uXG5cbk5vdywgbGV0J3MgemVybyBpbiBvbiB0aGUgY29yZSBvZiB0aGUgY2hhbmdlLiBgY2hlY2tfaW5kaXJlY3RfanVtcGAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgd2FzIG1vZGlmaWVkOyB0aGF0J3MgdGhlIGZvY2FsIHBvaW50LiBXaGlsZSBgYnBmX2ZpbmRfY29udGFpbmluZ19zdWJwcm9nYCBpcyBhbHNvIGNhbGxlZCwgaXQncyBhbiBleGlzdGluZyBmdW5jdGlvbi4gYGNoZWNrX2luZGlyZWN0X2p1bXBgIGlzIHRoZSBrZXkgZnVuY3Rpb24gdG8gZnV6ei5cblxuSXMgYGNoZWNrX2luZGlyZWN0X2p1bXBgIHN0YXRpYz8gWWVzLCBpdCBpczogYHN0YXRpYyBpbnQgY2hlY2tfaW5kaXJlY3RfanVtcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24pYC4gSXQgcmVzaWRlcyB3aXRoaW4gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuXG5cbkkndmUgY29uZmlybWVkIHRoYXQgYGNoZWNrX2luZGlyZWN0X2p1bXBgIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIG1vZGlmaWVkLiBTbywgbXkgcmVhc29uaW5nIGlzIGFzIGZvbGxvd3M6IFRoZSBwYXRjaCBpcyBmdW5jdGlvbmFsbHkgc2lnbmlmaWNhbnQgYmVjYXVzZSBpdCBpbnRyb2R1Y2VzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyLiBUaGlzIGNoYW5nZSBkaXJlY3RseSBpbXBhY3RzIHRoZSBjb3JlIEJQRiB2ZXJpZmljYXRpb24gcHJvY2VzcywgYWltaW5nIHRvIHByZXZlbnQganVtcHMgb3V0c2lkZSBvZiB0aGUgY3VycmVudCBzdWJwcm9ncmFtLiBUaGVyZWZvcmUsIEknbGwgZmxhZyB0aGlzIGFzIHdvcnRoIGZ1enppbmcsIGZvY3VzaW5nIG9uIHRoZSBgY2hlY2tfaW5kaXJlY3RfanVtcGAgZnVuY3Rpb24gYW5kIHJlcXVpcmluZyBgQ09ORklHX0JQRl9TWVNDQUxMYCB0byBiZSBlbmFibGVkLlxuXG5NeSBjb25maWd1cmF0aW9uIHdpbGwgYmU6XG5cbiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqXG4qICAgKipGb2N1c1N5bWJvbHM6IFxcW1wiY2hlY2tcXF9pbmRpcmVjdFxcX2p1bXBcIl0qKlxuKiAgICoqRW5hYmxlQ29uZmlnczogXFxbXCJCUEZcXF9TWVNDQUxMXCJdKipcbiogICAqKlJlYXNvbmluZzogXCJUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIGluZGlyZWN0IGp1bXBzIChnb3RveCkgaW4gdGhlIEJQRiB2ZXJpZmllciB0byBwcmV2ZW50IGp1bXBpbmcgb3V0c2lkZSB0aGUgY3VycmVudCBzdWJwcm9ncmFtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBCUEYgdmVyaWZpY2F0aW9uIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiKipcblxuXG4iLCJJbnB1dFRva2VucyI6MTU0MTgsIk91dHB1dFRva2VucyI6OTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTQ6MjA6MDAuOTY2MzkwMDMyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTU1Njk2ODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2hlY2tfaW5kaXJlY3RfanVtcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBpbmRpcmVjdCBqdW1wcyAoZ290b3gpIGluIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJldmVudCBqdW1waW5nIG91dHNpZGUgdGhlIGN1cnJlbnQgc3VicHJvZ3JhbS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgQlBGIHZlcmlmaWNhdGlvbiBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNoZWNrX2luZGlyZWN0X2p1bXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQganVtcGluZyBvdXRzaWRlIHRoZSBjdXJyZW50IHN1YnByb2dyYW0uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEJQRiB2ZXJpZmljYXRpb24gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow28ndz[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-28 14:12:00 +0000 UTC FinishedAt: 2026-06-28 14:20:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "7bfb93e3475be9de894f1cecd3a727d3e1649b03", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "7bfb93e3475be9de894f1cecd3a727d3e1649b03", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "720412a4-8721-412d-806a-b990f19bdc1b" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "check_indirect_jump" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI4IDE0OjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfaW5kaXJlY3RfanVtcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQganVtcGluZyBvdXRzaWRlIHRoZSBjdXJyZW50IHN1YnByb2dyYW0uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEJQRiB2ZXJpZmljYXRpb24gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5Y2M1NTIyODA0ZjcxMDA5MDk2MWIzNzAzZTliYzNmNzY3ZGU1YThkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdW4gMjggMTQ6MTg6MzQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCBlYjQ2YTgxYThjNTFhYy4uMDVhOTk2YTVlY2RkMjUgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTE3MTQ1LDkgJiM0MzsxNzE0NSwxMSBAQCBzdGF0aWMgaW50IGluZGlyZWN0X2p1bXBfbWluX21heF9pbmRleChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIHN0YXRpYyBpbnQgY2hlY2tfaW5kaXJlY3RfanVtcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24pXG4ge1xuIFx0c3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqb3RoZXJfYnJhbmNoO1xuJiM0MztcdHN0cnVjdCBicGZfc3VicHJvZ19pbmZvICpzdWJwcm9nO1xuIFx0c3RydWN0IGJwZl9yZWdfc3RhdGUgKmRzdF9yZWc7XG4gXHRzdHJ1Y3QgYnBmX21hcCAqbWFwO1xuIFx0dTMyIG1pbl9pbmRleCwgbWF4X2luZGV4O1xuJiM0MztcdGludCBzdWJwcm9nX3N0YXJ0LCBzdWJwcm9nX2VuZDtcbiBcdGludCBlcnIgPSAwO1xuIFx0aW50IG47XG4gXHRpbnQgaTtcbkBAIC0xNzE4OCw2ICYjNDM7MTcxOTAsMjMgQEAgc3RhdGljIGludCBjaGVja19pbmRpcmVjdF9qdW1wKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5cbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHR9XG4gXG4mIzQzO1x0c3VicHJvZyA9IGJwZl9maW5kX2NvbnRhaW5pbmdfc3VicHJvZyhlbnYsIGVudi1cdTAwM2VpbnNuX2lkeCk7XG4mIzQzO1x0aWYgKHZlcmlmaWVyX2J1Z19pZighc3VicHJvZywgZW52LFxuJiM0MztcdFx0XHQgICAgXCYjMzQ7Z290b3ggaW5zbiAlZCBpcyBvdXRzaWRlIHN1YnByb2cgYm91bmRzXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHQgICAgZW52LVx1MDAzZWluc25faWR4KSlcbiYjNDM7XHRcdHJldHVybiAtRUZBVUxUO1xuJiM0MztcdHN1YnByb2dfc3RhcnQgPSBzdWJwcm9nLVx1MDAzZXN0YXJ0O1xuJiM0MztcdHN1YnByb2dfZW5kID0gKHN1YnByb2cgJiM0MzsgMSktXHUwMDNlc3RhcnQ7XG4mIzQzO1xuJiM0MztcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG47IGkmIzQzOyYjNDM7KSB7XG4mIzQzO1x0XHR1MzIgdGFyZ2V0ID0gZW52LVx1MDAzZWdvdG94X3RtcF9idWYtXHUwMDNlaXRlbXNbaV07XG4mIzQzO1xuJiM0MztcdFx0aWYgKHRhcmdldCBcdTAwM2Mgc3VicHJvZ19zdGFydCB8fCB0YXJnZXQgXHUwMDNlPSBzdWJwcm9nX2VuZCkge1xuJiM0MztcdFx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7Z290b3ggdGFyZ2V0ICV1IG91dHNpZGUgc3VicHJvZ1xcblwmIzM0OywgdGFyZ2V0KTtcbiYjNDM7XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuJiM0MztcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG4gLSAxOyBpJiM0MzsmIzQzOykge1xuIFx0XHRtYXJrX2luZGlyZWN0X3RhcmdldChlbnYsIGVudi1cdTAwM2Vnb3RveF90bXBfYnVmLVx1MDAzZWl0ZW1zW2ldKTtcbiBcdFx0b3RoZXJfYnJhbmNoID0gcHVzaF9zdGFjayhlbnYsIGVudi1cdTAwM2Vnb3RveF90bXBfYnVmLVx1MDAzZWl0ZW1zW2ldLFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvYnBmX2dvdG94LmNcbmluZGV4IDczZGM2Mzg4MmI3ZDU1Li45OTc3MjRjNjFjOGI2MCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guY1xuQEAgLTI1NSw2ICYjNDM7MjU1LDMwIEBAIHN0YXRpYyBpbnQgY3JlYXRlX2p0X21hcChfX3UzMiBtYXhfZW50cmllcylcbiBcdFx0XHQgICAgICBrZXlfc2l6ZSwgdmFsdWVfc2l6ZSwgbWF4X2VudHJpZXMsIE5VTEwpO1xuIH1cbiBcbiYjNDM7c3RhdGljIGludCBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KF9fdTMyIHRhcmdldClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBicGZfaW5zbl9hcnJheV92YWx1ZSB2YWwgPSB7IC5vcmlnX29mZiA9IHRhcmdldCB9O1xuJiM0MztcdF9fdTMyIGtleSA9IDA7XG4mIzQzO1x0aW50IG1hcF9mZDtcbiYjNDM7XG4mIzQzO1x0bWFwX2ZkID0gY3JlYXRlX2p0X21hcCgxKTtcbiYjNDM7XHRpZiAoIUFTU0VSVF9HRShtYXBfZmQsIDAsIFwmIzM0O2NyZWF0ZV9qdF9tYXBcJiMzNDspKVxuJiM0MztcdFx0cmV0dXJuIC0xO1xuJiM0MztcbiYjNDM7XHRpZiAoIUFTU0VSVF9FUShicGZfbWFwX3VwZGF0ZV9lbGVtKG1hcF9mZCwgXHUwMDI2a2V5LCBcdTAwMjZ2YWwsIDApLFxuJiM0MztcdFx0ICAgICAgIDAsIFwmIzM0O2JwZl9tYXBfdXBkYXRlX2VsZW1cJiMzNDspKSB7XG4mIzQzO1x0XHRjbG9zZShtYXBfZmQpO1xuJiM0MztcdFx0cmV0dXJuIC0xO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0aWYgKCFBU1NFUlRfRVEoYnBmX21hcF9mcmVlemUobWFwX2ZkKSwgMCwgXCYjMzQ7YnBmX21hcF9mcmVlemVcJiMzNDspKSB7XG4mIzQzO1x0XHRjbG9zZShtYXBfZmQpO1xuJiM0MztcdFx0cmV0dXJuIC0xO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0cmV0dXJuIG1hcF9mZDtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgaW50IHByb2dfbG9hZChzdHJ1Y3QgYnBmX2luc24gKmluc25zLCBfX3UzMiBpbnNuX2NudClcbiB7XG4gXHRyZXR1cm4gYnBmX3Byb2dfbG9hZChCUEZfUFJPR19UWVBFX1JBV19UUkFDRVBPSU5ULCBOVUxMLCBcJiMzNDtHUExcJiMzNDssIGluc25zLCBpbnNuX2NudCwgTlVMTCk7XG5AQCAtMzkzLDYgJiM0Mzs0MTcsNTIgQEAgcmVqZWN0X29mZnNldHMoc3RydWN0IGJwZl9pbnNuICppbnNucywgX191MzIgaW5zbl9jbnQsIGludCBvZmYxLCBpbnQgb2ZmMiwgaW50IG9cbiBcdFx0Y2xvc2UocHJvZ19mZCk7XG4gfVxuIFxuJiM0MztzdGF0aWMgdm9pZFxuJiM0MztjaGVja19jcm9zc19zdWJwcm9nX2dvdG94X3RhcmdldCh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGJwZl9pbnNuIGluc25zW10gPSB7XG4mIzQzO1x0XHQvKiBtYWluIHN1YnByb2cgWzAsMTQpICovXG4mIzQzO1x0XHRCUEZfTU9WNjRfUkVHKEJQRl9SRUdfNiwgQlBGX1JFR18xKSxcbiYjNDM7XHRcdEJQRl9SQVdfSU5TTihCUEZfSk1QIHwgQlBGX0NBTEwsIDAsIEJQRl9QU0VVRE9fQ0FMTCwgMCwgMTIpLFxuJiM0MztcdFx0QlBGX0xEWF9NRU0oQlBGX1csIEJQRl9SRUdfNywgQlBGX1JFR182LCAwKSxcbiYjNDM7XHRcdEJQRl9KTVBfSU1NKEJQRl9KRVEsIEJQRl9SRUdfNywgMCwgNCksXG4mIzQzO1x0XHRCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLFxuJiM0MztcdFx0QlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzIsIEJQRl9SRUdfMiwgMCksXG4mIzQzO1x0XHRCUEZfSk1QX0EoMyksXG4mIzQzO1x0XHRCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLFxuJiM0MztcdFx0QlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzIsIEJQRl9SRUdfMiwgMCksXG4mIzQzO1x0XHRCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQSB8IEJQRl9YLCBCUEZfUkVHXzIsIDAsIDAsIDApLFxuJiM0MztcdFx0QlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDEpLFxuJiM0MztcdFx0QlBGX0VYSVRfSU5TTigpLFxuJiM0MztcbiYjNDM7XHRcdC8qIHN0YXRpYyBzdWJwcm9nIFsxNCwxNikgKi9cbiYjNDM7XHRcdEJQRl9NT1Y2NF9JTU0oQlBGX1JFR18wLCA0MiksXG4mIzQzO1x0XHRCUEZfRVhJVF9JTlNOKCksXG4mIzQzO1x0fTtcbiYjNDM7XHRpbnQgZ29vZF9mZCwgYmFkX2ZkLCBwcm9nX2ZkO1xuJiM0MztcbiYjNDM7XHRnb29kX2ZkID0gY3JlYXRlX2p0X21hcF93aXRoX3RhcmdldCgxMik7XG4mIzQzO1x0aWYgKCFBU1NFUlRfR0UoZ29vZF9mZCwgMCwgXCYjMzQ7Y3JlYXRlX2dvb2RfanRfbWFwXCYjMzQ7KSlcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4mIzQzO1x0YmFkX2ZkID0gY3JlYXRlX2p0X21hcF93aXRoX3RhcmdldCgxNCk7XG4mIzQzO1x0aWYgKCFBU1NFUlRfR0UoYmFkX2ZkLCAwLCBcJiMzNDtjcmVhdGVfYmFkX2p0X21hcFwmIzM0OykpIHtcbiYjNDM7XHRcdGNsb3NlKGdvb2RfZmQpO1xuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0aW5zbnNbNF0uaW1tID0gYmFkX2ZkO1xuJiM0MztcdGluc25zWzhdLmltbSA9IGdvb2RfZmQ7XG4mIzQzO1xuJiM0MztcdHByb2dfZmQgPSBicGZfcHJvZ19sb2FkKEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUiwgTlVMTCwgXCYjMzQ7R1BMXCYjMzQ7LFxuJiM0MztcdFx0XHRcdGluc25zLCBBUlJBWV9TSVpFKGluc25zKSwgTlVMTCk7XG4mIzQzO1x0aWYgKCFBU1NFUlRfRVEocHJvZ19mZCwgLUVJTlZBTCwgXCYjMzQ7Y3Jvc3Nfc3VicHJvZ19nb3RveF9wcm9nX2xvYWRcJiMzNDspKVxuJiM0MztcdFx0Y2xvc2UocHJvZ19mZCk7XG4mIzQzO1xuJiM0MztcdGNsb3NlKGJhZF9mZCk7XG4mIzQzO1x0Y2xvc2UoZ29vZF9mZCk7XG4mIzQzO31cbiYjNDM7XG4gLypcbiAgKiBWZXJpZnkgYSBiaXQgbW9yZSBjb21wbGV4IHByb2dyYW1zIHdoaWNoIGluY2x1ZGUgaW5kaXJlY3QganVtcHNcbiAgKiBhbmQgd2l0aCBqdW1wIHRhYmxlcyBsb2FkZWQgd2l0aCBhIG5vbi16ZXJvIG9mZnNldFxuQEAgLTU0MSw1ICYjNDM7NjExLDggQEAgdm9pZCB0ZXN0X2JwZl9nb3RveCh2b2lkKVxuIFx0aWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoXCYjMzQ7Y2hlY2stbGRpbW02NC1vZmYtZ290b3gtbGx2bVwmIzM0OykpXG4gXHRcdF9fc3VidGVzdChza2VsLCBjaGVja19sZGltbTY0X29mZl9nb3RveF9sbHZtKTtcbiBcbiYjNDM7XHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcJiMzNDtjaGVjay1jcm9zcy1zdWJwcm9nLWdvdG94LXRhcmdldFwmIzM0OykpXG4mIzQzO1x0XHRjaGVja19jcm9zc19zdWJwcm9nX2dvdG94X3RhcmdldCgpO1xuJiM0MztcbiBcdGJwZl9nb3RveF9fZGVzdHJveShza2VsKTtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MTg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjaGVja19pbmRpcmVjdF9qdW1wJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBpbmRpcmVjdCBqdW1wcyAoZ290b3gpIGluIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJldmVudCBqdW1waW5nIG91dHNpZGUgdGhlIGN1cnJlbnQgc3VicHJvZ3JhbS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgQlBGIHZlcmlmaWNhdGlvbiBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOWNjNTUyMjgwNGY3MTAwOTA5NjFiMzcwM2U5YmMzZjc2N2RlNWE4ZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gSnVuIDI4IDE0OjE4OjM0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4IGViNDZhODFhOGM1MWFjLi4wNWE5OTZhNWVjZGQyNSAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwpAQCAtMTcxNDUsOSAmIzQzOzE3MTQ1LDExIEBAIHN0YXRpYyBpbnQgaW5kaXJlY3RfanVtcF9taW5fbWF4X2luZGV4KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsCiBzdGF0aWMgaW50IGNoZWNrX2luZGlyZWN0X2p1bXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuKQogewogCXN0cnVjdCBicGZfdmVyaWZpZXJfc3RhdGUgKm90aGVyX2JyYW5jaDsKJiM0MzsJc3RydWN0IGJwZl9zdWJwcm9nX2luZm8gKnN1YnByb2c7CiAJc3RydWN0IGJwZl9yZWdfc3RhdGUgKmRzdF9yZWc7CiAJc3RydWN0IGJwZl9tYXAgKm1hcDsKIAl1MzIgbWluX2luZGV4LCBtYXhfaW5kZXg7CiYjNDM7CWludCBzdWJwcm9nX3N0YXJ0LCBzdWJwcm9nX2VuZDsKIAlpbnQgZXJyID0gMDsKIAlpbnQgbjsKIAlpbnQgaTsKQEAgLTE3MTg4LDYgJiM0MzsxNzE5MCwyMyBAQCBzdGF0aWMgaW50IGNoZWNrX2luZGlyZWN0X2p1bXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbgogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKJiM0MzsJc3VicHJvZyA9IGJwZl9maW5kX2NvbnRhaW5pbmdfc3VicHJvZyhlbnYsIGVudi0mZ3Q7aW5zbl9pZHgpOwomIzQzOwlpZiAodmVyaWZpZXJfYnVnX2lmKCFzdWJwcm9nLCBlbnYsCiYjNDM7CQkJICAgICYjMzQ7Z290b3ggaW5zbiAlZCBpcyBvdXRzaWRlIHN1YnByb2cgYm91bmRzXG4mIzM0OywKJiM0MzsJCQkgICAgZW52LSZndDtpbnNuX2lkeCkpCiYjNDM7CQlyZXR1cm4gLUVGQVVMVDsKJiM0MzsJc3VicHJvZ19zdGFydCA9IHN1YnByb2ctJmd0O3N0YXJ0OwomIzQzOwlzdWJwcm9nX2VuZCA9IChzdWJwcm9nICYjNDM7IDEpLSZndDtzdGFydDsKJiM0MzsKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IG47IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQl1MzIgdGFyZ2V0ID0gZW52LSZndDtnb3RveF90bXBfYnVmLSZndDtpdGVtc1tpXTsKJiM0MzsKJiM0MzsJCWlmICh0YXJnZXQgJmx0OyBzdWJwcm9nX3N0YXJ0IHx8IHRhcmdldCAmZ3Q7PSBzdWJwcm9nX2VuZCkgewomIzQzOwkJCXZlcmJvc2UoZW52LCAmIzM0O2dvdG94IHRhcmdldCAldSBvdXRzaWRlIHN1YnByb2dcbiYjMzQ7LCB0YXJnZXQpOwomIzQzOwkJCXJldHVybiAtRUlOVkFMOwomIzQzOwkJfQomIzQzOwl9CiYjNDM7CiAJZm9yIChpID0gMDsgaSAmbHQ7IG4gLSAxOyBpJiM0MzsmIzQzOykgewogCQltYXJrX2luZGlyZWN0X3RhcmdldChlbnYsIGVudi0mZ3Q7Z290b3hfdG1wX2J1Zi0mZ3Q7aXRlbXNbaV0pOwogCQlvdGhlcl9icmFuY2ggPSBwdXNoX3N0YWNrKGVudiwgZW52LSZndDtnb3RveF90bXBfYnVmLSZndDtpdGVtc1tpXSwKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvYnBmX2dvdG94LmMKaW5kZXggNzNkYzYzODgyYjdkNTUuLjk5NzcyNGM2MWM4YjYwIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guYwpAQCAtMjU1LDYgJiM0MzsyNTUsMzAgQEAgc3RhdGljIGludCBjcmVhdGVfanRfbWFwKF9fdTMyIG1heF9lbnRyaWVzKQogCQkJICAgICAga2V5X3NpemUsIHZhbHVlX3NpemUsIG1heF9lbnRyaWVzLCBOVUxMKTsKIH0KIAomIzQzO3N0YXRpYyBpbnQgY3JlYXRlX2p0X21hcF93aXRoX3RhcmdldChfX3UzMiB0YXJnZXQpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgYnBmX2luc25fYXJyYXlfdmFsdWUgdmFsID0geyAub3JpZ19vZmYgPSB0YXJnZXQgfTsKJiM0MzsJX191MzIga2V5ID0gMDsKJiM0MzsJaW50IG1hcF9mZDsKJiM0MzsKJiM0MzsJbWFwX2ZkID0gY3JlYXRlX2p0X21hcCgxKTsKJiM0MzsJaWYgKCFBU1NFUlRfR0UobWFwX2ZkLCAwLCAmIzM0O2NyZWF0ZV9qdF9tYXAmIzM0OykpCiYjNDM7CQlyZXR1cm4gLTE7CiYjNDM7CiYjNDM7CWlmICghQVNTRVJUX0VRKGJwZl9tYXBfdXBkYXRlX2VsZW0obWFwX2ZkLCAmYW1wO2tleSwgJmFtcDt2YWwsIDApLAomIzQzOwkJICAgICAgIDAsICYjMzQ7YnBmX21hcF91cGRhdGVfZWxlbSYjMzQ7KSkgewomIzQzOwkJY2xvc2UobWFwX2ZkKTsKJiM0MzsJCXJldHVybiAtMTsKJiM0MzsJfQomIzQzOwomIzQzOwlpZiAoIUFTU0VSVF9FUShicGZfbWFwX2ZyZWV6ZShtYXBfZmQpLCAwLCAmIzM0O2JwZl9tYXBfZnJlZXplJiMzNDspKSB7CiYjNDM7CQljbG9zZShtYXBfZmQpOwomIzQzOwkJcmV0dXJuIC0xOwomIzQzOwl9CiYjNDM7CiYjNDM7CXJldHVybiBtYXBfZmQ7CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBwcm9nX2xvYWQoc3RydWN0IGJwZl9pbnNuICppbnNucywgX191MzIgaW5zbl9jbnQpCiB7CiAJcmV0dXJuIGJwZl9wcm9nX2xvYWQoQlBGX1BST0dfVFlQRV9SQVdfVFJBQ0VQT0lOVCwgTlVMTCwgJiMzNDtHUEwmIzM0OywgaW5zbnMsIGluc25fY250LCBOVUxMKTsKQEAgLTM5Myw2ICYjNDM7NDE3LDUyIEBAIHJlamVjdF9vZmZzZXRzKHN0cnVjdCBicGZfaW5zbiAqaW5zbnMsIF9fdTMyIGluc25fY250LCBpbnQgb2ZmMSwgaW50IG9mZjIsIGludCBvCiAJCWNsb3NlKHByb2dfZmQpOwogfQogCiYjNDM7c3RhdGljIHZvaWQKJiM0MztjaGVja19jcm9zc19zdWJwcm9nX2dvdG94X3RhcmdldCh2b2lkKQomIzQzO3sKJiM0MzsJc3RydWN0IGJwZl9pbnNuIGluc25zW10gPSB7CiYjNDM7CQkvKiBtYWluIHN1YnByb2cgWzAsMTQpICovCiYjNDM7CQlCUEZfTU9WNjRfUkVHKEJQRl9SRUdfNiwgQlBGX1JFR18xKSwKJiM0MzsJCUJQRl9SQVdfSU5TTihCUEZfSk1QIHwgQlBGX0NBTEwsIDAsIEJQRl9QU0VVRE9fQ0FMTCwgMCwgMTIpLAomIzQzOwkJQlBGX0xEWF9NRU0oQlBGX1csIEJQRl9SRUdfNywgQlBGX1JFR182LCAwKSwKJiM0MzsJCUJQRl9KTVBfSU1NKEJQRl9KRVEsIEJQRl9SRUdfNywgMCwgNCksCiYjNDM7CQlCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLAomIzQzOwkJQlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzIsIEJQRl9SRUdfMiwgMCksCiYjNDM7CQlCUEZfSk1QX0EoMyksCiYjNDM7CQlCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLAomIzQzOwkJQlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzIsIEJQRl9SRUdfMiwgMCksCiYjNDM7CQlCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQSB8IEJQRl9YLCBCUEZfUkVHXzIsIDAsIDAsIDApLAomIzQzOwkJQlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDEpLAomIzQzOwkJQlBGX0VYSVRfSU5TTigpLAomIzQzOwomIzQzOwkJLyogc3RhdGljIHN1YnByb2cgWzE0LDE2KSAqLwomIzQzOwkJQlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDQyKSwKJiM0MzsJCUJQRl9FWElUX0lOU04oKSwKJiM0MzsJfTsKJiM0MzsJaW50IGdvb2RfZmQsIGJhZF9mZCwgcHJvZ19mZDsKJiM0MzsKJiM0MzsJZ29vZF9mZCA9IGNyZWF0ZV9qdF9tYXBfd2l0aF90YXJnZXQoMTIpOwomIzQzOwlpZiAoIUFTU0VSVF9HRShnb29kX2ZkLCAwLCAmIzM0O2NyZWF0ZV9nb29kX2p0X21hcCYjMzQ7KSkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJYmFkX2ZkID0gY3JlYXRlX2p0X21hcF93aXRoX3RhcmdldCgxNCk7CiYjNDM7CWlmICghQVNTRVJUX0dFKGJhZF9mZCwgMCwgJiMzNDtjcmVhdGVfYmFkX2p0X21hcCYjMzQ7KSkgewomIzQzOwkJY2xvc2UoZ29vZF9mZCk7CiYjNDM7CQlyZXR1cm47CiYjNDM7CX0KJiM0MzsKJiM0MzsJaW5zbnNbNF0uaW1tID0gYmFkX2ZkOwomIzQzOwlpbnNuc1s4XS5pbW0gPSBnb29kX2ZkOwomIzQzOwomIzQzOwlwcm9nX2ZkID0gYnBmX3Byb2dfbG9hZChCUEZfUFJPR19UWVBFX1NPQ0tFVF9GSUxURVIsIE5VTEwsICYjMzQ7R1BMJiMzNDssCiYjNDM7CQkJCWluc25zLCBBUlJBWV9TSVpFKGluc25zKSwgTlVMTCk7CiYjNDM7CWlmICghQVNTRVJUX0VRKHByb2dfZmQsIC1FSU5WQUwsICYjMzQ7Y3Jvc3Nfc3VicHJvZ19nb3RveF9wcm9nX2xvYWQmIzM0OykpCiYjNDM7CQljbG9zZShwcm9nX2ZkKTsKJiM0MzsKJiM0MzsJY2xvc2UoYmFkX2ZkKTsKJiM0MzsJY2xvc2UoZ29vZF9mZCk7CiYjNDM7fQomIzQzOwogLyoKICAqIFZlcmlmeSBhIGJpdCBtb3JlIGNvbXBsZXggcHJvZ3JhbXMgd2hpY2ggaW5jbHVkZSBpbmRpcmVjdCBqdW1wcwogICogYW5kIHdpdGgganVtcCB0YWJsZXMgbG9hZGVkIHdpdGggYSBub24temVybyBvZmZzZXQKQEAgLTU0MSw1ICYjNDM7NjExLDggQEAgdm9pZCB0ZXN0X2JwZl9nb3RveCh2b2lkKQogCWlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KCYjMzQ7Y2hlY2stbGRpbW02NC1vZmYtZ290b3gtbGx2bSYjMzQ7KSkKIAkJX19zdWJ0ZXN0KHNrZWwsIGNoZWNrX2xkaW1tNjRfb2ZmX2dvdG94X2xsdm0pOwogCiYjNDM7CWlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KCYjMzQ7Y2hlY2stY3Jvc3Mtc3VicHJvZy1nb3RveC10YXJnZXQmIzM0OykpCiYjNDM7CQljaGVja19jcm9zc19zdWJwcm9nX2dvdG94X3RhcmdldCgpOwomIzQzOwogCWJwZl9nb3RveF9fZGVzdHJveShza2VsKTsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY5OQoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDQzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEJQRiBWZXJpZmllciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBga2VybmVsL2JwZi92ZXJpZmllci5jYC4gTXkgaW5pdGlhbCByZWFkIHRlbGxzIG1lIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gSXQgc2VlbXMgdGhleSYjMzk7dmUgYWRkZWQgYSBjaGVjayB3aXRoaW4gdGhlIGBjaGVja19pbmRpcmVjdF9qdW1wYCBmdW5jdGlvbi4gVGhlIGdvYWwgaXMgdG8gZW5zdXJlIHRoYXQgYSBgZ290b3hgIGluc3RydWN0aW9uLCBvciBpbmRpcmVjdCBqdW1wLCBpc24mIzM5O3QgdGFyZ2V0aW5nIGFuIGluc3RydWN0aW9uIG91dHNpZGUgdGhlIGN1cnJlbnQgc3VicHJvZ3JhbSYjMzk7cyBib3VuZHMuIFRoaXMgaXMgYSBzb2xpZCBzYWZldHkgbWVhc3VyZTsgd2UgZG9uJiMzOTt0IHdhbnQgcHJvZ3JhbXMganVtcGluZyBhbGwgb3ZlciB0aGUgcGxhY2UuIFByZXZlbnRpbmcgYGdvdG94YCBmcm9tIGp1bXBpbmcgaW50byBvdGhlciBzdWJwcm9ncmFtcyBpcyBkZWZpbml0ZWx5IGEgZGVzaXJhYmxlIG91dGNvbWUuCgpMZXQmIzM5O3MgZGl2ZSBpbnRvIHRoZSBjb2RlIHNuaXBwZXQgaXRzZWxmOgoKYGBgYwomIzQzOwlzdWJwcm9nID0gYnBmX2ZpbmRfY29udGFpbmluZ19zdWJwcm9nKGVudiwgZW52LSZndDtpbnNuX2lkeCk7CiYjNDM7CWlmICh2ZXJpZmllcl9idWdfaWYoIXN1YnByb2csIGVudiwKJiM0MzsJCQkgICAgJiMzNDtnb3RveCBpbnNuICVkIGlzIG91dHNpZGUgc3VicHJvZyBib3VuZHNcbiYjMzQ7LAomIzQzOwkJCSAgICBlbnYtJmd0O2luc25faWR4KSkKJiM0MzsJCXJldHVybiAtRUZBVUxUOwomIzQzOwlzdWJwcm9nX3N0YXJ0ID0gc3VicHJvZy0mZ3Q7c3RhcnQ7CiYjNDM7CXN1YnByb2dfZW5kID0gKHN1YnByb2cgJiM0MzsgMSktJmd0O3N0YXJ0OwomIzQzOwomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgbjsgaSYjNDM7JiM0MzspIHsKJiM0MzsJCXUzMiB0YXJnZXQgPSBlbnYtJmd0O2dvdG94X3RtcF9idWYtJmd0O2l0ZW1zW2ldOwomIzQzOwomIzQzOwkJaWYgKHRhcmdldCAmbHQ7IHN1YnByb2dfc3RhcnQgfHwgdGFyZ2V0ICZndDs9IHN1YnByb2dfZW5kKSB7CiYjNDM7CQkJdmVyYm9zZShlbnYsICYjMzQ7Z290b3ggdGFyZ2V0ICV1IG91dHNpZGUgc3VicHJvZ1xuJiMzNDssIHRhcmdldCk7CiYjNDM7CQkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CQl9CiYjNDM7CX0KYGBgCgpZZXAsIGl0JiMzOTtzIGRvaW5nIGV4YWN0bHkgd2hhdCBJIHRob3VnaHQuIEl0IGZpbmRzIHRoZSBzdWJwcm9ncmFtIHRoYXQgdGhlIGN1cnJlbnQgaW5zdHJ1Y3Rpb24gcmVzaWRlcyBpbiwgY2hlY2tzIGlmIGl0JiMzOTtzIGdvdG94LCB0aGVuIGl0ZXJhdGVzIHRocm91Z2ggYWxsIHBvdGVudGlhbCB0YXJnZXRzIHRvIG1ha2Ugc3VyZSB0aGV5JiMzOTtyZSB3aXRoaW4gdGhlIGNvbmZpbmVzIG9mIHRoYXQgc3VicHJvZ3JhbS4gSWYgdGhleSYjMzk7cmUgbm90LCBpdCBmbGFncyBhbiBlcnJvciBhbmQgcmV0dXJucyBgLUVJTlZBTGAuIFRoaXMgaXMgZGVmaW5pdGVseSBhIHNpZ25pZmljYW50IGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBCUEYgdmVyaWZpZXIuCgpGcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZSwgSSYjMzk7ZCBzYXkgdGhpcyBpcyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0byB0YXJnZXQuIEkmIzM5O2xsIG1hcmsgYFdvcnRoRnV6emluZz10cnVlYC4KCkZvciBmb2N1cyBzeW1ib2xzLCBgY2hlY2tfaW5kaXJlY3RfanVtcGAgaXMgdGhlIGtleSBmdW5jdGlvbiB0byBmb2N1cyBvbi4gYGJwZl9maW5kX2NvbnRhaW5pbmdfc3VicHJvZ2AgKm1pZ2h0KiBiZSByZWxldmFudCwgYnV0IGl0JiMzOTtzIGFuIGV4aXN0aW5nIGZ1bmN0aW9uLCBzbyBsZXQmIzM5O3Mgc3RpY2sgd2l0aCB0aGUgY29yZSBvZiB0aGUgY2hhbmdlOiBgY2hlY2tfaW5kaXJlY3RfanVtcGAuCgpBcyBmb3IgY29uZmlndXJhdGlvbiwgQlBGIGlzIGdlbmVyYWxseSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBJJiMzOTtsbCBtYWtlIHN1cmUgdG8gdmVyaWZ5IHRoZSBjb250ZXh0IG9mIGBDT05GSUdfQlBGX1NZU0NBTExgIOKAkyBpdCYjMzk7cyB0aGUgcHJpbWFyeSBjb25maWcgdG8gY2hlY2suIExldCYjMzk7cyBtYWtlIHN1cmUgdGhlIGRlcGVuZGVuY2llcyBhcmUgYXMgd2UgZXhwZWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE0OjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NoZWNrX2luZGlyZWN0X2p1bXAmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jPTE3MTExPXN0YXRpYyBpbnQgaW5kaXJlY3RfanVtcF9taW5fbWF4X2luZGV4KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3MTQ0LS8qIGdvdG94ICpkc3RfcmVnICovXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTcxNDU6c3RhdGljIGludCBjaGVja19pbmRpcmVjdF9qdW1wKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5zbilcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzE0Ni17XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTE3MjIyPXN0YXRpYyBpbnQgZG9fY2hlY2tfaW5zbihzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBib29sICpkb19wcmludF9zdGF0ZSlcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTcyOTQtXHRcdFx0aWYgKEJQRl9TUkMoaW5zbi1cdTAwM2Vjb2RlKSA9PSBCUEZfWClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNzI5NTpcdFx0XHRcdHJldHVybiBjaGVja19pbmRpcmVjdF9qdW1wKGVudiwgaW5zbik7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTcyOTYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDk5OAoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6CgoqKkZ1enppbmcgdGhlIGBjaGVja19pbmRpcmVjdF9qdW1wYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBgY2hlY2tfaW5kaXJlY3RfanVtcGAgaXMgdHJpZ2dlcmVkIHdpdGhpbiBgZG9fY2hlY2tfaW5zbmAgd2hlbmV2ZXIgYSBCUEYgaW5zdHJ1Y3Rpb24gdXNlcyBgQlBGX1hgIGFzIGl0cyBzb3VyY2Ugb3BlcmFuZC4gVGhhdCBzY3JlYW1zICYjMzQ7aW5kaXJlY3QganVtcCwmIzM0OyBhbmQgdGhhdCBtZWFucyBpdCYjMzk7cyBhIGNyaXRpY2FsIHBhcnQgb2YgdGhlIEJQRiB2ZXJpZmllcuKAlGl0ICpoYXMqIHRvIGJlIHJlYWNoYWJsZSBkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbi4gVGhpcyBtYWtlcyBpdCBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gV2UgbmVlZCB0byByZWFsbHkgdGVzdCBpdHMgYm91bmRhcmllcy4KCkdpdmVuIGl0cyBjcnVjaWFsIHJvbGUsIGl0JiMzOTtzIHdvcnRoIGNoZWNraW5nIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBhbmQgdGhlaXIgaW1wbGljYXRpb25zIGZvciB0aGlzIGZ1bmN0aW9uJiMzOTtzIGJlaGF2aW91ci4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBlbnZpcm9ubWVudGFsIGZhY3RvcnMgY291bGQgaW5mbHVlbmNlIGl0cyBleGVjdXRpb24gcGF0aHMgYW5kIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIEkmIzM5O2xsIG1ha2Ugc3VyZSB0byBnZXQgdGhvc2UgY292ZXJlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX1NZU0NBTEwmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExMjQgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbkRvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLWV4dC5yc3Q9MzU9b3B0aW9ucyBzaG91bGQgYmUgZW5hYmxlZCB0byB1c2Ugc2NoZWRfZXh0OlxuLS1cbkRvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLWV4dC5yc3QtNDAtICAgIENPTkZJR19TQ0hFRF9DTEFTU19FWFQ9eVxuRG9jdW1lbnRhdGlvbi9zY2hlZHVsZXIvc2NoZWQtZXh0LnJzdDo0MTogICAgQ09ORklHX0JQRl9TWVNDQUxMPXlcbkRvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLWV4dC5yc3QtNDItICAgIENPTkZJR19CUEZfSklUPXlcbi0tXG5Eb2N1bWVudGF0aW9uL3RyYWNlL2Zwcm9iZXRyYWNlLnJzdD04ND1wYXJhbWV0ZXJzIGJ5IGl0cyBuYW1lIGluc3RlYWQgb2YgYGAkYXJnTmBgLiBUaGlzIGZlYXR1cmUgaXMgYXZhaWxhYmxlIGlmIHRoZVxuRG9jdW1lbnRhdGlvbi90cmFjZS9mcHJvYmV0cmFjZS5yc3Q6ODU6a2VybmVsIGlzIGNvbmZpZ3VyZWQgd2l0aCBDT05GSUdfQlBGX1NZU0NBTEwgYW5kIENPTkZJR19ERUJVR19JTkZPX0JURi5cbkRvY3VtZW50YXRpb24vdHJhY2UvZnByb2JldHJhY2UucnN0LTg2LUlmIHVzZXIgb25seSBzcGVjaWZ5IHRoZSBCVEYgYXJndW1lbnQsIHRoZSBldmVudCYjMzk7cyBhcmd1bWVudCBuYW1lIGlzIGFsc29cbi0tXG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNF9kZWZjb25maWc9ND1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c0X2RlZmNvbmZpZzo1OkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL2FybS9jb25maWdzL2FzcGVlZF9nNF9kZWZjb25maWctNi1DT05GSUdfSUtDT05GSUc9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZz00PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzVfZGVmY29uZmlnOjU6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZy02LUNPTkZJR19JS0NPTkZJRz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnPTM9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnLTUtQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZy0xLSMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnOjI6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnLTMtQ09ORklHX1NDSEVEX0FVVE9HUk9VUD15XG4tLVxuYXJjaC9hcm0va2VybmVsL3NwZWN0cmUuYz04PXN0YXRpYyBib29sIF91bnByaXZpbGVnZWRfZWJwZl9lbmFibGVkKHZvaWQpXG5hcmNoL2FybS9rZXJuZWwvc3BlY3RyZS5jLTkte1xuYXJjaC9hcm0va2VybmVsL3NwZWN0cmUuYzoxMDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5hcmNoL2FybS9rZXJuZWwvc3BlY3RyZS5jLTExLVx0cmV0dXJuICFzeXNjdGxfdW5wcml2aWxlZ2VkX2JwZl9kaXNhYmxlZDtcbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTU9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjY6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWctNy1DT05GSUdfQlBGX0pJVD15XG4tLVxuYXJjaC9hcm02NC9rZXJuZWwvcHJvdG9uLXBhY2suYz0xMTA9c3RhdGljIGJvb2wgX3VucHJpdmlsZWdlZF9lYnBmX2VuYWJsZWQodm9pZClcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmMtMTExLXtcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmM6MTEyOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmMtMTEzLVx0cmV0dXJuICFzeXNjdGxfdW5wcml2aWxlZ2VkX2JwZl9kaXNhYmxlZDtcbi0tXG5hcmNoL2FybTY0L2tlcm5lbC9wcm90b24tcGFjay5jPTExNjc9dm9pZCBfX2luaXQgc3BlY3RyZV9iaGJfcGF0Y2hfY2xlYXJiaGIoc3RydWN0IGFsdF9pbnN0ciAqYWx0LFxuLS1cbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmMtMTE3OC1cbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmM6MTE3OTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5hcmNoL2FybTY0L2tlcm5lbC9wcm90b24tcGFjay5jLTExODAtI2RlZmluZSBFQlBGX1dBUk4gXCYjMzQ7VW5wcml2aWxlZ2VkIGVCUEYgaXMgZW5hYmxlZCwgZGF0YSBsZWFrcyBwb3NzaWJsZSB2aWEgU3BlY3RyZSB2MiBCSEIgYXR0YWNrcyFcXG5cJiMzNDtcbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnPTY9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjc6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWctOC1DT05GSUdfUFJFRU1QVD15XG4tLVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZz02PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZzo3OkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnLTgtQ09ORklHX0JQRl9KSVQ9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnPTc9Q09ORklHX0VYUEVSVD15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWctOS0jIENPTkZJR19TWVNGU19TWVNDQUxMIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnOjEwOkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZy0xMS0jIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZz03PUNPTkZJR19FWFBFUlQ9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnLTktIyBDT05GSUdfU1lTRlNfU1lTQ0FMTCBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZzoxMDpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWctMTEtIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnPTc9Q09ORklHX0VYUEVSVD15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnLTktIyBDT05GSUdfU1lTRlNfU1lTQ0FMTCBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX3I0a19kZWZjb25maWc6MTA6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZy0xMS0jIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXRcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc9Mz1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo0OkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctNS1DT05GSUdfVEFTS1NUQVRTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc9Mz1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo0OkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWctNS1DT05GSUdfVEFTS1NUQVRTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz0zPUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6NDpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWctNS1DT05GSUdfVEFTS1NUQVRTPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZz0xNj1DT05GSUdfQkxLX0RFVl9JTklUUkQ9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc6MTc6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnLTE4LUNPTkZJR19VU0VSRkFVTFRGRD15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZz03PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzo4OkNPTkZJR19CUEZfU1lTQ0FMTD15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnLTktQ09ORklHX0JQRl9KSVQ9eVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZz0xNj1DT05GSUdfS0FMTFNZTVNfQUxMPXlcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZzoxNzpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ZzcDJfZGVmY29uZmlnLTE4LUNPTkZJR19FWFBFUlQ9eVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnPTI4PUNPTkZJR19CTEtfREVWX0lOSVRSRD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZzoyOTpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG93ZXJudl9kZWZjb25maWctMzAtIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnPTY9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc6NzpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnLTgtQ09ORklHX0JQRl9KSVQ9eVxuLS1cbmFyY2gvcmlzY3YvY29uZmlncy9kZWZjb25maWc9ND1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcbmFyY2gvcmlzY3YvY29uZmlncy9kZWZjb25maWc6NTpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZy02LUNPTkZJR19JS0NPTkZJRz15XG4tLVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnPTg9Q09ORklHX1BPU0lYX0FVWF9DTE9DS1M9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnOjk6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZy0xMC1DT05GSUdfQlBGX0pJVD15XG4tLVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnPTc9Q09ORklHX1BPU0lYX0FVWF9DTE9DS1M9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnOjg6Q09ORklHX0JQRl9TWVNDQUxMPXlcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZy05LUNPTkZJR19CUEZfSklUPXlcbi0tXG5hcmNoL3MzOTAvY29uZmlncy96ZmNwZHVtcF9kZWZjb25maWc9Mz1DT05GSUdfUE9TSVhfQVVYX0NMT0NLUz15XG5hcmNoL3MzOTAvY29uZmlncy96ZmNwZHVtcF9kZWZjb25maWc6NDpDT05GSUdfQlBGX1NZU0NBTEw9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvemZjcGR1bXBfZGVmY29uZmlnLTUtIyBDT05GSUdfQ1BVX0lTT0xBVElPTiBpcyBub3Qgc2V0XG4tLVxuYXJjaC9zMzkwL2tlcm5lbC9NYWtlZmlsZT04MD1vYmotJChDT05GSUdfVFJBQ0VQT0lOVFMpXHQmIzQzOz0gdHJhY2Uub1xuYXJjaC9zMzkwL2tlcm5lbC9NYWtlZmlsZS04MS1cbmFyY2gvczM5MC9rZXJuZWwvTWFrZWZpbGU6ODI6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKVx0JiM0Mzs9IGJwZi5vXG5hcmNoL3MzOTAva2VybmVsL01ha2VmaWxlLTgzLVxuLS1cbmFyY2gveDg2L2tlcm5lbC9jcHUvYnVncy5jPTE2NTU9c3RhdGljIGlubGluZSBjb25zdCBjaGFyICpzcGVjdHJlX3YyX21vZHVsZV9zdHJpbmcodm9pZCkgeyByZXR1cm4gXCYjMzQ7XCYjMzQ7OyB9XG4tLVxuYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmMtMTY2Mi1cbmFyY2gveDg2L2tlcm5lbC9jcHUvYnVncy5jOjE2NjM6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmMtMTY2NC12b2lkIHVucHJpdl9lYnBmX25vdGlmeShpbnQgbmV3X3N0YXRlKVxuLS1cbmNyeXB0by9NYWtlZmlsZT0yND1vYmotJChDT05GSUdfQ1JZUFRPX1NLQ0lQSEVSMikgJiM0Mzs9IGNyeXB0b19za2NpcGhlci5vXG5jcnlwdG8vTWFrZWZpbGU6MjU6aWZlcSAoJChDT05GSUdfQlBGX1NZU0NBTEwpLHkpXG5jcnlwdG8vTWFrZWZpbGUtMjYtb2JqLSQoQ09ORklHX0NSWVBUT19TS0NJUEhFUjIpICYjNDM7PSBicGZfY3J5cHRvX3NrY2lwaGVyLm9cbi0tXG5kcml2ZXJzL2Jhc2UvcG93ZXIvcG93ZXIuaD0xNjU9c3RhdGljIGlubGluZSB2b2lkIGRldmljZV9wbV9pbml0KHN0cnVjdCBkZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL2Jhc2UvcG93ZXIvcG93ZXIuaC0xNzEtXG5kcml2ZXJzL2Jhc2UvcG93ZXIvcG93ZXIuaDoxNzI6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuZHJpdmVycy9iYXNlL3Bvd2VyL3Bvd2VyLmgtMTczLXN0cnVjdCBicGZfd3NfbG9jayB7IH07XG4tLVxuZHJpdmVycy9iYXNlL3Bvd2VyL3dha2V1cC5jPTExNjM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgd2FrZXVwX3NvdXJjZXNfc3RhdHNfZm9wcyA9IHtcbi0tXG5kcml2ZXJzL2Jhc2UvcG93ZXIvd2FrZXVwLmMtMTE3MC1cbmRyaXZlcnMvYmFzZS9wb3dlci93YWtldXAuYzoxMTcxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmRyaXZlcnMvYmFzZS9wb3dlci93YWtldXAuYy0xMTcyLSNpbmNsdWRlIFx1MDAzY2xpbnV4L2J0Zi5oXHUwMDNlXG4tLVxuZHJpdmVycy9iYXNlL3Bvd2VyL3dha2V1cC5jPTEyMzM9c3RhdGljIGlubGluZSB2b2lkIHdha2V1cF9zb3VyY2VzX2JwZl9pbml0KHZvaWQpIHt9XG5kcml2ZXJzL2Jhc2UvcG93ZXIvd2FrZXVwLmM6MTIzNDojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5kcml2ZXJzL2Jhc2UvcG93ZXIvd2FrZXVwLmMtMTIzNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL01ha2VmaWxlPTY0PWVuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL01ha2VmaWxlLTY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9NYWtlZmlsZTo2NjppZmVxICgkKENPTkZJR19CUEZfU1lTQ0FMTCkseSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvTWFrZWZpbGUtNjctbmZwLW9ianMgJiM0Mzs9IFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfYXBwLmM9MTg9c3RhdGljIGNvbnN0IHN0cnVjdCBuZnBfYXBwX3R5cGUgKmFwcHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZwX2FwcC5jLTE5LVx0W05GUF9BUFBfQ09SRV9OSUNdXHQ9IFx1MDAyNmFwcF9uaWMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9hcHAuYzoyMDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9hcHAuYy0yMS1cdFtORlBfQVBQX0JQRl9OSUNdXHQ9IFx1MDAyNmFwcF9icGYsXG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlPTU9bmV0ZGV2c2ltLW9ianMgOj0gXFxcbi0tXG5kcml2ZXJzL25ldC9uZXRkZXZzaW0vTWFrZWZpbGUtNy1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9NYWtlZmlsZTo4OmlmZXEgKCQoQ09ORklHX0JQRl9TWVNDQUxMKSx5KVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlLTktbmV0ZGV2c2ltLW9ianMgJiM0Mzs9IFxcXG4tLVxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oPTE3OD12b2lkIG5zaW1fdWRwX3R1bm5lbHNfaW5mb19kZXN0cm95KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oLTE3OS1cbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaDoxODA6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oLTE4MS1pbnQgbnNpbV9icGZfZGV2X2luaXQoc3RydWN0IG5zaW1fZGV2ICpuc2ltX2Rldik7XG4tLVxuZnMvdmVyaXR5L2ZzdmVyaXR5X3ByaXZhdGUuaD0xMDM9ZnN2ZXJpdHlfbXNnKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKmxldmVsLFxuLS1cbmZzL3Zlcml0eS9mc3Zlcml0eV9wcml2YXRlLmgtMTEyLVxuZnMvdmVyaXR5L2ZzdmVyaXR5X3ByaXZhdGUuaDoxMTM6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuZnMvdmVyaXR5L2ZzdmVyaXR5X3ByaXZhdGUuaC0xMTQtdm9pZCBfX2luaXQgZnN2ZXJpdHlfaW5pdF9icGYodm9pZCk7XG4tLVxuZnMvdmVyaXR5L21lYXN1cmUuYz0xMDU9RVhQT1JUX1NZTUJPTF9HUEwoZnN2ZXJpdHlfZ2V0X2RpZ2VzdCk7XG5mcy92ZXJpdHkvbWVhc3VyZS5jLTEwNi1cbmZzL3Zlcml0eS9tZWFzdXJlLmM6MTA3OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmZzL3Zlcml0eS9tZWFzdXJlLmMtMTA4LVxuLS1cbmZzL3Zlcml0eS9tZWFzdXJlLmM9MTgzPXZvaWQgX19pbml0IGZzdmVyaXR5X2luaXRfYnBmKHZvaWQpXG4tLVxuZnMvdmVyaXR5L21lYXN1cmUuYy0xODctXG5mcy92ZXJpdHkvbWVhc3VyZS5jOjE4ODojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0yMTkwPXN0YXRpYyBpbmxpbmUgYm9vbCBpc190cmFjaW5nX211bHRpKGVudW0gYnBmX2F0dGFjaF90eXBlIHR5cGUpXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0yMTk1LVxuaW5jbHVkZS9saW51eC9icGYuaDoyMTk2OiNpZiBkZWZpbmVkKENPTkZJR19CUEZfSklUKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTIxOTctLyogVGhpcyBtYWNybyBoZWxwcyBkZXZlbG9wZXIgdG8gcmVnaXN0ZXIgYSBzdHJ1Y3Rfb3BzIHR5cGUgYW5kIGdlbmVyYXRlXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0yNTQ3PXN0YXRpYyBpbmxpbmUgc3RydWN0IGJwZl9ydW5fY3R4ICpicGZfc2V0X3J1bl9jdHgoc3RydWN0IGJwZl9ydW5fY3R4ICpuZXdfY3R4KVxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmgtMjU1MC1cbmluY2x1ZGUvbGludXgvYnBmLmg6MjU1MTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTI1NTItXHRvbGRfY3R4ID0gY3VycmVudC1cdTAwM2VicGZfY3R4O1xuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9MjU1OD1zdGF0aWMgaW5saW5lIHZvaWQgYnBmX3Jlc2V0X3J1bl9jdHgoc3RydWN0IGJwZl9ydW5fY3R4ICpvbGRfY3R4KVxuaW5jbHVkZS9saW51eC9icGYuaC0yNTU5LXtcbmluY2x1ZGUvbGludXgvYnBmLmg6MjU2MDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTI1NjEtXHRjdXJyZW50LVx1MDAzZWJwZl9jdHggPSBvbGRfY3R4O1xuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9MjY1MT1ib29sIGJwZl9qaXRfYnlwYXNzX3NwZWNfdjQodm9pZCk7XG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0yNjU1LVxuaW5jbHVkZS9saW51eC9icGYuaDoyNjU2OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbGludXgvYnBmLmgtMjY1Ny1ERUNMQVJFX1BFUl9DUFUoaW50LCBicGZfcHJvZ19hY3RpdmUpO1xuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9MzIxNz1icGZfcHJvZ19ydW5fYXJyYXlfc2xlZXBhYmxlKGNvbnN0IHN0cnVjdCBicGZfcHJvZ19hcnJheSAqYXJyYXksXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0zMjY1LVxuaW5jbHVkZS9saW51eC9icGYuaDozMjY2OiNlbHNlIC8qICFDT05GSUdfQlBGX1NZU0NBTEwgKi9cbmluY2x1ZGUvbGludXgvYnBmLmgtMzI2Ny1zdGF0aWMgaW5saW5lIHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2dfZ2V0KHUzMiB1ZmQpXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0zNTU5PXN0YXRpYyBpbmxpbmUgdm9pZCBicGZfcHJvZ19yZXBvcnRfYXJlbmFfdmlvbGF0aW9uKGJvb2wgd3JpdGUsIHVuc2lnbmVkIGxvbmcgYWRkcixcbi0tXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM1NjItfVxuaW5jbHVkZS9saW51eC9icGYuaDozNTYzOiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cbmluY2x1ZGUvbGludXgvYnBmLmgtMzU2NC1cbi0tXG5pbmNsdWRlL2xpbnV4L2JwZi5oPTM2MjE9dm9pZCB1bnByaXZfZWJwZl9ub3RpZnkoaW50IG5ld19zdGF0ZSk7XG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM2MjItXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM2MjM6I2lmIGRlZmluZWQoQ09ORklHX05FVCkgXHUwMDI2XHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxuaW5jbHVkZS9saW51eC9icGYuaC0zNjI0LWludCBicGZfZGV2X2JvdW5kX2tmdW5jX2NoZWNrKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0zNzI4PXN0YXRpYyBpbmxpbmUgaW50IGJwZl9wcm9nX3Rlc3RfcnVuX3N5c2NhbGwoc3RydWN0IGJwZl9wcm9nICpwcm9nLFxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmgtMzczNC1cbmluY2x1ZGUvbGludXgvYnBmLmg6MzczNTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3MzYtc3RhdGljIGlubGluZSBpbnQgc29ja19tYXBfZ2V0X2Zyb21fZmQoY29uc3QgdW5pb24gYnBmX2F0dHIgKmF0dHIsXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0zNzYwPXN0YXRpYyBpbmxpbmUgaW50IHNvY2tfbWFwX2xpbmtfY3JlYXRlKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0zNzYzLX1cbmluY2x1ZGUvbGludXgvYnBmLmg6Mzc2NDojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM3NjU6I2VuZGlmIC8qIENPTkZJR19ORVQgXHUwMDI2XHUwMDI2IENPTkZJR19CUEZfU1lTQ0FMTCAqL1xuaW5jbHVkZS9saW51eC9icGYuaC0zNzY2LVxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9Mzc2OD1icGZfcHJvZ19pbmNfbWlzc2VzX2NvdW50ZXJzKGNvbnN0IHN0cnVjdCBicGZfcHJvZ19hcnJheSAqYXJyYXkpXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0zNzgyLVxuaW5jbHVkZS9saW51eC9icGYuaDozNzgzOiNpZiBkZWZpbmVkKENPTkZJR19JTkVUKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3ODQtdm9pZCBicGZfc2tfcmV1c2Vwb3J0X2RldGFjaChzdHJ1Y3Qgc29jayAqc2spO1xuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9Mzc5MD1zdGF0aWMgaW5saW5lIHZvaWQgYnBmX3NrX3JldXNlcG9ydF9kZXRhY2goc3RydWN0IHNvY2sgKnNrKVxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmgtMzc5My1cbmluY2x1ZGUvbGludXgvYnBmLmg6Mzc5NDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3OTUtc3RhdGljIGlubGluZSBpbnQgYnBmX2ZkX3JldXNlcG9ydF9hcnJheV9sb29rdXBfZWxlbShzdHJ1Y3QgYnBmX21hcCAqbWFwLFxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9MzgwMT1zdGF0aWMgaW5saW5lIGludCBicGZfZmRfcmV1c2Vwb3J0X2FycmF5X3VwZGF0ZV9lbGVtKHN0cnVjdCBicGZfbWFwICptYXAsXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0zODA2LX1cbmluY2x1ZGUvbGludXgvYnBmLmg6MzgwNzojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM4MDg6I2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX0lORVQpIFx1MDAyNlx1MDAyNiBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTCkgKi9cbmluY2x1ZGUvbGludXgvYnBmLmgtMzgwOS1cbi0tXG5pbmNsdWRlL2xpbnV4L2JwZi5oPTM4MTE9c3RydWN0IGJwZl9rZXkge1xuLS1cbmluY2x1ZGUvbGludXgvYnBmLmgtMzgxNi1cbmluY2x1ZGUvbGludXgvYnBmLmg6MzgxNzojaWYgZGVmaW5lZChDT05GSUdfS0VZUykgXHUwMDI2XHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxuaW5jbHVkZS9saW51eC9icGYuaC0zODE4LXN0cnVjdCBicGZfa2V5ICpicGZfbG9va3VwX3VzZXJfa2V5KHMzMiBzZXJpYWwsIHU2NCBmbGFncyk7XG4tLVxuaW5jbHVkZS9saW51eC9icGYuaD0zODUxPXN0YXRpYyBpbmxpbmUgczMyIGJwZl9rZXlfc2VyaWFsKGNvbnN0IHN0cnVjdCBicGZfa2V5ICprZXkpXG4tLVxuaW5jbHVkZS9saW51eC9icGYuaC0zODU0LX1cbmluY2x1ZGUvbGludXgvYnBmLmg6Mzg1NTojZW5kaWYgLyogZGVmaW5lZChDT05GSUdfS0VZUykgXHUwMDI2XHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKSAqL1xuaW5jbHVkZS9saW51eC9icGYuaC0zODU2LVxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmg9NDE1OD12b2lkIGJwZl9pbnNuX2FycmF5X2FkanVzdF9hZnRlcl9yZW1vdmUoc3RydWN0IGJwZl9tYXAgKm1hcCwgdTMyIG9mZiwgdTMyIGxlbik7XG5pbmNsdWRlL2xpbnV4L2JwZi5oLTQxNTktXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjQxNjA6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuaW5jbHVkZS9saW51eC9icGYuaC00MTYxLXZvaWQgYnBmX3Byb2dfdXBkYXRlX2luc25fcHRycyhzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIHUzMiAqb2Zmc2V0cywgdm9pZCAqaW1hZ2UpO1xuLS1cbmluY2x1ZGUvbGludXgvYnBmX2RlZnMuaC04LVxuaW5jbHVkZS9saW51eC9icGZfZGVmcy5oOjk6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuaW5jbHVkZS9saW51eC9icGZfZGVmcy5oLTEwLWJvb2wgYnBmX2FyZW5hX2hhbmRsZV9wYWdlX2ZhdWx0KHVuc2lnbmVkIGxvbmcgYWRkciwgYm9vbCBpc193cml0ZSwgdW5zaWduZWQgbG9uZyBmYXVsdF9pcCk7XG4tLVxuaW5jbHVkZS9saW51eC9idGYuaD01MzI9c3RydWN0IGJwZl92ZXJpZmllcl9sb2c7XG5pbmNsdWRlL2xpbnV4L2J0Zi5oLTUzMy1cbmluY2x1ZGUvbGludXgvYnRmLmg6NTM0OiNpZiBkZWZpbmVkKENPTkZJR19CUEZfSklUKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXG5pbmNsdWRlL2xpbnV4L2J0Zi5oLTUzNS1zdHJ1Y3QgYnBmX3N0cnVjdF9vcHM7XG4tLVxuaW5jbHVkZS9saW51eC9idGYuaD01NjA9c3RydWN0IGJ0Zl9maWVsZF9pdGVyIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2J0Zi5oLTU2Ny1cbmluY2x1ZGUvbGludXgvYnRmLmg6NTY4OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbGludXgvYnRmLmgtNTY5LWNvbnN0IHN0cnVjdCBidGZfdHlwZSAqYnRmX3R5cGVfYnlfaWQoY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLCB1MzIgdHlwZV9pZCk7XG4tLVxuaW5jbHVkZS9saW51eC9jZ3JvdXAtZGVmcy5oPTQ3ND1zdHJ1Y3QgY2dyb3VwIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmgtNjI4LVxuaW5jbHVkZS9saW51eC9jZ3JvdXAtZGVmcy5oOjYyOTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmgtNjMwLVx0c3RydWN0IGJwZl9sb2NhbF9zdG9yYWdlIF9fcmN1ICAqYnBmX2NncnBfc3RvcmFnZTtcbi0tXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTg4NT1zdGF0aWMgaW5saW5lIHZvaWQgYnBmX25ldF9jdHhfZ2V0X2FsbF91c2VkX2ZsdXNoX2xpc3RzKHN0cnVjdCBsaXN0X2hlYWQgKipsaF9tYXAsXG4tLVxuaW5jbHVkZS9saW51eC9maWx0ZXIuaC04OTQtXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oOjg5NTpcdGlmICghSVNfRU5BQkxFRChDT05GSUdfQlBGX1NZU0NBTEwpKVxuaW5jbHVkZS9saW51eC9maWx0ZXIuaC04OTYtXHRcdHJldHVybjtcbi0tXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTEyMDc9c3RydWN0IGJwZl9wcm9nICpicGZfcGF0Y2hfaW5zbl9zaW5nbGUoc3RydWN0IGJwZl9wcm9nICpwcm9nLCB1MzIgb2ZmLFxuLS1cbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtMTIwOS1cbmluY2x1ZGUvbGludXgvZmlsdGVyLmg6MTIxMDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTEyMTEtc3RydWN0IGJwZl9wcm9nICpicGZfcGF0Y2hfaW5zbl9kYXRhKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHUzMiBvZmYsXG4tLVxuaW5jbHVkZS9saW51eC9maWx0ZXIuaD0xMjI4PXN0YXRpYyBpbmxpbmUgdm9pZCBicGZfcmVzdG9yZV9pbnNuX2F1eF9kYXRhKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxuaW5jbHVkZS9saW51eC9maWx0ZXIuaC0xMjMxLX1cbmluY2x1ZGUvbGludXgvZmlsdGVyLmg6MTIzMjojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTEyMzMtXG4tLVxuaW5jbHVkZS9saW51eC9sc21faG9va19kZWZzLmg9NDM3PUxTTV9IT09LKHZvaWQsIExTTV9SRVRfVk9JRCwgYXVkaXRfcnVsZV9mcmVlLCB2b2lkICpsc21ydWxlKVxuLS1cbmluY2x1ZGUvbGludXgvbHNtX2hvb2tfZGVmcy5oLTQzOS1cbmluY2x1ZGUvbGludXgvbHNtX2hvb2tfZGVmcy5oOjQ0MDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaC00NDEtTFNNX0hPT0soaW50LCAwLCBicGYsIGludCBjbWQsIHVuaW9uIGJwZl9hdHRyICphdHRyLCB1bnNpZ25lZCBpbnQgc2l6ZSwgYm9vbCBrZXJuZWwpXG4tLVxuaW5jbHVkZS9saW51eC9sc21faG9va19kZWZzLmg9NDU0PUxTTV9IT09LKGludCwgMCwgYnBmX3Rva2VuX2NhcGFibGUsIGNvbnN0IHN0cnVjdCBicGZfdG9rZW4gKnRva2VuLCBpbnQgY2FwKVxuaW5jbHVkZS9saW51eC9sc21faG9va19kZWZzLmg6NDU1OiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cbmluY2x1ZGUvbGludXgvbHNtX2hvb2tfZGVmcy5oLTQ1Ni1cbi0tXG5pbmNsdWRlL2xpbnV4L21tLmg9MzE4Nz1leHRlcm4gaW50IGFjY2Vzc19yZW1vdGVfdm0oc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcixcbi0tXG5pbmNsdWRlL2xpbnV4L21tLmgtMzE4OS1cbmluY2x1ZGUvbGludXgvbW0uaDozMTkwOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbGludXgvbW0uaC0zMTkxLWV4dGVybiBpbnQgY29weV9yZW1vdGVfdm1fc3RyKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCB1bnNpZ25lZCBsb25nIGFkZHIsXG4tLVxuaW5jbHVkZS9saW51eC9zY2hlZC5oPTgyMD1zdHJ1Y3QgdGFza19zdHJ1Y3Qge1xuLS1cbmluY2x1ZGUvbGludXgvc2NoZWQuaC0xNTgzLSNlbmRpZlxuaW5jbHVkZS9saW51eC9zY2hlZC5oOjE1ODQ6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuaW5jbHVkZS9saW51eC9zY2hlZC5oLTE1ODUtXHQvKiBVc2VkIGJ5IEJQRiB0YXNrIGxvY2FsIHN0b3JhZ2UgKi9cbi0tXG5pbmNsdWRlL2xpbnV4L3NjaGVkL3VzZXIuaD0xND1zdHJ1Y3QgdXNlcl9zdHJ1Y3Qge1xuLS1cbmluY2x1ZGUvbGludXgvc2NoZWQvdXNlci5oLTI1LVxuaW5jbHVkZS9saW51eC9zY2hlZC91c2VyLmg6MjY6I2lmIGRlZmluZWQoQ09ORklHX1BFUkZfRVZFTlRTKSB8fCBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTCkgfHwgXFxcbmluY2x1ZGUvbGludXgvc2NoZWQvdXNlci5oLTI3LVx0ZGVmaW5lZChDT05GSUdfTkVUKSB8fCBkZWZpbmVkKENPTkZJR19JT19VUklORykgfHwgXFxcbi0tXG5pbmNsdWRlL2xpbnV4L3NlY3VyaXR5Lmg9MjI4OT1zdGF0aWMgaW5saW5lIHZvaWQgc2VjdXJpdHlmc19yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KVxuLS1cbmluY2x1ZGUvbGludXgvc2VjdXJpdHkuaC0yMjkzLVxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oOjIyOTQ6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oLTIyOTUtdW5pb24gYnBmX2F0dHI7XG4tLVxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oPTIzNjM9c3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfYnBmX3Rva2VuX2NhcGFibGUoY29uc3Qgc3RydWN0IGJwZl90b2tlbiAqdG9rZW4sIGludCBjYXApXG4tLVxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oLTIzNjctI2VuZGlmIC8qIENPTkZJR19TRUNVUklUWSAqL1xuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oOjIzNjg6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oLTIzNjktXG4tLVxuaW5jbHVkZS9uZXQvYWZfdnNvY2suaD0yNjE9ZXh0ZXJuIHN0cnVjdCBwcm90byB2c29ja19wcm90bztcbmluY2x1ZGUvbmV0L2FmX3Zzb2NrLmg6MjYyOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbmV0L2FmX3Zzb2NrLmgtMjYzLWludCB2c29ja19icGZfdXBkYXRlX3Byb3RvKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX3Bzb2NrICpwc29jaywgYm9vbCByZXN0b3JlKTtcbi0tXG5pbmNsdWRlL25ldC9icGZfc2tfc3RvcmFnZS5oPTI5PXN0cnVjdCBubGF0dHI7XG5pbmNsdWRlL25ldC9icGZfc2tfc3RvcmFnZS5oLTMwLVxuaW5jbHVkZS9uZXQvYnBmX3NrX3N0b3JhZ2UuaDozMTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL25ldC9icGZfc2tfc3RvcmFnZS5oLTMyLWludCBicGZfc2tfc3RvcmFnZV9jbG9uZShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpuZXdzayk7XG4tLVxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaD00NzY9Zmxvd19kaXNzZWN0b3JfaW5pdF9rZXlzKHN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfY29udHJvbCAqa2V5X2NvbnRyb2wsXG4tLVxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaC00ODItXG5pbmNsdWRlL25ldC9mbG93X2Rpc3NlY3Rvci5oOjQ4MzojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL25ldC9mbG93X2Rpc3NlY3Rvci5oLTQ4NC1pbnQgZmxvd19kaXNzZWN0b3JfYnBmX3Byb2dfYXR0YWNoX2NoZWNrKHN0cnVjdCBuZXQgKm5ldCxcbmluY2x1ZGUvbmV0L2Zsb3dfZGlzc2VjdG9yLmgtNDg1LVx0XHRcdFx0XHQgc3RydWN0IGJwZl9wcm9nICpwcm9nKTtcbmluY2x1ZGUvbmV0L2Zsb3dfZGlzc2VjdG9yLmg6NDg2OiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cbmluY2x1ZGUvbmV0L2Zsb3dfZGlzc2VjdG9yLmgtNDg3LVxuLS1cbmluY2x1ZGUvbmV0L2lwNl9maWIuaD02MzA9dm9pZCBmaWI2X2luZm9faHdfZmxhZ3Nfc2V0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGZpYjZfaW5mbyAqZjZpLFxuLS1cbmluY2x1ZGUvbmV0L2lwNl9maWIuaC02MzItXG5pbmNsdWRlL25ldC9pcDZfZmliLmg6NjMzOiNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXG5pbmNsdWRlL25ldC9pcDZfZmliLmgtNjM0LXN0cnVjdCBicGZfaXRlcl9faXB2Nl9yb3V0ZSB7XG4tLVxuaW5jbHVkZS9uZXQvbXB0Y3AuaD0zMjc9c3RhdGljIGlubGluZSB2b2lkIG1wdGNwdjZfaGFuZGxlX21hcHBlZChzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgbWFwcGVkKSB7IH1cbi0tXG5pbmNsdWRlL25ldC9tcHRjcC5oLTMyOS1cbmluY2x1ZGUvbmV0L21wdGNwLmg6MzMwOiNpZiBkZWZpbmVkKENPTkZJR19NUFRDUCkgXHUwMDI2XHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxuaW5jbHVkZS9uZXQvbXB0Y3AuaC0zMzEtc3RydWN0IG1wdGNwX3NvY2sgKmJwZl9tcHRjcF9zb2NrX2Zyb21fc3ViZmxvdyhzdHJ1Y3Qgc29jayAqc2spO1xuLS1cbmluY2x1ZGUvbmV0L3NvY2suaD0zNjU9c3RydWN0IHNvY2sge1xuLS1cbmluY2x1ZGUvbmV0L3NvY2suaC01ODYtXHRzdHJ1Y3Qgc29ja19yZXVzZXBvcnQgX19yY3VcdCpza19yZXVzZXBvcnRfY2I7XG5pbmNsdWRlL25ldC9zb2NrLmg6NTg3OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbmV0L3NvY2suaC01ODgtXHRzdHJ1Y3QgYnBmX2xvY2FsX3N0b3JhZ2UgX19yY3VcdCpza19icGZfc3RvcmFnZTtcbi0tXG5pbmNsdWRlL25ldC9zb2NrLmg9MTI5MT1zdHJ1Y3QgcHJvdG8ge1xuLS1cbmluY2x1ZGUvbmV0L3NvY2suaC0xMzQzLVx0dm9pZFx0XHRcdCgqcHV0X3BvcnQpKHN0cnVjdCBzb2NrICpzayk7XG5pbmNsdWRlL25ldC9zb2NrLmg6MTM0NDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXG5pbmNsdWRlL25ldC9zb2NrLmgtMTM0NS1cdGludFx0XHRcdCgqcHNvY2tfdXBkYXRlX3NrX3Byb3QpKHN0cnVjdCBzb2NrICpzayxcbi0tXG5pbmNsdWRlL25ldC90Y3AuaD0yODUzPXN0cnVjdCBza19wc29jaztcbmluY2x1ZGUvbmV0L3RjcC5oLTI4NTQtXG5pbmNsdWRlL25ldC90Y3AuaDoyODU1OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbmV0L3RjcC5oLTI4NTYtaW50IHRjcF9icGZfdXBkYXRlX3Byb3RvKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX3Bzb2NrICpwc29jaywgYm9vbCByZXN0b3JlKTtcbi0tXG5pbmNsdWRlL25ldC90Y3AuaD0yODYwPWludCB0Y3BfYnBmX3N0cnBfcmVhZF9zb2NrKHN0cnVjdCBzdHJwYXJzZXIgKnN0cnAsIHJlYWRfZGVzY3JpcHRvcl90ICpkZXNjLFxuLS1cbmluY2x1ZGUvbmV0L3RjcC5oLTI4NjItI2VuZGlmIC8qIENPTkZJR19CUEZfU1RSRUFNX1BBUlNFUiAqL1xuaW5jbHVkZS9uZXQvdGNwLmg6Mjg2MzojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL25ldC90Y3AuaC0yODY0LVxuLS1cbmluY2x1ZGUvbmV0L3RjcC5oPTI4NzM9aW50IHRjcF9icGZfc2VuZG1zZ19yZWRpcihzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgaW5ncmVzcyxcbi0tXG5pbmNsdWRlL25ldC90Y3AuaC0yODc2LVxuaW5jbHVkZS9uZXQvdGNwLmg6Mjg3NzojaWYgIWRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKSB8fCAhZGVmaW5lZChDT05GSUdfTkVUX1NPQ0tfTVNHKVxuaW5jbHVkZS9uZXQvdGNwLmgtMjg3OC1zdGF0aWMgaW5saW5lIHZvaWQgdGNwX2JwZl9jbG9uZShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpuZXdzaylcbi0tXG5pbmNsdWRlL25ldC90Y3guaD0xNDU9c3RhdGljIGlubGluZSBlbnVtIHRjeF9hY3Rpb25fYmFzZSB0Y3hfYWN0aW9uX2NvZGUoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5pbmNsdWRlL25ldC90Y3guaC0xNjEtXG5pbmNsdWRlL25ldC90Y3guaDoxNjI6I2lmIGRlZmluZWQoQ09ORklHX05FVF9YR1JFU1MpIFx1MDAyNlx1MDAyNiBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTClcbmluY2x1ZGUvbmV0L3RjeC5oLTE2My1pbnQgdGN4X3Byb2dfYXR0YWNoKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpO1xuLS1cbmluY2x1ZGUvbmV0L3RjeC5oPTIwMj1zdGF0aWMgaW5saW5lIHZvaWQgZGV2X3RjeF91bmluc3RhbGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5pbmNsdWRlL25ldC90Y3guaC0yMDQtfVxuaW5jbHVkZS9uZXQvdGN4Lmg6MjA1OiNlbmRpZiAvKiBDT05GSUdfTkVUX1hHUkVTUyBcdTAwMjZcdTAwMjYgQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL25ldC90Y3guaC0yMDYtI2VuZGlmIC8qIF9fTkVUX1RDWF9IICovXG4tLVxuaW5jbHVkZS9uZXQvdWRwLmg9NjMyPXN0YXRpYyBpbmxpbmUgdm9pZCB1ZHBfcG9zdF9zZWdtZW50X2ZpeF9jc3VtKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuaW5jbHVkZS9uZXQvdWRwLmgtNjUwLVxuaW5jbHVkZS9uZXQvdWRwLmg6NjUxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvbmV0L3VkcC5oLTY1Mi1zdHJ1Y3Qgc2tfcHNvY2s7XG4tLVxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg9MTUwPURFRklORV9FVkVOVCh4ZHBfcmVkaXJlY3RfdGVtcGxhdGUsIHhkcF9yZWRpcmVjdF9lcnIsXG4tLVxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmgtMTcwLVxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg6MTcxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcbmluY2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oLTE3Mi1UUkFDRV9FVkVOVCh4ZHBfY3B1bWFwX2t0aHJlYWQsXG4tLVxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg9MjUwPVRSQUNFX0VWRU5UKHhkcF9kZXZtYXBfeG1pdCxcbi0tXG5pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAuaC0yODQtKTtcbmluY2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oOjI4NTojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXG5pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAuaC0yODYtXG4tLVxua2VybmVsL2JwZi9NYWtlZmlsZT03PUNGTEFHU19jb3JlLm8gJiM0Mzs9IC1Xbm8tb3ZlcnJpZGUtaW5pdCAkKGNmbGFncy1ub2djc2UteXkpXG5rZXJuZWwvYnBmL01ha2VmaWxlLTgtXG5rZXJuZWwvYnBmL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gc3lzY2FsbC5vIHZlcmlmaWVyLm8gaW5vZGUubyBoZWxwZXJzLm8gdG51bS5vIGNudW0ubyBsb2cubyB0b2tlbi5vIGxpdmVuZXNzLm8gY29uc3RfZm9sZC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjEwOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJwZl9pdGVyLm8gbWFwX2l0ZXIubyB0YXNrX2l0ZXIubyBwcm9nX2l0ZXIubyBsaW5rX2l0ZXIub1xua2VybmVsL2JwZi9NYWtlZmlsZToxMTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBoYXNodGFiLm8gYXJyYXltYXAubyBwZXJjcHVfZnJlZWxpc3QubyBicGZfbHJ1X2xpc3QubyBscG1fdHJpZS5vIG1hcF9pbl9tYXAubyBibG9vbV9maWx0ZXIub1xua2VybmVsL2JwZi9NYWtlZmlsZToxMjpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBsb2NhbF9zdG9yYWdlLm8gcXVldWVfc3RhY2tfbWFwcy5vIHJpbmdidWYubyBicGZfaW5zbl9hcnJheS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjEzOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJwZl9sb2NhbF9zdG9yYWdlLm8gYnBmX3Rhc2tfc3RvcmFnZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjE0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGZpeHVwcy5vIGNmZy5vIHN0YXRlcy5vIGJhY2t0cmFjay5vIGNoZWNrX2J0Zi5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTE1LW9iai0ke0NPTkZJR19CUEZfTFNNfVx0ICAmIzQzOz0gYnBmX2lub2RlX3N0b3JhZ2Uub1xua2VybmVsL2JwZi9NYWtlZmlsZToxNjpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBkaXNhc20ubyBtcHJvZy5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTE3LW9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gdHJhbXBvbGluZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjE4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJ0Zi5vIG1lbWFsbG9jLm8gcnFzcGlubG9jay5vIHN0cmVhbS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTE5LWlmZXEgKCQoQ09ORklHX01NVSkkKENPTkZJR182NEJJVCkseXkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjIwOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGFyZW5hLm8gcmFuZ2VfdHJlZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTIxLWVuZGlmXG4tLVxua2VybmVsL2JwZi9NYWtlZmlsZT0yMz1pZmVxICgkKENPTkZJR19ORVQpLHkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGRldm1hcC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGNwdW1hcC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI2Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IG9mZmxvYWQub1xua2VybmVsL2JwZi9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBuZXRfbmFtZXNwYWNlLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6Mjg6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gdGN4Lm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtMjktZW5kaWZcbmtlcm5lbC9icGYvTWFrZWZpbGU9MzA9aWZlcSAoJChDT05GSUdfUEVSRl9FVkVOVFMpLHkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjMxOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHN0YWNrbWFwLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtMzItZW5kaWZcbmtlcm5lbC9icGYvTWFrZWZpbGU9MzM9aWZlcSAoJChDT05GSUdfQ0dST1VQUykseSlcbmtlcm5lbC9icGYvTWFrZWZpbGU6MzQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gY2dyb3VwX2l0ZXIubyBicGZfY2dycF9zdG9yYWdlLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtMzUtZW5kaWZcbi0tXG5rZXJuZWwvYnBmL01ha2VmaWxlPTM3PWlmZXEgKCQoQ09ORklHX0lORVQpLHkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjM4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHJldXNlcG9ydF9hcnJheS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTM5LWVuZGlmXG4tLVxua2VybmVsL2JwZi9NYWtlZmlsZT00Mz1pZmVxICgkKENPTkZJR19CUEZfSklUKSx5KVxua2VybmVsL2JwZi9NYWtlZmlsZTo0NDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBicGZfc3RydWN0X29wcy5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGNwdW1hc2sub1xua2VybmVsL2JwZi9NYWtlZmlsZS00Ni0jIGJwZl9sc21fcHJvdG8ubyBtdXN0IHByZWNlZGUgYnBmX2xzbS5vLiBUaGUgY3VycmVudCBwYWhvbGUgbG9naWNcbi0tXG5rZXJuZWwvYnBmL01ha2VmaWxlPTU4PWlmbmVxICgkKENPTkZJR19DUllQVE8pLClcbmtlcm5lbC9icGYvTWFrZWZpbGU6NTk6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gY3J5cHRvLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtNjAtZW5kaWZcbmtlcm5lbC9icGYvTWFrZWZpbGU9NjE9b2JqLSQoQ09ORklHX0JQRl9QUkVMT0FEKSAmIzQzOz0gcHJlbG9hZC9cbmtlcm5lbC9icGYvTWFrZWZpbGUtNjItXG5rZXJuZWwvYnBmL01ha2VmaWxlOjYzOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHJlbG9fY29yZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJ0Zl9pdGVyLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6NjU6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gYnRmX3JlbG9jYXRlLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6NjY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0ga21lbV9jYWNoZV9pdGVyLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtNjctaWZlcSAoJChDT05GSUdfRE1BX1NIQVJFRF9CVUZGRVIpLHkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGRtYWJ1Zl9pdGVyLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtNjktZW5kaWZcbi0tXG5rZXJuZWwvYnBmL2NvcmUuYz05OT1zdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nX2FsbG9jX25vX3N0YXRzKHVuc2lnbmVkIGludCBzaXplLCBnZnBfdCBnZnBfZXh0cmFfZmxhZ3MpXG4tLVxua2VybmVsL2JwZi9jb3JlLmMtMTQxLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU0MTgKCQkJCQkJCW91dHB1dDogOTEKCQkJCQkJCXRob3VnaHRzOiA0MzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIEJQRiBWZXJpZmllciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjaGFuZ2UgdG8gdGhlIEJQRiB2ZXJpZmllciwgc3BlY2lmaWNhbGx5IGFyb3VuZCBpbmRpcmVjdCBqdW1wcywgb3IgYGdvdG94YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gZW5hYmxlIHRoZSByZWxldmFudCBjb2RlIGlzIGBDT05GSUdfQlBGX1NZU0NBTExgLCBhcyB0aGUgdmVyaWZpZXIgaXRzZWxmIGlzIG9ubHkgY29tcGlsZWQgd2hlbiB0aGF0JiMzOTtzIHNldC4gSSBzaG91bGQgZG91YmxlLWNoZWNrLCB0aG91Z2gsIHRvIGVuc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzLgoKTG9va2luZyBhdCB0aGUgY29kZSBtb2RpZmljYXRpb25zLCB0aGUgcGF0Y2ggdG91Y2hlcyBga2VybmVsL2JwZi92ZXJpZmllci5jYCBhbmQgYSBzZWxmLXRlc3QsIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guY2AuIFRoZSB0ZXN0IHVzZXMgYEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUmAsIHdoaWNoIHN1Z2dlc3RzIGBDT05GSUdfTkVUYCAqbWlnaHQqIGJlIHJlbGV2YW50LCBidXQgYENPTkZJR19CUEZfU1lTQ0FMTGAgaXMgbGlrZWx5IHRoZSBrZXkgb25lLiBMZXQmIzM5O3MgY29uZmlybSB0aGF0IGBDT05GSUdfQlBGX1NZU0NBTExgIGFsb25lIGlzIHN1ZmZpY2llbnQgdG8gdHJpZ2dlciB0aGUgY29tcGlsYXRpb24gb2YgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFllcywgaXQgYXBwZWFycyBzby4KCk5vdywgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhlIGNvcmUgb2YgdGhlIGNoYW5nZS4gYGNoZWNrX2luZGlyZWN0X2p1bXBgIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdhcyBtb2RpZmllZDsgdGhhdCYjMzk7cyB0aGUgZm9jYWwgcG9pbnQuIFdoaWxlIGBicGZfZmluZF9jb250YWluaW5nX3N1YnByb2dgIGlzIGFsc28gY2FsbGVkLCBpdCYjMzk7cyBhbiBleGlzdGluZyBmdW5jdGlvbi4gYGNoZWNrX2luZGlyZWN0X2p1bXBgIGlzIHRoZSBrZXkgZnVuY3Rpb24gdG8gZnV6ei4KCklzIGBjaGVja19pbmRpcmVjdF9qdW1wYCBzdGF0aWM/IFllcywgaXQgaXM6IGBzdGF0aWMgaW50IGNoZWNrX2luZGlyZWN0X2p1bXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuKWAuIEl0IHJlc2lkZXMgd2l0aGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLgoKSSYjMzk7dmUgY29uZmlybWVkIHRoYXQgYGNoZWNrX2luZGlyZWN0X2p1bXBgIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIG1vZGlmaWVkLiBTbywgbXkgcmVhc29uaW5nIGlzIGFzIGZvbGxvd3M6IFRoZSBwYXRjaCBpcyBmdW5jdGlvbmFsbHkgc2lnbmlmaWNhbnQgYmVjYXVzZSBpdCBpbnRyb2R1Y2VzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyLiBUaGlzIGNoYW5nZSBkaXJlY3RseSBpbXBhY3RzIHRoZSBjb3JlIEJQRiB2ZXJpZmljYXRpb24gcHJvY2VzcywgYWltaW5nIHRvIHByZXZlbnQganVtcHMgb3V0c2lkZSBvZiB0aGUgY3VycmVudCBzdWJwcm9ncmFtLiBUaGVyZWZvcmUsIEkmIzM5O2xsIGZsYWcgdGhpcyBhcyB3b3J0aCBmdXp6aW5nLCBmb2N1c2luZyBvbiB0aGUgYGNoZWNrX2luZGlyZWN0X2p1bXBgIGZ1bmN0aW9uIGFuZCByZXF1aXJpbmcgYENPTkZJR19CUEZfU1lTQ0FMTGAgdG8gYmUgZW5hYmxlZC4KCk15IGNvbmZpZ3VyYXRpb24gd2lsbCBiZToKCiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqCiogICAqKkZvY3VzU3ltYm9sczogXFsmIzM0O2NoZWNrXF9pbmRpcmVjdFxfanVtcCYjMzQ7XSoqCiogICAqKkVuYWJsZUNvbmZpZ3M6IFxbJiMzNDtCUEZcX1NZU0NBTEwmIzM0O10qKgoqICAgKipSZWFzb25pbmc6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBpbmRpcmVjdCBqdW1wcyAoZ290b3gpIGluIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJldmVudCBqdW1waW5nIG91dHNpZGUgdGhlIGN1cnJlbnQgc3VicHJvZ3JhbS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgQlBGIHZlcmlmaWNhdGlvbiBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OyoqCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTQ6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfaW5kaXJlY3RfanVtcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQganVtcGluZyBvdXRzaWRlIHRoZSBjdXJyZW50IHN1YnByb2dyYW0uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEJQRiB2ZXJpZmljYXRpb24gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfaW5kaXJlY3RfanVtcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQganVtcGluZyBvdXRzaWRlIHRoZSBjdXJyZW50IHN1YnByb2dyYW0uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEJQRiB2ZXJpZmljYXRpb24gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yOFQxNDoxODozNi4wNDIyMTU4NTdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NTA3OTc5Mzc1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNoZWNrX2luZGlyZWN0X2p1bXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQganVtcGluZyBvdXRzaWRlIHRoZSBjdXJyZW50IHN1YnByb2dyYW0uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEJQRiB2ZXJpZmljYXRpb24gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE0OjE4OjM2LjA0MjIyNTQ5N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ0MzEyMDE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOWNjNTUyMjgwNGY3MTAwOTA5NjFiMzcwM2U5YmMzZjc2N2RlNWE4ZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1biAyOCAxNDoxODozNCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5pbmRleCBlYjQ2YTgxYThjNTFhYy4uMDVhOTk2YTVlY2RkMjUgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXFxuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuQEAgLTE3MTQ1LDkgKzE3MTQ1LDExIEBAIHN0YXRpYyBpbnQgaW5kaXJlY3RfanVtcF9taW5fbWF4X2luZGV4KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuIHN0YXRpYyBpbnQgY2hlY2tfaW5kaXJlY3RfanVtcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24pXFxuIHtcXG4gXFx0c3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqb3RoZXJfYnJhbmNoO1xcbitcXHRzdHJ1Y3QgYnBmX3N1YnByb2dfaW5mbyAqc3VicHJvZztcXG4gXFx0c3RydWN0IGJwZl9yZWdfc3RhdGUgKmRzdF9yZWc7XFxuIFxcdHN0cnVjdCBicGZfbWFwICptYXA7XFxuIFxcdHUzMiBtaW5faW5kZXgsIG1heF9pbmRleDtcXG4rXFx0aW50IHN1YnByb2dfc3RhcnQsIHN1YnByb2dfZW5kO1xcbiBcXHRpbnQgZXJyID0gMDtcXG4gXFx0aW50IG47XFxuIFxcdGludCBpO1xcbkBAIC0xNzE4OCw2ICsxNzE5MCwyMyBAQCBzdGF0aWMgaW50IGNoZWNrX2luZGlyZWN0X2p1bXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppblxcbiBcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFx0fVxcbiBcXG4rXFx0c3VicHJvZyA9IGJwZl9maW5kX2NvbnRhaW5pbmdfc3VicHJvZyhlbnYsIGVudi1cXHUwMDNlaW5zbl9pZHgpO1xcbitcXHRpZiAodmVyaWZpZXJfYnVnX2lmKCFzdWJwcm9nLCBlbnYsXFxuK1xcdFxcdFxcdCAgICBcXFwiZ290b3ggaW5zbiAlZCBpcyBvdXRzaWRlIHN1YnByb2cgYm91bmRzXFxcXG5cXFwiLFxcbitcXHRcXHRcXHQgICAgZW52LVxcdTAwM2VpbnNuX2lkeCkpXFxuK1xcdFxcdHJldHVybiAtRUZBVUxUO1xcbitcXHRzdWJwcm9nX3N0YXJ0ID0gc3VicHJvZy1cXHUwMDNlc3RhcnQ7XFxuK1xcdHN1YnByb2dfZW5kID0gKHN1YnByb2cgKyAxKS1cXHUwMDNlc3RhcnQ7XFxuK1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbjsgaSsrKSB7XFxuK1xcdFxcdHUzMiB0YXJnZXQgPSBlbnYtXFx1MDAzZWdvdG94X3RtcF9idWYtXFx1MDAzZWl0ZW1zW2ldO1xcbitcXG4rXFx0XFx0aWYgKHRhcmdldCBcXHUwMDNjIHN1YnByb2dfc3RhcnQgfHwgdGFyZ2V0IFxcdTAwM2U9IHN1YnByb2dfZW5kKSB7XFxuK1xcdFxcdFxcdHZlcmJvc2UoZW52LCBcXFwiZ290b3ggdGFyZ2V0ICV1IG91dHNpZGUgc3VicHJvZ1xcXFxuXFxcIiwgdGFyZ2V0KTtcXG4rXFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXG4gXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIG4gLSAxOyBpKyspIHtcXG4gXFx0XFx0bWFya19pbmRpcmVjdF90YXJnZXQoZW52LCBlbnYtXFx1MDAzZWdvdG94X3RtcF9idWYtXFx1MDAzZWl0ZW1zW2ldKTtcXG4gXFx0XFx0b3RoZXJfYnJhbmNoID0gcHVzaF9zdGFjayhlbnYsIGVudi1cXHUwMDNlZ290b3hfdG1wX2J1Zi1cXHUwMDNlaXRlbXNbaV0sXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvYnBmX2dvdG94LmNcXG5pbmRleCA3M2RjNjM4ODJiN2Q1NS4uOTk3NzI0YzYxYzhiNjAgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvYnBmX2dvdG94LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guY1xcbkBAIC0yNTUsNiArMjU1LDMwIEBAIHN0YXRpYyBpbnQgY3JlYXRlX2p0X21hcChfX3UzMiBtYXhfZW50cmllcylcXG4gXFx0XFx0XFx0ICAgICAga2V5X3NpemUsIHZhbHVlX3NpemUsIG1heF9lbnRyaWVzLCBOVUxMKTtcXG4gfVxcbiBcXG4rc3RhdGljIGludCBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KF9fdTMyIHRhcmdldClcXG4re1xcbitcXHRzdHJ1Y3QgYnBmX2luc25fYXJyYXlfdmFsdWUgdmFsID0geyAub3JpZ19vZmYgPSB0YXJnZXQgfTtcXG4rXFx0X191MzIga2V5ID0gMDtcXG4rXFx0aW50IG1hcF9mZDtcXG4rXFxuK1xcdG1hcF9mZCA9IGNyZWF0ZV9qdF9tYXAoMSk7XFxuK1xcdGlmICghQVNTRVJUX0dFKG1hcF9mZCwgMCwgXFxcImNyZWF0ZV9qdF9tYXBcXFwiKSlcXG4rXFx0XFx0cmV0dXJuIC0xO1xcbitcXG4rXFx0aWYgKCFBU1NFUlRfRVEoYnBmX21hcF91cGRhdGVfZWxlbShtYXBfZmQsIFxcdTAwMjZrZXksIFxcdTAwMjZ2YWwsIDApLFxcbitcXHRcXHQgICAgICAgMCwgXFxcImJwZl9tYXBfdXBkYXRlX2VsZW1cXFwiKSkge1xcbitcXHRcXHRjbG9zZShtYXBfZmQpO1xcbitcXHRcXHRyZXR1cm4gLTE7XFxuK1xcdH1cXG4rXFxuK1xcdGlmICghQVNTRVJUX0VRKGJwZl9tYXBfZnJlZXplKG1hcF9mZCksIDAsIFxcXCJicGZfbWFwX2ZyZWV6ZVxcXCIpKSB7XFxuK1xcdFxcdGNsb3NlKG1hcF9mZCk7XFxuK1xcdFxcdHJldHVybiAtMTtcXG4rXFx0fVxcbitcXG4rXFx0cmV0dXJuIG1hcF9mZDtcXG4rfVxcbitcXG4gc3RhdGljIGludCBwcm9nX2xvYWQoc3RydWN0IGJwZl9pbnNuICppbnNucywgX191MzIgaW5zbl9jbnQpXFxuIHtcXG4gXFx0cmV0dXJuIGJwZl9wcm9nX2xvYWQoQlBGX1BST0dfVFlQRV9SQVdfVFJBQ0VQT0lOVCwgTlVMTCwgXFxcIkdQTFxcXCIsIGluc25zLCBpbnNuX2NudCwgTlVMTCk7XFxuQEAgLTM5Myw2ICs0MTcsNTIgQEAgcmVqZWN0X29mZnNldHMoc3RydWN0IGJwZl9pbnNuICppbnNucywgX191MzIgaW5zbl9jbnQsIGludCBvZmYxLCBpbnQgb2ZmMiwgaW50IG9cXG4gXFx0XFx0Y2xvc2UocHJvZ19mZCk7XFxuIH1cXG4gXFxuK3N0YXRpYyB2b2lkXFxuK2NoZWNrX2Nyb3NzX3N1YnByb2dfZ290b3hfdGFyZ2V0KHZvaWQpXFxuK3tcXG4rXFx0c3RydWN0IGJwZl9pbnNuIGluc25zW10gPSB7XFxuK1xcdFxcdC8qIG1haW4gc3VicHJvZyBbMCwxNCkgKi9cXG4rXFx0XFx0QlBGX01PVjY0X1JFRyhCUEZfUkVHXzYsIEJQRl9SRUdfMSksXFxuK1xcdFxcdEJQRl9SQVdfSU5TTihCUEZfSk1QIHwgQlBGX0NBTEwsIDAsIEJQRl9QU0VVRE9fQ0FMTCwgMCwgMTIpLFxcbitcXHRcXHRCUEZfTERYX01FTShCUEZfVywgQlBGX1JFR183LCBCUEZfUkVHXzYsIDApLFxcbitcXHRcXHRCUEZfSk1QX0lNTShCUEZfSkVRLCBCUEZfUkVHXzcsIDAsIDQpLFxcbitcXHRcXHRCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLFxcbitcXHRcXHRCUEZfTERYX01FTShCUEZfRFcsIEJQRl9SRUdfMiwgQlBGX1JFR18yLCAwKSxcXG4rXFx0XFx0QlBGX0pNUF9BKDMpLFxcbitcXHRcXHRCUEZfTERfSU1NNjRfUkFXKEJQRl9SRUdfMiwgQlBGX1BTRVVET19NQVBfVkFMVUUsIDApLFxcbitcXHRcXHRCUEZfTERYX01FTShCUEZfRFcsIEJQRl9SRUdfMiwgQlBGX1JFR18yLCAwKSxcXG4rXFx0XFx0QlBGX1JBV19JTlNOKEJQRl9KTVAgfCBCUEZfSkEgfCBCUEZfWCwgQlBGX1JFR18yLCAwLCAwLCAwKSxcXG4rXFx0XFx0QlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDEpLFxcbitcXHRcXHRCUEZfRVhJVF9JTlNOKCksXFxuK1xcbitcXHRcXHQvKiBzdGF0aWMgc3VicHJvZyBbMTQsMTYpICovXFxuK1xcdFxcdEJQRl9NT1Y2NF9JTU0oQlBGX1JFR18wLCA0MiksXFxuK1xcdFxcdEJQRl9FWElUX0lOU04oKSxcXG4rXFx0fTtcXG4rXFx0aW50IGdvb2RfZmQsIGJhZF9mZCwgcHJvZ19mZDtcXG4rXFxuK1xcdGdvb2RfZmQgPSBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KDEyKTtcXG4rXFx0aWYgKCFBU1NFUlRfR0UoZ29vZF9mZCwgMCwgXFxcImNyZWF0ZV9nb29kX2p0X21hcFxcXCIpKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbitcXHRiYWRfZmQgPSBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KDE0KTtcXG4rXFx0aWYgKCFBU1NFUlRfR0UoYmFkX2ZkLCAwLCBcXFwiY3JlYXRlX2JhZF9qdF9tYXBcXFwiKSkge1xcbitcXHRcXHRjbG9zZShnb29kX2ZkKTtcXG4rXFx0XFx0cmV0dXJuO1xcbitcXHR9XFxuK1xcbitcXHRpbnNuc1s0XS5pbW0gPSBiYWRfZmQ7XFxuK1xcdGluc25zWzhdLmltbSA9IGdvb2RfZmQ7XFxuK1xcbitcXHRwcm9nX2ZkID0gYnBmX3Byb2dfbG9hZChCUEZfUFJPR19UWVBFX1NPQ0tFVF9GSUxURVIsIE5VTEwsIFxcXCJHUExcXFwiLFxcbitcXHRcXHRcXHRcXHRpbnNucywgQVJSQVlfU0laRShpbnNucyksIE5VTEwpO1xcbitcXHRpZiAoIUFTU0VSVF9FUShwcm9nX2ZkLCAtRUlOVkFMLCBcXFwiY3Jvc3Nfc3VicHJvZ19nb3RveF9wcm9nX2xvYWRcXFwiKSlcXG4rXFx0XFx0Y2xvc2UocHJvZ19mZCk7XFxuK1xcbitcXHRjbG9zZShiYWRfZmQpO1xcbitcXHRjbG9zZShnb29kX2ZkKTtcXG4rfVxcbitcXG4gLypcXG4gICogVmVyaWZ5IGEgYml0IG1vcmUgY29tcGxleCBwcm9ncmFtcyB3aGljaCBpbmNsdWRlIGluZGlyZWN0IGp1bXBzXFxuICAqIGFuZCB3aXRoIGp1bXAgdGFibGVzIGxvYWRlZCB3aXRoIGEgbm9uLXplcm8gb2Zmc2V0XFxuQEAgLTU0MSw1ICs2MTEsOCBAQCB2b2lkIHRlc3RfYnBmX2dvdG94KHZvaWQpXFxuIFxcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFxcXCJjaGVjay1sZGltbTY0LW9mZi1nb3RveC1sbHZtXFxcIikpXFxuIFxcdFxcdF9fc3VidGVzdChza2VsLCBjaGVja19sZGltbTY0X29mZl9nb3RveF9sbHZtKTtcXG4gXFxuK1xcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFxcXCJjaGVjay1jcm9zcy1zdWJwcm9nLWdvdG94LXRhcmdldFxcXCIpKVxcbitcXHRcXHRjaGVja19jcm9zc19zdWJwcm9nX2dvdG94X3RhcmdldCgpO1xcbitcXG4gXFx0YnBmX2dvdG94X19kZXN0cm95KHNrZWwpO1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE0OjE4OjM2LjU4NzI2NTg1NFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODQ1MzQ3MDUxNzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19pbmRpcmVjdF9qdW1wXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIGluZGlyZWN0IGp1bXBzIChnb3RveCkgaW4gdGhlIEJQRiB2ZXJpZmllciB0byBwcmV2ZW50IGp1bXBpbmcgb3V0c2lkZSB0aGUgY3VycmVudCBzdWJwcm9ncmFtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBCUEYgdmVyaWZpY2F0aW9uIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDljYzU1MjI4MDRmNzEwMDkwOTYxYjM3MDNlOWJjM2Y3NjdkZTVhOGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1biAyOCAxNDoxODozNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuaW5kZXggZWI0NmE4MWE4YzUxYWMuLjA1YTk5NmE1ZWNkZDI1IDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXG4rKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbkBAIC0xNzE0NSw5ICsxNzE0NSwxMSBAQCBzdGF0aWMgaW50IGluZGlyZWN0X2p1bXBfbWluX21heF9pbmRleChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIHN0YXRpYyBpbnQgY2hlY2tfaW5kaXJlY3RfanVtcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24pXG4ge1xuIFx0c3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqb3RoZXJfYnJhbmNoO1xuK1x0c3RydWN0IGJwZl9zdWJwcm9nX2luZm8gKnN1YnByb2c7XG4gXHRzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqZHN0X3JlZztcbiBcdHN0cnVjdCBicGZfbWFwICptYXA7XG4gXHR1MzIgbWluX2luZGV4LCBtYXhfaW5kZXg7XG4rXHRpbnQgc3VicHJvZ19zdGFydCwgc3VicHJvZ19lbmQ7XG4gXHRpbnQgZXJyID0gMDtcbiBcdGludCBuO1xuIFx0aW50IGk7XG5AQCAtMTcxODgsNiArMTcxOTAsMjMgQEAgc3RhdGljIGludCBjaGVja19pbmRpcmVjdF9qdW1wKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5cbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHR9XG4gXG4rXHRzdWJwcm9nID0gYnBmX2ZpbmRfY29udGFpbmluZ19zdWJwcm9nKGVudiwgZW52LVx1MDAzZWluc25faWR4KTtcbitcdGlmICh2ZXJpZmllcl9idWdfaWYoIXN1YnByb2csIGVudixcbitcdFx0XHQgICAgXCJnb3RveCBpbnNuICVkIGlzIG91dHNpZGUgc3VicHJvZyBib3VuZHNcXG5cIixcbitcdFx0XHQgICAgZW52LVx1MDAzZWluc25faWR4KSlcbitcdFx0cmV0dXJuIC1FRkFVTFQ7XG4rXHRzdWJwcm9nX3N0YXJ0ID0gc3VicHJvZy1cdTAwM2VzdGFydDtcbitcdHN1YnByb2dfZW5kID0gKHN1YnByb2cgKyAxKS1cdTAwM2VzdGFydDtcbitcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG47IGkrKykge1xuK1x0XHR1MzIgdGFyZ2V0ID0gZW52LVx1MDAzZWdvdG94X3RtcF9idWYtXHUwMDNlaXRlbXNbaV07XG4rXG4rXHRcdGlmICh0YXJnZXQgXHUwMDNjIHN1YnByb2dfc3RhcnQgfHwgdGFyZ2V0IFx1MDAzZT0gc3VicHJvZ19lbmQpIHtcbitcdFx0XHR2ZXJib3NlKGVudiwgXCJnb3RveCB0YXJnZXQgJXUgb3V0c2lkZSBzdWJwcm9nXFxuXCIsIHRhcmdldCk7XG4rXHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXHRcdH1cbitcdH1cbitcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG4gLSAxOyBpKyspIHtcbiBcdFx0bWFya19pbmRpcmVjdF90YXJnZXQoZW52LCBlbnYtXHUwMDNlZ290b3hfdG1wX2J1Zi1cdTAwM2VpdGVtc1tpXSk7XG4gXHRcdG90aGVyX2JyYW5jaCA9IHB1c2hfc3RhY2soZW52LCBlbnYtXHUwMDNlZ290b3hfdG1wX2J1Zi1cdTAwM2VpdGVtc1tpXSxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jXG5pbmRleCA3M2RjNjM4ODJiN2Q1NS4uOTk3NzI0YzYxYzhiNjAgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9icGZfZ290b3guY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvYnBmX2dvdG94LmNcbkBAIC0yNTUsNiArMjU1LDMwIEBAIHN0YXRpYyBpbnQgY3JlYXRlX2p0X21hcChfX3UzMiBtYXhfZW50cmllcylcbiBcdFx0XHQgICAgICBrZXlfc2l6ZSwgdmFsdWVfc2l6ZSwgbWF4X2VudHJpZXMsIE5VTEwpO1xuIH1cbiBcbitzdGF0aWMgaW50IGNyZWF0ZV9qdF9tYXBfd2l0aF90YXJnZXQoX191MzIgdGFyZ2V0KVxuK3tcbitcdHN0cnVjdCBicGZfaW5zbl9hcnJheV92YWx1ZSB2YWwgPSB7IC5vcmlnX29mZiA9IHRhcmdldCB9O1xuK1x0X191MzIga2V5ID0gMDtcbitcdGludCBtYXBfZmQ7XG4rXG4rXHRtYXBfZmQgPSBjcmVhdGVfanRfbWFwKDEpO1xuK1x0aWYgKCFBU1NFUlRfR0UobWFwX2ZkLCAwLCBcImNyZWF0ZV9qdF9tYXBcIikpXG4rXHRcdHJldHVybiAtMTtcbitcbitcdGlmICghQVNTRVJUX0VRKGJwZl9tYXBfdXBkYXRlX2VsZW0obWFwX2ZkLCBcdTAwMjZrZXksIFx1MDAyNnZhbCwgMCksXG4rXHRcdCAgICAgICAwLCBcImJwZl9tYXBfdXBkYXRlX2VsZW1cIikpIHtcbitcdFx0Y2xvc2UobWFwX2ZkKTtcbitcdFx0cmV0dXJuIC0xO1xuK1x0fVxuK1xuK1x0aWYgKCFBU1NFUlRfRVEoYnBmX21hcF9mcmVlemUobWFwX2ZkKSwgMCwgXCJicGZfbWFwX2ZyZWV6ZVwiKSkge1xuK1x0XHRjbG9zZShtYXBfZmQpO1xuK1x0XHRyZXR1cm4gLTE7XG4rXHR9XG4rXG4rXHRyZXR1cm4gbWFwX2ZkO1xuK31cbitcbiBzdGF0aWMgaW50IHByb2dfbG9hZChzdHJ1Y3QgYnBmX2luc24gKmluc25zLCBfX3UzMiBpbnNuX2NudClcbiB7XG4gXHRyZXR1cm4gYnBmX3Byb2dfbG9hZChCUEZfUFJPR19UWVBFX1JBV19UUkFDRVBPSU5ULCBOVUxMLCBcIkdQTFwiLCBpbnNucywgaW5zbl9jbnQsIE5VTEwpO1xuQEAgLTM5Myw2ICs0MTcsNTIgQEAgcmVqZWN0X29mZnNldHMoc3RydWN0IGJwZl9pbnNuICppbnNucywgX191MzIgaW5zbl9jbnQsIGludCBvZmYxLCBpbnQgb2ZmMiwgaW50IG9cbiBcdFx0Y2xvc2UocHJvZ19mZCk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkXG4rY2hlY2tfY3Jvc3Nfc3VicHJvZ19nb3RveF90YXJnZXQodm9pZClcbit7XG4rXHRzdHJ1Y3QgYnBmX2luc24gaW5zbnNbXSA9IHtcbitcdFx0LyogbWFpbiBzdWJwcm9nIFswLDE0KSAqL1xuK1x0XHRCUEZfTU9WNjRfUkVHKEJQRl9SRUdfNiwgQlBGX1JFR18xKSxcbitcdFx0QlBGX1JBV19JTlNOKEJQRl9KTVAgfCBCUEZfQ0FMTCwgMCwgQlBGX1BTRVVET19DQUxMLCAwLCAxMiksXG4rXHRcdEJQRl9MRFhfTUVNKEJQRl9XLCBCUEZfUkVHXzcsIEJQRl9SRUdfNiwgMCksXG4rXHRcdEJQRl9KTVBfSU1NKEJQRl9KRVEsIEJQRl9SRUdfNywgMCwgNCksXG4rXHRcdEJQRl9MRF9JTU02NF9SQVcoQlBGX1JFR18yLCBCUEZfUFNFVURPX01BUF9WQUxVRSwgMCksXG4rXHRcdEJQRl9MRFhfTUVNKEJQRl9EVywgQlBGX1JFR18yLCBCUEZfUkVHXzIsIDApLFxuK1x0XHRCUEZfSk1QX0EoMyksXG4rXHRcdEJQRl9MRF9JTU02NF9SQVcoQlBGX1JFR18yLCBCUEZfUFNFVURPX01BUF9WQUxVRSwgMCksXG4rXHRcdEJQRl9MRFhfTUVNKEJQRl9EVywgQlBGX1JFR18yLCBCUEZfUkVHXzIsIDApLFxuK1x0XHRCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQSB8IEJQRl9YLCBCUEZfUkVHXzIsIDAsIDAsIDApLFxuK1x0XHRCUEZfTU9WNjRfSU1NKEJQRl9SRUdfMCwgMSksXG4rXHRcdEJQRl9FWElUX0lOU04oKSxcbitcbitcdFx0Lyogc3RhdGljIHN1YnByb2cgWzE0LDE2KSAqL1xuK1x0XHRCUEZfTU9WNjRfSU1NKEJQRl9SRUdfMCwgNDIpLFxuK1x0XHRCUEZfRVhJVF9JTlNOKCksXG4rXHR9O1xuK1x0aW50IGdvb2RfZmQsIGJhZF9mZCwgcHJvZ19mZDtcbitcbitcdGdvb2RfZmQgPSBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KDEyKTtcbitcdGlmICghQVNTRVJUX0dFKGdvb2RfZmQsIDAsIFwiY3JlYXRlX2dvb2RfanRfbWFwXCIpKVxuK1x0XHRyZXR1cm47XG4rXG4rXHRiYWRfZmQgPSBjcmVhdGVfanRfbWFwX3dpdGhfdGFyZ2V0KDE0KTtcbitcdGlmICghQVNTRVJUX0dFKGJhZF9mZCwgMCwgXCJjcmVhdGVfYmFkX2p0X21hcFwiKSkge1xuK1x0XHRjbG9zZShnb29kX2ZkKTtcbitcdFx0cmV0dXJuO1xuK1x0fVxuK1xuK1x0aW5zbnNbNF0uaW1tID0gYmFkX2ZkO1xuK1x0aW5zbnNbOF0uaW1tID0gZ29vZF9mZDtcbitcbitcdHByb2dfZmQgPSBicGZfcHJvZ19sb2FkKEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUiwgTlVMTCwgXCJHUExcIixcbitcdFx0XHRcdGluc25zLCBBUlJBWV9TSVpFKGluc25zKSwgTlVMTCk7XG4rXHRpZiAoIUFTU0VSVF9FUShwcm9nX2ZkLCAtRUlOVkFMLCBcImNyb3NzX3N1YnByb2dfZ290b3hfcHJvZ19sb2FkXCIpKVxuK1x0XHRjbG9zZShwcm9nX2ZkKTtcbitcbitcdGNsb3NlKGJhZF9mZCk7XG4rXHRjbG9zZShnb29kX2ZkKTtcbit9XG4rXG4gLypcbiAgKiBWZXJpZnkgYSBiaXQgbW9yZSBjb21wbGV4IHByb2dyYW1zIHdoaWNoIGluY2x1ZGUgaW5kaXJlY3QganVtcHNcbiAgKiBhbmQgd2l0aCBqdW1wIHRhYmxlcyBsb2FkZWQgd2l0aCBhIG5vbi16ZXJvIG9mZnNldFxuQEAgLTU0MSw1ICs2MTEsOCBAQCB2b2lkIHRlc3RfYnBmX2dvdG94KHZvaWQpXG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcImNoZWNrLWxkaW1tNjQtb2ZmLWdvdG94LWxsdm1cIikpXG4gXHRcdF9fc3VidGVzdChza2VsLCBjaGVja19sZGltbTY0X29mZl9nb3RveF9sbHZtKTtcbiBcbitcdGlmICh0ZXN0X19zdGFydF9zdWJ0ZXN0KFwiY2hlY2stY3Jvc3Mtc3VicHJvZy1nb3RveC10YXJnZXRcIikpXG4rXHRcdGNoZWNrX2Nyb3NzX3N1YnByb2dfZ290b3hfdGFyZ2V0KCk7XG4rXG4gXHRicGZfZ290b3hfX2Rlc3Ryb3koc2tlbCk7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTQ6MTg6MzYuNTg3MjY4Njg0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE0MTMyOTcxNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCUEYgVmVyaWZpZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBNeSBpbml0aWFsIHJlYWQgdGVsbHMgbWUgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLiBJdCBzZWVtcyB0aGV5J3ZlIGFkZGVkIGEgY2hlY2sgd2l0aGluIHRoZSBgY2hlY2tfaW5kaXJlY3RfanVtcGAgZnVuY3Rpb24uIFRoZSBnb2FsIGlzIHRvIGVuc3VyZSB0aGF0IGEgYGdvdG94YCBpbnN0cnVjdGlvbiwgb3IgaW5kaXJlY3QganVtcCwgaXNuJ3QgdGFyZ2V0aW5nIGFuIGluc3RydWN0aW9uIG91dHNpZGUgdGhlIGN1cnJlbnQgc3VicHJvZ3JhbSdzIGJvdW5kcy4gVGhpcyBpcyBhIHNvbGlkIHNhZmV0eSBtZWFzdXJlOyB3ZSBkb24ndCB3YW50IHByb2dyYW1zIGp1bXBpbmcgYWxsIG92ZXIgdGhlIHBsYWNlLiBQcmV2ZW50aW5nIGBnb3RveGAgZnJvbSBqdW1waW5nIGludG8gb3RoZXIgc3VicHJvZ3JhbXMgaXMgZGVmaW5pdGVseSBhIGRlc2lyYWJsZSBvdXRjb21lLlxuXG5MZXQncyBkaXZlIGludG8gdGhlIGNvZGUgc25pcHBldCBpdHNlbGY6XG5cbmBgYGNcbitcdHN1YnByb2cgPSBicGZfZmluZF9jb250YWluaW5nX3N1YnByb2coZW52LCBlbnYtXHUwMDNlaW5zbl9pZHgpO1xuK1x0aWYgKHZlcmlmaWVyX2J1Z19pZighc3VicHJvZywgZW52LFxuK1x0XHRcdCAgICBcImdvdG94IGluc24gJWQgaXMgb3V0c2lkZSBzdWJwcm9nIGJvdW5kc1xcblwiLFxuK1x0XHRcdCAgICBlbnYtXHUwMDNlaW5zbl9pZHgpKVxuK1x0XHRyZXR1cm4gLUVGQVVMVDtcbitcdHN1YnByb2dfc3RhcnQgPSBzdWJwcm9nLVx1MDAzZXN0YXJ0O1xuK1x0c3VicHJvZ19lbmQgPSAoc3VicHJvZyArIDEpLVx1MDAzZXN0YXJ0O1xuK1xuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgbjsgaSsrKSB7XG4rXHRcdHUzMiB0YXJnZXQgPSBlbnYtXHUwMDNlZ290b3hfdG1wX2J1Zi1cdTAwM2VpdGVtc1tpXTtcbitcbitcdFx0aWYgKHRhcmdldCBcdTAwM2Mgc3VicHJvZ19zdGFydCB8fCB0YXJnZXQgXHUwMDNlPSBzdWJwcm9nX2VuZCkge1xuK1x0XHRcdHZlcmJvc2UoZW52LCBcImdvdG94IHRhcmdldCAldSBvdXRzaWRlIHN1YnByb2dcXG5cIiwgdGFyZ2V0KTtcbitcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbitcdFx0fVxuK1x0fVxuYGBgXG5cblllcCwgaXQncyBkb2luZyBleGFjdGx5IHdoYXQgSSB0aG91Z2h0LiBJdCBmaW5kcyB0aGUgc3VicHJvZ3JhbSB0aGF0IHRoZSBjdXJyZW50IGluc3RydWN0aW9uIHJlc2lkZXMgaW4sIGNoZWNrcyBpZiBpdCdzIGdvdG94LCB0aGVuIGl0ZXJhdGVzIHRocm91Z2ggYWxsIHBvdGVudGlhbCB0YXJnZXRzIHRvIG1ha2Ugc3VyZSB0aGV5J3JlIHdpdGhpbiB0aGUgY29uZmluZXMgb2YgdGhhdCBzdWJwcm9ncmFtLiBJZiB0aGV5J3JlIG5vdCwgaXQgZmxhZ3MgYW4gZXJyb3IgYW5kIHJldHVybnMgYC1FSU5WQUxgLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBzaWduaWZpY2FudCBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQlBGIHZlcmlmaWVyLlxuXG5Gcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZSwgSSdkIHNheSB0aGlzIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIHRhcmdldC4gSSdsbCBtYXJrIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbkZvciBmb2N1cyBzeW1ib2xzLCBgY2hlY2tfaW5kaXJlY3RfanVtcGAgaXMgdGhlIGtleSBmdW5jdGlvbiB0byBmb2N1cyBvbi4gYGJwZl9maW5kX2NvbnRhaW5pbmdfc3VicHJvZ2AgKm1pZ2h0KiBiZSByZWxldmFudCwgYnV0IGl0J3MgYW4gZXhpc3RpbmcgZnVuY3Rpb24sIHNvIGxldCdzIHN0aWNrIHdpdGggdGhlIGNvcmUgb2YgdGhlIGNoYW5nZTogYGNoZWNrX2luZGlyZWN0X2p1bXBgLlxuXG5BcyBmb3IgY29uZmlndXJhdGlvbiwgQlBGIGlzIGdlbmVyYWxseSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBJJ2xsIG1ha2Ugc3VyZSB0byB2ZXJpZnkgdGhlIGNvbnRleHQgb2YgYENPTkZJR19CUEZfU1lTQ0FMTGAg4oCTIGl0J3MgdGhlIHByaW1hcnkgY29uZmlnIHRvIGNoZWNrLiBMZXQncyBtYWtlIHN1cmUgdGhlIGRlcGVuZGVuY2llcyBhcmUgYXMgd2UgZXhwZWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjk5LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTQ6MTk6MjguMDAwNTcwOTQ2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5NzQxMDY1MTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2hlY2tfaW5kaXJlY3RfanVtcFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTcxMTE9c3RhdGljIGludCBpbmRpcmVjdF9qdW1wX21pbl9tYXhfaW5kZXgoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzE0NC0vKiBnb3RveCAqZHN0X3JlZyAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNzE0NTpzdGF0aWMgaW50IGNoZWNrX2luZGlyZWN0X2p1bXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzE0Ni17XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTcyMjI9c3RhdGljIGludCBkb19jaGVja19pbnNuKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGJvb2wgKmRvX3ByaW50X3N0YXRlKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3Mjk0LVxcdFxcdFxcdGlmIChCUEZfU1JDKGluc24tXFx1MDAzZWNvZGUpID09IEJQRl9YKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNzI5NTpcXHRcXHRcXHRcXHRyZXR1cm4gY2hlY2tfaW5kaXJlY3RfanVtcChlbnYsIGluc24pO1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzI5Ni1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTQ6MTk6MzAuOTc0Njg1ODA1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTg2NjA5MDE1MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgZXhwZXJ0OlxuXG4qKkZ1enppbmcgdGhlIGBjaGVja19pbmRpcmVjdF9qdW1wYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIGBjaGVja19pbmRpcmVjdF9qdW1wYCBpcyB0cmlnZ2VyZWQgd2l0aGluIGBkb19jaGVja19pbnNuYCB3aGVuZXZlciBhIEJQRiBpbnN0cnVjdGlvbiB1c2VzIGBCUEZfWGAgYXMgaXRzIHNvdXJjZSBvcGVyYW5kLiBUaGF0IHNjcmVhbXMgXCJpbmRpcmVjdCBqdW1wLFwiIGFuZCB0aGF0IG1lYW5zIGl0J3MgYSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBCUEYgdmVyaWZpZXLigJRpdCAqaGFzKiB0byBiZSByZWFjaGFibGUgZHVyaW5nIG5vcm1hbCBvcGVyYXRpb24uIFRoaXMgbWFrZXMgaXQgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIFdlIG5lZWQgdG8gcmVhbGx5IHRlc3QgaXRzIGJvdW5kYXJpZXMuXG5cbkdpdmVuIGl0cyBjcnVjaWFsIHJvbGUsIGl0J3Mgd29ydGggY2hlY2tpbmcgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGFuZCB0aGVpciBpbXBsaWNhdGlvbnMgZm9yIHRoaXMgZnVuY3Rpb24ncyBiZWhhdmlvdXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgZW52aXJvbm1lbnRhbCBmYWN0b3JzIGNvdWxkIGluZmx1ZW5jZSBpdHMgZXhlY3V0aW9uIHBhdGhzIGFuZCBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLiBJJ2xsIG1ha2Ugc3VyZSB0byBnZXQgdGhvc2UgY292ZXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDk5OCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE0OjE5OjQ5LjYzNTU5MTkyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwNDU5OTQ0NzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX0JQRl9TWVNDQUxMXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTEyNCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9zY2hlZHVsZXIvc2NoZWQtZXh0LnJzdD0zNT1vcHRpb25zIHNob3VsZCBiZSBlbmFibGVkIHRvIHVzZSBzY2hlZF9leHQ6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1leHQucnN0LTQwLSAgICBDT05GSUdfU0NIRURfQ0xBU1NfRVhUPXlcXG5Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1leHQucnN0OjQxOiAgICBDT05GSUdfQlBGX1NZU0NBTEw9eVxcbkRvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLWV4dC5yc3QtNDItICAgIENPTkZJR19CUEZfSklUPXlcXG4tLVxcbkRvY3VtZW50YXRpb24vdHJhY2UvZnByb2JldHJhY2UucnN0PTg0PXBhcmFtZXRlcnMgYnkgaXRzIG5hbWUgaW5zdGVhZCBvZiBgYCRhcmdOYGAuIFRoaXMgZmVhdHVyZSBpcyBhdmFpbGFibGUgaWYgdGhlXFxuRG9jdW1lbnRhdGlvbi90cmFjZS9mcHJvYmV0cmFjZS5yc3Q6ODU6a2VybmVsIGlzIGNvbmZpZ3VyZWQgd2l0aCBDT05GSUdfQlBGX1NZU0NBTEwgYW5kIENPTkZJR19ERUJVR19JTkZPX0JURi5cXG5Eb2N1bWVudGF0aW9uL3RyYWNlL2Zwcm9iZXRyYWNlLnJzdC04Ni1JZiB1c2VyIG9ubHkgc3BlY2lmeSB0aGUgQlRGIGFyZ3VtZW50LCB0aGUgZXZlbnQncyBhcmd1bWVudCBuYW1lIGlzIGFsc29cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c0X2RlZmNvbmZpZz00PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c0X2RlZmNvbmZpZzo1OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzRfZGVmY29uZmlnLTYtQ09ORklHX0lLQ09ORklHPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZz00PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXNwZWVkX2c1X2RlZmNvbmZpZzo1OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9hcm0vY29uZmlncy9hc3BlZWRfZzVfZGVmY29uZmlnLTYtQ09ORklHX0lLQ09ORklHPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz0zPUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZzo0OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnLTUtQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnLTEtIyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14cnRfZGVmY29uZmlnOjI6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL2FybS9jb25maWdzL2lteHJ0X2RlZmNvbmZpZy0zLUNPTkZJR19TQ0hFRF9BVVRPR1JPVVA9eVxcbi0tXFxuYXJjaC9hcm0va2VybmVsL3NwZWN0cmUuYz04PXN0YXRpYyBib29sIF91bnByaXZpbGVnZWRfZWJwZl9lbmFibGVkKHZvaWQpXFxuYXJjaC9hcm0va2VybmVsL3NwZWN0cmUuYy05LXtcXG5hcmNoL2FybS9rZXJuZWwvc3BlY3RyZS5jOjEwOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5hcmNoL2FybS9rZXJuZWwvc3BlY3RyZS5jLTExLVxcdHJldHVybiAhc3lzY3RsX3VucHJpdmlsZWdlZF9icGZfZGlzYWJsZWQ7XFxuLS1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTU9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzo2OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy03LUNPTkZJR19CUEZfSklUPXlcXG4tLVxcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmM9MTEwPXN0YXRpYyBib29sIF91bnByaXZpbGVnZWRfZWJwZl9lbmFibGVkKHZvaWQpXFxuYXJjaC9hcm02NC9rZXJuZWwvcHJvdG9uLXBhY2suYy0xMTEte1xcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmM6MTEyOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5hcmNoL2FybTY0L2tlcm5lbC9wcm90b24tcGFjay5jLTExMy1cXHRyZXR1cm4gIXN5c2N0bF91bnByaXZpbGVnZWRfYnBmX2Rpc2FibGVkO1xcbi0tXFxuYXJjaC9hcm02NC9rZXJuZWwvcHJvdG9uLXBhY2suYz0xMTY3PXZvaWQgX19pbml0IHNwZWN0cmVfYmhiX3BhdGNoX2NsZWFyYmhiKHN0cnVjdCBhbHRfaW5zdHIgKmFsdCxcXG4tLVxcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmMtMTE3OC1cXG5hcmNoL2FybTY0L2tlcm5lbC9wcm90b24tcGFjay5jOjExNzk6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmFyY2gvYXJtNjQva2VybmVsL3Byb3Rvbi1wYWNrLmMtMTE4MC0jZGVmaW5lIEVCUEZfV0FSTiBcXFwiVW5wcml2aWxlZ2VkIGVCUEYgaXMgZW5hYmxlZCwgZGF0YSBsZWFrcyBwb3NzaWJsZSB2aWEgU3BlY3RyZSB2MiBCSEIgYXR0YWNrcyFcXFxcblxcXCJcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9Nj1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjc6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTgtQ09ORklHX1BSRUVNUFQ9eVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZz02PUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6NzpDT05GSUdfQlBGX1NZU0NBTEw9eVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWctOC1DT05GSUdfQlBGX0pJVD15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZz03PUNPTkZJR19FWFBFUlQ9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl82NF9kZWZjb25maWctOS0jIENPTkZJR19TWVNGU19TWVNDQUxMIGlzIG5vdCBzZXRcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uXzY0X2RlZmNvbmZpZzoxMDpDT05GSUdfQlBGX1NZU0NBTEw9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fNjRfZGVmY29uZmlnLTExLSMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc9Nz1DT05GSUdfRVhQRVJUPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fZGVmY29uZmlnLTktIyBDT05GSUdfU1lTRlNfU1lTQ0FMTCBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9kZWZjb25maWc6MTA6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL21pcHMvY29uZmlncy9kZWNzdGF0aW9uX2RlZmNvbmZpZy0xMS0jIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2RlY3N0YXRpb25fcjRrX2RlZmNvbmZpZz03PUNPTkZJR19FWFBFUlQ9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnLTktIyBDT05GSUdfU1lTRlNfU1lTQ0FMTCBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnOjEwOkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZGVjc3RhdGlvbl9yNGtfZGVmY29uZmlnLTExLSMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnPTM9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnOjQ6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctNS1DT05GSUdfVEFTS1NUQVRTPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZz0zPUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZzo0OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnLTUtQ09ORklHX1RBU0tTVEFUUz15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz0zPUNPTkZJR19ISUdIX1JFU19USU1FUlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnOjQ6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZy01LUNPTkZJR19UQVNLU1RBVFM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc9MTY9Q09ORklHX0JMS19ERVZfSU5JVFJEPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzoxNzpDT05GSUdfQlBGX1NZU0NBTEw9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnLTE4LUNPTkZJR19VU0VSRkFVTFRGRD15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnPTc9Q09ORklHX0hJR0hfUkVTX1RJTUVSUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZzo4OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZy05LUNPTkZJR19CUEZfSklUPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9mc3AyX2RlZmNvbmZpZz0xNj1DT05GSUdfS0FMTFNZTVNfQUxMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvZnNwMl9kZWZjb25maWc6MTc6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvZnNwMl9kZWZjb25maWctMTgtQ09ORklHX0VYUEVSVD15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZz0yOD1DT05GSUdfQkxLX0RFVl9JTklUUkQ9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3Bvd2VybnZfZGVmY29uZmlnOjI5OkNPTkZJR19CUEZfU1lTQ0FMTD15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG93ZXJudl9kZWZjb25maWctMzAtIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc9Nj1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc6NzpDT05GSUdfQlBGX1NZU0NBTEw9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0X2RlZmNvbmZpZy04LUNPTkZJR19CUEZfSklUPXlcXG4tLVxcbmFyY2gvcmlzY3YvY29uZmlncy9kZWZjb25maWc9ND1DT05GSUdfSElHSF9SRVNfVElNRVJTPXlcXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnOjU6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnLTYtQ09ORklHX0lLQ09ORklHPXlcXG4tLVxcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZz04PUNPTkZJR19QT1NJWF9BVVhfQ0xPQ0tTPXlcXG5hcmNoL3MzOTAvY29uZmlncy9kZWJ1Z19kZWZjb25maWc6OTpDT05GSUdfQlBGX1NZU0NBTEw9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZy0xMC1DT05GSUdfQlBGX0pJVD15XFxuLS1cXG5hcmNoL3MzOTAvY29uZmlncy9kZWZjb25maWc9Nz1DT05GSUdfUE9TSVhfQVVYX0NMT0NLUz15XFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnOjg6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL3MzOTAvY29uZmlncy9kZWZjb25maWctOS1DT05GSUdfQlBGX0pJVD15XFxuLS1cXG5hcmNoL3MzOTAvY29uZmlncy96ZmNwZHVtcF9kZWZjb25maWc9Mz1DT05GSUdfUE9TSVhfQVVYX0NMT0NLUz15XFxuYXJjaC9zMzkwL2NvbmZpZ3MvemZjcGR1bXBfZGVmY29uZmlnOjQ6Q09ORklHX0JQRl9TWVNDQUxMPXlcXG5hcmNoL3MzOTAvY29uZmlncy96ZmNwZHVtcF9kZWZjb25maWctNS0jIENPTkZJR19DUFVfSVNPTEFUSU9OIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvczM5MC9rZXJuZWwvTWFrZWZpbGU9ODA9b2JqLSQoQ09ORklHX1RSQUNFUE9JTlRTKVxcdCs9IHRyYWNlLm9cXG5hcmNoL3MzOTAva2VybmVsL01ha2VmaWxlLTgxLVxcbmFyY2gvczM5MC9rZXJuZWwvTWFrZWZpbGU6ODI6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKVxcdCs9IGJwZi5vXFxuYXJjaC9zMzkwL2tlcm5lbC9NYWtlZmlsZS04My1cXG4tLVxcbmFyY2gveDg2L2tlcm5lbC9jcHUvYnVncy5jPTE2NTU9c3RhdGljIGlubGluZSBjb25zdCBjaGFyICpzcGVjdHJlX3YyX21vZHVsZV9zdHJpbmcodm9pZCkgeyByZXR1cm4gXFxcIlxcXCI7IH1cXG4tLVxcbmFyY2gveDg2L2tlcm5lbC9jcHUvYnVncy5jLTE2NjItXFxuYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmM6MTY2MzojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmMtMTY2NC12b2lkIHVucHJpdl9lYnBmX25vdGlmeShpbnQgbmV3X3N0YXRlKVxcbi0tXFxuY3J5cHRvL01ha2VmaWxlPTI0PW9iai0kKENPTkZJR19DUllQVE9fU0tDSVBIRVIyKSArPSBjcnlwdG9fc2tjaXBoZXIub1xcbmNyeXB0by9NYWtlZmlsZToyNTppZmVxICgkKENPTkZJR19CUEZfU1lTQ0FMTCkseSlcXG5jcnlwdG8vTWFrZWZpbGUtMjYtb2JqLSQoQ09ORklHX0NSWVBUT19TS0NJUEhFUjIpICs9IGJwZl9jcnlwdG9fc2tjaXBoZXIub1xcbi0tXFxuZHJpdmVycy9iYXNlL3Bvd2VyL3Bvd2VyLmg9MTY1PXN0YXRpYyBpbmxpbmUgdm9pZCBkZXZpY2VfcG1faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL2Jhc2UvcG93ZXIvcG93ZXIuaC0xNzEtXFxuZHJpdmVycy9iYXNlL3Bvd2VyL3Bvd2VyLmg6MTcyOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5kcml2ZXJzL2Jhc2UvcG93ZXIvcG93ZXIuaC0xNzMtc3RydWN0IGJwZl93c19sb2NrIHsgfTtcXG4tLVxcbmRyaXZlcnMvYmFzZS9wb3dlci93YWtldXAuYz0xMTYzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHdha2V1cF9zb3VyY2VzX3N0YXRzX2ZvcHMgPSB7XFxuLS1cXG5kcml2ZXJzL2Jhc2UvcG93ZXIvd2FrZXVwLmMtMTE3MC1cXG5kcml2ZXJzL2Jhc2UvcG93ZXIvd2FrZXVwLmM6MTE3MTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuZHJpdmVycy9iYXNlL3Bvd2VyL3dha2V1cC5jLTExNzItI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2J0Zi5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9iYXNlL3Bvd2VyL3dha2V1cC5jPTEyMzM9c3RhdGljIGlubGluZSB2b2lkIHdha2V1cF9zb3VyY2VzX2JwZl9pbml0KHZvaWQpIHt9XFxuZHJpdmVycy9iYXNlL3Bvd2VyL3dha2V1cC5jOjEyMzQ6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmRyaXZlcnMvYmFzZS9wb3dlci93YWtldXAuYy0xMjM1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9NYWtlZmlsZT02ND1lbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvTWFrZWZpbGUtNjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9NYWtlZmlsZTo2NjppZmVxICgkKENPTkZJR19CUEZfU1lTQ0FMTCkseSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL01ha2VmaWxlLTY3LW5mcC1vYmpzICs9IFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZwX2FwcC5jPTE4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZwX2FwcF90eXBlICphcHBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfYXBwLmMtMTktXFx0W05GUF9BUFBfQ09SRV9OSUNdXFx0PSBcXHUwMDI2YXBwX25pYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9hcHAuYzoyMDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfYXBwLmMtMjEtXFx0W05GUF9BUFBfQlBGX05JQ11cXHQ9IFxcdTAwMjZhcHBfYnBmLFxcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlPTU9bmV0ZGV2c2ltLW9ianMgOj0gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlLTctXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlOjg6aWZlcSAoJChDT05GSUdfQlBGX1NZU0NBTEwpLHkpXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL01ha2VmaWxlLTktbmV0ZGV2c2ltLW9ianMgKz0gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oPTE3OD12b2lkIG5zaW1fdWRwX3R1bm5lbHNfaW5mb19kZXN0cm95KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbmRyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaC0xNzktXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oOjE4MDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oLTE4MS1pbnQgbnNpbV9icGZfZGV2X2luaXQoc3RydWN0IG5zaW1fZGV2ICpuc2ltX2Rldik7XFxuLS1cXG5mcy92ZXJpdHkvZnN2ZXJpdHlfcHJpdmF0ZS5oPTEwMz1mc3Zlcml0eV9tc2coY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqbGV2ZWwsXFxuLS1cXG5mcy92ZXJpdHkvZnN2ZXJpdHlfcHJpdmF0ZS5oLTExMi1cXG5mcy92ZXJpdHkvZnN2ZXJpdHlfcHJpdmF0ZS5oOjExMzojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuZnMvdmVyaXR5L2ZzdmVyaXR5X3ByaXZhdGUuaC0xMTQtdm9pZCBfX2luaXQgZnN2ZXJpdHlfaW5pdF9icGYodm9pZCk7XFxuLS1cXG5mcy92ZXJpdHkvbWVhc3VyZS5jPTEwNT1FWFBPUlRfU1lNQk9MX0dQTChmc3Zlcml0eV9nZXRfZGlnZXN0KTtcXG5mcy92ZXJpdHkvbWVhc3VyZS5jLTEwNi1cXG5mcy92ZXJpdHkvbWVhc3VyZS5jOjEwNzojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuZnMvdmVyaXR5L21lYXN1cmUuYy0xMDgtXFxuLS1cXG5mcy92ZXJpdHkvbWVhc3VyZS5jPTE4Mz12b2lkIF9faW5pdCBmc3Zlcml0eV9pbml0X2JwZih2b2lkKVxcbi0tXFxuZnMvdmVyaXR5L21lYXN1cmUuYy0xODctXFxuZnMvdmVyaXR5L21lYXN1cmUuYzoxODg6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0yMTkwPXN0YXRpYyBpbmxpbmUgYm9vbCBpc190cmFjaW5nX211bHRpKGVudW0gYnBmX2F0dGFjaF90eXBlIHR5cGUpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTIxOTUtXFxuaW5jbHVkZS9saW51eC9icGYuaDoyMTk2OiNpZiBkZWZpbmVkKENPTkZJR19CUEZfSklUKSBcXHUwMDI2XFx1MDAyNiBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTClcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTIxOTctLyogVGhpcyBtYWNybyBoZWxwcyBkZXZlbG9wZXIgdG8gcmVnaXN0ZXIgYSBzdHJ1Y3Rfb3BzIHR5cGUgYW5kIGdlbmVyYXRlXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oPTI1NDc9c3RhdGljIGlubGluZSBzdHJ1Y3QgYnBmX3J1bl9jdHggKmJwZl9zZXRfcnVuX2N0eChzdHJ1Y3QgYnBmX3J1bl9jdHggKm5ld19jdHgpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTI1NTAtXFxuaW5jbHVkZS9saW51eC9icGYuaDoyNTUxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTI1NTItXFx0b2xkX2N0eCA9IGN1cnJlbnQtXFx1MDAzZWJwZl9jdHg7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oPTI1NTg9c3RhdGljIGlubGluZSB2b2lkIGJwZl9yZXNldF9ydW5fY3R4KHN0cnVjdCBicGZfcnVuX2N0eCAqb2xkX2N0eClcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTI1NTkte1xcbmluY2x1ZGUvbGludXgvYnBmLmg6MjU2MDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9saW51eC9icGYuaC0yNTYxLVxcdGN1cnJlbnQtXFx1MDAzZWJwZl9jdHggPSBvbGRfY3R4O1xcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0yNjUxPWJvb2wgYnBmX2ppdF9ieXBhc3Nfc3BlY192NCh2b2lkKTtcXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmgtMjY1NS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjI2NTY6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbGludXgvYnBmLmgtMjY1Ny1ERUNMQVJFX1BFUl9DUFUoaW50LCBicGZfcHJvZ19hY3RpdmUpO1xcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0zMjE3PWJwZl9wcm9nX3J1bl9hcnJheV9zbGVlcGFibGUoY29uc3Qgc3RydWN0IGJwZl9wcm9nX2FycmF5ICphcnJheSxcXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmgtMzI2NS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjMyNjY6I2Vsc2UgLyogIUNPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmluY2x1ZGUvbGludXgvYnBmLmgtMzI2Ny1zdGF0aWMgaW5saW5lIHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2dfZ2V0KHUzMiB1ZmQpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oPTM1NTk9c3RhdGljIGlubGluZSB2b2lkIGJwZl9wcm9nX3JlcG9ydF9hcmVuYV92aW9sYXRpb24oYm9vbCB3cml0ZSwgdW5zaWduZWQgbG9uZyBhZGRyLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaC0zNTYyLX1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM1NjM6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmluY2x1ZGUvbGludXgvYnBmLmgtMzU2NC1cXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmg9MzYyMT12b2lkIHVucHJpdl9lYnBmX25vdGlmeShpbnQgbmV3X3N0YXRlKTtcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM2MjItXFxuaW5jbHVkZS9saW51eC9icGYuaDozNjIzOiNpZiBkZWZpbmVkKENPTkZJR19ORVQpIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxcbmluY2x1ZGUvbGludXgvYnBmLmgtMzYyNC1pbnQgYnBmX2Rldl9ib3VuZF9rZnVuY19jaGVjayhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0zNzI4PXN0YXRpYyBpbmxpbmUgaW50IGJwZl9wcm9nX3Rlc3RfcnVuX3N5c2NhbGwoc3RydWN0IGJwZl9wcm9nICpwcm9nLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaC0zNzM0LVxcbmluY2x1ZGUvbGludXgvYnBmLmg6MzczNTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9saW51eC9icGYuaC0zNzM2LXN0YXRpYyBpbmxpbmUgaW50IHNvY2tfbWFwX2dldF9mcm9tX2ZkKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0zNzYwPXN0YXRpYyBpbmxpbmUgaW50IHNvY2tfbWFwX2xpbmtfY3JlYXRlKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3NjMtfVxcbmluY2x1ZGUvbGludXgvYnBmLmg6Mzc2NDojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXFxuaW5jbHVkZS9saW51eC9icGYuaDozNzY1OiNlbmRpZiAvKiBDT05GSUdfTkVUIFxcdTAwMjZcXHUwMDI2IENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmluY2x1ZGUvbGludXgvYnBmLmgtMzc2Ni1cXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmg9Mzc2OD1icGZfcHJvZ19pbmNfbWlzc2VzX2NvdW50ZXJzKGNvbnN0IHN0cnVjdCBicGZfcHJvZ19hcnJheSAqYXJyYXkpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3ODItXFxuaW5jbHVkZS9saW51eC9icGYuaDozNzgzOiNpZiBkZWZpbmVkKENPTkZJR19JTkVUKSBcXHUwMDI2XFx1MDAyNiBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTClcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3ODQtdm9pZCBicGZfc2tfcmV1c2Vwb3J0X2RldGFjaChzdHJ1Y3Qgc29jayAqc2spO1xcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0zNzkwPXN0YXRpYyBpbmxpbmUgdm9pZCBicGZfc2tfcmV1c2Vwb3J0X2RldGFjaChzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3OTMtXFxuaW5jbHVkZS9saW51eC9icGYuaDozNzk0OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM3OTUtc3RhdGljIGlubGluZSBpbnQgYnBmX2ZkX3JldXNlcG9ydF9hcnJheV9sb29rdXBfZWxlbShzdHJ1Y3QgYnBmX21hcCAqbWFwLFxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaD0zODAxPXN0YXRpYyBpbmxpbmUgaW50IGJwZl9mZF9yZXVzZXBvcnRfYXJyYXlfdXBkYXRlX2VsZW0oc3RydWN0IGJwZl9tYXAgKm1hcCxcXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmgtMzgwNi19XFxuaW5jbHVkZS9saW51eC9icGYuaDozODA3OiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM4MDg6I2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX0lORVQpIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKSAqL1xcbmluY2x1ZGUvbGludXgvYnBmLmgtMzgwOS1cXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmg9MzgxMT1zdHJ1Y3QgYnBmX2tleSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM4MTYtXFxuaW5jbHVkZS9saW51eC9icGYuaDozODE3OiNpZiBkZWZpbmVkKENPTkZJR19LRVlTKSBcXHUwMDI2XFx1MDAyNiBkZWZpbmVkKENPTkZJR19CUEZfU1lTQ0FMTClcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTM4MTgtc3RydWN0IGJwZl9rZXkgKmJwZl9sb29rdXBfdXNlcl9rZXkoczMyIHNlcmlhbCwgdTY0IGZsYWdzKTtcXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmg9Mzg1MT1zdGF0aWMgaW5saW5lIHMzMiBicGZfa2V5X3NlcmlhbChjb25zdCBzdHJ1Y3QgYnBmX2tleSAqa2V5KVxcbi0tXFxuaW5jbHVkZS9saW51eC9icGYuaC0zODU0LX1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oOjM4NTU6I2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX0tFWVMpIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKSAqL1xcbmluY2x1ZGUvbGludXgvYnBmLmgtMzg1Ni1cXG4tLVxcbmluY2x1ZGUvbGludXgvYnBmLmg9NDE1OD12b2lkIGJwZl9pbnNuX2FycmF5X2FkanVzdF9hZnRlcl9yZW1vdmUoc3RydWN0IGJwZl9tYXAgKm1hcCwgdTMyIG9mZiwgdTMyIGxlbik7XFxuaW5jbHVkZS9saW51eC9icGYuaC00MTU5LVxcbmluY2x1ZGUvbGludXgvYnBmLmg6NDE2MDojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9saW51eC9icGYuaC00MTYxLXZvaWQgYnBmX3Byb2dfdXBkYXRlX2luc25fcHRycyhzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIHUzMiAqb2Zmc2V0cywgdm9pZCAqaW1hZ2UpO1xcbi0tXFxuaW5jbHVkZS9saW51eC9icGZfZGVmcy5oLTgtXFxuaW5jbHVkZS9saW51eC9icGZfZGVmcy5oOjk6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbGludXgvYnBmX2RlZnMuaC0xMC1ib29sIGJwZl9hcmVuYV9oYW5kbGVfcGFnZV9mYXVsdCh1bnNpZ25lZCBsb25nIGFkZHIsIGJvb2wgaXNfd3JpdGUsIHVuc2lnbmVkIGxvbmcgZmF1bHRfaXApO1xcbi0tXFxuaW5jbHVkZS9saW51eC9idGYuaD01MzI9c3RydWN0IGJwZl92ZXJpZmllcl9sb2c7XFxuaW5jbHVkZS9saW51eC9idGYuaC01MzMtXFxuaW5jbHVkZS9saW51eC9idGYuaDo1MzQ6I2lmIGRlZmluZWQoQ09ORklHX0JQRl9KSVQpIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxcbmluY2x1ZGUvbGludXgvYnRmLmgtNTM1LXN0cnVjdCBicGZfc3RydWN0X29wcztcXG4tLVxcbmluY2x1ZGUvbGludXgvYnRmLmg9NTYwPXN0cnVjdCBidGZfZmllbGRfaXRlciB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2J0Zi5oLTU2Ny1cXG5pbmNsdWRlL2xpbnV4L2J0Zi5oOjU2ODojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9saW51eC9idGYuaC01NjktY29uc3Qgc3RydWN0IGJ0Zl90eXBlICpidGZfdHlwZV9ieV9pZChjb25zdCBzdHJ1Y3QgYnRmICpidGYsIHUzMiB0eXBlX2lkKTtcXG4tLVxcbmluY2x1ZGUvbGludXgvY2dyb3VwLWRlZnMuaD00NzQ9c3RydWN0IGNncm91cCB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmgtNjI4LVxcbmluY2x1ZGUvbGludXgvY2dyb3VwLWRlZnMuaDo2Mjk6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbGludXgvY2dyb3VwLWRlZnMuaC02MzAtXFx0c3RydWN0IGJwZl9sb2NhbF9zdG9yYWdlIF9fcmN1ICAqYnBmX2NncnBfc3RvcmFnZTtcXG4tLVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmg9ODg1PXN0YXRpYyBpbmxpbmUgdm9pZCBicGZfbmV0X2N0eF9nZXRfYWxsX3VzZWRfZmx1c2hfbGlzdHMoc3RydWN0IGxpc3RfaGVhZCAqKmxoX21hcCxcXG4tLVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtODk0LVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmg6ODk1OlxcdGlmICghSVNfRU5BQkxFRChDT05GSUdfQlBGX1NZU0NBTEwpKVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtODk2LVxcdFxcdHJldHVybjtcXG4tLVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmg9MTIwNz1zdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wYXRjaF9pbnNuX3NpbmdsZShzdHJ1Y3QgYnBmX3Byb2cgKnByb2csIHUzMiBvZmYsXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTEyMDktXFxuaW5jbHVkZS9saW51eC9maWx0ZXIuaDoxMjEwOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTEyMTEtc3RydWN0IGJwZl9wcm9nICpicGZfcGF0Y2hfaW5zbl9kYXRhKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHUzMiBvZmYsXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTEyMjg9c3RhdGljIGlubGluZSB2b2lkIGJwZl9yZXN0b3JlX2luc25fYXV4X2RhdGEoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcXG4tLVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtMTIzMS19XFxuaW5jbHVkZS9saW51eC9maWx0ZXIuaDoxMjMyOiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTEyMzMtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaD00Mzc9TFNNX0hPT0sodm9pZCwgTFNNX1JFVF9WT0lELCBhdWRpdF9ydWxlX2ZyZWUsIHZvaWQgKmxzbXJ1bGUpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaC00MzktXFxuaW5jbHVkZS9saW51eC9sc21faG9va19kZWZzLmg6NDQwOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaC00NDEtTFNNX0hPT0soaW50LCAwLCBicGYsIGludCBjbWQsIHVuaW9uIGJwZl9hdHRyICphdHRyLCB1bnNpZ25lZCBpbnQgc2l6ZSwgYm9vbCBrZXJuZWwpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaD00NTQ9TFNNX0hPT0soaW50LCAwLCBicGZfdG9rZW5fY2FwYWJsZSwgY29uc3Qgc3RydWN0IGJwZl90b2tlbiAqdG9rZW4sIGludCBjYXApXFxuaW5jbHVkZS9saW51eC9sc21faG9va19kZWZzLmg6NDU1OiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cXG5pbmNsdWRlL2xpbnV4L2xzbV9ob29rX2RlZnMuaC00NTYtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L21tLmg9MzE4Nz1leHRlcm4gaW50IGFjY2Vzc19yZW1vdGVfdm0oc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcixcXG4tLVxcbmluY2x1ZGUvbGludXgvbW0uaC0zMTg5LVxcbmluY2x1ZGUvbGludXgvbW0uaDozMTkwOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL2xpbnV4L21tLmgtMzE5MS1leHRlcm4gaW50IGNvcHlfcmVtb3RlX3ZtX3N0cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgdW5zaWduZWQgbG9uZyBhZGRyLFxcbi0tXFxuaW5jbHVkZS9saW51eC9zY2hlZC5oPTgyMD1zdHJ1Y3QgdGFza19zdHJ1Y3Qge1xcbi0tXFxuaW5jbHVkZS9saW51eC9zY2hlZC5oLTE1ODMtI2VuZGlmXFxuaW5jbHVkZS9saW51eC9zY2hlZC5oOjE1ODQ6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbGludXgvc2NoZWQuaC0xNTg1LVxcdC8qIFVzZWQgYnkgQlBGIHRhc2sgbG9jYWwgc3RvcmFnZSAqL1xcbi0tXFxuaW5jbHVkZS9saW51eC9zY2hlZC91c2VyLmg9MTQ9c3RydWN0IHVzZXJfc3RydWN0IHtcXG4tLVxcbmluY2x1ZGUvbGludXgvc2NoZWQvdXNlci5oLTI1LVxcbmluY2x1ZGUvbGludXgvc2NoZWQvdXNlci5oOjI2OiNpZiBkZWZpbmVkKENPTkZJR19QRVJGX0VWRU5UUykgfHwgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpIHx8IFxcXFxcXG5pbmNsdWRlL2xpbnV4L3NjaGVkL3VzZXIuaC0yNy1cXHRkZWZpbmVkKENPTkZJR19ORVQpIHx8IGRlZmluZWQoQ09ORklHX0lPX1VSSU5HKSB8fCBcXFxcXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3NlY3VyaXR5Lmg9MjI4OT1zdGF0aWMgaW5saW5lIHZvaWQgc2VjdXJpdHlmc19yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KVxcbi0tXFxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oLTIyOTMtXFxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oOjIyOTQ6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbGludXgvc2VjdXJpdHkuaC0yMjk1LXVuaW9uIGJwZl9hdHRyO1xcbi0tXFxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oPTIzNjM9c3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfYnBmX3Rva2VuX2NhcGFibGUoY29uc3Qgc3RydWN0IGJwZl90b2tlbiAqdG9rZW4sIGludCBjYXApXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmgtMjM2Ny0jZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovXFxuaW5jbHVkZS9saW51eC9zZWN1cml0eS5oOjIzNjg6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmluY2x1ZGUvbGludXgvc2VjdXJpdHkuaC0yMzY5LVxcbi0tXFxuaW5jbHVkZS9uZXQvYWZfdnNvY2suaD0yNjE9ZXh0ZXJuIHN0cnVjdCBwcm90byB2c29ja19wcm90bztcXG5pbmNsdWRlL25ldC9hZl92c29jay5oOjI2MjojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9uZXQvYWZfdnNvY2suaC0yNjMtaW50IHZzb2NrX2JwZl91cGRhdGVfcHJvdG8oc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfcHNvY2sgKnBzb2NrLCBib29sIHJlc3RvcmUpO1xcbi0tXFxuaW5jbHVkZS9uZXQvYnBmX3NrX3N0b3JhZ2UuaD0yOT1zdHJ1Y3QgbmxhdHRyO1xcbmluY2x1ZGUvbmV0L2JwZl9za19zdG9yYWdlLmgtMzAtXFxuaW5jbHVkZS9uZXQvYnBmX3NrX3N0b3JhZ2UuaDozMTojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9uZXQvYnBmX3NrX3N0b3JhZ2UuaC0zMi1pbnQgYnBmX3NrX3N0b3JhZ2VfY2xvbmUoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29jayAqbmV3c2spO1xcbi0tXFxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaD00NzY9Zmxvd19kaXNzZWN0b3JfaW5pdF9rZXlzKHN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfY29udHJvbCAqa2V5X2NvbnRyb2wsXFxuLS1cXG5pbmNsdWRlL25ldC9mbG93X2Rpc3NlY3Rvci5oLTQ4Mi1cXG5pbmNsdWRlL25ldC9mbG93X2Rpc3NlY3Rvci5oOjQ4MzojaWZkZWYgQ09ORklHX0JQRl9TWVNDQUxMXFxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaC00ODQtaW50IGZsb3dfZGlzc2VjdG9yX2JwZl9wcm9nX2F0dGFjaF9jaGVjayhzdHJ1Y3QgbmV0ICpuZXQsXFxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaC00ODUtXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBicGZfcHJvZyAqcHJvZyk7XFxuaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaDo0ODY6I2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqL1xcbmluY2x1ZGUvbmV0L2Zsb3dfZGlzc2VjdG9yLmgtNDg3LVxcbi0tXFxuaW5jbHVkZS9uZXQvaXA2X2ZpYi5oPTYzMD12b2lkIGZpYjZfaW5mb19od19mbGFnc19zZXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZmliNl9pbmZvICpmNmksXFxuLS1cXG5pbmNsdWRlL25ldC9pcDZfZmliLmgtNjMyLVxcbmluY2x1ZGUvbmV0L2lwNl9maWIuaDo2MzM6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxcbmluY2x1ZGUvbmV0L2lwNl9maWIuaC02MzQtc3RydWN0IGJwZl9pdGVyX19pcHY2X3JvdXRlIHtcXG4tLVxcbmluY2x1ZGUvbmV0L21wdGNwLmg9MzI3PXN0YXRpYyBpbmxpbmUgdm9pZCBtcHRjcHY2X2hhbmRsZV9tYXBwZWQoc3RydWN0IHNvY2sgKnNrLCBib29sIG1hcHBlZCkgeyB9XFxuLS1cXG5pbmNsdWRlL25ldC9tcHRjcC5oLTMyOS1cXG5pbmNsdWRlL25ldC9tcHRjcC5oOjMzMDojaWYgZGVmaW5lZChDT05GSUdfTVBUQ1ApIFxcdTAwMjZcXHUwMDI2IGRlZmluZWQoQ09ORklHX0JQRl9TWVNDQUxMKVxcbmluY2x1ZGUvbmV0L21wdGNwLmgtMzMxLXN0cnVjdCBtcHRjcF9zb2NrICpicGZfbXB0Y3Bfc29ja19mcm9tX3N1YmZsb3coc3RydWN0IHNvY2sgKnNrKTtcXG4tLVxcbmluY2x1ZGUvbmV0L3NvY2suaD0zNjU9c3RydWN0IHNvY2sge1xcbi0tXFxuaW5jbHVkZS9uZXQvc29jay5oLTU4Ni1cXHRzdHJ1Y3Qgc29ja19yZXVzZXBvcnQgX19yY3VcXHQqc2tfcmV1c2Vwb3J0X2NiO1xcbmluY2x1ZGUvbmV0L3NvY2suaDo1ODc6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbmV0L3NvY2suaC01ODgtXFx0c3RydWN0IGJwZl9sb2NhbF9zdG9yYWdlIF9fcmN1XFx0KnNrX2JwZl9zdG9yYWdlO1xcbi0tXFxuaW5jbHVkZS9uZXQvc29jay5oPTEyOTE9c3RydWN0IHByb3RvIHtcXG4tLVxcbmluY2x1ZGUvbmV0L3NvY2suaC0xMzQzLVxcdHZvaWRcXHRcXHRcXHQoKnB1dF9wb3J0KShzdHJ1Y3Qgc29jayAqc2spO1xcbmluY2x1ZGUvbmV0L3NvY2suaDoxMzQ0OiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL25ldC9zb2NrLmgtMTM0NS1cXHRpbnRcXHRcXHRcXHQoKnBzb2NrX3VwZGF0ZV9za19wcm90KShzdHJ1Y3Qgc29jayAqc2ssXFxuLS1cXG5pbmNsdWRlL25ldC90Y3AuaD0yODUzPXN0cnVjdCBza19wc29jaztcXG5pbmNsdWRlL25ldC90Y3AuaC0yODU0LVxcbmluY2x1ZGUvbmV0L3RjcC5oOjI4NTU6I2lmZGVmIENPTkZJR19CUEZfU1lTQ0FMTFxcbmluY2x1ZGUvbmV0L3RjcC5oLTI4NTYtaW50IHRjcF9icGZfdXBkYXRlX3Byb3RvKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX3Bzb2NrICpwc29jaywgYm9vbCByZXN0b3JlKTtcXG4tLVxcbmluY2x1ZGUvbmV0L3RjcC5oPTI4NjA9aW50IHRjcF9icGZfc3RycF9yZWFkX3NvY2soc3RydWN0IHN0cnBhcnNlciAqc3RycCwgcmVhZF9kZXNjcmlwdG9yX3QgKmRlc2MsXFxuLS1cXG5pbmNsdWRlL25ldC90Y3AuaC0yODYyLSNlbmRpZiAvKiBDT05GSUdfQlBGX1NUUkVBTV9QQVJTRVIgKi9cXG5pbmNsdWRlL25ldC90Y3AuaDoyODYzOiNlbmRpZiAvKiBDT05GSUdfQlBGX1NZU0NBTEwgKi9cXG5pbmNsdWRlL25ldC90Y3AuaC0yODY0LVxcbi0tXFxuaW5jbHVkZS9uZXQvdGNwLmg9Mjg3Mz1pbnQgdGNwX2JwZl9zZW5kbXNnX3JlZGlyKHN0cnVjdCBzb2NrICpzaywgYm9vbCBpbmdyZXNzLFxcbi0tXFxuaW5jbHVkZS9uZXQvdGNwLmgtMjg3Ni1cXG5pbmNsdWRlL25ldC90Y3AuaDoyODc3OiNpZiAhZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpIHx8ICFkZWZpbmVkKENPTkZJR19ORVRfU09DS19NU0cpXFxuaW5jbHVkZS9uZXQvdGNwLmgtMjg3OC1zdGF0aWMgaW5saW5lIHZvaWQgdGNwX2JwZl9jbG9uZShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpuZXdzaylcXG4tLVxcbmluY2x1ZGUvbmV0L3RjeC5oPTE0NT1zdGF0aWMgaW5saW5lIGVudW0gdGN4X2FjdGlvbl9iYXNlIHRjeF9hY3Rpb25fY29kZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuaW5jbHVkZS9uZXQvdGN4LmgtMTYxLVxcbmluY2x1ZGUvbmV0L3RjeC5oOjE2MjojaWYgZGVmaW5lZChDT05GSUdfTkVUX1hHUkVTUykgXFx1MDAyNlxcdTAwMjYgZGVmaW5lZChDT05GSUdfQlBGX1NZU0NBTEwpXFxuaW5jbHVkZS9uZXQvdGN4LmgtMTYzLWludCB0Y3hfcHJvZ19hdHRhY2goY29uc3QgdW5pb24gYnBmX2F0dHIgKmF0dHIsIHN0cnVjdCBicGZfcHJvZyAqcHJvZyk7XFxuLS1cXG5pbmNsdWRlL25ldC90Y3guaD0yMDI9c3RhdGljIGlubGluZSB2b2lkIGRldl90Y3hfdW5pbnN0YWxsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5pbmNsdWRlL25ldC90Y3guaC0yMDQtfVxcbmluY2x1ZGUvbmV0L3RjeC5oOjIwNTojZW5kaWYgLyogQ09ORklHX05FVF9YR1JFU1MgXFx1MDAyNlxcdTAwMjYgQ09ORklHX0JQRl9TWVNDQUxMICovXFxuaW5jbHVkZS9uZXQvdGN4LmgtMjA2LSNlbmRpZiAvKiBfX05FVF9UQ1hfSCAqL1xcbi0tXFxuaW5jbHVkZS9uZXQvdWRwLmg9NjMyPXN0YXRpYyBpbmxpbmUgdm9pZCB1ZHBfcG9zdF9zZWdtZW50X2ZpeF9jc3VtKHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5pbmNsdWRlL25ldC91ZHAuaC02NTAtXFxuaW5jbHVkZS9uZXQvdWRwLmg6NjUxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL25ldC91ZHAuaC02NTItc3RydWN0IHNrX3Bzb2NrO1xcbi0tXFxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg9MTUwPURFRklORV9FVkVOVCh4ZHBfcmVkaXJlY3RfdGVtcGxhdGUsIHhkcF9yZWRpcmVjdF9lcnIsXFxuLS1cXG5pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAuaC0xNzAtXFxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg6MTcxOiNpZmRlZiBDT05GSUdfQlBGX1NZU0NBTExcXG5pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAuaC0xNzItVFJBQ0VfRVZFTlQoeGRwX2NwdW1hcF9rdGhyZWFkLFxcbi0tXFxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmg9MjUwPVRSQUNFX0VWRU5UKHhkcF9kZXZtYXBfeG1pdCxcXG4tLVxcbmluY2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oLTI4NC0pO1xcbmluY2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oOjI4NTojZW5kaWYgLyogQ09ORklHX0JQRl9TWVNDQUxMICovXFxuaW5jbHVkZS90cmFjZS9ldmVudHMveGRwLmgtMjg2LVxcbi0tXFxua2VybmVsL2JwZi9NYWtlZmlsZT03PUNGTEFHU19jb3JlLm8gKz0gLVduby1vdmVycmlkZS1pbml0ICQoY2ZsYWdzLW5vZ2NzZS15eSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlLTgtXFxua2VybmVsL2JwZi9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gc3lzY2FsbC5vIHZlcmlmaWVyLm8gaW5vZGUubyBoZWxwZXJzLm8gdG51bS5vIGNudW0ubyBsb2cubyB0b2tlbi5vIGxpdmVuZXNzLm8gY29uc3RfZm9sZC5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxMDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGJwZl9pdGVyLm8gbWFwX2l0ZXIubyB0YXNrX2l0ZXIubyBwcm9nX2l0ZXIubyBsaW5rX2l0ZXIub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBoYXNodGFiLm8gYXJyYXltYXAubyBwZXJjcHVfZnJlZWxpc3QubyBicGZfbHJ1X2xpc3QubyBscG1fdHJpZS5vIG1hcF9pbl9tYXAubyBibG9vbV9maWx0ZXIub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBsb2NhbF9zdG9yYWdlLm8gcXVldWVfc3RhY2tfbWFwcy5vIHJpbmdidWYubyBicGZfaW5zbl9hcnJheS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxMzpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGJwZl9sb2NhbF9zdG9yYWdlLm8gYnBmX3Rhc2tfc3RvcmFnZS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxNDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGZpeHVwcy5vIGNmZy5vIHN0YXRlcy5vIGJhY2t0cmFjay5vIGNoZWNrX2J0Zi5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0xNS1vYmotJHtDT05GSUdfQlBGX0xTTX1cXHQgICs9IGJwZl9pbm9kZV9zdG9yYWdlLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjE2Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gZGlzYXNtLm8gbXByb2cub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMTctb2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IHRyYW1wb2xpbmUub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MTg6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBidGYubyBtZW1hbGxvYy5vIHJxc3BpbmxvY2subyBzdHJlYW0ub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMTktaWZlcSAoJChDT05GSUdfTU1VKSQoQ09ORklHXzY0QklUKSx5eSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjIwOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYXJlbmEubyByYW5nZV90cmVlLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTIxLWVuZGlmXFxuLS1cXG5rZXJuZWwvYnBmL01ha2VmaWxlPTIzPWlmZXEgKCQoQ09ORklHX05FVCkseSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gZGV2bWFwLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gY3B1bWFwLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI2Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gb2ZmbG9hZC5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IG5ldF9uYW1lc3BhY2Uub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6Mjg6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSB0Y3gub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMjktZW5kaWZcXG5rZXJuZWwvYnBmL01ha2VmaWxlPTMwPWlmZXEgKCQoQ09ORklHX1BFUkZfRVZFTlRTKSx5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6MzE6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBzdGFja21hcC5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0zMi1lbmRpZlxcbmtlcm5lbC9icGYvTWFrZWZpbGU9MzM9aWZlcSAoJChDT05GSUdfQ0dST1VQUykseSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gY2dyb3VwX2l0ZXIubyBicGZfY2dycF9zdG9yYWdlLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTM1LWVuZGlmXFxuLS1cXG5rZXJuZWwvYnBmL01ha2VmaWxlPTM3PWlmZXEgKCQoQ09ORklHX0lORVQpLHkpXFxua2VybmVsL2JwZi9NYWtlZmlsZTozODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IHJldXNlcG9ydF9hcnJheS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0zOS1lbmRpZlxcbi0tXFxua2VybmVsL2JwZi9NYWtlZmlsZT00Mz1pZmVxICgkKENPTkZJR19CUEZfSklUKSx5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6NDQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBicGZfc3RydWN0X29wcy5vXFxua2VybmVsL2JwZi9NYWtlZmlsZTo0NTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGNwdW1hc2sub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtNDYtIyBicGZfbHNtX3Byb3RvLm8gbXVzdCBwcmVjZWRlIGJwZl9sc20uby4gVGhlIGN1cnJlbnQgcGFob2xlIGxvZ2ljXFxuLS1cXG5rZXJuZWwvYnBmL01ha2VmaWxlPTU4PWlmbmVxICgkKENPTkZJR19DUllQVE8pLClcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjU5Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gY3J5cHRvLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTYwLWVuZGlmXFxua2VybmVsL2JwZi9NYWtlZmlsZT02MT1vYmotJChDT05GSUdfQlBGX1BSRUxPQUQpICs9IHByZWxvYWQvXFxua2VybmVsL2JwZi9NYWtlZmlsZS02Mi1cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjYzOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gcmVsb19jb3JlLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnRmX2l0ZXIub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6NjU6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBidGZfcmVsb2NhdGUub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6NjY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBrbWVtX2NhY2hlX2l0ZXIub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtNjctaWZlcSAoJChDT05GSUdfRE1BX1NIQVJFRF9CVUZGRVIpLHkpXFxua2VybmVsL2JwZi9NYWtlZmlsZTo2ODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGRtYWJ1Zl9pdGVyLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTY5LWVuZGlmXFxuLS1cXG5rZXJuZWwvYnBmL2NvcmUuYz05OT1zdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nX2FsbG9jX25vX3N0YXRzKHVuc2lnbmVkIGludCBzaXplLCBnZnBfdCBnZnBfZXh0cmFfZmxhZ3MpXFxuLS1cXG5rZXJuZWwvYnBmL2NvcmUuYy0xNDEtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE0OjE5OjUyLjY4MTYwMDkzM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgyODQ3ODU3MjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIEJQRiBWZXJpZmllciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNoYW5nZSB0byB0aGUgQlBGIHZlcmlmaWVyLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGluZGlyZWN0IGp1bXBzLCBvciBgZ290b3hgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBlbmFibGUgdGhlIHJlbGV2YW50IGNvZGUgaXMgYENPTkZJR19CUEZfU1lTQ0FMTGAsIGFzIHRoZSB2ZXJpZmllciBpdHNlbGYgaXMgb25seSBjb21waWxlZCB3aGVuIHRoYXQncyBzZXQuIEkgc2hvdWxkIGRvdWJsZS1jaGVjaywgdGhvdWdoLCB0byBlbnN1cmUgSSBoYXZlbid0IG1pc3NlZCBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzLlxuXG5Mb29raW5nIGF0IHRoZSBjb2RlIG1vZGlmaWNhdGlvbnMsIHRoZSBwYXRjaCB0b3VjaGVzIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGFuZCBhIHNlbGYtdGVzdCwgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2JwZl9nb3RveC5jYC4gVGhlIHRlc3QgdXNlcyBgQlBGX1BST0dfVFlQRV9TT0NLRVRfRklMVEVSYCwgd2hpY2ggc3VnZ2VzdHMgYENPTkZJR19ORVRgICptaWdodCogYmUgcmVsZXZhbnQsIGJ1dCBgQ09ORklHX0JQRl9TWVNDQUxMYCBpcyBsaWtlbHkgdGhlIGtleSBvbmUuIExldCdzIGNvbmZpcm0gdGhhdCBgQ09ORklHX0JQRl9TWVNDQUxMYCBhbG9uZSBpcyBzdWZmaWNpZW50IHRvIHRyaWdnZXIgdGhlIGNvbXBpbGF0aW9uIG9mIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBZZXMsIGl0IGFwcGVhcnMgc28uXG5cbk5vdywgbGV0J3MgemVybyBpbiBvbiB0aGUgY29yZSBvZiB0aGUgY2hhbmdlLiBgY2hlY2tfaW5kaXJlY3RfanVtcGAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgd2FzIG1vZGlmaWVkOyB0aGF0J3MgdGhlIGZvY2FsIHBvaW50LiBXaGlsZSBgYnBmX2ZpbmRfY29udGFpbmluZ19zdWJwcm9nYCBpcyBhbHNvIGNhbGxlZCwgaXQncyBhbiBleGlzdGluZyBmdW5jdGlvbi4gYGNoZWNrX2luZGlyZWN0X2p1bXBgIGlzIHRoZSBrZXkgZnVuY3Rpb24gdG8gZnV6ei5cblxuSXMgYGNoZWNrX2luZGlyZWN0X2p1bXBgIHN0YXRpYz8gWWVzLCBpdCBpczogYHN0YXRpYyBpbnQgY2hlY2tfaW5kaXJlY3RfanVtcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24pYC4gSXQgcmVzaWRlcyB3aXRoaW4gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuXG5cbkkndmUgY29uZmlybWVkIHRoYXQgYGNoZWNrX2luZGlyZWN0X2p1bXBgIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIG1vZGlmaWVkLiBTbywgbXkgcmVhc29uaW5nIGlzIGFzIGZvbGxvd3M6IFRoZSBwYXRjaCBpcyBmdW5jdGlvbmFsbHkgc2lnbmlmaWNhbnQgYmVjYXVzZSBpdCBpbnRyb2R1Y2VzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyLiBUaGlzIGNoYW5nZSBkaXJlY3RseSBpbXBhY3RzIHRoZSBjb3JlIEJQRiB2ZXJpZmljYXRpb24gcHJvY2VzcywgYWltaW5nIHRvIHByZXZlbnQganVtcHMgb3V0c2lkZSBvZiB0aGUgY3VycmVudCBzdWJwcm9ncmFtLiBUaGVyZWZvcmUsIEknbGwgZmxhZyB0aGlzIGFzIHdvcnRoIGZ1enppbmcsIGZvY3VzaW5nIG9uIHRoZSBgY2hlY2tfaW5kaXJlY3RfanVtcGAgZnVuY3Rpb24gYW5kIHJlcXVpcmluZyBgQ09ORklHX0JQRl9TWVNDQUxMYCB0byBiZSBlbmFibGVkLlxuXG5NeSBjb25maWd1cmF0aW9uIHdpbGwgYmU6XG5cbiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqXG4qICAgKipGb2N1c1N5bWJvbHM6IFxcW1wiY2hlY2tcXF9pbmRpcmVjdFxcX2p1bXBcIl0qKlxuKiAgICoqRW5hYmxlQ29uZmlnczogXFxbXCJCUEZcXF9TWVNDQUxMXCJdKipcbiogICAqKlJlYXNvbmluZzogXCJUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tpbmcgZm9yIGluZGlyZWN0IGp1bXBzIChnb3RveCkgaW4gdGhlIEJQRiB2ZXJpZmllciB0byBwcmV2ZW50IGp1bXBpbmcgb3V0c2lkZSB0aGUgY3VycmVudCBzdWJwcm9ncmFtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBCUEYgdmVyaWZpY2F0aW9uIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiKipcblxuXG4iLCJJbnB1dFRva2VucyI6MTU0MTgsIk91dHB1dFRva2VucyI6OTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTQ6MjA6MDAuOTY2MzkwMDMyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTU1Njk2ODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2hlY2tfaW5kaXJlY3RfanVtcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNraW5nIGZvciBpbmRpcmVjdCBqdW1wcyAoZ290b3gpIGluIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJldmVudCBqdW1waW5nIG91dHNpZGUgdGhlIGN1cnJlbnQgc3VicHJvZ3JhbS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgQlBGIHZlcmlmaWNhdGlvbiBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNoZWNrX2luZGlyZWN0X2p1bXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja2luZyBmb3IgaW5kaXJlY3QganVtcHMgKGdvdG94KSBpbiB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQganVtcGluZyBvdXRzaWRlIHRoZSBjdXJyZW50IHN1YnByb2dyYW0uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIEJQRiB2ZXJpZmljYXRpb24gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow28ndz[1] Phase: Succeeded StartedAt: 2026-06-28 14:20:12 +0000 UTC FinishedAt: 2026-06-28 14:20:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-28 14:20:12 +0000 UTC FinishedAt: 2026-06-28 14:20:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2] Phase: Succeeded StartedAt: 2026-06-28 14:20:12 +0000 UTC FinishedAt: 2026-06-28 18:13:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-28 14:20:12 +0000 UTC FinishedAt: 2026-06-28 18:13:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-28 14:20:12 +0000 UTC FinishedAt: 2026-06-28 14:20:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-28 14:20:12 +0000 UTC FinishedAt: 2026-06-28 14:20:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow28ndz/series-workflow28ndz-convert-artifact-2669162806/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-28 14:20:33 +0000 UTC FinishedAt: 2026-06-28 14:43:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-28 14:20:33 +0000 UTC FinishedAt: 2026-06-28 14:43:23 +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:*540b4558-dfbd-4a6e-a21b-142a5ecd9e10,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-workflow28ndz/series-workflow28ndz-convert-artifact-2669162806/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": "717456dc-db5b-4e18-9cb7-2594d7242b53", "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-workflow28ndz/series-workflow28ndz-build-action-2590595148/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-28 14:20:33 +0000 UTC FinishedAt: 2026-06-28 14:43:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*540b4558-dfbd-4a6e-a21b-142a5ecd9e10,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-workflow28ndz/series-workflow28ndz-convert-artifact-2669162806/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": "717456dc-db5b-4e18-9cb7-2594d7242b53", "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-workflow28ndz/series-workflow28ndz-build-action-2590595148/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-28 14:43:23 +0000 UTC FinishedAt: 2026-06-28 14:43:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-28 14:43:23 +0000 UTC FinishedAt: 2026-06-28 14:43:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-28 14:43:23 +0000 UTC FinishedAt: 2026-06-28 14:43:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-28 14:43:23 +0000 UTC FinishedAt: 2026-06-28 14:43:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow28ndz/series-workflow28ndz-convert-artifact-2241691081/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-28 14:43:33 +0000 UTC FinishedAt: 2026-06-28 14:45:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-28 14:43:33 +0000 UTC FinishedAt: 2026-06-28 14:45:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*717456dc-db5b-4e18-9cb7-2594d7242b53,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-workflow28ndz/series-workflow28ndz-build-action-2590595148/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-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-28 14:45:37 +0000 UTC FinishedAt: 2026-06-28 14:45:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-28 14:45:37 +0000 UTC FinishedAt: 2026-06-28 14:45:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-28 14:45:37 +0000 UTC FinishedAt: 2026-06-28 15:07:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-28 14:45:37 +0000 UTC FinishedAt: 2026-06-28 15:07:56 +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:*540b4558-dfbd-4a6e-a21b-142a5ecd9e10,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-workflow28ndz/series-workflow28ndz-convert-artifact-2241691081/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": "13dbcc40-78a7-4683-967e-133547a425b2", "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-workflow28ndz/series-workflow28ndz-build-action-4154657957/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-28 14:45:37 +0000 UTC FinishedAt: 2026-06-28 15:07:46 +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:*540b4558-dfbd-4a6e-a21b-142a5ecd9e10,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-workflow28ndz/series-workflow28ndz-convert-artifact-2241691081/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": "13dbcc40-78a7-4683-967e-133547a425b2", "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-workflow28ndz/series-workflow28ndz-build-action-4154657957/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-28 15:07:56 +0000 UTC FinishedAt: 2026-06-28 15:07:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-28 15:07:56 +0000 UTC FinishedAt: 2026-06-28 15:07:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-28 15:07:56 +0000 UTC FinishedAt: 2026-06-28 15:10:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-28 15:07:56 +0000 UTC FinishedAt: 2026-06-28 15:10:02 +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:*13dbcc40-78a7-4683-967e-133547a425b2,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-workflow28ndz/series-workflow28ndz-build-action-4154657957/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-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-28 15:10:12 +0000 UTC FinishedAt: 2026-06-28 18:13:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-28 15:10:12 +0000 UTC FinishedAt: 2026-06-28 18:13:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"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:*717456dc-db5b-4e18-9cb7-2594d7242b53,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*13dbcc40-78a7-4683-967e-133547a425b2,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-workflow28ndz/series-workflow28ndz-build-action-2590595148/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-workflow28ndz/series-workflow28ndz-build-action-4154657957/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-28 15:10:12 +0000 UTC FinishedAt: 2026-06-28 15:10:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-28 15:10:12 +0000 UTC FinishedAt: 2026-06-28 15:10:19 +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":["check_indirect_jump"],"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-workflow28ndz/series-workflow28ndz-convert-artifact-2465548318/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-28 15:10:12 +0000 UTC FinishedAt: 2026-06-28 15:10:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-28 15:10:12 +0000 UTC FinishedAt: 2026-06-28 15:10:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-28 15:10:12 +0000 UTC FinishedAt: 2026-06-28 15:10:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-28 15:10:22 +0000 UTC FinishedAt: 2026-06-28 18:13:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow28ndz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_indirect_jump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7bfb93e3475be9de894f1cecd3a727d3e1649b03","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"720412a4-8721-412d-806a-b990f19bdc1b","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-28 15:10:22 +0000 UTC FinishedAt: 2026-06-28 18:13:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*717456dc-db5b-4e18-9cb7-2594d7242b53,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*13dbcc40-78a7-4683-967e-133547a425b2,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-workflow28ndz/series-workflow28ndz-build-action-2590595148/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-workflow28ndz/series-workflow28ndz-build-action-4154657957/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-workflow28ndz/series-workflow28ndz-convert-artifact-2465548318/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,}