Name: series-workflowq9t95 Phase: Succeeded StartedAt: 2026-08-05 10:07:46 +0000 UTC FinishedAt: 2026-08-05 13:48:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[0] Phase: Succeeded StartedAt: 2026-08-05 10:07:46 +0000 UTC FinishedAt: 2026-08-05 10:09:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[0].run-triage Phase: Succeeded StartedAt: 2026-08-05 10:07:46 +0000 UTC FinishedAt: 2026-08-05 10:09:59 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "4aa06913-d2f7-4b23-8056-e605748cdd41" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "cfg80211_update_assoc_bss_entry", "cfg80211_ch_switch_notify" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeSYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdGFjayAoY2ZnODAyMTEpIGJ5IHJlbW92aW5nIGEgY2hlY2sgdGhhdCBwcmV2ZW50ZWQgdXBkYXRpbmcgQlNTIGVudHJpZXMgaWYgdGhlaXIgdHlwZSBkaWQgbm90IG1hdGNoIHRoZSBjb25uZWN0aW9uIEJTUyB0eXBlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgdGVzdGVkIHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIHNvZnR3YXJlLWVtdWxhdGVkIHdpcmVsZXNzIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDZkY2VjNzVlY2FlYTE5NDFkMTAzMGUzMjU0MzYyMTVhZmQ2ZThmMzBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyA1IDEwOjA4OjUzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9zY2FuLmMgYi9uZXQvd2lyZWxlc3Mvc2Nhbi5jXG5pbmRleCAwNzEwODNjYzMzNjcyLi45N2JmN2FiOGNjOTY3IDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL3NjYW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3dpcmVsZXNzL3NjYW4uY1xuQEAgLTM0NDMsMTEgJiM0MzszNDQzLDYgQEAgdm9pZCBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5KHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4gXHRjYnNzLVx1MDAzZXB1Yi5jaGFubmVsID0gY2hhbjtcbiBcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnkoYnNzLCBcdTAwMjZyZGV2LVx1MDAzZWJzc19saXN0LCBsaXN0KSB7XG4tXHRcdGlmICghY2ZnODAyMTFfYnNzX3R5cGVfbWF0Y2goYnNzLVx1MDAzZXB1Yi5jYXBhYmlsaXR5LFxuLVx0XHRcdFx0XHQgICAgIGJzcy1cdTAwM2VwdWIuY2hhbm5lbC1cdTAwM2ViYW5kLFxuLVx0XHRcdFx0XHQgICAgIHdkZXYtXHUwMDNlY29ubl9ic3NfdHlwZSkpXG4tXHRcdFx0Y29udGludWU7XG4tXG4gXHRcdGlmIChic3MgPT0gY2JzcylcbiBcdFx0XHRjb250aW51ZTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5JiMzNDssCiAgICAmIzM0O2NmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIGluIHRoZSBjb3JlIHdpcmVsZXNzIHN0YWNrIChjZmc4MDIxMSkgYnkgcmVtb3ZpbmcgYSBjaGVjayB0aGF0IHByZXZlbnRlZCB1cGRhdGluZyBCU1MgZW50cmllcyBpZiB0aGVpciB0eXBlIGRpZCBub3QgbWF0Y2ggdGhlIGNvbm5lY3Rpb24gQlNTIHR5cGUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGNhbiBiZSByZWFjaGVkIGFuZCB0ZXN0ZWQgdXNpbmcgdGhlIGBtYWM4MDIxMV9od3NpbWAgc29mdHdhcmUtZW11bGF0ZWQgd2lyZWxlc3MgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNmRjZWM3NWVjYWVhMTk0MWQxMDMwZTMyNTQzNjIxNWFmZDZlOGYzMApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgQXVnIDUgMTA6MDg6NTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3Mvc2Nhbi5jIGIvbmV0L3dpcmVsZXNzL3NjYW4uYwppbmRleCAwNzEwODNjYzMzNjcyLi45N2JmN2FiOGNjOTY3IDEwMDY0NAotLS0gYS9uZXQvd2lyZWxlc3Mvc2Nhbi5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC93aXJlbGVzcy9zY2FuLmMKQEAgLTM0NDMsMTEgJiM0MzszNDQzLDYgQEAgdm9pZCBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5KHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsCiAJY2Jzcy0mZ3Q7cHViLmNoYW5uZWwgPSBjaGFuOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShic3MsICZhbXA7cmRldi0mZ3Q7YnNzX2xpc3QsIGxpc3QpIHsKLQkJaWYgKCFjZmc4MDIxMV9ic3NfdHlwZV9tYXRjaChic3MtJmd0O3B1Yi5jYXBhYmlsaXR5LAotCQkJCQkgICAgIGJzcy0mZ3Q7cHViLmNoYW5uZWwtJmd0O2JhbmQsCi0JCQkJCSAgICAgd2Rldi0mZ3Q7Y29ubl9ic3NfdHlwZSkpCi0JCQljb250aW51ZTsKLQogCQlpZiAoYnNzID09IGNic3MpCiAJCQljb250aW51ZTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDcyCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFdpcmVsZXNzIFN1YnN5c3RlbSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgYG5ldC93aXJlbGVzcy9zY2FuLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBmdW5jdGlvbi4gSXQgc2VlbXMgbGlrZSBhIGNvbmRpdGlvbiBoYXMgYmVlbiAqcmVtb3ZlZCouIFRoaXMgaXMgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIHdpcmVsZXNzIHN1YnN5c3RlbSwgaW1wYWN0aW5nIHRoZSBtYWM4MDIxMS9jZmc4MDIxMSBsYXllcnMuIFRoZSBzbmlwcGV0IGluZGljYXRlcyB0aGF0IGEgY2hlY2ssIGBjZmc4MDIxMV9ic3NfdHlwZV9tYXRjaGAsIGlzIG5vIGxvbmdlciBiZWluZyBwZXJmb3JtZWQgYmVmb3JlIHVwZGF0aW5nIHRoZSBhc3NvY2lhdGVkIEJTUyBlbnRyeS4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIHJlbW92YWwuIEkgc2VlIHRoYXQgYG1hYzgwMjExX2h3c2ltYCBjb3VsZCBiZSBhIHBvdGVudGlhbCBwYXRod2F5IHRvIHRyaWdnZXIgdGhpcyBtb2RpZmllZCBjb2RlIHBhdGguIEFscmlnaHQsIHRpbWUgdG8gZGl2ZSBkZWVwZXIgaW50byBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAgaXRzZWxmIGFuZCB1bnBhY2sgdGhlIHN1cnJvdW5kaW5nIGxvZ2ljIHRvIGFzc2VzcyB0aGUgcmFtaWZpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL3NjYW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3Mvc2Nhbi5jPTM0MTY9RVhQT1JUX1NZTUJPTChjZmc4MDIxMV9ic3NfaXRlcik7XG5uZXQvd2lyZWxlc3Mvc2Nhbi5jLTM0MTctXG5uZXQvd2lyZWxlc3Mvc2Nhbi5jOjM0MTg6dm9pZCBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5KHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG5uZXQvd2lyZWxlc3Mvc2Nhbi5jLTM0MTktXHRcdFx0XHQgICAgIHVuc2lnbmVkIGludCBsaW5rX2lkLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1OTYKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgQ2FsbCBHcmFwaCBvZiBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAqKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGFjdCBvZiB0aGlzIGZ1bmN0aW9uLCBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB0cmFjZSBpdHMgdXNhZ2UuIFdoZXJlICpleGFjdGx5KiBpcyB0aGlzIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCBmcm9tIHdpdGhpbiB0aGUgd2lyZWxlc3Mgc3RhY2s/IEkmIzM5O20gdGhpbmtpbmcgSSYjMzk7bGwgbmVlZCB0byBpZGVudGlmeSBhbGwgdGhlIGNhbGwgc2l0ZXMgdG8gZ2V0IGEgZ3Jhc3Agb24gaG93IGl0cyBiZWhhdmlvciBtaWdodCBjaGFuZ2UuIFRoYXQmIzM5O2xsIGJlIHRoZSBzdGFydGluZyBwb2ludCBvZiBteSBpbnZlc3RpZ2F0aW9uLiBGcm9tIHRoZXJlLCBJIGNhbiBkZXRlcm1pbmUgdGhlIGNvbnRleHQgYW5kIHVuZGVyc3RhbmQgdGhlIGxvZ2ljIHRoYXQgbGVhZHMgdG8gdGhhdCBCU1MgZW50cnkgdXBkYXRlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL2NvcmUuaD0zMzM9dm9pZCBjZmc4MDIxMV9ic3NfYWdlKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9jb3JlLmgtMzM0LSAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFnZV9zZWNzKTtcbm5ldC93aXJlbGVzcy9jb3JlLmg6MzM1OnZvaWQgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeShzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxubmV0L3dpcmVsZXNzL2NvcmUuaC0zMzYtXHRcdFx0XHQgICAgIHVuc2lnbmVkIGludCBsaW5rLFxuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM9MjIzNDk9dm9pZCBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMjM2NS1cdFx0aWYgKCFXQVJOX09OKCF3ZGV2LVx1MDAzZWxpbmtzW2xpbmtfaWRdLmNsaWVudC5jdXJyZW50X2JzcykpXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjIyMzY2Olx0XHRcdGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkod2RldiwgbGlua19pZCxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzNjctXHRcdFx0XHRcdFx0XHRjaGFuZGVmLVx1MDAzZWNoYW4pO1xuLS1cbm5ldC93aXJlbGVzcy9zY2FuLmM9MzQxNj1FWFBPUlRfU1lNQk9MKGNmZzgwMjExX2Jzc19pdGVyKTtcbm5ldC93aXJlbGVzcy9zY2FuLmMtMzQxNy1cbm5ldC93aXJlbGVzcy9zY2FuLmM6MzQxODp2b2lkIGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkoc3RydWN0IHdpcmVsZXNzX2RldiAqd2Rldixcbm5ldC93aXJlbGVzcy9zY2FuLmMtMzQxOS1cdFx0XHRcdCAgICAgdW5zaWduZWQgaW50IGxpbmtfaWQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE5NwoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIENoYW5uZWwgU3dpdGNoIE5vdGlmaWNhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIHRyYWNpbmcgdGhpcyBjaGFubmVsIHN3aXRjaCBub3RpZmljYXRpb24sIGFuZCBpdCBsb29rcyBsaWtlIHRoZSBlbnRyeSBwb2ludCBpcyBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAgd2l0aGluIGBuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHF1aWNrbHkgdmVyaWZ5IGlmIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpcyBldmVuIGV4cG9zZWQ7IHNvbWV0aW1lcyB0aGVzZSB0aGluZ3MgYXJlbiYjMzk7dCBhcyBzdHJhaWdodGZvcndhcmQgYXMgdGhleSBhcHBlYXIuIFdhaXQgYSBzZWNvbmQsIG5vLCB0aGF0JiMzOTtzIG5vdCByaWdodCAtIGBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5YCBpdHNlbGYgaXMgZXhwb3J0ZWQsIHdoaWNoIHNpbXBsaWZpZXMgdGhpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5jPTEwNzc9dm9pZCBhdGg2a2xfY2ZnODAyMTFfc2Nhbl9jb21wbGV0ZV9ldmVudChzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLCBib29sIGFib3J0ZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5jLTExMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmM6MTEwNzp2b2lkIGF0aDZrbF9jZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYsIGludCBmcmVxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5jLTExMDgtXHRcdFx0XHQgICAgICBlbnVtIHdtaV9waHlfbW9kZSBtb2RlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuYy0xMTIyLVx0d2lwaHlfbG9jayh2aWYtXHUwMDNlYXItXHUwMDNld2lwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5jOjExMjM6XHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHZpZi1cdTAwM2VuZGV2LCBcdTAwMjZjaGFuZGVmLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuYy0xMTI0LVx0d2lwaHlfdW5sb2NrKHZpZi1cdTAwM2Vhci1cdTAwM2V3aXBoeSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5oPTI3PXN0cnVjdCB3aXJlbGVzc19kZXYgKmF0aDZrbF9pbnRlcmZhY2VfYWRkKHN0cnVjdCBhdGg2a2wgKmFyLCBjb25zdCBjaGFyICpuYW1lLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuaC0zMC1cdFx0XHRcdFx0ICB1OCBmd192aWZfaWR4LCB1OCBud190eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuaDozMTp2b2lkIGF0aDZrbF9jZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYsIGludCBmcmVxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5oLTMyLVx0XHRcdFx0ICAgICAgZW51bSB3bWlfcGh5X21vZGUgbW9kZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM9Mzc0PXZvaWQgYXRoNmtsX2Nvbm5lY3RfYXBfbW9kZV9ic3Moc3RydWN0IGF0aDZrbF92aWYgKnZpZiwgdTE2IGNoYW5uZWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmMtNDE1LVx0XHQvKiB3ZSBhY3R1YWxseSBkb24mIzM5O3Qga25vdyB0aGUgcGh5bW9kZSwgZGVmYXVsdCB0byBIVDIwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYzo0MTY6XHRcdGF0aDZrbF9jZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHZpZiwgY2hhbm5lbCwgV01JXzExR19IVDIwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTQxNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvMTFoLmM9MjY2PXZvaWQgbXdpZmlleF9kZnNfY2hhbl9zd193b3JrX3F1ZXVlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvMTFoLmMtMjkxLVx0d2lwaHlfbG9jayhwcml2LVx1MDAzZXdkZXYud2lwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LzExaC5jOjI5MjpcdGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkocHJpdi1cdTAwM2VuZXRkZXYsIFx1MDAyNnByaXYtXHUwMDNlZGZzX2NoYW5kZWYsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LzExaC5jLTI5My1cdHdpcGh5X3VubG9jayhwcml2LVx1MDAzZXdkZXYud2lwaHkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3F1YW50ZW5uYS9xdG5mbWFjL2V2ZW50LmM9NDM2PXF0bmZfZXZlbnRfaGFuZGxlX2ZyZXFfY2hhbmdlKHN0cnVjdCBxdG5mX3dtYWMgKm1hYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9xdWFudGVubmEvcXRuZm1hYy9ldmVudC5jLTQ4MC1cdFx0d2lwaHlfbG9jayhwcml2X3RvX3dpcGh5KHZpZi1cdTAwM2VtYWMpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3F1YW50ZW5uYS9xdG5mbWFjL2V2ZW50LmM6NDgxOlx0XHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHZpZi1cdTAwM2VuZXRkZXYsIFx1MDAyNmNoYW5kZWYsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcXVhbnRlbm5hL3F0bmZtYWMvZXZlbnQuYy00ODItXHRcdHdpcGh5X3VubG9jayhwcml2X3RvX3dpcGh5KHZpZi1cdTAwM2VtYWMpKTtcbi0tXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oPTk5NTg9Y2ZnODAyMTFfcmVnX2Nhbl9iZWFjb25fcmVsYXgoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTk5NzAtLyoqXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oOjk5NzE6ICogY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeSAtIHVwZGF0ZSB3ZGV2IGNoYW5uZWwgYW5kIG5vdGlmeSB1c2Vyc3BhY2VcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtOTk3Mi0gKiBAZGV2OiB0aGUgZGV2aWNlIHdoaWNoIHN3aXRjaGVkIGNoYW5uZWxzXG4tLVxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC05OTc4LSAqL1xuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaDo5OTc5OnZvaWQgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC05OTgwLVx0XHRcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTQ0Njc9c3RhdGljIGludCBfX2llZWU4MDIxMV9jc2FfZmluYWxpemUoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmtfZGF0YSlcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDUxNi1cbm5ldC9tYWM4MDIxMS9jZmcuYzo0NTE3Olx0Y2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShzZGF0YS1cdTAwM2VkZXYsIFx1MDAyNmxpbmtfZGF0YS1cdTAwM2Vjc2EuY2hhbnJlcS5vcGVyLFxubmV0L21hYzgwMjExL2NmZy5jLTQ1MTgtXHRcdFx0XHQgIGxpbmtfZGF0YS1cdTAwM2VsaW5rX2lkKTtcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTI4NzY9c3RhdGljIHZvaWQgaWVlZTgwMjExX2NzYV9zd2l0Y2hfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmMtMjkwNy1cdFx0bGluay1cdTAwM2Vjb25mLVx1MDAzZWNoYW5yZXEgPSBsaW5rLVx1MDAzZWNzYS5jaGFucmVxO1xubmV0L21hYzgwMjExL21sbWUuYzoyOTA4Olx0XHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHNkYXRhLVx1MDAzZWRldiwgXHUwMDI2bGluay1cdTAwM2Vjc2EuY2hhbnJlcS5vcGVyLFxubmV0L21hYzgwMjExL21sbWUuYy0yOTA5LVx0XHRcdFx0XHQgIGxpbmstXHUwMDNlbGlua19pZCk7XG4tLVxubmV0L21hYzgwMjExL21sbWUuYz0zMDE2PXN0YXRpYyB2b2lkIGllZWU4MDIxMV9jaHN3aXRjaF9wb3N0X2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTMwNTctXG5uZXQvbWFjODAyMTEvbWxtZS5jOjMwNTg6XHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHNkYXRhLVx1MDAzZWRldiwgXHUwMDI2bGluay1cdTAwM2Vjb25mLVx1MDAzZWNoYW5yZXEub3Blcixcbm5ldC9tYWM4MDIxMS9tbG1lLmMtMzA1OS1cdFx0XHRcdCAgbGluay1cdTAwM2VsaW5rX2lkKTtcbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTIyMjk5PXN0YXRpYyB2b2lkIG5sODAyMTFfY2hfc3dpdGNoX25vdGlmeShzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXG4tLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMjM0OC1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MjIzNDk6dm9pZCBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIyMzUwLVx0XHRcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG4tLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMjM1OS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MjIzNjA6XHR0cmFjZV9jZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KGRldiwgY2hhbmRlZiwgbGlua19pZCk7XG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIyMzYxLVxuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzOTAtfVxubmV0L3dpcmVsZXNzL25sODAyMTEuYzoyMjM5MTpFWFBPUlRfU1lNQk9MKGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkpO1xubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMjM5Mi1cbi0tXG5uZXQvd2lyZWxlc3MvdHJhY2UuaD0zNTY4PVRSQUNFX0VWRU5UKGNmZzgwMjExX3JlZ19jYW5fYmVhY29uLFxuLS1cbm5ldC93aXJlbGVzcy90cmFjZS5oLTM1OTEtXG5uZXQvd2lyZWxlc3MvdHJhY2UuaDozNTkyOlRSQUNFX0VWRU5UKGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnksXG5uZXQvd2lyZWxlc3MvdHJhY2UuaC0zNTkzLVx0VFBfUFJPVE8oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NjIzCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXRzKioKCk9rYXksIHNvIGBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5YCBpcyBjbGVhcmx5IGEgcG9pbnQgb2YgaW50ZXJlc3QuIEkga25vdyB0aGF0IGZ1bmN0aW9uIGdldHMgY2FsbGVkIGZyb20gYm90aCBgbmV0L21hYzgwMjExL21sbWUuY2AgYW5kIGBuZXQvbWFjODAyMTEvY2ZnLmNgLiBUaGF0JiMzOTtzIGdvb2QsIHRoYXQgbWVhbnMgaXQmIzM5O3MgcHJldHR5IHdlbGwtaW50ZWdyYXRlZCBhbmQgdGh1cyBwcm9iYWJseSBwcmV0dHkgcmVhY2hhYmxlLiBBbmQgd2l0aCBteSB1bmRlcnN0YW5kaW5nIG9mIGBtYWM4MDIxMV9od3NpbWAgYW5kIHN0YW5kYXJkIHdpcmVsZXNzIGZ1enppbmcgdGVjaG5pcXVlcywgSSBjYW4gcHJldHR5IGNvbmZpZGVudGx5IHNheSB0aGlzIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIEkgY2FuIHRhcmdldC4KCk5vdywgdGhpcyBwYXRjaCBzcGVjaWZpY2FsbHkgY2hhbmdlcyBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAgaW4gYG5ldC93aXJlbGVzcy9zY2FuLmNgLiBBbHJpZ2h0LCB0aGF0JiMzOTtzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gdGFrZSBhIGZyZXNoIGxvb2sgYXQgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIHRvIGZ1bGx5IGdyYXNwIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZXNlIG1vZGlmaWNhdGlvbnMgYW5kIHdoZXJlIHZ1bG5lcmFiaWxpdGllcyBtaWdodCBiZSBpbnRyb2R1Y2VkIG9yIHBhdGNoZWQuIExldCYjMzk7cyBkZWx2ZSBiYWNrIGludG8gaXRzIGZ1bmN0aW9uYWxpdHkgdG8gc2VlIHdoYXQgdGhpcyBmdW5jdGlvbiBpcyByZWFsbHkgZG9pbmcgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGxhcmdlciB3aXJlbGVzcyBzdWJzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL3NjYW4uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDM0MTgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MzQxODpcdHZvaWQgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeShzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuMzQxOTpcdFx0XHRcdFx0ICAgICB1bnNpZ25lZCBpbnQgbGlua19pZCxcbjM0MjA6XHRcdFx0XHRcdCAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKVxuMzQyMTpcdHtcbjM0MjI6XHRcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSB3ZGV2LVx1MDAzZXdpcGh5O1xuMzQyMzpcdFx0c3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2ID0gd2lwaHlfdG9fcmRldih3aXBoeSk7XG4zNDI0Olx0XHRzdHJ1Y3QgY2ZnODAyMTFfaW50ZXJuYWxfYnNzICpjYnNzID0gd2Rldi1cdTAwM2VsaW5rc1tsaW5rX2lkXS5jbGllbnQuY3VycmVudF9ic3M7XG4zNDI1Olx0XHRzdHJ1Y3QgY2ZnODAyMTFfaW50ZXJuYWxfYnNzICpuZXcgPSBOVUxMO1xuMzQyNjpcdFx0c3RydWN0IGNmZzgwMjExX2ludGVybmFsX2JzcyAqYnNzO1xuMzQyNzpcdFx0c3RydWN0IGNmZzgwMjExX2JzcyAqbm9udHJhbnNfYnNzO1xuMzQyODpcdFx0c3RydWN0IGNmZzgwMjExX2JzcyAqdG1wO1xuMzQyOTpcdFxuMzQzMDpcdFx0c3Bpbl9sb2NrX2JoKFx1MDAyNnJkZXYtXHUwMDNlYnNzX2xvY2spO1xuMzQzMTpcdFxuMzQzMjpcdFx0LypcbjM0MzM6XHRcdCAqIFNvbWUgQVBzIHVzZSBDU0EgYWxzbyBmb3IgYmFuZHdpZHRoIGNoYW5nZXMsIGkuZS4sIHdpdGhvdXQgYWN0dWFsbHlcbjM0MzQ6XHRcdCAqIGNoYW5naW5nIHRoZSBjb250cm9sIGNoYW5uZWwsIHNvIG5vIG5lZWQgdG8gdXBkYXRlIGluIHN1Y2ggYSBjYXNlLlxuMzQzNTpcdFx0ICovXG4zNDM2Olx0XHRpZiAoY2Jzcy1cdTAwM2VwdWIuY2hhbm5lbCA9PSBjaGFuKVxuMzQzNzpcdFx0XHRnb3RvIGRvbmU7XG4zNDM4Olx0XG4zNDM5Olx0XHQvKiB1c2UgdHJhbnNtaXR0aW5nIGJzcyAqL1xuMzQ0MDpcdFx0aWYgKGNic3MtXHUwMDNlcHViLnRyYW5zbWl0dGVkX2JzcylcbjM0NDE6XHRcdFx0Y2JzcyA9IGJzc19mcm9tX3B1YihjYnNzLVx1MDAzZXB1Yi50cmFuc21pdHRlZF9ic3MpO1xuMzQ0MjpcdFxuMzQ0MzpcdFx0Y2Jzcy1cdTAwM2VwdWIuY2hhbm5lbCA9IGNoYW47XG4zNDQ0Olx0XG4zNDQ1Olx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGJzcywgXHUwMDI2cmRldi1cdTAwM2Vic3NfbGlzdCwgbGlzdCkge1xuMzQ0NjpcdFx0XHRpZiAoYnNzID09IGNic3MpXG4zNDQ3Olx0XHRcdFx0Y29udGludWU7XG4zNDQ4Olx0XG4zNDQ5Olx0XHRcdGlmICghY21wX2JzcyhcdTAwMjZic3MtXHUwMDNlcHViLCBcdTAwMjZjYnNzLVx1MDAzZXB1YiwgQlNTX0NNUF9SRUdVTEFSKSkge1xuMzQ1MDpcdFx0XHRcdG5ldyA9IGJzcztcbjM0NTE6XHRcdFx0XHRicmVhaztcbjM0NTI6XHRcdFx0fVxuMzQ1MzpcdFx0fVxuMzQ1NDpcdFxuMzQ1NTpcdFx0aWYgKG5ldykge1xuMzQ1NjpcdFx0XHQvKiB0byBzYXZlIHRpbWUsIHVwZGF0ZSBJRXMgZm9yIHRyYW5zbWl0dGluZyBic3Mgb25seSAqL1xuMzQ1NzpcdFx0XHRjZmc4MDIxMV91cGRhdGVfa25vd25fYnNzKHJkZXYsIGNic3MsIG5ldywgZmFsc2UpO1xuMzQ1ODpcdFx0XHRuZXctXHUwMDNlcHViLnByb2JlcmVzcF9pZXMgPSBOVUxMO1xuMzQ1OTpcdFx0XHRuZXctXHUwMDNlcHViLmJlYWNvbl9pZXMgPSBOVUxMO1xuMzQ2MDpcdFxuMzQ2MTpcdFx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobm9udHJhbnNfYnNzLCB0bXAsXG4zNDYyOlx0XHRcdFx0XHRcdCBcdTAwMjZuZXctXHUwMDNlcHViLm5vbnRyYW5zX2xpc3QsXG4zNDYzOlx0XHRcdFx0XHRcdCBub250cmFuc19saXN0KSB7XG4zNDY0Olx0XHRcdFx0YnNzID0gYnNzX2Zyb21fcHViKG5vbnRyYW5zX2Jzcyk7XG4zNDY1Olx0XHRcdFx0aWYgKF9fY2ZnODAyMTFfdW5saW5rX2JzcyhyZGV2LCBic3MpKVxuMzQ2NjpcdFx0XHRcdFx0cmRldi1cdTAwM2Vic3NfZ2VuZXJhdGlvbiYjNDM7JiM0Mzs7XG4zNDY3Olx0XHRcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjg3MAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDE5NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbioqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGhhcyByZW1vdmVkIGEgY3J1Y2lhbCBjaGVjayB3aXRoaW4gYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgLiBUaGF0IGZ1bmN0aW9uIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGFuZCBmdW5jdGlvbmFsLCBtZWFuaW5nIGl0JiMzOTtzIG5vdyBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSXQgc2VlbXMgbGlrZSB0aGUgcGF0Y2ggcmVtb3ZlZCBhIGNvbmRpdGlvbiByZWxhdGVkIHRvIEJTUyB0eXBlIG1hdGNoaW5nLCBtYWtpbmcgaXQgYSBiaXQgbW9yZSBvcGVuIHRvIHVuZXhwZWN0ZWQgaW5wdXRzLgoKTXkgcHJpbWFyeSBmb2N1cyBoZXJlIG5lZWRzIHRvIGJlIG9uIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCwgb2YgY291cnNlLiBBbHNvLCBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAgc2VlbXMgdG8gYmUgcmVsZXZhbnQgdG9vLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhvc2UgZnVuY3Rpb25zIGludGVyYWN0IGFuZCBpZGVudGlmeSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzIHRoYXQgbWlnaHQgaGF2ZSBiZWVuIGludHJvZHVjZWQgb3IgZXhwb3NlZCBieSB0aGUgY29kZSBjaGFuZ2UuCgpHaXZlbiB0aGUgY29udGV4dCwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBgTUFDODAyMTFgLCBgQ0ZHODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBhcmUgZW5hYmxlZC4gSSYjMzk7bGwgdGFrZSBhIHF1aWNrIGxvb2sgYXQgYG5ldC93aXJlbGVzcy9LY29uZmlnYCBhbmQgYG5ldC9tYWM4MDIxMS9LY29uZmlnYCB0byBjb25maXJtIHRoZXNlIGNvbmZpZ3VyYXRpb25zIGFuZCBzZWUgaWYgYW55dGhpbmcgZWxzZSBqdW1wcyBvdXQgYXQgbWUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMV9IV1NJTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTpjb25maWcgTUFDODAyMTFfSFdTSU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzQwNwoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhlIGdpdmVuIGluZm9ybWF0aW9uOgoKKipLY29uZmlnIERpdmUgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWxgKioKCk9rYXksIHNvIHRoZSB0YXNrIGF0IGhhbmQgaXMgdG8gdW5kZXJzdGFuZCBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGUgd2lyZWxlc3MgdmlydHVhbCBuZXR3b3JrIGRyaXZlcnMuIE15IGZpcnN0IGluc3RpbmN0LCBhcyBhbHdheXMsIGlzIHRvIGhlYWQgZGlyZWN0bHkgdG8gdGhlIEtjb25maWcgZmlsZSBmb3IgdGhhdCBhcmVhLiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnYCBpcyB0aGUgbGlrZWx5IGNhbmRpZGF0ZS4gVGhpcyBLY29uZmlnIGZpbGUgd2lsbCBiZSB0aGUgY2VudHJhbCBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aG9zZSBkcml2ZXJzLiBJdCYjMzk7bGwgZGVmaW5lIHdoYXQgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZSwgYW55IGRlcGVuZGVuY2llcyB0aGV5IG1pZ2h0IGhhdmUgb24gb3RoZXIga2VybmVsIGNvbXBvbmVudHMsIGFuZCB0aGUgZGVmYXVsdCBzZXR0aW5ncy4gSXTigJlzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgcmVhbGx5IGRpZ2dpbmcgaW50byBob3cgdGhlc2UgdmlydHVhbCB3aXJlbGVzcyBkcml2ZXJzIGFyZSBidWlsdCBhbmQgY29uZmlndXJlZCB3aXRoaW4gdGhlIGxhcmdlciBrZXJuZWwgZnJhbWV3b3JrLiBJIGV4cGVjdCB0byBmaW5kIHRoaW5ncyBsaWtlIHRoZSB2YXJpb3VzIHZpcnR1YWwgZHJpdmVyIHR5cGVzLCBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgZGVwZW5kZW5jaWVzLCBhbmQgbWF5YmUgb3B0aW9ucyB0byBlbmFibGUgb3IgZGlzYWJsZSBkaWZmZXJlbnQgZnVuY3Rpb25hbGl0aWVzIHJlbGF0ZWQgdG8gdGhlIHZpcnR1YWwgZHJpdmVycyBhbmQgdGhlaXIgaW50ZXJmYWNlcy4gVGltZSB0byBzZWUgd2hhdCYjMzk7cyBpbiB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHRjb25maWcgTUFDODAyMTFfSFdTSU1cbiAgIDI6XHRcdHRyaXN0YXRlIFwmIzM0O1NpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXCYjMzQ7XG4gICAzOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gICA0Olx0XHRoZWxwXG4gICA1Olx0XHQgIFRoaXMgZHJpdmVyIGlzIGEgZGV2ZWxvcGVyIHRlc3RpbmcgdG9vbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3RcbiAgIDY6XHRcdCAgSUVFRSA4MDIuMTEgbmV0d29ya2luZyBzdGFjayAobWFjODAyMTEpIGZ1bmN0aW9uYWxpdHkuIFRoaXMgaXMgbm90XG4gICA3Olx0XHQgIG5lZWRlZCBmb3Igbm9ybWFsIHdpcmVsZXNzIExBTiB1c2FnZSBhbmQgaXMgb25seSBmb3IgdGVzdGluZy4gU2VlXG4gICA4Olx0XHQgIERvY3VtZW50YXRpb24vbmV0d29ya2luZy9tYWM4MDIxMV9od3NpbSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3dcbiAgIDk6XHRcdCAgdG8gdXNlIHRoaXMgdG9vbC5cbiAgMTA6XHRcbiAgMTE6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsIGJlXG4gIDEyOlx0XHQgIGNhbGxlZCBtYWM4MDIxMV9od3NpbS4gIElmIHVuc3VyZSwgc2F5IE4uXG4gIDEzOlx0XG4gIDE0Olx0Y29uZmlnIFZJUlRfV0lGSVxuICAxNTpcdFx0dHJpc3RhdGUgXCYjMzQ7V2lmaSB3cmFwcGVyIGZvciBldGhlcm5ldCBkcml2ZXJzXCYjMzQ7XG4gIDE2Olx0XHRkZXBlbmRzIG9uIENGRzgwMjExXG4gIDE3Olx0XHRoZWxwXG4gIDE4Olx0XHQgIFRoaXMgb3B0aW9uIGFkZHMgc3VwcG9ydCBmb3IgZXRoZXJuZXQgY29ubmVjdGlvbnMgdG8gYXBwZWFyIGFzIGlmIHRoZXlcbiAgMTk6XHRcdCAgYXJlIHdpZmkgY29ubmVjdGlvbnMgdGhyb3VnaCBhIHNwZWNpYWwgcnRuZXRsaW5rIGRldmljZS5cbiAgMjA6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzk4OQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIGRlcGVuZGVuY2llcywgc3VtbWFyaXplZCBhcyBteSBvd24gdGhvdWdodCBwcm9jZXNzOgoKKipVbmRlcnN0YW5kaW5nIHRoZSBLZXJuZWwgV2lyZWxlc3MgU3RhY2sgRGVwZW5kZW5jaWVzKioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBrZXJuZWwgd2lyZWxlc3Mgc3RhY2sgc3RydWN0dXJlLCBhbmQgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoYXQgYE1BQzgwMjExX0hXU0lNYCByZWxpZXMgKmRpcmVjdGx5KiBvbiBgTUFDODAyMTFgLiBUaGF0IG1ha2VzIHNlbnNlOyBpdCYjMzk7cyB0aGUgaGFyZHdhcmUgc2ltdWxhdGlvbiBjb21wb25lbnQsIHNvIGl0IG5lZWRzIHRoZSBjb3JlIDgwMi4xMSBmdW5jdGlvbmFsaXR5IHRvIGJ1aWxkIG9uLiBObyBzdXJwcmlzZXMgdGhlcmUuCgpCdXQgdGhlbiwgZGlnZ2luZyBhIGxheWVyIGRlZXBlciwgYE1BQzgwMjExYCBpdHNlbGYgaXMgZGVwZW5kZW50IG9uIGBDRkc4MDIxMWAuIFRoYXQmIzM5O3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZyBhbmQgcmVmbGVjdHMgdGhlIG1vZHVsYXIgZGVzaWduLiBgQ0ZHODAyMTFgIGFjdHMgYXMgdGhlIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGFuZCBhYnN0cmFjdGlvbiBsYXllciBmb3Igd2lyZWxlc3MgZGV2aWNlcy4gSXQgcHJvdmlkZXMgdGhlIGZyYW1ld29yayBmb3IgdXNlcnNwYWNlIHRvb2xzIHRvIGNvbmZpZ3VyZSBhbmQgY29udHJvbCB0aGUgd2lyZWxlc3MgaW50ZXJmYWNlcywgYW5kIGBNQUM4MDIxMWAgbGV2ZXJhZ2VzIHRoYXQuIEVzc2VudGlhbGx5LCBgTUFDODAyMTFgIHByb3ZpZGVzIHRoZSA4MDIuMTEgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24gd2hpbGUgYENGRzgwMjExYCBtYW5hZ2VzIHRoZSBpbnRlcmFjdGlvbiB3aXRoIHRoZSB1bmRlcmx5aW5nIGRyaXZlciBhbmQgdXNlciBzcGFjZS4gVGhpcyBzZXBhcmF0aW9uIGtlZXBzIHRoZSBjb3JlIDgwMi4xMSBjb2RlIGNsZWFuIGFuZCBwbGF0Zm9ybS1hZ25vc3RpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxubmV0L21hYzgwMjExL0tjb25maWctMjAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cdGJvb2xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDsgaWYgRVhQRVJUXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNDAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctNDItXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cdHN0cmluZ1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXCYjMzQ7U29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNTktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7RW5hYmxlIExFRCB0cmlnZ2Vyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVx0Ym9vbCBcJiMzNDtFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVx0Ym9vbCBcJiMzNDtUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXHRib29sIFwmIzM0O1NlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXHRib29sIFwmIzM0O0RvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXHRib29sIFwmIzM0O1ZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXHRib29sIFwmIzM0O1ZlcmJvc2UgSFQgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBPQ0IgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXHRib29sIFwmIzM0O1ZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1ZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjgyLVx0Ym9vbCBcJiMzNDtWZXJib3NlIFRETFMgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL0tjb25maWctMjk0LVx0Ym9vbCBcJiMzNDtFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXHRpbnQgXCYjMzQ7U3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVwmIzM0OyBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNTYyCgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogOTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBjb25zaWRlcmF0aW9ucy4KCioqS2VybmVsIENvbmZpZ3VyYXRpb24gZm9yIFdpcmVsZXNzIFNpbXVsYXRpb24qKgoKQWxyaWdodCwgdGhpbmtpbmcgdGhyb3VnaCB0aGUgc2V0dXAgZm9yIHRoaXMgc2ltdWxhdGVkIHdpcmVsZXNzIGVudmlyb25tZW50LiBUbyBnZXQgdGhpbmdzIHJ1bm5pbmcgc21vb3RobHksIGl0JiMzOTtzIGNsZWFyIEkmIzM5O2xsIGJlIG5lZWRpbmcgYSBmZXcga2V5IGtlcm5lbCBtb2R1bGVzOiBgTUFDODAyMTFgIGlzIGVzc2VudGlhbCwgb2YgY291cnNlLCBhbG9uZyB3aXRoIGBDRkc4MDIxMWAsIHRoZSBjb25maWd1cmF0aW9uIGludGVyZmFjZS4gVGhlbiwgdG8gYWN0dWFsbHkgKmRvKiB0aGUgc2ltdWxhdGlvbiwgSSYjMzk7bGwgbmVlZCBgTUFDODAyMTFfSFdTSU1gLiBUaGF0JiMzOTtzIHRoZSBjb3JlLgoKSSYjMzk7bSBhbHNvIGNvbnNpZGVyaW5nIGBOTDgwMjExX1RFU1RNT0RFYC4gSXQgKm1pZ2h0KiBjb21lIGluIGhhbmR5IGZvciBzb21lIGRlYnVnZ2luZyBvciBzcGVjaWZpYyB0ZXN0cyBkb3duIHRoZSBsaW5lLCBidXQgYE1BQzgwMjExX0hXU0lNYCBpcyBkZWZpbml0ZWx5IHRoZSBwcmlvcml0eS4gSXQmIzM5O3MgdGhlIGVuZ2luZSBvZiB0aGlzIHRoaW5nLgoKSnVzdCB0byBiZSB0aG9yb3VnaCwgSSYjMzk7bGwgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhlIGBuZXQvd2lyZWxlc3MvS2NvbmZpZ2AgZmlsZSBpbiB0aGUga2VybmVsIHNvdXJjZS4gSSB3YW50IHRvIGNvbmZpcm0gdGhlIGRlcGVuZGVuY2llcyBhbmQgYXZhaWxhYmlsaXR5IG9mIGBDRkc4MDIxMWAsIGp1c3QgdG8gYmUgY2VydGFpbi4gQSBxdWljayBzYW5pdHkgY2hlY2sgYmVmb3JlIEkgbW92ZSBmb3J3YXJkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQ0ZHODAyMTEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL0tjb25maWc9MTQ9Y29uZmlnIFdFWFRfUFJJVlxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTc6Y29uZmlnIENGRzgwMjExXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cdHRyaXN0YXRlIFwmIzM0O2NmZzgwMjExIC0gd2lyZWxlc3MgY29uZmlndXJhdGlvbiBBUElcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZz0zOD1jb25maWcgTkw4MDIxMV9URVNUTU9ERVxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTUxLVxubmV0L3dpcmVsZXNzL0tjb25maWc6NTI6Y29uZmlnIENGRzgwMjExX0RFVkVMT1BFUl9XQVJOSU5HU1xubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXHRib29sIFwmIzM0O2VuYWJsZSBkZXZlbG9wZXIgd2FybmluZ3NcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02Ny1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY5LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjg5OmNvbmZpZyBDRkc4MDIxMV9SRVFVSVJFX1NJR05FRF9SRUdEQlxubmV0L3dpcmVsZXNzL0tjb25maWctOTAtXHRib29sIFwmIzM0O3JlcXVpcmUgcmVnZGIgc2lnbmF0dXJlXCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTk4LVxubmV0L3dpcmVsZXNzL0tjb25maWc6OTk6Y29uZmlnIENGRzgwMjExX1VTRV9LRVJORUxfUkVHREJfS0VZU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVx0Ym9vbCBcJiMzNDthbGxvdyByZWdkYiBrZXlzIHNoaXBwZWQgd2l0aCB0aGUga2VybmVsXCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTExMC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMTItXHRzdHJpbmcgXCYjMzQ7YWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjEyMjpjb25maWcgQ0ZHODAyMTFfUkVHX0NFTExVTEFSX0hJTlRTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMjMtXHRib29sIFwmIzM0O2NmZzgwMjExIHJlZ3VsYXRvcnkgc3VwcG9ydCBmb3IgY2VsbHVsYXIgYmFzZSBzdGF0aW9uIGhpbnRzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTM0LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTM1OmNvbmZpZyBDRkc4MDIxMV9SRUdfUkVMQVhfTk9fSVJcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgc3VwcG9ydCBmb3IgTk9fSVIgcmVsYXhhdGlvblwmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE1OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTYwLVx0Ym9vbCBcJiMzNDtlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNjk6Y29uZmlnIENGRzgwMjExX0RFQlVHRlNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3MC1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgRGVidWdGUyBlbnRyaWVzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTc2LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTc3OmNvbmZpZyBDRkc4MDIxMV9DUkRBX1NVUFBPUlRcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cdGJvb2wgXCYjMzQ7c3VwcG9ydCBDUkRBXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4Ni1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg4LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxOTQ6Y29uZmlnIENGRzgwMjExX0tVTklUX1RFU1Rcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE5NS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBjZmc4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExODMzCgkJCQkJCQlvdXRwdXQ6IDE3OAoJCQkJCQkJdGhvdWdodHM6IDE5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaXJlbGVzcyBTdGFjayBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIHRoZSBjb3JlIG9mIHRoZSBtYXR0ZXIgc2VlbXMgdG8gcmV2b2x2ZSBhcm91bmQgY2hhbmdlcyBpbXBhY3RpbmcgYENGRzgwMjExYCwgYE1BQzgwMjExYCwgYW5kIGBNQUM4MDIxMV9IV1NJTWAg4oCTIHRoZSB1c3VhbCBzdXNwZWN0cyBpbiB0aGUgd2lyZWxlc3MgbmV0d29ya2luZyBzcGFjZS4gVGhlIGtleSBmdW5jdGlvbnMgaGlnaGxpZ2h0ZWQgYXJlIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBhbmQgYGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnlgLiBNeSBpbml0aWFsIHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgZnVuY3Rpb25hbCBjaGFuZ2U7IHNwZWNpZmljYWxseSwgYSBjaGVjayBpcyBiZWluZyByZW1vdmVkIHdpdGhpbiBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAuIFRoaXMgcmVtb3ZhbCBub3cgYWxsb3dzIEJTUyBlbnRyaWVzIHRvIGJlIHVwZGF0ZWQgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZWlyIHR5cGUgbWF0Y2hlcyB0aGUgY29ubmVjdGlvbiB0eXBlLiBUaGlzIGlzLCBpbmhlcmVudGx5LCBhIGNoYW5nZSB0aGF0IGNhbiBoYXZlIHdpZGVyIGltcGxpY2F0aW9ucywgYW5kIEkgbmVlZCB0byBhc3Nlc3MgdGhvc2UuCgpCZWZvcmUganVtcGluZyB0byBjb25jbHVzaW9ucyB0aG91Z2gsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlIHRoZSBmdWxsIHBpY3R1cmUuIE15IG5leHQgaW5zdGluY3QgaXMgdG8gY29uZmlybSB0aGUgc2NvcGUgb2YgdGhlc2UgZnVuY3Rpb25zLCBlc3BlY2lhbGx5IHRoZSBmaXJzdCBvbmUuIExldCYjMzk7cyBxdWlja2x5IHZlcmlmeSBpZiBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAgaXMgZGVjbGFyZWQgYXMgc3RhdGljLiBBaCwgbm9wZSwgaXQmIzM5O3MgZXhwb3J0ZWQuIFNhbWUgZm9yIGBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5YCDigJMgYWxzbyBleHBvcnRlZC4gVGhhdCBtZWFucyB0aGlzIGlzIGdvaW5nIHRvIGluZmx1ZW5jZSBtb3JlIHRoYW4ganVzdCBhIHNtYWxsIGJpdCBvZiBjb2RlLiBUaGlzIHN1Z2dlc3RzIHdlIHNob3VsZCBjb25zaWRlciB0aGlzIGluIGEgd2lkZXIgc2NvcGUgYW5kIGltcGFjdHMuIFRpbWUgdG8gZXZhbHVhdGUgdGhlIGltcGFjdC4gSSBzaG91bGQgY2FsbCBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeSYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdGFjayAoY2ZnODAyMTEpIGJ5IHJlbW92aW5nIGEgY2hlY2sgdGhhdCBwcmV2ZW50ZWQgdXBkYXRpbmcgQlNTIGVudHJpZXMgaWYgdGhlaXIgdHlwZSBkaWQgbm90IG1hdGNoIHRoZSBjb25uZWN0aW9uIEJTUyB0eXBlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgdGVzdGVkIHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIHNvZnR3YXJlLWVtdWxhdGVkIHdpcmVsZXNzIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5JiMzNDssCiAgICAmIzM0O2NmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIGluIHRoZSBjb3JlIHdpcmVsZXNzIHN0YWNrIChjZmc4MDIxMSkgYnkgcmVtb3ZpbmcgYSBjaGVjayB0aGF0IHByZXZlbnRlZCB1cGRhdGluZyBCU1MgZW50cmllcyBpZiB0aGVpciB0eXBlIGRpZCBub3QgbWF0Y2ggdGhlIGNvbm5lY3Rpb24gQlNTIHR5cGUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGNhbiBiZSByZWFjaGVkIGFuZCB0ZXN0ZWQgdXNpbmcgdGhlIGBtYWM4MDIxMV9od3NpbWAgc29mdHdhcmUtZW11bGF0ZWQgd2lyZWxlc3MgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDg6NTQuNTI5ODg2NjRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzY4NDI2NjUxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeVwiLFxuICAgIFwiY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdGFjayAoY2ZnODAyMTEpIGJ5IHJlbW92aW5nIGEgY2hlY2sgdGhhdCBwcmV2ZW50ZWQgdXBkYXRpbmcgQlNTIGVudHJpZXMgaWYgdGhlaXIgdHlwZSBkaWQgbm90IG1hdGNoIHRoZSBjb25uZWN0aW9uIEJTUyB0eXBlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgdGVzdGVkIHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIHNvZnR3YXJlLWVtdWxhdGVkIHdpcmVsZXNzIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDg6NTQuNTI5ODkzMzhaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3OTE3NTI5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDZkY2VjNzVlY2FlYTE5NDFkMTAzMGUzMjU0MzYyMTVhZmQ2ZThmMzBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBBdWcgNSAxMDowODo1MyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3Mvc2Nhbi5jIGIvbmV0L3dpcmVsZXNzL3NjYW4uY1xcbmluZGV4IDA3MTA4M2NjMzM2NzIuLjk3YmY3YWI4Y2M5NjcgMTAwNjQ0XFxuLS0tIGEvbmV0L3dpcmVsZXNzL3NjYW4uY1xcbisrKyBiL25ldC93aXJlbGVzcy9zY2FuLmNcXG5AQCAtMzQ0MywxMSArMzQ0Myw2IEBAIHZvaWQgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeShzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbiBcXHRjYnNzLVxcdTAwM2VwdWIuY2hhbm5lbCA9IGNoYW47XFxuIFxcbiBcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGJzcywgXFx1MDAyNnJkZXYtXFx1MDAzZWJzc19saXN0LCBsaXN0KSB7XFxuLVxcdFxcdGlmICghY2ZnODAyMTFfYnNzX3R5cGVfbWF0Y2goYnNzLVxcdTAwM2VwdWIuY2FwYWJpbGl0eSxcXG4tXFx0XFx0XFx0XFx0XFx0ICAgICBic3MtXFx1MDAzZXB1Yi5jaGFubmVsLVxcdTAwM2ViYW5kLFxcbi1cXHRcXHRcXHRcXHRcXHQgICAgIHdkZXYtXFx1MDAzZWNvbm5fYnNzX3R5cGUpKVxcbi1cXHRcXHRcXHRjb250aW51ZTtcXG4tXFxuIFxcdFxcdGlmIChic3MgPT0gY2JzcylcXG4gXFx0XFx0XFx0Y29udGludWU7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowODo1NC45MDk4NDg2OTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1MzMwNDI5NTYwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeVwiLFxuICAgIFwiY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdGFjayAoY2ZnODAyMTEpIGJ5IHJlbW92aW5nIGEgY2hlY2sgdGhhdCBwcmV2ZW50ZWQgdXBkYXRpbmcgQlNTIGVudHJpZXMgaWYgdGhlaXIgdHlwZSBkaWQgbm90IG1hdGNoIHRoZSBjb25uZWN0aW9uIEJTUyB0eXBlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgdGVzdGVkIHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIHNvZnR3YXJlLWVtdWxhdGVkIHdpcmVsZXNzIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNmRjZWM3NWVjYWVhMTk0MWQxMDMwZTMyNTQzNjIxNWFmZDZlOGYzMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgQXVnIDUgMTA6MDg6NTMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3Mvc2Nhbi5jIGIvbmV0L3dpcmVsZXNzL3NjYW4uY1xuaW5kZXggMDcxMDgzY2MzMzY3Mi4uOTdiZjdhYjhjYzk2NyAxMDA2NDRcbi0tLSBhL25ldC93aXJlbGVzcy9zY2FuLmNcbisrKyBiL25ldC93aXJlbGVzcy9zY2FuLmNcbkBAIC0zNDQzLDExICszNDQzLDYgQEAgdm9pZCBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5KHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4gXHRjYnNzLVx1MDAzZXB1Yi5jaGFubmVsID0gY2hhbjtcbiBcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnkoYnNzLCBcdTAwMjZyZGV2LVx1MDAzZWJzc19saXN0LCBsaXN0KSB7XG4tXHRcdGlmICghY2ZnODAyMTFfYnNzX3R5cGVfbWF0Y2goYnNzLVx1MDAzZXB1Yi5jYXBhYmlsaXR5LFxuLVx0XHRcdFx0XHQgICAgIGJzcy1cdTAwM2VwdWIuY2hhbm5lbC1cdTAwM2ViYW5kLFxuLVx0XHRcdFx0XHQgICAgIHdkZXYtXHUwMDNlY29ubl9ic3NfdHlwZSkpXG4tXHRcdFx0Y29udGludWU7XG4tXG4gXHRcdGlmIChic3MgPT0gY2JzcylcbiBcdFx0XHRjb250aW51ZTtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDEwOjA4OjU0LjkwOTg1MDYxMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzNDM5NTM3MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgV2lyZWxlc3MgU3Vic3lzdGVtIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgYG5ldC93aXJlbGVzcy9zY2FuLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBmdW5jdGlvbi4gSXQgc2VlbXMgbGlrZSBhIGNvbmRpdGlvbiBoYXMgYmVlbiAqcmVtb3ZlZCouIFRoaXMgaXMgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIHdpcmVsZXNzIHN1YnN5c3RlbSwgaW1wYWN0aW5nIHRoZSBtYWM4MDIxMS9jZmc4MDIxMSBsYXllcnMuIFRoZSBzbmlwcGV0IGluZGljYXRlcyB0aGF0IGEgY2hlY2ssIGBjZmc4MDIxMV9ic3NfdHlwZV9tYXRjaGAsIGlzIG5vIGxvbmdlciBiZWluZyBwZXJmb3JtZWQgYmVmb3JlIHVwZGF0aW5nIHRoZSBhc3NvY2lhdGVkIEJTUyBlbnRyeS4gVGhhdCdzIGludGVyZXN0aW5nLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgcmVtb3ZhbC4gSSBzZWUgdGhhdCBgbWFjODAyMTFfaHdzaW1gIGNvdWxkIGJlIGEgcG90ZW50aWFsIHBhdGh3YXkgdG8gdHJpZ2dlciB0aGlzIG1vZGlmaWVkIGNvZGUgcGF0aC4gQWxyaWdodCwgdGltZSB0byBkaXZlIGRlZXBlciBpbnRvIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpdHNlbGYgYW5kIHVucGFjayB0aGUgc3Vycm91bmRpbmcgbG9naWMgdG8gYXNzZXNzIHRoZSByYW1pZmljYXRpb25zIG9mIHRoaXMgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDcyLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTY4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDg6NTkuMjUzODA3NTM0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MjU0NjA2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3dpcmVsZXNzL3NjYW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3Mvc2Nhbi5jPTM0MTY9RVhQT1JUX1NZTUJPTChjZmc4MDIxMV9ic3NfaXRlcik7XFxubmV0L3dpcmVsZXNzL3NjYW4uYy0zNDE3LVxcbm5ldC93aXJlbGVzcy9zY2FuLmM6MzQxODp2b2lkIGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG5uZXQvd2lyZWxlc3Mvc2Nhbi5jLTM0MTktXFx0XFx0XFx0XFx0ICAgICB1bnNpZ25lZCBpbnQgbGlua19pZCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDg6NTkuMjk5MDY2MzFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjI4MDIxMjM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgQ2FsbCBHcmFwaCBvZiBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIHRoaXMgZnVuY3Rpb24sIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIGl0cyB1c2FnZS4gV2hlcmUgKmV4YWN0bHkqIGlzIHRoaXMgZnVuY3Rpb24gYmVpbmcgY2FsbGVkIGZyb20gd2l0aGluIHRoZSB3aXJlbGVzcyBzdGFjaz8gSSdtIHRoaW5raW5nIEknbGwgbmVlZCB0byBpZGVudGlmeSBhbGwgdGhlIGNhbGwgc2l0ZXMgdG8gZ2V0IGEgZ3Jhc3Agb24gaG93IGl0cyBiZWhhdmlvciBtaWdodCBjaGFuZ2UuIFRoYXQnbGwgYmUgdGhlIHN0YXJ0aW5nIHBvaW50IG9mIG15IGludmVzdGlnYXRpb24uIEZyb20gdGhlcmUsIEkgY2FuIGRldGVybWluZSB0aGUgY29udGV4dCBhbmQgdW5kZXJzdGFuZCB0aGUgbG9naWMgdGhhdCBsZWFkcyB0byB0aGF0IEJTUyBlbnRyeSB1cGRhdGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1OTYsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOTowMi41MjcwOTAzNjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwNzM1MjE0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvY29yZS5oPTMzMz12b2lkIGNmZzgwMjExX2Jzc19hZ2Uoc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxcbm5ldC93aXJlbGVzcy9jb3JlLmgtMzM0LSAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFnZV9zZWNzKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5oOjMzNTp2b2lkIGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG5uZXQvd2lyZWxlc3MvY29yZS5oLTMzNi1cXHRcXHRcXHRcXHQgICAgIHVuc2lnbmVkIGludCBsaW5rLFxcbi0tXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYz0yMjM0OT12b2lkIGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzNjUtXFx0XFx0aWYgKCFXQVJOX09OKCF3ZGV2LVxcdTAwM2VsaW5rc1tsaW5rX2lkXS5jbGllbnQuY3VycmVudF9ic3MpKVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MjIzNjY6XFx0XFx0XFx0Y2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeSh3ZGV2LCBsaW5rX2lkLFxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzNjctXFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2hhbmRlZi1cXHUwMDNlY2hhbik7XFxuLS1cXG5uZXQvd2lyZWxlc3Mvc2Nhbi5jPTM0MTY9RVhQT1JUX1NZTUJPTChjZmc4MDIxMV9ic3NfaXRlcik7XFxubmV0L3dpcmVsZXNzL3NjYW4uYy0zNDE3LVxcbm5ldC93aXJlbGVzcy9zY2FuLmM6MzQxODp2b2lkIGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG5uZXQvd2lyZWxlc3Mvc2Nhbi5jLTM0MTktXFx0XFx0XFx0XFx0ICAgICB1bnNpZ25lZCBpbnQgbGlua19pZCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDk6MDQuNDM0NDQ4MDcyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU4NTYzMTEzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBDaGFubmVsIFN3aXRjaCBOb3RpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gdHJhY2luZyB0aGlzIGNoYW5uZWwgc3dpdGNoIG5vdGlmaWNhdGlvbiwgYW5kIGl0IGxvb2tzIGxpa2UgdGhlIGVudHJ5IHBvaW50IGlzIGBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5YCB3aXRoaW4gYG5ldC93aXJlbGVzcy9ubDgwMjExLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gcXVpY2tseSB2ZXJpZnkgaWYgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIGlzIGV2ZW4gZXhwb3NlZDsgc29tZXRpbWVzIHRoZXNlIHRoaW5ncyBhcmVuJ3QgYXMgc3RyYWlnaHRmb3J3YXJkIGFzIHRoZXkgYXBwZWFyLiBXYWl0IGEgc2Vjb25kLCBubywgdGhhdCdzIG5vdCByaWdodCAtIGBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5YCBpdHNlbGYgaXMgZXhwb3J0ZWQsIHdoaWNoIHNpbXBsaWZpZXMgdGhpbmdzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTk3LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDk6MDguMDIwMDgxOTUzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTg4MDczNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5jPTEwNzc9dm9pZCBhdGg2a2xfY2ZnODAyMTFfc2Nhbl9jb21wbGV0ZV9ldmVudChzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLCBib29sIGFib3J0ZWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmMtMTEwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmM6MTEwNzp2b2lkIGF0aDZrbF9jZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYsIGludCBmcmVxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuYy0xMTA4LVxcdFxcdFxcdFxcdCAgICAgIGVudW0gd21pX3BoeV9tb2RlIG1vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmMtMTEyMi1cXHR3aXBoeV9sb2NrKHZpZi1cXHUwMDNlYXItXFx1MDAzZXdpcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmM6MTEyMzpcXHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHZpZi1cXHUwMDNlbmRldiwgXFx1MDAyNmNoYW5kZWYsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuYy0xMTI0LVxcdHdpcGh5X3VubG9jayh2aWYtXFx1MDAzZWFyLVxcdTAwM2V3aXBoeSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmg9Mjc9c3RydWN0IHdpcmVsZXNzX2RldiAqYXRoNmtsX2ludGVyZmFjZV9hZGQoc3RydWN0IGF0aDZrbCAqYXIsIGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmgtMzAtXFx0XFx0XFx0XFx0XFx0ICB1OCBmd192aWZfaWR4LCB1OCBud190eXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmg6MzE6dm9pZCBhdGg2a2xfY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLCBpbnQgZnJlcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmgtMzItXFx0XFx0XFx0XFx0ICAgICAgZW51bSB3bWlfcGh5X21vZGUgbW9kZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYz0zNzQ9dm9pZCBhdGg2a2xfY29ubmVjdF9hcF9tb2RlX2JzcyhzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLCB1MTYgY2hhbm5lbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTQxNS1cXHRcXHQvKiB3ZSBhY3R1YWxseSBkb24ndCBrbm93IHRoZSBwaHltb2RlLCBkZWZhdWx0IHRvIEhUMjAgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYzo0MTY6XFx0XFx0YXRoNmtsX2NmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkodmlmLCBjaGFubmVsLCBXTUlfMTFHX0hUMjApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTQxNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC8xMWguYz0yNjY9dm9pZCBtd2lmaWV4X2Rmc19jaGFuX3N3X3dvcmtfcXVldWUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LzExaC5jLTI5MS1cXHR3aXBoeV9sb2NrKHByaXYtXFx1MDAzZXdkZXYud2lwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC8xMWguYzoyOTI6XFx0Y2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShwcml2LVxcdTAwM2VuZXRkZXYsIFxcdTAwMjZwcml2LVxcdTAwM2VkZnNfY2hhbmRlZiwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LzExaC5jLTI5My1cXHR3aXBoeV91bmxvY2socHJpdi1cXHUwMDNld2Rldi53aXBoeSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9xdWFudGVubmEvcXRuZm1hYy9ldmVudC5jPTQzNj1xdG5mX2V2ZW50X2hhbmRsZV9mcmVxX2NoYW5nZShzdHJ1Y3QgcXRuZl93bWFjICptYWMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9xdWFudGVubmEvcXRuZm1hYy9ldmVudC5jLTQ4MC1cXHRcXHR3aXBoeV9sb2NrKHByaXZfdG9fd2lwaHkodmlmLVxcdTAwM2VtYWMpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9xdWFudGVubmEvcXRuZm1hYy9ldmVudC5jOjQ4MTpcXHRcXHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHZpZi1cXHUwMDNlbmV0ZGV2LCBcXHUwMDI2Y2hhbmRlZiwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcXVhbnRlbm5hL3F0bmZtYWMvZXZlbnQuYy00ODItXFx0XFx0d2lwaHlfdW5sb2NrKHByaXZfdG9fd2lwaHkodmlmLVxcdTAwM2VtYWMpKTtcXG4tLVxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg9OTk1OD1jZmc4MDIxMV9yZWdfY2FuX2JlYWNvbl9yZWxheChzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC05OTcwLS8qKlxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg6OTk3MTogKiBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5IC0gdXBkYXRlIHdkZXYgY2hhbm5lbCBhbmQgbm90aWZ5IHVzZXJzcGFjZVxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtOTk3Mi0gKiBAZGV2OiB0aGUgZGV2aWNlIHdoaWNoIHN3aXRjaGVkIGNoYW5uZWxzXFxuLS1cXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTk5NzgtICovXFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaDo5OTc5OnZvaWQgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtOTk4MC1cXHRcXHRcXHQgICAgICAgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTQ0Njc9c3RhdGljIGludCBfX2llZWU4MDIxMV9jc2FfZmluYWxpemUoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmtfZGF0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy00NTE2LVxcbm5ldC9tYWM4MDIxMS9jZmcuYzo0NTE3OlxcdGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkoc2RhdGEtXFx1MDAzZWRldiwgXFx1MDAyNmxpbmtfZGF0YS1cXHUwMDNlY3NhLmNoYW5yZXEub3BlcixcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDUxOC1cXHRcXHRcXHRcXHQgIGxpbmtfZGF0YS1cXHUwMDNlbGlua19pZCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTI4NzY9c3RhdGljIHZvaWQgaWVlZTgwMjExX2NzYV9zd2l0Y2hfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy0yOTA3LVxcdFxcdGxpbmstXFx1MDAzZWNvbmYtXFx1MDAzZWNoYW5yZXEgPSBsaW5rLVxcdTAwM2Vjc2EuY2hhbnJlcTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jOjI5MDg6XFx0XFx0Y2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShzZGF0YS1cXHUwMDNlZGV2LCBcXHUwMDI2bGluay1cXHUwMDNlY3NhLmNoYW5yZXEub3BlcixcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTI5MDktXFx0XFx0XFx0XFx0XFx0ICBsaW5rLVxcdTAwM2VsaW5rX2lkKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM9MzAxNj1zdGF0aWMgdm9pZCBpZWVlODAyMTFfY2hzd2l0Y2hfcG9zdF9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jLTMwNTctXFxubmV0L21hYzgwMjExL21sbWUuYzozMDU4OlxcdGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkoc2RhdGEtXFx1MDAzZWRldiwgXFx1MDAyNmxpbmstXFx1MDAzZWNvbmYtXFx1MDAzZWNoYW5yZXEub3BlcixcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTMwNTktXFx0XFx0XFx0XFx0ICBsaW5rLVxcdTAwM2VsaW5rX2lkKTtcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM9MjIyOTk9c3RhdGljIHZvaWQgbmw4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzNDgtXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYzoyMjM0OTp2b2lkIGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIyMzUwLVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIyMzU5LVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MjIzNjA6XFx0dHJhY2VfY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShkZXYsIGNoYW5kZWYsIGxpbmtfaWQpO1xcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzNjEtXFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIyMzkwLX1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjIyMzkxOkVYUE9SVF9TWU1CT0woY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeSk7XFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMjM5Mi1cXG4tLVxcbm5ldC93aXJlbGVzcy90cmFjZS5oPTM1Njg9VFJBQ0VfRVZFTlQoY2ZnODAyMTFfcmVnX2Nhbl9iZWFjb24sXFxuLS1cXG5uZXQvd2lyZWxlc3MvdHJhY2UuaC0zNTkxLVxcbm5ldC93aXJlbGVzcy90cmFjZS5oOjM1OTI6VFJBQ0VfRVZFTlQoY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeSxcXG5uZXQvd2lyZWxlc3MvdHJhY2UuaC0zNTkzLVxcdFRQX1BST1RPKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDEwOjA5OjA5Ljc3ODg5NDM2MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3MDIzMTkyMjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldHMqKlxuXG5Pa2F5LCBzbyBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAgaXMgY2xlYXJseSBhIHBvaW50IG9mIGludGVyZXN0LiBJIGtub3cgdGhhdCBmdW5jdGlvbiBnZXRzIGNhbGxlZCBmcm9tIGJvdGggYG5ldC9tYWM4MDIxMS9tbG1lLmNgIGFuZCBgbmV0L21hYzgwMjExL2NmZy5jYC4gVGhhdCdzIGdvb2QsIHRoYXQgbWVhbnMgaXQncyBwcmV0dHkgd2VsbC1pbnRlZ3JhdGVkIGFuZCB0aHVzIHByb2JhYmx5IHByZXR0eSByZWFjaGFibGUuIEFuZCB3aXRoIG15IHVuZGVyc3RhbmRpbmcgb2YgYG1hYzgwMjExX2h3c2ltYCBhbmQgc3RhbmRhcmQgd2lyZWxlc3MgZnV6emluZyB0ZWNobmlxdWVzLCBJIGNhbiBwcmV0dHkgY29uZmlkZW50bHkgc2F5IHRoaXMgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgSSBjYW4gdGFyZ2V0LlxuXG5Ob3csIHRoaXMgcGF0Y2ggc3BlY2lmaWNhbGx5IGNoYW5nZXMgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIGluIGBuZXQvd2lyZWxlc3Mvc2Nhbi5jYC4gQWxyaWdodCwgdGhhdCdzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gdGFrZSBhIGZyZXNoIGxvb2sgYXQgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIHRvIGZ1bGx5IGdyYXNwIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZXNlIG1vZGlmaWNhdGlvbnMgYW5kIHdoZXJlIHZ1bG5lcmFiaWxpdGllcyBtaWdodCBiZSBpbnRyb2R1Y2VkIG9yIHBhdGNoZWQuIExldCdzIGRlbHZlIGJhY2sgaW50byBpdHMgZnVuY3Rpb25hbGl0eSB0byBzZWUgd2hhdCB0aGlzIGZ1bmN0aW9uIGlzIHJlYWxseSBkb2luZyBpbiB0aGUgY29udGV4dCBvZiB0aGUgbGFyZ2VyIHdpcmVsZXNzIHN1YnN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYyMywiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOToxNC40ODEyMTYwMzhaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc3NzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC93aXJlbGVzcy9zY2FuLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMzQxOCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMzQxODpcXHR2b2lkIGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG4zNDE5OlxcdFxcdFxcdFxcdFxcdCAgICAgdW5zaWduZWQgaW50IGxpbmtfaWQsXFxuMzQyMDpcXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbilcXG4zNDIxOlxcdHtcXG4zNDIyOlxcdFxcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSB3ZGV2LVxcdTAwM2V3aXBoeTtcXG4zNDIzOlxcdFxcdHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiA9IHdpcGh5X3RvX3JkZXYod2lwaHkpO1xcbjM0MjQ6XFx0XFx0c3RydWN0IGNmZzgwMjExX2ludGVybmFsX2JzcyAqY2JzcyA9IHdkZXYtXFx1MDAzZWxpbmtzW2xpbmtfaWRdLmNsaWVudC5jdXJyZW50X2JzcztcXG4zNDI1OlxcdFxcdHN0cnVjdCBjZmc4MDIxMV9pbnRlcm5hbF9ic3MgKm5ldyA9IE5VTEw7XFxuMzQyNjpcXHRcXHRzdHJ1Y3QgY2ZnODAyMTFfaW50ZXJuYWxfYnNzICpic3M7XFxuMzQyNzpcXHRcXHRzdHJ1Y3QgY2ZnODAyMTFfYnNzICpub250cmFuc19ic3M7XFxuMzQyODpcXHRcXHRzdHJ1Y3QgY2ZnODAyMTFfYnNzICp0bXA7XFxuMzQyOTpcXHRcXG4zNDMwOlxcdFxcdHNwaW5fbG9ja19iaChcXHUwMDI2cmRldi1cXHUwMDNlYnNzX2xvY2spO1xcbjM0MzE6XFx0XFxuMzQzMjpcXHRcXHQvKlxcbjM0MzM6XFx0XFx0ICogU29tZSBBUHMgdXNlIENTQSBhbHNvIGZvciBiYW5kd2lkdGggY2hhbmdlcywgaS5lLiwgd2l0aG91dCBhY3R1YWxseVxcbjM0MzQ6XFx0XFx0ICogY2hhbmdpbmcgdGhlIGNvbnRyb2wgY2hhbm5lbCwgc28gbm8gbmVlZCB0byB1cGRhdGUgaW4gc3VjaCBhIGNhc2UuXFxuMzQzNTpcXHRcXHQgKi9cXG4zNDM2OlxcdFxcdGlmIChjYnNzLVxcdTAwM2VwdWIuY2hhbm5lbCA9PSBjaGFuKVxcbjM0Mzc6XFx0XFx0XFx0Z290byBkb25lO1xcbjM0Mzg6XFx0XFxuMzQzOTpcXHRcXHQvKiB1c2UgdHJhbnNtaXR0aW5nIGJzcyAqL1xcbjM0NDA6XFx0XFx0aWYgKGNic3MtXFx1MDAzZXB1Yi50cmFuc21pdHRlZF9ic3MpXFxuMzQ0MTpcXHRcXHRcXHRjYnNzID0gYnNzX2Zyb21fcHViKGNic3MtXFx1MDAzZXB1Yi50cmFuc21pdHRlZF9ic3MpO1xcbjM0NDI6XFx0XFxuMzQ0MzpcXHRcXHRjYnNzLVxcdTAwM2VwdWIuY2hhbm5lbCA9IGNoYW47XFxuMzQ0NDpcXHRcXG4zNDQ1OlxcdFxcdGxpc3RfZm9yX2VhY2hfZW50cnkoYnNzLCBcXHUwMDI2cmRldi1cXHUwMDNlYnNzX2xpc3QsIGxpc3QpIHtcXG4zNDQ2OlxcdFxcdFxcdGlmIChic3MgPT0gY2JzcylcXG4zNDQ3OlxcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbjM0NDg6XFx0XFxuMzQ0OTpcXHRcXHRcXHRpZiAoIWNtcF9ic3MoXFx1MDAyNmJzcy1cXHUwMDNlcHViLCBcXHUwMDI2Y2Jzcy1cXHUwMDNlcHViLCBCU1NfQ01QX1JFR1VMQVIpKSB7XFxuMzQ1MDpcXHRcXHRcXHRcXHRuZXcgPSBic3M7XFxuMzQ1MTpcXHRcXHRcXHRcXHRicmVhaztcXG4zNDUyOlxcdFxcdFxcdH1cXG4zNDUzOlxcdFxcdH1cXG4zNDU0OlxcdFxcbjM0NTU6XFx0XFx0aWYgKG5ldykge1xcbjM0NTY6XFx0XFx0XFx0LyogdG8gc2F2ZSB0aW1lLCB1cGRhdGUgSUVzIGZvciB0cmFuc21pdHRpbmcgYnNzIG9ubHkgKi9cXG4zNDU3OlxcdFxcdFxcdGNmZzgwMjExX3VwZGF0ZV9rbm93bl9ic3MocmRldiwgY2JzcywgbmV3LCBmYWxzZSk7XFxuMzQ1ODpcXHRcXHRcXHRuZXctXFx1MDAzZXB1Yi5wcm9iZXJlc3BfaWVzID0gTlVMTDtcXG4zNDU5OlxcdFxcdFxcdG5ldy1cXHUwMDNlcHViLmJlYWNvbl9pZXMgPSBOVUxMO1xcbjM0NjA6XFx0XFxuMzQ2MTpcXHRcXHRcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobm9udHJhbnNfYnNzLCB0bXAsXFxuMzQ2MjpcXHRcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNm5ldy1cXHUwMDNlcHViLm5vbnRyYW5zX2xpc3QsXFxuMzQ2MzpcXHRcXHRcXHRcXHRcXHRcXHQgbm9udHJhbnNfbGlzdCkge1xcbjM0NjQ6XFx0XFx0XFx0XFx0YnNzID0gYnNzX2Zyb21fcHViKG5vbnRyYW5zX2Jzcyk7XFxuMzQ2NTpcXHRcXHRcXHRcXHRpZiAoX19jZmc4MDIxMV91bmxpbmtfYnNzKHJkZXYsIGJzcykpXFxuMzQ2NjpcXHRcXHRcXHRcXHRcXHRyZGV2LVxcdTAwM2Vic3NfZ2VuZXJhdGlvbisrO1xcbjM0Njc6XFx0XFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOToxNC40ODEzOTU4ODhaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM3OTI5NDgwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaGFzIHJlbW92ZWQgYSBjcnVjaWFsIGNoZWNrIHdpdGhpbiBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAuIFRoYXQgZnVuY3Rpb24gaXMgZGVmaW5pdGVseSByZWFjaGFibGUgYW5kIGZ1bmN0aW9uYWwsIG1lYW5pbmcgaXQncyBub3cgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIEl0IHNlZW1zIGxpa2UgdGhlIHBhdGNoIHJlbW92ZWQgYSBjb25kaXRpb24gcmVsYXRlZCB0byBCU1MgdHlwZSBtYXRjaGluZywgbWFraW5nIGl0IGEgYml0IG1vcmUgb3BlbiB0byB1bmV4cGVjdGVkIGlucHV0cy5cblxuTXkgcHJpbWFyeSBmb2N1cyBoZXJlIG5lZWRzIHRvIGJlIG9uIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCwgb2YgY291cnNlLiBBbHNvLCBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAgc2VlbXMgdG8gYmUgcmVsZXZhbnQgdG9vLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhvc2UgZnVuY3Rpb25zIGludGVyYWN0IGFuZCBpZGVudGlmeSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzIHRoYXQgbWlnaHQgaGF2ZSBiZWVuIGludHJvZHVjZWQgb3IgZXhwb3NlZCBieSB0aGUgY29kZSBjaGFuZ2UuXG5cbkdpdmVuIHRoZSBjb250ZXh0LCBJIG5lZWQgdG8gbWFrZSBzdXJlIGBNQUM4MDIxMWAsIGBDRkc4MDIxMWAsIGFuZCBgTUFDODAyMTFfSFdTSU1gIGFyZSBlbmFibGVkLiBJJ2xsIHRha2UgYSBxdWljayBsb29rIGF0IGBuZXQvd2lyZWxlc3MvS2NvbmZpZ2AgYW5kIGBuZXQvbWFjODAyMTEvS2NvbmZpZ2AgdG8gY29uZmlybSB0aGVzZSBjb25maWd1cmF0aW9ucyBhbmQgc2VlIGlmIGFueXRoaW5nIGVsc2UganVtcHMgb3V0IGF0IG1lLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2ODcwLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk1LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDk6MTkuODYwNjkzNDc0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjk1NzA4NzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMV9IV1NJTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjE6Y29uZmlnIE1BQzgwMjExX0hXU0lNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlNpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOToyMS41NTY0MDY0MzlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDczOTQ3NjgyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhlIGdpdmVuIGluZm9ybWF0aW9uOlxuXG4qKktjb25maWcgRGl2ZSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbGAqKlxuXG5Pa2F5LCBzbyB0aGUgdGFzayBhdCBoYW5kIGlzIHRvIHVuZGVyc3RhbmQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIHdpcmVsZXNzIHZpcnR1YWwgbmV0d29yayBkcml2ZXJzLiBNeSBmaXJzdCBpbnN0aW5jdCwgYXMgYWx3YXlzLCBpcyB0byBoZWFkIGRpcmVjdGx5IHRvIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoYXQgYXJlYS4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZ2AgaXMgdGhlIGxpa2VseSBjYW5kaWRhdGUuIFRoaXMgS2NvbmZpZyBmaWxlIHdpbGwgYmUgdGhlIGNlbnRyYWwgc291cmNlIG9mIHRydXRoIGZvciB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhvc2UgZHJpdmVycy4gSXQnbGwgZGVmaW5lIHdoYXQgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZSwgYW55IGRlcGVuZGVuY2llcyB0aGV5IG1pZ2h0IGhhdmUgb24gb3RoZXIga2VybmVsIGNvbXBvbmVudHMsIGFuZCB0aGUgZGVmYXVsdCBzZXR0aW5ncy4gSXTigJlzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgcmVhbGx5IGRpZ2dpbmcgaW50byBob3cgdGhlc2UgdmlydHVhbCB3aXJlbGVzcyBkcml2ZXJzIGFyZSBidWlsdCBhbmQgY29uZmlndXJlZCB3aXRoaW4gdGhlIGxhcmdlciBrZXJuZWwgZnJhbWV3b3JrLiBJIGV4cGVjdCB0byBmaW5kIHRoaW5ncyBsaWtlIHRoZSB2YXJpb3VzIHZpcnR1YWwgZHJpdmVyIHR5cGVzLCBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgZGVwZW5kZW5jaWVzLCBhbmQgbWF5YmUgb3B0aW9ucyB0byBlbmFibGUgb3IgZGlzYWJsZSBkaWZmZXJlbnQgZnVuY3Rpb25hbGl0aWVzIHJlbGF0ZWQgdG8gdGhlIHZpcnR1YWwgZHJpdmVycyBhbmQgdGhlaXIgaW50ZXJmYWNlcy4gVGltZSB0byBzZWUgd2hhdCdzIGluIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDA3LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDk6MjYuMjk1ODg1NzYyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwMjEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdGNvbmZpZyBNQUM4MDIxMV9IV1NJTVxcbiAgIDI6XFx0XFx0dHJpc3RhdGUgXFxcIlNpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXFxcIlxcbiAgIDM6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgIDQ6XFx0XFx0aGVscFxcbiAgIDU6XFx0XFx0ICBUaGlzIGRyaXZlciBpcyBhIGRldmVsb3BlciB0ZXN0aW5nIHRvb2wgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0XFxuICAgNjpcXHRcXHQgIElFRUUgODAyLjExIG5ldHdvcmtpbmcgc3RhY2sgKG1hYzgwMjExKSBmdW5jdGlvbmFsaXR5LiBUaGlzIGlzIG5vdFxcbiAgIDc6XFx0XFx0ICBuZWVkZWQgZm9yIG5vcm1hbCB3aXJlbGVzcyBMQU4gdXNhZ2UgYW5kIGlzIG9ubHkgZm9yIHRlc3RpbmcuIFNlZVxcbiAgIDg6XFx0XFx0ICBEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbWFjODAyMTFfaHdzaW0gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93XFxuICAgOTpcXHRcXHQgIHRvIHVzZSB0aGlzIHRvb2wuXFxuICAxMDpcXHRcXG4gIDExOlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsIGJlXFxuICAxMjpcXHRcXHQgIGNhbGxlZCBtYWM4MDIxMV9od3NpbS4gIElmIHVuc3VyZSwgc2F5IE4uXFxuICAxMzpcXHRcXG4gIDE0OlxcdGNvbmZpZyBWSVJUX1dJRklcXG4gIDE1OlxcdFxcdHRyaXN0YXRlIFxcXCJXaWZpIHdyYXBwZXIgZm9yIGV0aGVybmV0IGRyaXZlcnNcXFwiXFxuICAxNjpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExXFxuICAxNzpcXHRcXHRoZWxwXFxuICAxODpcXHRcXHQgIFRoaXMgb3B0aW9uIGFkZHMgc3VwcG9ydCBmb3IgZXRoZXJuZXQgY29ubmVjdGlvbnMgdG8gYXBwZWFyIGFzIGlmIHRoZXlcXG4gIDE5OlxcdFxcdCAgYXJlIHdpZmkgY29ubmVjdGlvbnMgdGhyb3VnaCBhIHNwZWNpYWwgcnRuZXRsaW5rIGRldmljZS5cXG4gIDIwOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOToyNi4yOTU5NjcyMzJaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzI2Mjk4NzcyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIGRlcGVuZGVuY2llcywgc3VtbWFyaXplZCBhcyBteSBvd24gdGhvdWdodCBwcm9jZXNzOlxuXG4qKlVuZGVyc3RhbmRpbmcgdGhlIEtlcm5lbCBXaXJlbGVzcyBTdGFjayBEZXBlbmRlbmNpZXMqKlxuXG5SaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBrZXJuZWwgd2lyZWxlc3Mgc3RhY2sgc3RydWN0dXJlLCBhbmQgaXQncyBwcmV0dHkgY2xlYXIgdGhhdCBgTUFDODAyMTFfSFdTSU1gIHJlbGllcyAqZGlyZWN0bHkqIG9uIGBNQUM4MDIxMWAuIFRoYXQgbWFrZXMgc2Vuc2U7IGl0J3MgdGhlIGhhcmR3YXJlIHNpbXVsYXRpb24gY29tcG9uZW50LCBzbyBpdCBuZWVkcyB0aGUgY29yZSA4MDIuMTEgZnVuY3Rpb25hbGl0eSB0byBidWlsZCBvbi4gTm8gc3VycHJpc2VzIHRoZXJlLlxuXG5CdXQgdGhlbiwgZGlnZ2luZyBhIGxheWVyIGRlZXBlciwgYE1BQzgwMjExYCBpdHNlbGYgaXMgZGVwZW5kZW50IG9uIGBDRkc4MDIxMWAuIFRoYXQncyB3aGVyZSB0aGluZ3MgZ2V0IGludGVyZXN0aW5nIGFuZCByZWZsZWN0cyB0aGUgbW9kdWxhciBkZXNpZ24uIGBDRkc4MDIxMWAgYWN0cyBhcyB0aGUgY29uZmlndXJhdGlvbiBpbnRlcmZhY2UgYW5kIGFic3RyYWN0aW9uIGxheWVyIGZvciB3aXJlbGVzcyBkZXZpY2VzLiBJdCBwcm92aWRlcyB0aGUgZnJhbWV3b3JrIGZvciB1c2Vyc3BhY2UgdG9vbHMgdG8gY29uZmlndXJlIGFuZCBjb250cm9sIHRoZSB3aXJlbGVzcyBpbnRlcmZhY2VzLCBhbmQgYE1BQzgwMjExYCBsZXZlcmFnZXMgdGhhdC4gRXNzZW50aWFsbHksIGBNQUM4MDIxMWAgcHJvdmlkZXMgdGhlIDgwMi4xMSBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbiB3aGlsZSBgQ0ZHODAyMTFgIG1hbmFnZXMgdGhlIGludGVyYWN0aW9uIHdpdGggdGhlIHVuZGVybHlpbmcgZHJpdmVyIGFuZCB1c2VyIHNwYWNlLiBUaGlzIHNlcGFyYXRpb24ga2VlcHMgdGhlIGNvcmUgODAyLjExIGNvZGUgY2xlYW4gYW5kIHBsYXRmb3JtLWFnbm9zdGljLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTg5LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOTozMy41NTg5NTcwNjVaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NzY0MTAwOTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTpjb25maWcgTUFDODAyMTFfSFdTSU1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctMi1cXHR0cmlzdGF0ZSBcXFwiU2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXFxubmV0L21hYzgwMjExL0tjb25maWctMjAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjE6Y29uZmlnIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVxcdGJvb2xcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCIgaWYgRVhQRVJUXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDItXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1MDpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVxcdHN0cmluZ1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNTktXFxubmV0L21hYzgwMjExL0tjb25maWc6NjA6Y29uZmlnIE1BQzgwMjExX0tVTklUX1RFU1RcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cXHR0cmlzdGF0ZSBcXFwiS1VuaXQgdGVzdHMgZm9yIG1hYzgwMjExXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXFxubmV0L21hYzgwMjExL0tjb25maWctODAtXFx0Ym9vbCBcXFwiRW5hYmxlIExFRCB0cmlnZ2Vyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjg4OmNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVxcdGJvb2wgXFxcIlRyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTExLVxcdGJvb2wgXFxcIlNlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE2OmNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cXHRib29sIFxcXCJEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTMxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cXHRib29sIFxcXCJWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTQ6Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cXHRib29sIFxcXCJWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTYyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBIVCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cXHRib29sIFxcXCJWZXJib3NlIElCU1MgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXFx0Ym9vbCBcXFwiVmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjIyOmNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTk6Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5Mzpjb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXFx0Ym9vbCBcXFwiRXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMzA3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXFx0aW50IFxcXCJTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXFxcIiBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDEwOjA5OjM1LjIzNTM3MjI3MloiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzkwNzI1MDI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSBjb25zaWRlcmF0aW9ucy5cblxuKipLZXJuZWwgQ29uZmlndXJhdGlvbiBmb3IgV2lyZWxlc3MgU2ltdWxhdGlvbioqXG5cbkFscmlnaHQsIHRoaW5raW5nIHRocm91Z2ggdGhlIHNldHVwIGZvciB0aGlzIHNpbXVsYXRlZCB3aXJlbGVzcyBlbnZpcm9ubWVudC4gVG8gZ2V0IHRoaW5ncyBydW5uaW5nIHNtb290aGx5LCBpdCdzIGNsZWFyIEknbGwgYmUgbmVlZGluZyBhIGZldyBrZXkga2VybmVsIG1vZHVsZXM6IGBNQUM4MDIxMWAgaXMgZXNzZW50aWFsLCBvZiBjb3Vyc2UsIGFsb25nIHdpdGggYENGRzgwMjExYCwgdGhlIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlLiBUaGVuLCB0byBhY3R1YWxseSAqZG8qIHRoZSBzaW11bGF0aW9uLCBJJ2xsIG5lZWQgYE1BQzgwMjExX0hXU0lNYC4gVGhhdCdzIHRoZSBjb3JlLlxuXG5JJ20gYWxzbyBjb25zaWRlcmluZyBgTkw4MDIxMV9URVNUTU9ERWAuIEl0ICptaWdodCogY29tZSBpbiBoYW5keSBmb3Igc29tZSBkZWJ1Z2dpbmcgb3Igc3BlY2lmaWMgdGVzdHMgZG93biB0aGUgbGluZSwgYnV0IGBNQUM4MDIxMV9IV1NJTWAgaXMgZGVmaW5pdGVseSB0aGUgcHJpb3JpdHkuIEl0J3MgdGhlIGVuZ2luZSBvZiB0aGlzIHRoaW5nLlxuXG5KdXN0IHRvIGJlIHRob3JvdWdoLCBJJ2xsIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBgbmV0L3dpcmVsZXNzL0tjb25maWdgIGZpbGUgaW4gdGhlIGtlcm5lbCBzb3VyY2UuIEkgd2FudCB0byBjb25maXJtIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGF2YWlsYWJpbGl0eSBvZiBgQ0ZHODAyMTFgLCBqdXN0IHRvIGJlIGNlcnRhaW4uIEEgcXVpY2sgc2FuaXR5IGNoZWNrIGJlZm9yZSBJIG1vdmUgZm9yd2FyZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA1NjIsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOTozOS42MjYwOTk3OTFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NTY4MzA3MDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIENGRzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZz0xND1jb25maWcgV0VYVF9QUklWXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNi1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzpjb25maWcgQ0ZHODAyMTFcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cXHR0cmlzdGF0ZSBcXFwiY2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVxcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnPTM4PWNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01MS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo1Mjpjb25maWcgQ0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTXFxubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXFx0Ym9vbCBcXFwiZW5hYmxlIGRldmVsb3BlciB3YXJuaW5nc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY3LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02OS1cXHRib29sIFxcXCJjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo4OTpjb25maWcgQ0ZHODAyMTFfUkVRVUlSRV9TSUdORURfUkVHREJcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05MC1cXHRib29sIFxcXCJyZXF1aXJlIHJlZ2RiIHNpZ25hdHVyZVxcXCIgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo5OTpjb25maWcgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVxcdGJvb2wgXFxcImFsbG93IHJlZ2RiIGtleXMgc2hpcHBlZCB3aXRoIHRoZSBrZXJuZWxcXFwiIGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEwLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEyLVxcdHN0cmluZyBcXFwiYWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XFxcIiBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMjI6Y29uZmlnIENGRzgwMjExX1JFR19DRUxMVUxBUl9ISU5UU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMy1cXHRib29sIFxcXCJjZmc4MDIxMSByZWd1bGF0b3J5IHN1cHBvcnQgZm9yIGNlbGx1bGFyIGJhc2Ugc3RhdGlvbiBoaW50c1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMzU6Y29uZmlnIENGRzgwMjExX1JFR19SRUxBWF9OT19JUlxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cXHRib29sIFxcXCJjZmc4MDIxMSBzdXBwb3J0IGZvciBOT19JUiByZWxheGF0aW9uXFxcIlxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTU4LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2MC1cXHRib29sIFxcXCJlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTY5OmNvbmZpZyBDRkc4MDIxMV9ERUJVR0ZTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTcwLVxcdGJvb2wgXFxcImNmZzgwMjExIERlYnVnRlMgZW50cmllc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3Ni1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzc6Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cXHRib29sIFxcXCJzdXBwb3J0IENSREFcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg2LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTk0OmNvbmZpZyBDRkc4MDIxMV9LVU5JVF9URVNUXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTk1LVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgY2ZnODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDk6NDEuMjgyOTM2MjYxWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4MzkzMjQ5MzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgV2lyZWxlc3MgU3RhY2sgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgdGhlIGNvcmUgb2YgdGhlIG1hdHRlciBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBjaGFuZ2VzIGltcGFjdGluZyBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCDigJMgdGhlIHVzdWFsIHN1c3BlY3RzIGluIHRoZSB3aXJlbGVzcyBuZXR3b3JraW5nIHNwYWNlLiBUaGUga2V5IGZ1bmN0aW9ucyBoaWdobGlnaHRlZCBhcmUgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIGFuZCBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAuIE15IGluaXRpYWwgdW5kZXJzdGFuZGluZyBpcyB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uYWwgY2hhbmdlOyBzcGVjaWZpY2FsbHksIGEgY2hlY2sgaXMgYmVpbmcgcmVtb3ZlZCB3aXRoaW4gYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgLiBUaGlzIHJlbW92YWwgbm93IGFsbG93cyBCU1MgZW50cmllcyB0byBiZSB1cGRhdGVkIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGVpciB0eXBlIG1hdGNoZXMgdGhlIGNvbm5lY3Rpb24gdHlwZS4gVGhpcyBpcywgaW5oZXJlbnRseSwgYSBjaGFuZ2UgdGhhdCBjYW4gaGF2ZSB3aWRlciBpbXBsaWNhdGlvbnMsIGFuZCBJIG5lZWQgdG8gYXNzZXNzIHRob3NlLlxuXG5CZWZvcmUganVtcGluZyB0byBjb25jbHVzaW9ucyB0aG91Z2gsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlIHRoZSBmdWxsIHBpY3R1cmUuIE15IG5leHQgaW5zdGluY3QgaXMgdG8gY29uZmlybSB0aGUgc2NvcGUgb2YgdGhlc2UgZnVuY3Rpb25zLCBlc3BlY2lhbGx5IHRoZSBmaXJzdCBvbmUuIExldCdzIHF1aWNrbHkgdmVyaWZ5IGlmIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpcyBkZWNsYXJlZCBhcyBzdGF0aWMuIEFoLCBub3BlLCBpdCdzIGV4cG9ydGVkLiBTYW1lIGZvciBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAg4oCTIGFsc28gZXhwb3J0ZWQuIFRoYXQgbWVhbnMgdGhpcyBpcyBnb2luZyB0byBpbmZsdWVuY2UgbW9yZSB0aGFuIGp1c3QgYSBzbWFsbCBiaXQgb2YgY29kZS4gVGhpcyBzdWdnZXN0cyB3ZSBzaG91bGQgY29uc2lkZXIgdGhpcyBpbiBhIHdpZGVyIHNjb3BlIGFuZCBpbXBhY3RzLiBUaW1lIHRvIGV2YWx1YXRlIHRoZSBpbXBhY3QuIEkgc2hvdWxkIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExODMzLCJPdXRwdXRUb2tlbnMiOjE3OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOTo0OC4xMjIyNjM0NjdaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MTg3ODExMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlcIixcbiAgICBcImNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAgaW4gdGhlIGNvcmUgd2lyZWxlc3Mgc3RhY2sgKGNmZzgwMjExKSBieSByZW1vdmluZyBhIGNoZWNrIHRoYXQgcHJldmVudGVkIHVwZGF0aW5nIEJTUyBlbnRyaWVzIGlmIHRoZWlyIHR5cGUgZGlkIG5vdCBtYXRjaCB0aGUgY29ubmVjdGlvbiBCU1MgdHlwZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHJlYWNoZWQgYW5kIHRlc3RlZCB1c2luZyB0aGUgYG1hYzgwMjExX2h3c2ltYCBzb2Z0d2FyZS1lbXVsYXRlZCB3aXJlbGVzcyBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlcIixcbiAgICBcImNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAgaW4gdGhlIGNvcmUgd2lyZWxlc3Mgc3RhY2sgKGNmZzgwMjExKSBieSByZW1vdmluZyBhIGNoZWNrIHRoYXQgcHJldmVudGVkIHVwZGF0aW5nIEJTUyBlbnRyaWVzIGlmIHRoZWlyIHR5cGUgZGlkIG5vdCBtYXRjaCB0aGUgY29ubmVjdGlvbiBCU1MgdHlwZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHJlYWNoZWQgYW5kIHRlc3RlZCB1c2luZyB0aGUgYG1hYzgwMjExX2h3c2ltYCBzb2Z0d2FyZS1lbXVsYXRlZCB3aXJlbGVzcyBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowq9t95[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-05 10:07:46 +0000 UTC FinishedAt: 2026-08-05 10:09:49 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "4aa06913-d2f7-4b23-8056-e605748cdd41" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "cfg80211_update_assoc_bss_entry", "cfg80211_ch_switch_notify" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeSYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdGFjayAoY2ZnODAyMTEpIGJ5IHJlbW92aW5nIGEgY2hlY2sgdGhhdCBwcmV2ZW50ZWQgdXBkYXRpbmcgQlNTIGVudHJpZXMgaWYgdGhlaXIgdHlwZSBkaWQgbm90IG1hdGNoIHRoZSBjb25uZWN0aW9uIEJTUyB0eXBlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgdGVzdGVkIHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIHNvZnR3YXJlLWVtdWxhdGVkIHdpcmVsZXNzIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDZkY2VjNzVlY2FlYTE5NDFkMTAzMGUzMjU0MzYyMTVhZmQ2ZThmMzBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyA1IDEwOjA4OjUzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9zY2FuLmMgYi9uZXQvd2lyZWxlc3Mvc2Nhbi5jXG5pbmRleCAwNzEwODNjYzMzNjcyLi45N2JmN2FiOGNjOTY3IDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL3NjYW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3dpcmVsZXNzL3NjYW4uY1xuQEAgLTM0NDMsMTEgJiM0MzszNDQzLDYgQEAgdm9pZCBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5KHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4gXHRjYnNzLVx1MDAzZXB1Yi5jaGFubmVsID0gY2hhbjtcbiBcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnkoYnNzLCBcdTAwMjZyZGV2LVx1MDAzZWJzc19saXN0LCBsaXN0KSB7XG4tXHRcdGlmICghY2ZnODAyMTFfYnNzX3R5cGVfbWF0Y2goYnNzLVx1MDAzZXB1Yi5jYXBhYmlsaXR5LFxuLVx0XHRcdFx0XHQgICAgIGJzcy1cdTAwM2VwdWIuY2hhbm5lbC1cdTAwM2ViYW5kLFxuLVx0XHRcdFx0XHQgICAgIHdkZXYtXHUwMDNlY29ubl9ic3NfdHlwZSkpXG4tXHRcdFx0Y29udGludWU7XG4tXG4gXHRcdGlmIChic3MgPT0gY2JzcylcbiBcdFx0XHRjb250aW51ZTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5JiMzNDssCiAgICAmIzM0O2NmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIGluIHRoZSBjb3JlIHdpcmVsZXNzIHN0YWNrIChjZmc4MDIxMSkgYnkgcmVtb3ZpbmcgYSBjaGVjayB0aGF0IHByZXZlbnRlZCB1cGRhdGluZyBCU1MgZW50cmllcyBpZiB0aGVpciB0eXBlIGRpZCBub3QgbWF0Y2ggdGhlIGNvbm5lY3Rpb24gQlNTIHR5cGUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGNhbiBiZSByZWFjaGVkIGFuZCB0ZXN0ZWQgdXNpbmcgdGhlIGBtYWM4MDIxMV9od3NpbWAgc29mdHdhcmUtZW11bGF0ZWQgd2lyZWxlc3MgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNmRjZWM3NWVjYWVhMTk0MWQxMDMwZTMyNTQzNjIxNWFmZDZlOGYzMApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgQXVnIDUgMTA6MDg6NTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3Mvc2Nhbi5jIGIvbmV0L3dpcmVsZXNzL3NjYW4uYwppbmRleCAwNzEwODNjYzMzNjcyLi45N2JmN2FiOGNjOTY3IDEwMDY0NAotLS0gYS9uZXQvd2lyZWxlc3Mvc2Nhbi5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC93aXJlbGVzcy9zY2FuLmMKQEAgLTM0NDMsMTEgJiM0MzszNDQzLDYgQEAgdm9pZCBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5KHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsCiAJY2Jzcy0mZ3Q7cHViLmNoYW5uZWwgPSBjaGFuOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShic3MsICZhbXA7cmRldi0mZ3Q7YnNzX2xpc3QsIGxpc3QpIHsKLQkJaWYgKCFjZmc4MDIxMV9ic3NfdHlwZV9tYXRjaChic3MtJmd0O3B1Yi5jYXBhYmlsaXR5LAotCQkJCQkgICAgIGJzcy0mZ3Q7cHViLmNoYW5uZWwtJmd0O2JhbmQsCi0JCQkJCSAgICAgd2Rldi0mZ3Q7Y29ubl9ic3NfdHlwZSkpCi0JCQljb250aW51ZTsKLQogCQlpZiAoYnNzID09IGNic3MpCiAJCQljb250aW51ZTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDcyCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFdpcmVsZXNzIFN1YnN5c3RlbSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgYG5ldC93aXJlbGVzcy9zY2FuLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBmdW5jdGlvbi4gSXQgc2VlbXMgbGlrZSBhIGNvbmRpdGlvbiBoYXMgYmVlbiAqcmVtb3ZlZCouIFRoaXMgaXMgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIHdpcmVsZXNzIHN1YnN5c3RlbSwgaW1wYWN0aW5nIHRoZSBtYWM4MDIxMS9jZmc4MDIxMSBsYXllcnMuIFRoZSBzbmlwcGV0IGluZGljYXRlcyB0aGF0IGEgY2hlY2ssIGBjZmc4MDIxMV9ic3NfdHlwZV9tYXRjaGAsIGlzIG5vIGxvbmdlciBiZWluZyBwZXJmb3JtZWQgYmVmb3JlIHVwZGF0aW5nIHRoZSBhc3NvY2lhdGVkIEJTUyBlbnRyeS4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIHJlbW92YWwuIEkgc2VlIHRoYXQgYG1hYzgwMjExX2h3c2ltYCBjb3VsZCBiZSBhIHBvdGVudGlhbCBwYXRod2F5IHRvIHRyaWdnZXIgdGhpcyBtb2RpZmllZCBjb2RlIHBhdGguIEFscmlnaHQsIHRpbWUgdG8gZGl2ZSBkZWVwZXIgaW50byBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAgaXRzZWxmIGFuZCB1bnBhY2sgdGhlIHN1cnJvdW5kaW5nIGxvZ2ljIHRvIGFzc2VzcyB0aGUgcmFtaWZpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL3NjYW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3Mvc2Nhbi5jPTM0MTY9RVhQT1JUX1NZTUJPTChjZmc4MDIxMV9ic3NfaXRlcik7XG5uZXQvd2lyZWxlc3Mvc2Nhbi5jLTM0MTctXG5uZXQvd2lyZWxlc3Mvc2Nhbi5jOjM0MTg6dm9pZCBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5KHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG5uZXQvd2lyZWxlc3Mvc2Nhbi5jLTM0MTktXHRcdFx0XHQgICAgIHVuc2lnbmVkIGludCBsaW5rX2lkLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1OTYKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgQ2FsbCBHcmFwaCBvZiBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAqKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGFjdCBvZiB0aGlzIGZ1bmN0aW9uLCBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB0cmFjZSBpdHMgdXNhZ2UuIFdoZXJlICpleGFjdGx5KiBpcyB0aGlzIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCBmcm9tIHdpdGhpbiB0aGUgd2lyZWxlc3Mgc3RhY2s/IEkmIzM5O20gdGhpbmtpbmcgSSYjMzk7bGwgbmVlZCB0byBpZGVudGlmeSBhbGwgdGhlIGNhbGwgc2l0ZXMgdG8gZ2V0IGEgZ3Jhc3Agb24gaG93IGl0cyBiZWhhdmlvciBtaWdodCBjaGFuZ2UuIFRoYXQmIzM5O2xsIGJlIHRoZSBzdGFydGluZyBwb2ludCBvZiBteSBpbnZlc3RpZ2F0aW9uLiBGcm9tIHRoZXJlLCBJIGNhbiBkZXRlcm1pbmUgdGhlIGNvbnRleHQgYW5kIHVuZGVyc3RhbmQgdGhlIGxvZ2ljIHRoYXQgbGVhZHMgdG8gdGhhdCBCU1MgZW50cnkgdXBkYXRlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL2NvcmUuaD0zMzM9dm9pZCBjZmc4MDIxMV9ic3NfYWdlKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9jb3JlLmgtMzM0LSAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFnZV9zZWNzKTtcbm5ldC93aXJlbGVzcy9jb3JlLmg6MzM1OnZvaWQgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeShzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxubmV0L3dpcmVsZXNzL2NvcmUuaC0zMzYtXHRcdFx0XHQgICAgIHVuc2lnbmVkIGludCBsaW5rLFxuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM9MjIzNDk9dm9pZCBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMjM2NS1cdFx0aWYgKCFXQVJOX09OKCF3ZGV2LVx1MDAzZWxpbmtzW2xpbmtfaWRdLmNsaWVudC5jdXJyZW50X2JzcykpXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjIyMzY2Olx0XHRcdGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkod2RldiwgbGlua19pZCxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzNjctXHRcdFx0XHRcdFx0XHRjaGFuZGVmLVx1MDAzZWNoYW4pO1xuLS1cbm5ldC93aXJlbGVzcy9zY2FuLmM9MzQxNj1FWFBPUlRfU1lNQk9MKGNmZzgwMjExX2Jzc19pdGVyKTtcbm5ldC93aXJlbGVzcy9zY2FuLmMtMzQxNy1cbm5ldC93aXJlbGVzcy9zY2FuLmM6MzQxODp2b2lkIGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkoc3RydWN0IHdpcmVsZXNzX2RldiAqd2Rldixcbm5ldC93aXJlbGVzcy9zY2FuLmMtMzQxOS1cdFx0XHRcdCAgICAgdW5zaWduZWQgaW50IGxpbmtfaWQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE5NwoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIENoYW5uZWwgU3dpdGNoIE5vdGlmaWNhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIHRyYWNpbmcgdGhpcyBjaGFubmVsIHN3aXRjaCBub3RpZmljYXRpb24sIGFuZCBpdCBsb29rcyBsaWtlIHRoZSBlbnRyeSBwb2ludCBpcyBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAgd2l0aGluIGBuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHF1aWNrbHkgdmVyaWZ5IGlmIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpcyBldmVuIGV4cG9zZWQ7IHNvbWV0aW1lcyB0aGVzZSB0aGluZ3MgYXJlbiYjMzk7dCBhcyBzdHJhaWdodGZvcndhcmQgYXMgdGhleSBhcHBlYXIuIFdhaXQgYSBzZWNvbmQsIG5vLCB0aGF0JiMzOTtzIG5vdCByaWdodCAtIGBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5YCBpdHNlbGYgaXMgZXhwb3J0ZWQsIHdoaWNoIHNpbXBsaWZpZXMgdGhpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5jPTEwNzc9dm9pZCBhdGg2a2xfY2ZnODAyMTFfc2Nhbl9jb21wbGV0ZV9ldmVudChzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLCBib29sIGFib3J0ZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5jLTExMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmM6MTEwNzp2b2lkIGF0aDZrbF9jZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYsIGludCBmcmVxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5jLTExMDgtXHRcdFx0XHQgICAgICBlbnVtIHdtaV9waHlfbW9kZSBtb2RlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuYy0xMTIyLVx0d2lwaHlfbG9jayh2aWYtXHUwMDNlYXItXHUwMDNld2lwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5jOjExMjM6XHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHZpZi1cdTAwM2VuZGV2LCBcdTAwMjZjaGFuZGVmLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuYy0xMTI0LVx0d2lwaHlfdW5sb2NrKHZpZi1cdTAwM2Vhci1cdTAwM2V3aXBoeSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5oPTI3PXN0cnVjdCB3aXJlbGVzc19kZXYgKmF0aDZrbF9pbnRlcmZhY2VfYWRkKHN0cnVjdCBhdGg2a2wgKmFyLCBjb25zdCBjaGFyICpuYW1lLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuaC0zMC1cdFx0XHRcdFx0ICB1OCBmd192aWZfaWR4LCB1OCBud190eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuaDozMTp2b2lkIGF0aDZrbF9jZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYsIGludCBmcmVxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5oLTMyLVx0XHRcdFx0ICAgICAgZW51bSB3bWlfcGh5X21vZGUgbW9kZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM9Mzc0PXZvaWQgYXRoNmtsX2Nvbm5lY3RfYXBfbW9kZV9ic3Moc3RydWN0IGF0aDZrbF92aWYgKnZpZiwgdTE2IGNoYW5uZWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmMtNDE1LVx0XHQvKiB3ZSBhY3R1YWxseSBkb24mIzM5O3Qga25vdyB0aGUgcGh5bW9kZSwgZGVmYXVsdCB0byBIVDIwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYzo0MTY6XHRcdGF0aDZrbF9jZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHZpZiwgY2hhbm5lbCwgV01JXzExR19IVDIwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTQxNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvMTFoLmM9MjY2PXZvaWQgbXdpZmlleF9kZnNfY2hhbl9zd193b3JrX3F1ZXVlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvMTFoLmMtMjkxLVx0d2lwaHlfbG9jayhwcml2LVx1MDAzZXdkZXYud2lwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LzExaC5jOjI5MjpcdGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkocHJpdi1cdTAwM2VuZXRkZXYsIFx1MDAyNnByaXYtXHUwMDNlZGZzX2NoYW5kZWYsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LzExaC5jLTI5My1cdHdpcGh5X3VubG9jayhwcml2LVx1MDAzZXdkZXYud2lwaHkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3F1YW50ZW5uYS9xdG5mbWFjL2V2ZW50LmM9NDM2PXF0bmZfZXZlbnRfaGFuZGxlX2ZyZXFfY2hhbmdlKHN0cnVjdCBxdG5mX3dtYWMgKm1hYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9xdWFudGVubmEvcXRuZm1hYy9ldmVudC5jLTQ4MC1cdFx0d2lwaHlfbG9jayhwcml2X3RvX3dpcGh5KHZpZi1cdTAwM2VtYWMpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3F1YW50ZW5uYS9xdG5mbWFjL2V2ZW50LmM6NDgxOlx0XHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHZpZi1cdTAwM2VuZXRkZXYsIFx1MDAyNmNoYW5kZWYsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcXVhbnRlbm5hL3F0bmZtYWMvZXZlbnQuYy00ODItXHRcdHdpcGh5X3VubG9jayhwcml2X3RvX3dpcGh5KHZpZi1cdTAwM2VtYWMpKTtcbi0tXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oPTk5NTg9Y2ZnODAyMTFfcmVnX2Nhbl9iZWFjb25fcmVsYXgoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTk5NzAtLyoqXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oOjk5NzE6ICogY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeSAtIHVwZGF0ZSB3ZGV2IGNoYW5uZWwgYW5kIG5vdGlmeSB1c2Vyc3BhY2VcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtOTk3Mi0gKiBAZGV2OiB0aGUgZGV2aWNlIHdoaWNoIHN3aXRjaGVkIGNoYW5uZWxzXG4tLVxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC05OTc4LSAqL1xuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaDo5OTc5OnZvaWQgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC05OTgwLVx0XHRcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTQ0Njc9c3RhdGljIGludCBfX2llZWU4MDIxMV9jc2FfZmluYWxpemUoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmtfZGF0YSlcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDUxNi1cbm5ldC9tYWM4MDIxMS9jZmcuYzo0NTE3Olx0Y2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShzZGF0YS1cdTAwM2VkZXYsIFx1MDAyNmxpbmtfZGF0YS1cdTAwM2Vjc2EuY2hhbnJlcS5vcGVyLFxubmV0L21hYzgwMjExL2NmZy5jLTQ1MTgtXHRcdFx0XHQgIGxpbmtfZGF0YS1cdTAwM2VsaW5rX2lkKTtcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTI4NzY9c3RhdGljIHZvaWQgaWVlZTgwMjExX2NzYV9zd2l0Y2hfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmMtMjkwNy1cdFx0bGluay1cdTAwM2Vjb25mLVx1MDAzZWNoYW5yZXEgPSBsaW5rLVx1MDAzZWNzYS5jaGFucmVxO1xubmV0L21hYzgwMjExL21sbWUuYzoyOTA4Olx0XHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHNkYXRhLVx1MDAzZWRldiwgXHUwMDI2bGluay1cdTAwM2Vjc2EuY2hhbnJlcS5vcGVyLFxubmV0L21hYzgwMjExL21sbWUuYy0yOTA5LVx0XHRcdFx0XHQgIGxpbmstXHUwMDNlbGlua19pZCk7XG4tLVxubmV0L21hYzgwMjExL21sbWUuYz0zMDE2PXN0YXRpYyB2b2lkIGllZWU4MDIxMV9jaHN3aXRjaF9wb3N0X2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTMwNTctXG5uZXQvbWFjODAyMTEvbWxtZS5jOjMwNTg6XHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHNkYXRhLVx1MDAzZWRldiwgXHUwMDI2bGluay1cdTAwM2Vjb25mLVx1MDAzZWNoYW5yZXEub3Blcixcbm5ldC9tYWM4MDIxMS9tbG1lLmMtMzA1OS1cdFx0XHRcdCAgbGluay1cdTAwM2VsaW5rX2lkKTtcbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTIyMjk5PXN0YXRpYyB2b2lkIG5sODAyMTFfY2hfc3dpdGNoX25vdGlmeShzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXG4tLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMjM0OC1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MjIzNDk6dm9pZCBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIyMzUwLVx0XHRcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXG4tLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMjM1OS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MjIzNjA6XHR0cmFjZV9jZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KGRldiwgY2hhbmRlZiwgbGlua19pZCk7XG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIyMzYxLVxuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzOTAtfVxubmV0L3dpcmVsZXNzL25sODAyMTEuYzoyMjM5MTpFWFBPUlRfU1lNQk9MKGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkpO1xubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMjM5Mi1cbi0tXG5uZXQvd2lyZWxlc3MvdHJhY2UuaD0zNTY4PVRSQUNFX0VWRU5UKGNmZzgwMjExX3JlZ19jYW5fYmVhY29uLFxuLS1cbm5ldC93aXJlbGVzcy90cmFjZS5oLTM1OTEtXG5uZXQvd2lyZWxlc3MvdHJhY2UuaDozNTkyOlRSQUNFX0VWRU5UKGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnksXG5uZXQvd2lyZWxlc3MvdHJhY2UuaC0zNTkzLVx0VFBfUFJPVE8oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NjIzCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXRzKioKCk9rYXksIHNvIGBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5YCBpcyBjbGVhcmx5IGEgcG9pbnQgb2YgaW50ZXJlc3QuIEkga25vdyB0aGF0IGZ1bmN0aW9uIGdldHMgY2FsbGVkIGZyb20gYm90aCBgbmV0L21hYzgwMjExL21sbWUuY2AgYW5kIGBuZXQvbWFjODAyMTEvY2ZnLmNgLiBUaGF0JiMzOTtzIGdvb2QsIHRoYXQgbWVhbnMgaXQmIzM5O3MgcHJldHR5IHdlbGwtaW50ZWdyYXRlZCBhbmQgdGh1cyBwcm9iYWJseSBwcmV0dHkgcmVhY2hhYmxlLiBBbmQgd2l0aCBteSB1bmRlcnN0YW5kaW5nIG9mIGBtYWM4MDIxMV9od3NpbWAgYW5kIHN0YW5kYXJkIHdpcmVsZXNzIGZ1enppbmcgdGVjaG5pcXVlcywgSSBjYW4gcHJldHR5IGNvbmZpZGVudGx5IHNheSB0aGlzIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIEkgY2FuIHRhcmdldC4KCk5vdywgdGhpcyBwYXRjaCBzcGVjaWZpY2FsbHkgY2hhbmdlcyBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAgaW4gYG5ldC93aXJlbGVzcy9zY2FuLmNgLiBBbHJpZ2h0LCB0aGF0JiMzOTtzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gdGFrZSBhIGZyZXNoIGxvb2sgYXQgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIHRvIGZ1bGx5IGdyYXNwIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZXNlIG1vZGlmaWNhdGlvbnMgYW5kIHdoZXJlIHZ1bG5lcmFiaWxpdGllcyBtaWdodCBiZSBpbnRyb2R1Y2VkIG9yIHBhdGNoZWQuIExldCYjMzk7cyBkZWx2ZSBiYWNrIGludG8gaXRzIGZ1bmN0aW9uYWxpdHkgdG8gc2VlIHdoYXQgdGhpcyBmdW5jdGlvbiBpcyByZWFsbHkgZG9pbmcgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGxhcmdlciB3aXJlbGVzcyBzdWJzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL3NjYW4uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDM0MTgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MzQxODpcdHZvaWQgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeShzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuMzQxOTpcdFx0XHRcdFx0ICAgICB1bnNpZ25lZCBpbnQgbGlua19pZCxcbjM0MjA6XHRcdFx0XHRcdCAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKVxuMzQyMTpcdHtcbjM0MjI6XHRcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSB3ZGV2LVx1MDAzZXdpcGh5O1xuMzQyMzpcdFx0c3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2ID0gd2lwaHlfdG9fcmRldih3aXBoeSk7XG4zNDI0Olx0XHRzdHJ1Y3QgY2ZnODAyMTFfaW50ZXJuYWxfYnNzICpjYnNzID0gd2Rldi1cdTAwM2VsaW5rc1tsaW5rX2lkXS5jbGllbnQuY3VycmVudF9ic3M7XG4zNDI1Olx0XHRzdHJ1Y3QgY2ZnODAyMTFfaW50ZXJuYWxfYnNzICpuZXcgPSBOVUxMO1xuMzQyNjpcdFx0c3RydWN0IGNmZzgwMjExX2ludGVybmFsX2JzcyAqYnNzO1xuMzQyNzpcdFx0c3RydWN0IGNmZzgwMjExX2JzcyAqbm9udHJhbnNfYnNzO1xuMzQyODpcdFx0c3RydWN0IGNmZzgwMjExX2JzcyAqdG1wO1xuMzQyOTpcdFxuMzQzMDpcdFx0c3Bpbl9sb2NrX2JoKFx1MDAyNnJkZXYtXHUwMDNlYnNzX2xvY2spO1xuMzQzMTpcdFxuMzQzMjpcdFx0LypcbjM0MzM6XHRcdCAqIFNvbWUgQVBzIHVzZSBDU0EgYWxzbyBmb3IgYmFuZHdpZHRoIGNoYW5nZXMsIGkuZS4sIHdpdGhvdXQgYWN0dWFsbHlcbjM0MzQ6XHRcdCAqIGNoYW5naW5nIHRoZSBjb250cm9sIGNoYW5uZWwsIHNvIG5vIG5lZWQgdG8gdXBkYXRlIGluIHN1Y2ggYSBjYXNlLlxuMzQzNTpcdFx0ICovXG4zNDM2Olx0XHRpZiAoY2Jzcy1cdTAwM2VwdWIuY2hhbm5lbCA9PSBjaGFuKVxuMzQzNzpcdFx0XHRnb3RvIGRvbmU7XG4zNDM4Olx0XG4zNDM5Olx0XHQvKiB1c2UgdHJhbnNtaXR0aW5nIGJzcyAqL1xuMzQ0MDpcdFx0aWYgKGNic3MtXHUwMDNlcHViLnRyYW5zbWl0dGVkX2JzcylcbjM0NDE6XHRcdFx0Y2JzcyA9IGJzc19mcm9tX3B1YihjYnNzLVx1MDAzZXB1Yi50cmFuc21pdHRlZF9ic3MpO1xuMzQ0MjpcdFxuMzQ0MzpcdFx0Y2Jzcy1cdTAwM2VwdWIuY2hhbm5lbCA9IGNoYW47XG4zNDQ0Olx0XG4zNDQ1Olx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGJzcywgXHUwMDI2cmRldi1cdTAwM2Vic3NfbGlzdCwgbGlzdCkge1xuMzQ0NjpcdFx0XHRpZiAoYnNzID09IGNic3MpXG4zNDQ3Olx0XHRcdFx0Y29udGludWU7XG4zNDQ4Olx0XG4zNDQ5Olx0XHRcdGlmICghY21wX2JzcyhcdTAwMjZic3MtXHUwMDNlcHViLCBcdTAwMjZjYnNzLVx1MDAzZXB1YiwgQlNTX0NNUF9SRUdVTEFSKSkge1xuMzQ1MDpcdFx0XHRcdG5ldyA9IGJzcztcbjM0NTE6XHRcdFx0XHRicmVhaztcbjM0NTI6XHRcdFx0fVxuMzQ1MzpcdFx0fVxuMzQ1NDpcdFxuMzQ1NTpcdFx0aWYgKG5ldykge1xuMzQ1NjpcdFx0XHQvKiB0byBzYXZlIHRpbWUsIHVwZGF0ZSBJRXMgZm9yIHRyYW5zbWl0dGluZyBic3Mgb25seSAqL1xuMzQ1NzpcdFx0XHRjZmc4MDIxMV91cGRhdGVfa25vd25fYnNzKHJkZXYsIGNic3MsIG5ldywgZmFsc2UpO1xuMzQ1ODpcdFx0XHRuZXctXHUwMDNlcHViLnByb2JlcmVzcF9pZXMgPSBOVUxMO1xuMzQ1OTpcdFx0XHRuZXctXHUwMDNlcHViLmJlYWNvbl9pZXMgPSBOVUxMO1xuMzQ2MDpcdFxuMzQ2MTpcdFx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobm9udHJhbnNfYnNzLCB0bXAsXG4zNDYyOlx0XHRcdFx0XHRcdCBcdTAwMjZuZXctXHUwMDNlcHViLm5vbnRyYW5zX2xpc3QsXG4zNDYzOlx0XHRcdFx0XHRcdCBub250cmFuc19saXN0KSB7XG4zNDY0Olx0XHRcdFx0YnNzID0gYnNzX2Zyb21fcHViKG5vbnRyYW5zX2Jzcyk7XG4zNDY1Olx0XHRcdFx0aWYgKF9fY2ZnODAyMTFfdW5saW5rX2JzcyhyZGV2LCBic3MpKVxuMzQ2NjpcdFx0XHRcdFx0cmRldi1cdTAwM2Vic3NfZ2VuZXJhdGlvbiYjNDM7JiM0Mzs7XG4zNDY3Olx0XHRcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjg3MAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDE5NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbioqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGhhcyByZW1vdmVkIGEgY3J1Y2lhbCBjaGVjayB3aXRoaW4gYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgLiBUaGF0IGZ1bmN0aW9uIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGFuZCBmdW5jdGlvbmFsLCBtZWFuaW5nIGl0JiMzOTtzIG5vdyBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSXQgc2VlbXMgbGlrZSB0aGUgcGF0Y2ggcmVtb3ZlZCBhIGNvbmRpdGlvbiByZWxhdGVkIHRvIEJTUyB0eXBlIG1hdGNoaW5nLCBtYWtpbmcgaXQgYSBiaXQgbW9yZSBvcGVuIHRvIHVuZXhwZWN0ZWQgaW5wdXRzLgoKTXkgcHJpbWFyeSBmb2N1cyBoZXJlIG5lZWRzIHRvIGJlIG9uIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCwgb2YgY291cnNlLiBBbHNvLCBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAgc2VlbXMgdG8gYmUgcmVsZXZhbnQgdG9vLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhvc2UgZnVuY3Rpb25zIGludGVyYWN0IGFuZCBpZGVudGlmeSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzIHRoYXQgbWlnaHQgaGF2ZSBiZWVuIGludHJvZHVjZWQgb3IgZXhwb3NlZCBieSB0aGUgY29kZSBjaGFuZ2UuCgpHaXZlbiB0aGUgY29udGV4dCwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBgTUFDODAyMTFgLCBgQ0ZHODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBhcmUgZW5hYmxlZC4gSSYjMzk7bGwgdGFrZSBhIHF1aWNrIGxvb2sgYXQgYG5ldC93aXJlbGVzcy9LY29uZmlnYCBhbmQgYG5ldC9tYWM4MDIxMS9LY29uZmlnYCB0byBjb25maXJtIHRoZXNlIGNvbmZpZ3VyYXRpb25zIGFuZCBzZWUgaWYgYW55dGhpbmcgZWxzZSBqdW1wcyBvdXQgYXQgbWUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMV9IV1NJTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTpjb25maWcgTUFDODAyMTFfSFdTSU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzQwNwoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhlIGdpdmVuIGluZm9ybWF0aW9uOgoKKipLY29uZmlnIERpdmUgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWxgKioKCk9rYXksIHNvIHRoZSB0YXNrIGF0IGhhbmQgaXMgdG8gdW5kZXJzdGFuZCBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGUgd2lyZWxlc3MgdmlydHVhbCBuZXR3b3JrIGRyaXZlcnMuIE15IGZpcnN0IGluc3RpbmN0LCBhcyBhbHdheXMsIGlzIHRvIGhlYWQgZGlyZWN0bHkgdG8gdGhlIEtjb25maWcgZmlsZSBmb3IgdGhhdCBhcmVhLiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnYCBpcyB0aGUgbGlrZWx5IGNhbmRpZGF0ZS4gVGhpcyBLY29uZmlnIGZpbGUgd2lsbCBiZSB0aGUgY2VudHJhbCBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aG9zZSBkcml2ZXJzLiBJdCYjMzk7bGwgZGVmaW5lIHdoYXQgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZSwgYW55IGRlcGVuZGVuY2llcyB0aGV5IG1pZ2h0IGhhdmUgb24gb3RoZXIga2VybmVsIGNvbXBvbmVudHMsIGFuZCB0aGUgZGVmYXVsdCBzZXR0aW5ncy4gSXTigJlzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgcmVhbGx5IGRpZ2dpbmcgaW50byBob3cgdGhlc2UgdmlydHVhbCB3aXJlbGVzcyBkcml2ZXJzIGFyZSBidWlsdCBhbmQgY29uZmlndXJlZCB3aXRoaW4gdGhlIGxhcmdlciBrZXJuZWwgZnJhbWV3b3JrLiBJIGV4cGVjdCB0byBmaW5kIHRoaW5ncyBsaWtlIHRoZSB2YXJpb3VzIHZpcnR1YWwgZHJpdmVyIHR5cGVzLCBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgZGVwZW5kZW5jaWVzLCBhbmQgbWF5YmUgb3B0aW9ucyB0byBlbmFibGUgb3IgZGlzYWJsZSBkaWZmZXJlbnQgZnVuY3Rpb25hbGl0aWVzIHJlbGF0ZWQgdG8gdGhlIHZpcnR1YWwgZHJpdmVycyBhbmQgdGhlaXIgaW50ZXJmYWNlcy4gVGltZSB0byBzZWUgd2hhdCYjMzk7cyBpbiB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHRjb25maWcgTUFDODAyMTFfSFdTSU1cbiAgIDI6XHRcdHRyaXN0YXRlIFwmIzM0O1NpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXCYjMzQ7XG4gICAzOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gICA0Olx0XHRoZWxwXG4gICA1Olx0XHQgIFRoaXMgZHJpdmVyIGlzIGEgZGV2ZWxvcGVyIHRlc3RpbmcgdG9vbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3RcbiAgIDY6XHRcdCAgSUVFRSA4MDIuMTEgbmV0d29ya2luZyBzdGFjayAobWFjODAyMTEpIGZ1bmN0aW9uYWxpdHkuIFRoaXMgaXMgbm90XG4gICA3Olx0XHQgIG5lZWRlZCBmb3Igbm9ybWFsIHdpcmVsZXNzIExBTiB1c2FnZSBhbmQgaXMgb25seSBmb3IgdGVzdGluZy4gU2VlXG4gICA4Olx0XHQgIERvY3VtZW50YXRpb24vbmV0d29ya2luZy9tYWM4MDIxMV9od3NpbSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3dcbiAgIDk6XHRcdCAgdG8gdXNlIHRoaXMgdG9vbC5cbiAgMTA6XHRcbiAgMTE6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsIGJlXG4gIDEyOlx0XHQgIGNhbGxlZCBtYWM4MDIxMV9od3NpbS4gIElmIHVuc3VyZSwgc2F5IE4uXG4gIDEzOlx0XG4gIDE0Olx0Y29uZmlnIFZJUlRfV0lGSVxuICAxNTpcdFx0dHJpc3RhdGUgXCYjMzQ7V2lmaSB3cmFwcGVyIGZvciBldGhlcm5ldCBkcml2ZXJzXCYjMzQ7XG4gIDE2Olx0XHRkZXBlbmRzIG9uIENGRzgwMjExXG4gIDE3Olx0XHRoZWxwXG4gIDE4Olx0XHQgIFRoaXMgb3B0aW9uIGFkZHMgc3VwcG9ydCBmb3IgZXRoZXJuZXQgY29ubmVjdGlvbnMgdG8gYXBwZWFyIGFzIGlmIHRoZXlcbiAgMTk6XHRcdCAgYXJlIHdpZmkgY29ubmVjdGlvbnMgdGhyb3VnaCBhIHNwZWNpYWwgcnRuZXRsaW5rIGRldmljZS5cbiAgMjA6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzk4OQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIGRlcGVuZGVuY2llcywgc3VtbWFyaXplZCBhcyBteSBvd24gdGhvdWdodCBwcm9jZXNzOgoKKipVbmRlcnN0YW5kaW5nIHRoZSBLZXJuZWwgV2lyZWxlc3MgU3RhY2sgRGVwZW5kZW5jaWVzKioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBrZXJuZWwgd2lyZWxlc3Mgc3RhY2sgc3RydWN0dXJlLCBhbmQgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoYXQgYE1BQzgwMjExX0hXU0lNYCByZWxpZXMgKmRpcmVjdGx5KiBvbiBgTUFDODAyMTFgLiBUaGF0IG1ha2VzIHNlbnNlOyBpdCYjMzk7cyB0aGUgaGFyZHdhcmUgc2ltdWxhdGlvbiBjb21wb25lbnQsIHNvIGl0IG5lZWRzIHRoZSBjb3JlIDgwMi4xMSBmdW5jdGlvbmFsaXR5IHRvIGJ1aWxkIG9uLiBObyBzdXJwcmlzZXMgdGhlcmUuCgpCdXQgdGhlbiwgZGlnZ2luZyBhIGxheWVyIGRlZXBlciwgYE1BQzgwMjExYCBpdHNlbGYgaXMgZGVwZW5kZW50IG9uIGBDRkc4MDIxMWAuIFRoYXQmIzM5O3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZyBhbmQgcmVmbGVjdHMgdGhlIG1vZHVsYXIgZGVzaWduLiBgQ0ZHODAyMTFgIGFjdHMgYXMgdGhlIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGFuZCBhYnN0cmFjdGlvbiBsYXllciBmb3Igd2lyZWxlc3MgZGV2aWNlcy4gSXQgcHJvdmlkZXMgdGhlIGZyYW1ld29yayBmb3IgdXNlcnNwYWNlIHRvb2xzIHRvIGNvbmZpZ3VyZSBhbmQgY29udHJvbCB0aGUgd2lyZWxlc3MgaW50ZXJmYWNlcywgYW5kIGBNQUM4MDIxMWAgbGV2ZXJhZ2VzIHRoYXQuIEVzc2VudGlhbGx5LCBgTUFDODAyMTFgIHByb3ZpZGVzIHRoZSA4MDIuMTEgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24gd2hpbGUgYENGRzgwMjExYCBtYW5hZ2VzIHRoZSBpbnRlcmFjdGlvbiB3aXRoIHRoZSB1bmRlcmx5aW5nIGRyaXZlciBhbmQgdXNlciBzcGFjZS4gVGhpcyBzZXBhcmF0aW9uIGtlZXBzIHRoZSBjb3JlIDgwMi4xMSBjb2RlIGNsZWFuIGFuZCBwbGF0Zm9ybS1hZ25vc3RpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxubmV0L21hYzgwMjExL0tjb25maWctMjAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cdGJvb2xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDsgaWYgRVhQRVJUXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNDAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctNDItXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cdHN0cmluZ1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXCYjMzQ7U29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNTktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7RW5hYmxlIExFRCB0cmlnZ2Vyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVx0Ym9vbCBcJiMzNDtFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVx0Ym9vbCBcJiMzNDtUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXHRib29sIFwmIzM0O1NlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXHRib29sIFwmIzM0O0RvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXHRib29sIFwmIzM0O1ZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXHRib29sIFwmIzM0O1ZlcmJvc2UgSFQgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBPQ0IgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXHRib29sIFwmIzM0O1ZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1ZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjgyLVx0Ym9vbCBcJiMzNDtWZXJib3NlIFRETFMgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL0tjb25maWctMjk0LVx0Ym9vbCBcJiMzNDtFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXHRpbnQgXCYjMzQ7U3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVwmIzM0OyBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNTYyCgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogOTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBjb25zaWRlcmF0aW9ucy4KCioqS2VybmVsIENvbmZpZ3VyYXRpb24gZm9yIFdpcmVsZXNzIFNpbXVsYXRpb24qKgoKQWxyaWdodCwgdGhpbmtpbmcgdGhyb3VnaCB0aGUgc2V0dXAgZm9yIHRoaXMgc2ltdWxhdGVkIHdpcmVsZXNzIGVudmlyb25tZW50LiBUbyBnZXQgdGhpbmdzIHJ1bm5pbmcgc21vb3RobHksIGl0JiMzOTtzIGNsZWFyIEkmIzM5O2xsIGJlIG5lZWRpbmcgYSBmZXcga2V5IGtlcm5lbCBtb2R1bGVzOiBgTUFDODAyMTFgIGlzIGVzc2VudGlhbCwgb2YgY291cnNlLCBhbG9uZyB3aXRoIGBDRkc4MDIxMWAsIHRoZSBjb25maWd1cmF0aW9uIGludGVyZmFjZS4gVGhlbiwgdG8gYWN0dWFsbHkgKmRvKiB0aGUgc2ltdWxhdGlvbiwgSSYjMzk7bGwgbmVlZCBgTUFDODAyMTFfSFdTSU1gLiBUaGF0JiMzOTtzIHRoZSBjb3JlLgoKSSYjMzk7bSBhbHNvIGNvbnNpZGVyaW5nIGBOTDgwMjExX1RFU1RNT0RFYC4gSXQgKm1pZ2h0KiBjb21lIGluIGhhbmR5IGZvciBzb21lIGRlYnVnZ2luZyBvciBzcGVjaWZpYyB0ZXN0cyBkb3duIHRoZSBsaW5lLCBidXQgYE1BQzgwMjExX0hXU0lNYCBpcyBkZWZpbml0ZWx5IHRoZSBwcmlvcml0eS4gSXQmIzM5O3MgdGhlIGVuZ2luZSBvZiB0aGlzIHRoaW5nLgoKSnVzdCB0byBiZSB0aG9yb3VnaCwgSSYjMzk7bGwgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhlIGBuZXQvd2lyZWxlc3MvS2NvbmZpZ2AgZmlsZSBpbiB0aGUga2VybmVsIHNvdXJjZS4gSSB3YW50IHRvIGNvbmZpcm0gdGhlIGRlcGVuZGVuY2llcyBhbmQgYXZhaWxhYmlsaXR5IG9mIGBDRkc4MDIxMWAsIGp1c3QgdG8gYmUgY2VydGFpbi4gQSBxdWljayBzYW5pdHkgY2hlY2sgYmVmb3JlIEkgbW92ZSBmb3J3YXJkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxMDowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQ0ZHODAyMTEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL0tjb25maWc9MTQ9Y29uZmlnIFdFWFRfUFJJVlxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTc6Y29uZmlnIENGRzgwMjExXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cdHRyaXN0YXRlIFwmIzM0O2NmZzgwMjExIC0gd2lyZWxlc3MgY29uZmlndXJhdGlvbiBBUElcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZz0zOD1jb25maWcgTkw4MDIxMV9URVNUTU9ERVxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTUxLVxubmV0L3dpcmVsZXNzL0tjb25maWc6NTI6Y29uZmlnIENGRzgwMjExX0RFVkVMT1BFUl9XQVJOSU5HU1xubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXHRib29sIFwmIzM0O2VuYWJsZSBkZXZlbG9wZXIgd2FybmluZ3NcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02Ny1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY5LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjg5OmNvbmZpZyBDRkc4MDIxMV9SRVFVSVJFX1NJR05FRF9SRUdEQlxubmV0L3dpcmVsZXNzL0tjb25maWctOTAtXHRib29sIFwmIzM0O3JlcXVpcmUgcmVnZGIgc2lnbmF0dXJlXCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTk4LVxubmV0L3dpcmVsZXNzL0tjb25maWc6OTk6Y29uZmlnIENGRzgwMjExX1VTRV9LRVJORUxfUkVHREJfS0VZU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVx0Ym9vbCBcJiMzNDthbGxvdyByZWdkYiBrZXlzIHNoaXBwZWQgd2l0aCB0aGUga2VybmVsXCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTExMC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMTItXHRzdHJpbmcgXCYjMzQ7YWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjEyMjpjb25maWcgQ0ZHODAyMTFfUkVHX0NFTExVTEFSX0hJTlRTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMjMtXHRib29sIFwmIzM0O2NmZzgwMjExIHJlZ3VsYXRvcnkgc3VwcG9ydCBmb3IgY2VsbHVsYXIgYmFzZSBzdGF0aW9uIGhpbnRzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTM0LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTM1OmNvbmZpZyBDRkc4MDIxMV9SRUdfUkVMQVhfTk9fSVJcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgc3VwcG9ydCBmb3IgTk9fSVIgcmVsYXhhdGlvblwmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE1OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTYwLVx0Ym9vbCBcJiMzNDtlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNjk6Y29uZmlnIENGRzgwMjExX0RFQlVHRlNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3MC1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgRGVidWdGUyBlbnRyaWVzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTc2LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTc3OmNvbmZpZyBDRkc4MDIxMV9DUkRBX1NVUFBPUlRcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cdGJvb2wgXCYjMzQ7c3VwcG9ydCBDUkRBXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4Ni1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg4LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxOTQ6Y29uZmlnIENGRzgwMjExX0tVTklUX1RFU1Rcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE5NS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBjZmc4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDEwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExODMzCgkJCQkJCQlvdXRwdXQ6IDE3OAoJCQkJCQkJdGhvdWdodHM6IDE5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaXJlbGVzcyBTdGFjayBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIHRoZSBjb3JlIG9mIHRoZSBtYXR0ZXIgc2VlbXMgdG8gcmV2b2x2ZSBhcm91bmQgY2hhbmdlcyBpbXBhY3RpbmcgYENGRzgwMjExYCwgYE1BQzgwMjExYCwgYW5kIGBNQUM4MDIxMV9IV1NJTWAg4oCTIHRoZSB1c3VhbCBzdXNwZWN0cyBpbiB0aGUgd2lyZWxlc3MgbmV0d29ya2luZyBzcGFjZS4gVGhlIGtleSBmdW5jdGlvbnMgaGlnaGxpZ2h0ZWQgYXJlIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBhbmQgYGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnlgLiBNeSBpbml0aWFsIHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgZnVuY3Rpb25hbCBjaGFuZ2U7IHNwZWNpZmljYWxseSwgYSBjaGVjayBpcyBiZWluZyByZW1vdmVkIHdpdGhpbiBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAuIFRoaXMgcmVtb3ZhbCBub3cgYWxsb3dzIEJTUyBlbnRyaWVzIHRvIGJlIHVwZGF0ZWQgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZWlyIHR5cGUgbWF0Y2hlcyB0aGUgY29ubmVjdGlvbiB0eXBlLiBUaGlzIGlzLCBpbmhlcmVudGx5LCBhIGNoYW5nZSB0aGF0IGNhbiBoYXZlIHdpZGVyIGltcGxpY2F0aW9ucywgYW5kIEkgbmVlZCB0byBhc3Nlc3MgdGhvc2UuCgpCZWZvcmUganVtcGluZyB0byBjb25jbHVzaW9ucyB0aG91Z2gsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlIHRoZSBmdWxsIHBpY3R1cmUuIE15IG5leHQgaW5zdGluY3QgaXMgdG8gY29uZmlybSB0aGUgc2NvcGUgb2YgdGhlc2UgZnVuY3Rpb25zLCBlc3BlY2lhbGx5IHRoZSBmaXJzdCBvbmUuIExldCYjMzk7cyBxdWlja2x5IHZlcmlmeSBpZiBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAgaXMgZGVjbGFyZWQgYXMgc3RhdGljLiBBaCwgbm9wZSwgaXQmIzM5O3MgZXhwb3J0ZWQuIFNhbWUgZm9yIGBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5YCDigJMgYWxzbyBleHBvcnRlZC4gVGhhdCBtZWFucyB0aGlzIGlzIGdvaW5nIHRvIGluZmx1ZW5jZSBtb3JlIHRoYW4ganVzdCBhIHNtYWxsIGJpdCBvZiBjb2RlLiBUaGlzIHN1Z2dlc3RzIHdlIHNob3VsZCBjb25zaWRlciB0aGlzIGluIGEgd2lkZXIgc2NvcGUgYW5kIGltcGFjdHMuIFRpbWUgdG8gZXZhbHVhdGUgdGhlIGltcGFjdC4gSSBzaG91bGQgY2FsbCBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeSYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdGFjayAoY2ZnODAyMTEpIGJ5IHJlbW92aW5nIGEgY2hlY2sgdGhhdCBwcmV2ZW50ZWQgdXBkYXRpbmcgQlNTIGVudHJpZXMgaWYgdGhlaXIgdHlwZSBkaWQgbm90IG1hdGNoIHRoZSBjb25uZWN0aW9uIEJTUyB0eXBlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgdGVzdGVkIHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIHNvZnR3YXJlLWVtdWxhdGVkIHdpcmVsZXNzIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5JiMzNDssCiAgICAmIzM0O2NmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIGluIHRoZSBjb3JlIHdpcmVsZXNzIHN0YWNrIChjZmc4MDIxMSkgYnkgcmVtb3ZpbmcgYSBjaGVjayB0aGF0IHByZXZlbnRlZCB1cGRhdGluZyBCU1MgZW50cmllcyBpZiB0aGVpciB0eXBlIGRpZCBub3QgbWF0Y2ggdGhlIGNvbm5lY3Rpb24gQlNTIHR5cGUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGNhbiBiZSByZWFjaGVkIGFuZCB0ZXN0ZWQgdXNpbmcgdGhlIGBtYWM4MDIxMV9od3NpbWAgc29mdHdhcmUtZW11bGF0ZWQgd2lyZWxlc3MgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDg6NTQuNTI5ODg2NjRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzY4NDI2NjUxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeVwiLFxuICAgIFwiY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdGFjayAoY2ZnODAyMTEpIGJ5IHJlbW92aW5nIGEgY2hlY2sgdGhhdCBwcmV2ZW50ZWQgdXBkYXRpbmcgQlNTIGVudHJpZXMgaWYgdGhlaXIgdHlwZSBkaWQgbm90IG1hdGNoIHRoZSBjb25uZWN0aW9uIEJTUyB0eXBlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgdGVzdGVkIHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIHNvZnR3YXJlLWVtdWxhdGVkIHdpcmVsZXNzIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDg6NTQuNTI5ODkzMzhaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3OTE3NTI5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDZkY2VjNzVlY2FlYTE5NDFkMTAzMGUzMjU0MzYyMTVhZmQ2ZThmMzBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBBdWcgNSAxMDowODo1MyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3Mvc2Nhbi5jIGIvbmV0L3dpcmVsZXNzL3NjYW4uY1xcbmluZGV4IDA3MTA4M2NjMzM2NzIuLjk3YmY3YWI4Y2M5NjcgMTAwNjQ0XFxuLS0tIGEvbmV0L3dpcmVsZXNzL3NjYW4uY1xcbisrKyBiL25ldC93aXJlbGVzcy9zY2FuLmNcXG5AQCAtMzQ0MywxMSArMzQ0Myw2IEBAIHZvaWQgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeShzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbiBcXHRjYnNzLVxcdTAwM2VwdWIuY2hhbm5lbCA9IGNoYW47XFxuIFxcbiBcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGJzcywgXFx1MDAyNnJkZXYtXFx1MDAzZWJzc19saXN0LCBsaXN0KSB7XFxuLVxcdFxcdGlmICghY2ZnODAyMTFfYnNzX3R5cGVfbWF0Y2goYnNzLVxcdTAwM2VwdWIuY2FwYWJpbGl0eSxcXG4tXFx0XFx0XFx0XFx0XFx0ICAgICBic3MtXFx1MDAzZXB1Yi5jaGFubmVsLVxcdTAwM2ViYW5kLFxcbi1cXHRcXHRcXHRcXHRcXHQgICAgIHdkZXYtXFx1MDAzZWNvbm5fYnNzX3R5cGUpKVxcbi1cXHRcXHRcXHRjb250aW51ZTtcXG4tXFxuIFxcdFxcdGlmIChic3MgPT0gY2JzcylcXG4gXFx0XFx0XFx0Y29udGludWU7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowODo1NC45MDk4NDg2OTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1MzMwNDI5NTYwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeVwiLFxuICAgIFwiY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdGFjayAoY2ZnODAyMTEpIGJ5IHJlbW92aW5nIGEgY2hlY2sgdGhhdCBwcmV2ZW50ZWQgdXBkYXRpbmcgQlNTIGVudHJpZXMgaWYgdGhlaXIgdHlwZSBkaWQgbm90IG1hdGNoIHRoZSBjb25uZWN0aW9uIEJTUyB0eXBlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgcmVhY2hlZCBhbmQgdGVzdGVkIHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIHNvZnR3YXJlLWVtdWxhdGVkIHdpcmVsZXNzIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNmRjZWM3NWVjYWVhMTk0MWQxMDMwZTMyNTQzNjIxNWFmZDZlOGYzMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgQXVnIDUgMTA6MDg6NTMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3Mvc2Nhbi5jIGIvbmV0L3dpcmVsZXNzL3NjYW4uY1xuaW5kZXggMDcxMDgzY2MzMzY3Mi4uOTdiZjdhYjhjYzk2NyAxMDA2NDRcbi0tLSBhL25ldC93aXJlbGVzcy9zY2FuLmNcbisrKyBiL25ldC93aXJlbGVzcy9zY2FuLmNcbkBAIC0zNDQzLDExICszNDQzLDYgQEAgdm9pZCBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5KHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4gXHRjYnNzLVx1MDAzZXB1Yi5jaGFubmVsID0gY2hhbjtcbiBcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnkoYnNzLCBcdTAwMjZyZGV2LVx1MDAzZWJzc19saXN0LCBsaXN0KSB7XG4tXHRcdGlmICghY2ZnODAyMTFfYnNzX3R5cGVfbWF0Y2goYnNzLVx1MDAzZXB1Yi5jYXBhYmlsaXR5LFxuLVx0XHRcdFx0XHQgICAgIGJzcy1cdTAwM2VwdWIuY2hhbm5lbC1cdTAwM2ViYW5kLFxuLVx0XHRcdFx0XHQgICAgIHdkZXYtXHUwMDNlY29ubl9ic3NfdHlwZSkpXG4tXHRcdFx0Y29udGludWU7XG4tXG4gXHRcdGlmIChic3MgPT0gY2JzcylcbiBcdFx0XHRjb250aW51ZTtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDEwOjA4OjU0LjkwOTg1MDYxMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzNDM5NTM3MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgV2lyZWxlc3MgU3Vic3lzdGVtIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgYG5ldC93aXJlbGVzcy9zY2FuLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBmdW5jdGlvbi4gSXQgc2VlbXMgbGlrZSBhIGNvbmRpdGlvbiBoYXMgYmVlbiAqcmVtb3ZlZCouIFRoaXMgaXMgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIHdpcmVsZXNzIHN1YnN5c3RlbSwgaW1wYWN0aW5nIHRoZSBtYWM4MDIxMS9jZmc4MDIxMSBsYXllcnMuIFRoZSBzbmlwcGV0IGluZGljYXRlcyB0aGF0IGEgY2hlY2ssIGBjZmc4MDIxMV9ic3NfdHlwZV9tYXRjaGAsIGlzIG5vIGxvbmdlciBiZWluZyBwZXJmb3JtZWQgYmVmb3JlIHVwZGF0aW5nIHRoZSBhc3NvY2lhdGVkIEJTUyBlbnRyeS4gVGhhdCdzIGludGVyZXN0aW5nLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgcmVtb3ZhbC4gSSBzZWUgdGhhdCBgbWFjODAyMTFfaHdzaW1gIGNvdWxkIGJlIGEgcG90ZW50aWFsIHBhdGh3YXkgdG8gdHJpZ2dlciB0aGlzIG1vZGlmaWVkIGNvZGUgcGF0aC4gQWxyaWdodCwgdGltZSB0byBkaXZlIGRlZXBlciBpbnRvIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpdHNlbGYgYW5kIHVucGFjayB0aGUgc3Vycm91bmRpbmcgbG9naWMgdG8gYXNzZXNzIHRoZSByYW1pZmljYXRpb25zIG9mIHRoaXMgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDcyLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTY4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDg6NTkuMjUzODA3NTM0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MjU0NjA2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3dpcmVsZXNzL3NjYW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3Mvc2Nhbi5jPTM0MTY9RVhQT1JUX1NZTUJPTChjZmc4MDIxMV9ic3NfaXRlcik7XFxubmV0L3dpcmVsZXNzL3NjYW4uYy0zNDE3LVxcbm5ldC93aXJlbGVzcy9zY2FuLmM6MzQxODp2b2lkIGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG5uZXQvd2lyZWxlc3Mvc2Nhbi5jLTM0MTktXFx0XFx0XFx0XFx0ICAgICB1bnNpZ25lZCBpbnQgbGlua19pZCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDg6NTkuMjk5MDY2MzFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjI4MDIxMjM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgQ2FsbCBHcmFwaCBvZiBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIHRoaXMgZnVuY3Rpb24sIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIGl0cyB1c2FnZS4gV2hlcmUgKmV4YWN0bHkqIGlzIHRoaXMgZnVuY3Rpb24gYmVpbmcgY2FsbGVkIGZyb20gd2l0aGluIHRoZSB3aXJlbGVzcyBzdGFjaz8gSSdtIHRoaW5raW5nIEknbGwgbmVlZCB0byBpZGVudGlmeSBhbGwgdGhlIGNhbGwgc2l0ZXMgdG8gZ2V0IGEgZ3Jhc3Agb24gaG93IGl0cyBiZWhhdmlvciBtaWdodCBjaGFuZ2UuIFRoYXQnbGwgYmUgdGhlIHN0YXJ0aW5nIHBvaW50IG9mIG15IGludmVzdGlnYXRpb24uIEZyb20gdGhlcmUsIEkgY2FuIGRldGVybWluZSB0aGUgY29udGV4dCBhbmQgdW5kZXJzdGFuZCB0aGUgbG9naWMgdGhhdCBsZWFkcyB0byB0aGF0IEJTUyBlbnRyeSB1cGRhdGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1OTYsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOTowMi41MjcwOTAzNjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwNzM1MjE0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvY29yZS5oPTMzMz12b2lkIGNmZzgwMjExX2Jzc19hZ2Uoc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxcbm5ldC93aXJlbGVzcy9jb3JlLmgtMzM0LSAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFnZV9zZWNzKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5oOjMzNTp2b2lkIGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG5uZXQvd2lyZWxlc3MvY29yZS5oLTMzNi1cXHRcXHRcXHRcXHQgICAgIHVuc2lnbmVkIGludCBsaW5rLFxcbi0tXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYz0yMjM0OT12b2lkIGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzNjUtXFx0XFx0aWYgKCFXQVJOX09OKCF3ZGV2LVxcdTAwM2VsaW5rc1tsaW5rX2lkXS5jbGllbnQuY3VycmVudF9ic3MpKVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MjIzNjY6XFx0XFx0XFx0Y2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeSh3ZGV2LCBsaW5rX2lkLFxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzNjctXFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2hhbmRlZi1cXHUwMDNlY2hhbik7XFxuLS1cXG5uZXQvd2lyZWxlc3Mvc2Nhbi5jPTM0MTY9RVhQT1JUX1NZTUJPTChjZmc4MDIxMV9ic3NfaXRlcik7XFxubmV0L3dpcmVsZXNzL3NjYW4uYy0zNDE3LVxcbm5ldC93aXJlbGVzcy9zY2FuLmM6MzQxODp2b2lkIGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG5uZXQvd2lyZWxlc3Mvc2Nhbi5jLTM0MTktXFx0XFx0XFx0XFx0ICAgICB1bnNpZ25lZCBpbnQgbGlua19pZCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDk6MDQuNDM0NDQ4MDcyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU4NTYzMTEzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBDaGFubmVsIFN3aXRjaCBOb3RpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gdHJhY2luZyB0aGlzIGNoYW5uZWwgc3dpdGNoIG5vdGlmaWNhdGlvbiwgYW5kIGl0IGxvb2tzIGxpa2UgdGhlIGVudHJ5IHBvaW50IGlzIGBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5YCB3aXRoaW4gYG5ldC93aXJlbGVzcy9ubDgwMjExLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gcXVpY2tseSB2ZXJpZnkgaWYgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIGlzIGV2ZW4gZXhwb3NlZDsgc29tZXRpbWVzIHRoZXNlIHRoaW5ncyBhcmVuJ3QgYXMgc3RyYWlnaHRmb3J3YXJkIGFzIHRoZXkgYXBwZWFyLiBXYWl0IGEgc2Vjb25kLCBubywgdGhhdCdzIG5vdCByaWdodCAtIGBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5YCBpdHNlbGYgaXMgZXhwb3J0ZWQsIHdoaWNoIHNpbXBsaWZpZXMgdGhpbmdzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTk3LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDk6MDguMDIwMDgxOTUzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTg4MDczNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jZmc4MDIxMS5jPTEwNzc9dm9pZCBhdGg2a2xfY2ZnODAyMTFfc2Nhbl9jb21wbGV0ZV9ldmVudChzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLCBib29sIGFib3J0ZWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmMtMTEwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmM6MTEwNzp2b2lkIGF0aDZrbF9jZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYsIGludCBmcmVxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuYy0xMTA4LVxcdFxcdFxcdFxcdCAgICAgIGVudW0gd21pX3BoeV9tb2RlIG1vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmMtMTEyMi1cXHR3aXBoeV9sb2NrKHZpZi1cXHUwMDNlYXItXFx1MDAzZXdpcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmM6MTEyMzpcXHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHZpZi1cXHUwMDNlbmRldiwgXFx1MDAyNmNoYW5kZWYsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY2ZnODAyMTEuYy0xMTI0LVxcdHdpcGh5X3VubG9jayh2aWYtXFx1MDAzZWFyLVxcdTAwM2V3aXBoeSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmg9Mjc9c3RydWN0IHdpcmVsZXNzX2RldiAqYXRoNmtsX2ludGVyZmFjZV9hZGQoc3RydWN0IGF0aDZrbCAqYXIsIGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmgtMzAtXFx0XFx0XFx0XFx0XFx0ICB1OCBmd192aWZfaWR4LCB1OCBud190eXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmg6MzE6dm9pZCBhdGg2a2xfY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLCBpbnQgZnJlcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NmZzgwMjExLmgtMzItXFx0XFx0XFx0XFx0ICAgICAgZW51bSB3bWlfcGh5X21vZGUgbW9kZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYz0zNzQ9dm9pZCBhdGg2a2xfY29ubmVjdF9hcF9tb2RlX2JzcyhzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLCB1MTYgY2hhbm5lbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTQxNS1cXHRcXHQvKiB3ZSBhY3R1YWxseSBkb24ndCBrbm93IHRoZSBwaHltb2RlLCBkZWZhdWx0IHRvIEhUMjAgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYzo0MTY6XFx0XFx0YXRoNmtsX2NmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkodmlmLCBjaGFubmVsLCBXTUlfMTFHX0hUMjApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTQxNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC8xMWguYz0yNjY9dm9pZCBtd2lmaWV4X2Rmc19jaGFuX3N3X3dvcmtfcXVldWUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LzExaC5jLTI5MS1cXHR3aXBoeV9sb2NrKHByaXYtXFx1MDAzZXdkZXYud2lwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC8xMWguYzoyOTI6XFx0Y2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShwcml2LVxcdTAwM2VuZXRkZXYsIFxcdTAwMjZwcml2LVxcdTAwM2VkZnNfY2hhbmRlZiwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4LzExaC5jLTI5My1cXHR3aXBoeV91bmxvY2socHJpdi1cXHUwMDNld2Rldi53aXBoeSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9xdWFudGVubmEvcXRuZm1hYy9ldmVudC5jPTQzNj1xdG5mX2V2ZW50X2hhbmRsZV9mcmVxX2NoYW5nZShzdHJ1Y3QgcXRuZl93bWFjICptYWMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9xdWFudGVubmEvcXRuZm1hYy9ldmVudC5jLTQ4MC1cXHRcXHR3aXBoeV9sb2NrKHByaXZfdG9fd2lwaHkodmlmLVxcdTAwM2VtYWMpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9xdWFudGVubmEvcXRuZm1hYy9ldmVudC5jOjQ4MTpcXHRcXHRjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHZpZi1cXHUwMDNlbmV0ZGV2LCBcXHUwMDI2Y2hhbmRlZiwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcXVhbnRlbm5hL3F0bmZtYWMvZXZlbnQuYy00ODItXFx0XFx0d2lwaHlfdW5sb2NrKHByaXZfdG9fd2lwaHkodmlmLVxcdTAwM2VtYWMpKTtcXG4tLVxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg9OTk1OD1jZmc4MDIxMV9yZWdfY2FuX2JlYWNvbl9yZWxheChzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC05OTcwLS8qKlxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmg6OTk3MTogKiBjZmc4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5IC0gdXBkYXRlIHdkZXYgY2hhbm5lbCBhbmQgbm90aWZ5IHVzZXJzcGFjZVxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtOTk3Mi0gKiBAZGV2OiB0aGUgZGV2aWNlIHdoaWNoIHN3aXRjaGVkIGNoYW5uZWxzXFxuLS1cXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTk5NzgtICovXFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaDo5OTc5OnZvaWQgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtOTk4MC1cXHRcXHRcXHQgICAgICAgc3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmLFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTQ0Njc9c3RhdGljIGludCBfX2llZWU4MDIxMV9jc2FfZmluYWxpemUoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmtfZGF0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy00NTE2LVxcbm5ldC9tYWM4MDIxMS9jZmcuYzo0NTE3OlxcdGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkoc2RhdGEtXFx1MDAzZWRldiwgXFx1MDAyNmxpbmtfZGF0YS1cXHUwMDNlY3NhLmNoYW5yZXEub3BlcixcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDUxOC1cXHRcXHRcXHRcXHQgIGxpbmtfZGF0YS1cXHUwMDNlbGlua19pZCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTI4NzY9c3RhdGljIHZvaWQgaWVlZTgwMjExX2NzYV9zd2l0Y2hfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy0yOTA3LVxcdFxcdGxpbmstXFx1MDAzZWNvbmYtXFx1MDAzZWNoYW5yZXEgPSBsaW5rLVxcdTAwM2Vjc2EuY2hhbnJlcTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jOjI5MDg6XFx0XFx0Y2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShzZGF0YS1cXHUwMDNlZGV2LCBcXHUwMDI2bGluay1cXHUwMDNlY3NhLmNoYW5yZXEub3BlcixcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTI5MDktXFx0XFx0XFx0XFx0XFx0ICBsaW5rLVxcdTAwM2VsaW5rX2lkKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM9MzAxNj1zdGF0aWMgdm9pZCBpZWVlODAyMTFfY2hzd2l0Y2hfcG9zdF9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jLTMwNTctXFxubmV0L21hYzgwMjExL21sbWUuYzozMDU4OlxcdGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkoc2RhdGEtXFx1MDAzZWRldiwgXFx1MDAyNmxpbmstXFx1MDAzZWNvbmYtXFx1MDAzZWNoYW5yZXEub3BlcixcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTMwNTktXFx0XFx0XFx0XFx0ICBsaW5rLVxcdTAwM2VsaW5rX2lkKTtcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM9MjIyOTk9c3RhdGljIHZvaWQgbmw4MDIxMV9jaF9zd2l0Y2hfbm90aWZ5KHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzNDgtXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYzoyMjM0OTp2b2lkIGNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnkoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIyMzUwLVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYsXFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIyMzU5LVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MjIzNjA6XFx0dHJhY2VfY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeShkZXYsIGNoYW5kZWYsIGxpbmtfaWQpO1xcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMjIzNjEtXFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTIyMzkwLX1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjIyMzkxOkVYUE9SVF9TWU1CT0woY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeSk7XFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0yMjM5Mi1cXG4tLVxcbm5ldC93aXJlbGVzcy90cmFjZS5oPTM1Njg9VFJBQ0VfRVZFTlQoY2ZnODAyMTFfcmVnX2Nhbl9iZWFjb24sXFxuLS1cXG5uZXQvd2lyZWxlc3MvdHJhY2UuaC0zNTkxLVxcbm5ldC93aXJlbGVzcy90cmFjZS5oOjM1OTI6VFJBQ0VfRVZFTlQoY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeSxcXG5uZXQvd2lyZWxlc3MvdHJhY2UuaC0zNTkzLVxcdFRQX1BST1RPKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDEwOjA5OjA5Ljc3ODg5NDM2MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3MDIzMTkyMjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldHMqKlxuXG5Pa2F5LCBzbyBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAgaXMgY2xlYXJseSBhIHBvaW50IG9mIGludGVyZXN0LiBJIGtub3cgdGhhdCBmdW5jdGlvbiBnZXRzIGNhbGxlZCBmcm9tIGJvdGggYG5ldC9tYWM4MDIxMS9tbG1lLmNgIGFuZCBgbmV0L21hYzgwMjExL2NmZy5jYC4gVGhhdCdzIGdvb2QsIHRoYXQgbWVhbnMgaXQncyBwcmV0dHkgd2VsbC1pbnRlZ3JhdGVkIGFuZCB0aHVzIHByb2JhYmx5IHByZXR0eSByZWFjaGFibGUuIEFuZCB3aXRoIG15IHVuZGVyc3RhbmRpbmcgb2YgYG1hYzgwMjExX2h3c2ltYCBhbmQgc3RhbmRhcmQgd2lyZWxlc3MgZnV6emluZyB0ZWNobmlxdWVzLCBJIGNhbiBwcmV0dHkgY29uZmlkZW50bHkgc2F5IHRoaXMgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgSSBjYW4gdGFyZ2V0LlxuXG5Ob3csIHRoaXMgcGF0Y2ggc3BlY2lmaWNhbGx5IGNoYW5nZXMgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIGluIGBuZXQvd2lyZWxlc3Mvc2Nhbi5jYC4gQWxyaWdodCwgdGhhdCdzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gdGFrZSBhIGZyZXNoIGxvb2sgYXQgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIHRvIGZ1bGx5IGdyYXNwIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZXNlIG1vZGlmaWNhdGlvbnMgYW5kIHdoZXJlIHZ1bG5lcmFiaWxpdGllcyBtaWdodCBiZSBpbnRyb2R1Y2VkIG9yIHBhdGNoZWQuIExldCdzIGRlbHZlIGJhY2sgaW50byBpdHMgZnVuY3Rpb25hbGl0eSB0byBzZWUgd2hhdCB0aGlzIGZ1bmN0aW9uIGlzIHJlYWxseSBkb2luZyBpbiB0aGUgY29udGV4dCBvZiB0aGUgbGFyZ2VyIHdpcmVsZXNzIHN1YnN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYyMywiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOToxNC40ODEyMTYwMzhaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc3NzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC93aXJlbGVzcy9zY2FuLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMzQxOCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMzQxODpcXHR2b2lkIGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnkoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG4zNDE5OlxcdFxcdFxcdFxcdFxcdCAgICAgdW5zaWduZWQgaW50IGxpbmtfaWQsXFxuMzQyMDpcXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbilcXG4zNDIxOlxcdHtcXG4zNDIyOlxcdFxcdHN0cnVjdCB3aXBoeSAqd2lwaHkgPSB3ZGV2LVxcdTAwM2V3aXBoeTtcXG4zNDIzOlxcdFxcdHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiA9IHdpcGh5X3RvX3JkZXYod2lwaHkpO1xcbjM0MjQ6XFx0XFx0c3RydWN0IGNmZzgwMjExX2ludGVybmFsX2JzcyAqY2JzcyA9IHdkZXYtXFx1MDAzZWxpbmtzW2xpbmtfaWRdLmNsaWVudC5jdXJyZW50X2JzcztcXG4zNDI1OlxcdFxcdHN0cnVjdCBjZmc4MDIxMV9pbnRlcm5hbF9ic3MgKm5ldyA9IE5VTEw7XFxuMzQyNjpcXHRcXHRzdHJ1Y3QgY2ZnODAyMTFfaW50ZXJuYWxfYnNzICpic3M7XFxuMzQyNzpcXHRcXHRzdHJ1Y3QgY2ZnODAyMTFfYnNzICpub250cmFuc19ic3M7XFxuMzQyODpcXHRcXHRzdHJ1Y3QgY2ZnODAyMTFfYnNzICp0bXA7XFxuMzQyOTpcXHRcXG4zNDMwOlxcdFxcdHNwaW5fbG9ja19iaChcXHUwMDI2cmRldi1cXHUwMDNlYnNzX2xvY2spO1xcbjM0MzE6XFx0XFxuMzQzMjpcXHRcXHQvKlxcbjM0MzM6XFx0XFx0ICogU29tZSBBUHMgdXNlIENTQSBhbHNvIGZvciBiYW5kd2lkdGggY2hhbmdlcywgaS5lLiwgd2l0aG91dCBhY3R1YWxseVxcbjM0MzQ6XFx0XFx0ICogY2hhbmdpbmcgdGhlIGNvbnRyb2wgY2hhbm5lbCwgc28gbm8gbmVlZCB0byB1cGRhdGUgaW4gc3VjaCBhIGNhc2UuXFxuMzQzNTpcXHRcXHQgKi9cXG4zNDM2OlxcdFxcdGlmIChjYnNzLVxcdTAwM2VwdWIuY2hhbm5lbCA9PSBjaGFuKVxcbjM0Mzc6XFx0XFx0XFx0Z290byBkb25lO1xcbjM0Mzg6XFx0XFxuMzQzOTpcXHRcXHQvKiB1c2UgdHJhbnNtaXR0aW5nIGJzcyAqL1xcbjM0NDA6XFx0XFx0aWYgKGNic3MtXFx1MDAzZXB1Yi50cmFuc21pdHRlZF9ic3MpXFxuMzQ0MTpcXHRcXHRcXHRjYnNzID0gYnNzX2Zyb21fcHViKGNic3MtXFx1MDAzZXB1Yi50cmFuc21pdHRlZF9ic3MpO1xcbjM0NDI6XFx0XFxuMzQ0MzpcXHRcXHRjYnNzLVxcdTAwM2VwdWIuY2hhbm5lbCA9IGNoYW47XFxuMzQ0NDpcXHRcXG4zNDQ1OlxcdFxcdGxpc3RfZm9yX2VhY2hfZW50cnkoYnNzLCBcXHUwMDI2cmRldi1cXHUwMDNlYnNzX2xpc3QsIGxpc3QpIHtcXG4zNDQ2OlxcdFxcdFxcdGlmIChic3MgPT0gY2JzcylcXG4zNDQ3OlxcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbjM0NDg6XFx0XFxuMzQ0OTpcXHRcXHRcXHRpZiAoIWNtcF9ic3MoXFx1MDAyNmJzcy1cXHUwMDNlcHViLCBcXHUwMDI2Y2Jzcy1cXHUwMDNlcHViLCBCU1NfQ01QX1JFR1VMQVIpKSB7XFxuMzQ1MDpcXHRcXHRcXHRcXHRuZXcgPSBic3M7XFxuMzQ1MTpcXHRcXHRcXHRcXHRicmVhaztcXG4zNDUyOlxcdFxcdFxcdH1cXG4zNDUzOlxcdFxcdH1cXG4zNDU0OlxcdFxcbjM0NTU6XFx0XFx0aWYgKG5ldykge1xcbjM0NTY6XFx0XFx0XFx0LyogdG8gc2F2ZSB0aW1lLCB1cGRhdGUgSUVzIGZvciB0cmFuc21pdHRpbmcgYnNzIG9ubHkgKi9cXG4zNDU3OlxcdFxcdFxcdGNmZzgwMjExX3VwZGF0ZV9rbm93bl9ic3MocmRldiwgY2JzcywgbmV3LCBmYWxzZSk7XFxuMzQ1ODpcXHRcXHRcXHRuZXctXFx1MDAzZXB1Yi5wcm9iZXJlc3BfaWVzID0gTlVMTDtcXG4zNDU5OlxcdFxcdFxcdG5ldy1cXHUwMDNlcHViLmJlYWNvbl9pZXMgPSBOVUxMO1xcbjM0NjA6XFx0XFxuMzQ2MTpcXHRcXHRcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobm9udHJhbnNfYnNzLCB0bXAsXFxuMzQ2MjpcXHRcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNm5ldy1cXHUwMDNlcHViLm5vbnRyYW5zX2xpc3QsXFxuMzQ2MzpcXHRcXHRcXHRcXHRcXHRcXHQgbm9udHJhbnNfbGlzdCkge1xcbjM0NjQ6XFx0XFx0XFx0XFx0YnNzID0gYnNzX2Zyb21fcHViKG5vbnRyYW5zX2Jzcyk7XFxuMzQ2NTpcXHRcXHRcXHRcXHRpZiAoX19jZmc4MDIxMV91bmxpbmtfYnNzKHJkZXYsIGJzcykpXFxuMzQ2NjpcXHRcXHRcXHRcXHRcXHRyZGV2LVxcdTAwM2Vic3NfZ2VuZXJhdGlvbisrO1xcbjM0Njc6XFx0XFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOToxNC40ODEzOTU4ODhaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM3OTI5NDgwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaGFzIHJlbW92ZWQgYSBjcnVjaWFsIGNoZWNrIHdpdGhpbiBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAuIFRoYXQgZnVuY3Rpb24gaXMgZGVmaW5pdGVseSByZWFjaGFibGUgYW5kIGZ1bmN0aW9uYWwsIG1lYW5pbmcgaXQncyBub3cgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIEl0IHNlZW1zIGxpa2UgdGhlIHBhdGNoIHJlbW92ZWQgYSBjb25kaXRpb24gcmVsYXRlZCB0byBCU1MgdHlwZSBtYXRjaGluZywgbWFraW5nIGl0IGEgYml0IG1vcmUgb3BlbiB0byB1bmV4cGVjdGVkIGlucHV0cy5cblxuTXkgcHJpbWFyeSBmb2N1cyBoZXJlIG5lZWRzIHRvIGJlIG9uIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCwgb2YgY291cnNlLiBBbHNvLCBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAgc2VlbXMgdG8gYmUgcmVsZXZhbnQgdG9vLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhvc2UgZnVuY3Rpb25zIGludGVyYWN0IGFuZCBpZGVudGlmeSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzIHRoYXQgbWlnaHQgaGF2ZSBiZWVuIGludHJvZHVjZWQgb3IgZXhwb3NlZCBieSB0aGUgY29kZSBjaGFuZ2UuXG5cbkdpdmVuIHRoZSBjb250ZXh0LCBJIG5lZWQgdG8gbWFrZSBzdXJlIGBNQUM4MDIxMWAsIGBDRkc4MDIxMWAsIGFuZCBgTUFDODAyMTFfSFdTSU1gIGFyZSBlbmFibGVkLiBJJ2xsIHRha2UgYSBxdWljayBsb29rIGF0IGBuZXQvd2lyZWxlc3MvS2NvbmZpZ2AgYW5kIGBuZXQvbWFjODAyMTEvS2NvbmZpZ2AgdG8gY29uZmlybSB0aGVzZSBjb25maWd1cmF0aW9ucyBhbmQgc2VlIGlmIGFueXRoaW5nIGVsc2UganVtcHMgb3V0IGF0IG1lLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2ODcwLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk1LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDk6MTkuODYwNjkzNDc0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjk1NzA4NzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMV9IV1NJTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjE6Y29uZmlnIE1BQzgwMjExX0hXU0lNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlNpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOToyMS41NTY0MDY0MzlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDczOTQ3NjgyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhlIGdpdmVuIGluZm9ybWF0aW9uOlxuXG4qKktjb25maWcgRGl2ZSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbGAqKlxuXG5Pa2F5LCBzbyB0aGUgdGFzayBhdCBoYW5kIGlzIHRvIHVuZGVyc3RhbmQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIHdpcmVsZXNzIHZpcnR1YWwgbmV0d29yayBkcml2ZXJzLiBNeSBmaXJzdCBpbnN0aW5jdCwgYXMgYWx3YXlzLCBpcyB0byBoZWFkIGRpcmVjdGx5IHRvIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoYXQgYXJlYS4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZ2AgaXMgdGhlIGxpa2VseSBjYW5kaWRhdGUuIFRoaXMgS2NvbmZpZyBmaWxlIHdpbGwgYmUgdGhlIGNlbnRyYWwgc291cmNlIG9mIHRydXRoIGZvciB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhvc2UgZHJpdmVycy4gSXQnbGwgZGVmaW5lIHdoYXQgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZSwgYW55IGRlcGVuZGVuY2llcyB0aGV5IG1pZ2h0IGhhdmUgb24gb3RoZXIga2VybmVsIGNvbXBvbmVudHMsIGFuZCB0aGUgZGVmYXVsdCBzZXR0aW5ncy4gSXTigJlzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgcmVhbGx5IGRpZ2dpbmcgaW50byBob3cgdGhlc2UgdmlydHVhbCB3aXJlbGVzcyBkcml2ZXJzIGFyZSBidWlsdCBhbmQgY29uZmlndXJlZCB3aXRoaW4gdGhlIGxhcmdlciBrZXJuZWwgZnJhbWV3b3JrLiBJIGV4cGVjdCB0byBmaW5kIHRoaW5ncyBsaWtlIHRoZSB2YXJpb3VzIHZpcnR1YWwgZHJpdmVyIHR5cGVzLCBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgZGVwZW5kZW5jaWVzLCBhbmQgbWF5YmUgb3B0aW9ucyB0byBlbmFibGUgb3IgZGlzYWJsZSBkaWZmZXJlbnQgZnVuY3Rpb25hbGl0aWVzIHJlbGF0ZWQgdG8gdGhlIHZpcnR1YWwgZHJpdmVycyBhbmQgdGhlaXIgaW50ZXJmYWNlcy4gVGltZSB0byBzZWUgd2hhdCdzIGluIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDA3LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDk6MjYuMjk1ODg1NzYyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwMjEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdGNvbmZpZyBNQUM4MDIxMV9IV1NJTVxcbiAgIDI6XFx0XFx0dHJpc3RhdGUgXFxcIlNpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXFxcIlxcbiAgIDM6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgIDQ6XFx0XFx0aGVscFxcbiAgIDU6XFx0XFx0ICBUaGlzIGRyaXZlciBpcyBhIGRldmVsb3BlciB0ZXN0aW5nIHRvb2wgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0XFxuICAgNjpcXHRcXHQgIElFRUUgODAyLjExIG5ldHdvcmtpbmcgc3RhY2sgKG1hYzgwMjExKSBmdW5jdGlvbmFsaXR5LiBUaGlzIGlzIG5vdFxcbiAgIDc6XFx0XFx0ICBuZWVkZWQgZm9yIG5vcm1hbCB3aXJlbGVzcyBMQU4gdXNhZ2UgYW5kIGlzIG9ubHkgZm9yIHRlc3RpbmcuIFNlZVxcbiAgIDg6XFx0XFx0ICBEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbWFjODAyMTFfaHdzaW0gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93XFxuICAgOTpcXHRcXHQgIHRvIHVzZSB0aGlzIHRvb2wuXFxuICAxMDpcXHRcXG4gIDExOlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsIGJlXFxuICAxMjpcXHRcXHQgIGNhbGxlZCBtYWM4MDIxMV9od3NpbS4gIElmIHVuc3VyZSwgc2F5IE4uXFxuICAxMzpcXHRcXG4gIDE0OlxcdGNvbmZpZyBWSVJUX1dJRklcXG4gIDE1OlxcdFxcdHRyaXN0YXRlIFxcXCJXaWZpIHdyYXBwZXIgZm9yIGV0aGVybmV0IGRyaXZlcnNcXFwiXFxuICAxNjpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExXFxuICAxNzpcXHRcXHRoZWxwXFxuICAxODpcXHRcXHQgIFRoaXMgb3B0aW9uIGFkZHMgc3VwcG9ydCBmb3IgZXRoZXJuZXQgY29ubmVjdGlvbnMgdG8gYXBwZWFyIGFzIGlmIHRoZXlcXG4gIDE5OlxcdFxcdCAgYXJlIHdpZmkgY29ubmVjdGlvbnMgdGhyb3VnaCBhIHNwZWNpYWwgcnRuZXRsaW5rIGRldmljZS5cXG4gIDIwOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOToyNi4yOTU5NjcyMzJaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzI2Mjk4NzcyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIGRlcGVuZGVuY2llcywgc3VtbWFyaXplZCBhcyBteSBvd24gdGhvdWdodCBwcm9jZXNzOlxuXG4qKlVuZGVyc3RhbmRpbmcgdGhlIEtlcm5lbCBXaXJlbGVzcyBTdGFjayBEZXBlbmRlbmNpZXMqKlxuXG5SaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBrZXJuZWwgd2lyZWxlc3Mgc3RhY2sgc3RydWN0dXJlLCBhbmQgaXQncyBwcmV0dHkgY2xlYXIgdGhhdCBgTUFDODAyMTFfSFdTSU1gIHJlbGllcyAqZGlyZWN0bHkqIG9uIGBNQUM4MDIxMWAuIFRoYXQgbWFrZXMgc2Vuc2U7IGl0J3MgdGhlIGhhcmR3YXJlIHNpbXVsYXRpb24gY29tcG9uZW50LCBzbyBpdCBuZWVkcyB0aGUgY29yZSA4MDIuMTEgZnVuY3Rpb25hbGl0eSB0byBidWlsZCBvbi4gTm8gc3VycHJpc2VzIHRoZXJlLlxuXG5CdXQgdGhlbiwgZGlnZ2luZyBhIGxheWVyIGRlZXBlciwgYE1BQzgwMjExYCBpdHNlbGYgaXMgZGVwZW5kZW50IG9uIGBDRkc4MDIxMWAuIFRoYXQncyB3aGVyZSB0aGluZ3MgZ2V0IGludGVyZXN0aW5nIGFuZCByZWZsZWN0cyB0aGUgbW9kdWxhciBkZXNpZ24uIGBDRkc4MDIxMWAgYWN0cyBhcyB0aGUgY29uZmlndXJhdGlvbiBpbnRlcmZhY2UgYW5kIGFic3RyYWN0aW9uIGxheWVyIGZvciB3aXJlbGVzcyBkZXZpY2VzLiBJdCBwcm92aWRlcyB0aGUgZnJhbWV3b3JrIGZvciB1c2Vyc3BhY2UgdG9vbHMgdG8gY29uZmlndXJlIGFuZCBjb250cm9sIHRoZSB3aXJlbGVzcyBpbnRlcmZhY2VzLCBhbmQgYE1BQzgwMjExYCBsZXZlcmFnZXMgdGhhdC4gRXNzZW50aWFsbHksIGBNQUM4MDIxMWAgcHJvdmlkZXMgdGhlIDgwMi4xMSBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbiB3aGlsZSBgQ0ZHODAyMTFgIG1hbmFnZXMgdGhlIGludGVyYWN0aW9uIHdpdGggdGhlIHVuZGVybHlpbmcgZHJpdmVyIGFuZCB1c2VyIHNwYWNlLiBUaGlzIHNlcGFyYXRpb24ga2VlcHMgdGhlIGNvcmUgODAyLjExIGNvZGUgY2xlYW4gYW5kIHBsYXRmb3JtLWFnbm9zdGljLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTg5LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOTozMy41NTg5NTcwNjVaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NzY0MTAwOTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTpjb25maWcgTUFDODAyMTFfSFdTSU1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctMi1cXHR0cmlzdGF0ZSBcXFwiU2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXFxubmV0L21hYzgwMjExL0tjb25maWctMjAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjE6Y29uZmlnIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVxcdGJvb2xcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCIgaWYgRVhQRVJUXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDItXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1MDpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVxcdHN0cmluZ1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNTktXFxubmV0L21hYzgwMjExL0tjb25maWc6NjA6Y29uZmlnIE1BQzgwMjExX0tVTklUX1RFU1RcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cXHR0cmlzdGF0ZSBcXFwiS1VuaXQgdGVzdHMgZm9yIG1hYzgwMjExXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXFxubmV0L21hYzgwMjExL0tjb25maWctODAtXFx0Ym9vbCBcXFwiRW5hYmxlIExFRCB0cmlnZ2Vyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjg4OmNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVxcdGJvb2wgXFxcIlRyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTExLVxcdGJvb2wgXFxcIlNlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE2OmNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cXHRib29sIFxcXCJEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTMxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cXHRib29sIFxcXCJWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTQ6Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cXHRib29sIFxcXCJWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTYyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBIVCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cXHRib29sIFxcXCJWZXJib3NlIElCU1MgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXFx0Ym9vbCBcXFwiVmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjIyOmNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTk6Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5Mzpjb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXFx0Ym9vbCBcXFwiRXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMzA3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXFx0aW50IFxcXCJTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXFxcIiBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDEwOjA5OjM1LjIzNTM3MjI3MloiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzkwNzI1MDI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSBjb25zaWRlcmF0aW9ucy5cblxuKipLZXJuZWwgQ29uZmlndXJhdGlvbiBmb3IgV2lyZWxlc3MgU2ltdWxhdGlvbioqXG5cbkFscmlnaHQsIHRoaW5raW5nIHRocm91Z2ggdGhlIHNldHVwIGZvciB0aGlzIHNpbXVsYXRlZCB3aXJlbGVzcyBlbnZpcm9ubWVudC4gVG8gZ2V0IHRoaW5ncyBydW5uaW5nIHNtb290aGx5LCBpdCdzIGNsZWFyIEknbGwgYmUgbmVlZGluZyBhIGZldyBrZXkga2VybmVsIG1vZHVsZXM6IGBNQUM4MDIxMWAgaXMgZXNzZW50aWFsLCBvZiBjb3Vyc2UsIGFsb25nIHdpdGggYENGRzgwMjExYCwgdGhlIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlLiBUaGVuLCB0byBhY3R1YWxseSAqZG8qIHRoZSBzaW11bGF0aW9uLCBJJ2xsIG5lZWQgYE1BQzgwMjExX0hXU0lNYC4gVGhhdCdzIHRoZSBjb3JlLlxuXG5JJ20gYWxzbyBjb25zaWRlcmluZyBgTkw4MDIxMV9URVNUTU9ERWAuIEl0ICptaWdodCogY29tZSBpbiBoYW5keSBmb3Igc29tZSBkZWJ1Z2dpbmcgb3Igc3BlY2lmaWMgdGVzdHMgZG93biB0aGUgbGluZSwgYnV0IGBNQUM4MDIxMV9IV1NJTWAgaXMgZGVmaW5pdGVseSB0aGUgcHJpb3JpdHkuIEl0J3MgdGhlIGVuZ2luZSBvZiB0aGlzIHRoaW5nLlxuXG5KdXN0IHRvIGJlIHRob3JvdWdoLCBJJ2xsIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBgbmV0L3dpcmVsZXNzL0tjb25maWdgIGZpbGUgaW4gdGhlIGtlcm5lbCBzb3VyY2UuIEkgd2FudCB0byBjb25maXJtIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGF2YWlsYWJpbGl0eSBvZiBgQ0ZHODAyMTFgLCBqdXN0IHRvIGJlIGNlcnRhaW4uIEEgcXVpY2sgc2FuaXR5IGNoZWNrIGJlZm9yZSBJIG1vdmUgZm9yd2FyZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA1NjIsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOTozOS42MjYwOTk3OTFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NTY4MzA3MDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIENGRzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZz0xND1jb25maWcgV0VYVF9QUklWXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNi1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzpjb25maWcgQ0ZHODAyMTFcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cXHR0cmlzdGF0ZSBcXFwiY2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVxcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnPTM4PWNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01MS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo1Mjpjb25maWcgQ0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTXFxubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXFx0Ym9vbCBcXFwiZW5hYmxlIGRldmVsb3BlciB3YXJuaW5nc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY3LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02OS1cXHRib29sIFxcXCJjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo4OTpjb25maWcgQ0ZHODAyMTFfUkVRVUlSRV9TSUdORURfUkVHREJcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05MC1cXHRib29sIFxcXCJyZXF1aXJlIHJlZ2RiIHNpZ25hdHVyZVxcXCIgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo5OTpjb25maWcgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVxcdGJvb2wgXFxcImFsbG93IHJlZ2RiIGtleXMgc2hpcHBlZCB3aXRoIHRoZSBrZXJuZWxcXFwiIGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEwLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEyLVxcdHN0cmluZyBcXFwiYWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XFxcIiBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMjI6Y29uZmlnIENGRzgwMjExX1JFR19DRUxMVUxBUl9ISU5UU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMy1cXHRib29sIFxcXCJjZmc4MDIxMSByZWd1bGF0b3J5IHN1cHBvcnQgZm9yIGNlbGx1bGFyIGJhc2Ugc3RhdGlvbiBoaW50c1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMzU6Y29uZmlnIENGRzgwMjExX1JFR19SRUxBWF9OT19JUlxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cXHRib29sIFxcXCJjZmc4MDIxMSBzdXBwb3J0IGZvciBOT19JUiByZWxheGF0aW9uXFxcIlxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTU4LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2MC1cXHRib29sIFxcXCJlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTY5OmNvbmZpZyBDRkc4MDIxMV9ERUJVR0ZTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTcwLVxcdGJvb2wgXFxcImNmZzgwMjExIERlYnVnRlMgZW50cmllc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3Ni1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzc6Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cXHRib29sIFxcXCJzdXBwb3J0IENSREFcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg2LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTk0OmNvbmZpZyBDRkc4MDIxMV9LVU5JVF9URVNUXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTk1LVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgY2ZnODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTA6MDk6NDEuMjgyOTM2MjYxWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4MzkzMjQ5MzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgV2lyZWxlc3MgU3RhY2sgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgdGhlIGNvcmUgb2YgdGhlIG1hdHRlciBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBjaGFuZ2VzIGltcGFjdGluZyBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCDigJMgdGhlIHVzdWFsIHN1c3BlY3RzIGluIHRoZSB3aXJlbGVzcyBuZXR3b3JraW5nIHNwYWNlLiBUaGUga2V5IGZ1bmN0aW9ucyBoaWdobGlnaHRlZCBhcmUgYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgIGFuZCBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAuIE15IGluaXRpYWwgdW5kZXJzdGFuZGluZyBpcyB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uYWwgY2hhbmdlOyBzcGVjaWZpY2FsbHksIGEgY2hlY2sgaXMgYmVpbmcgcmVtb3ZlZCB3aXRoaW4gYGNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlgLiBUaGlzIHJlbW92YWwgbm93IGFsbG93cyBCU1MgZW50cmllcyB0byBiZSB1cGRhdGVkIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGVpciB0eXBlIG1hdGNoZXMgdGhlIGNvbm5lY3Rpb24gdHlwZS4gVGhpcyBpcywgaW5oZXJlbnRseSwgYSBjaGFuZ2UgdGhhdCBjYW4gaGF2ZSB3aWRlciBpbXBsaWNhdGlvbnMsIGFuZCBJIG5lZWQgdG8gYXNzZXNzIHRob3NlLlxuXG5CZWZvcmUganVtcGluZyB0byBjb25jbHVzaW9ucyB0aG91Z2gsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlIHRoZSBmdWxsIHBpY3R1cmUuIE15IG5leHQgaW5zdGluY3QgaXMgdG8gY29uZmlybSB0aGUgc2NvcGUgb2YgdGhlc2UgZnVuY3Rpb25zLCBlc3BlY2lhbGx5IHRoZSBmaXJzdCBvbmUuIExldCdzIHF1aWNrbHkgdmVyaWZ5IGlmIGBjZmc4MDIxMV91cGRhdGVfYXNzb2NfYnNzX2VudHJ5YCBpcyBkZWNsYXJlZCBhcyBzdGF0aWMuIEFoLCBub3BlLCBpdCdzIGV4cG9ydGVkLiBTYW1lIGZvciBgY2ZnODAyMTFfY2hfc3dpdGNoX25vdGlmeWAg4oCTIGFsc28gZXhwb3J0ZWQuIFRoYXQgbWVhbnMgdGhpcyBpcyBnb2luZyB0byBpbmZsdWVuY2UgbW9yZSB0aGFuIGp1c3QgYSBzbWFsbCBiaXQgb2YgY29kZS4gVGhpcyBzdWdnZXN0cyB3ZSBzaG91bGQgY29uc2lkZXIgdGhpcyBpbiBhIHdpZGVyIHNjb3BlIGFuZCBpbXBhY3RzLiBUaW1lIHRvIGV2YWx1YXRlIHRoZSBpbXBhY3QuIEkgc2hvdWxkIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExODMzLCJPdXRwdXRUb2tlbnMiOjE3OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxMDowOTo0OC4xMjIyNjM0NjdaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MTg3ODExMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlcIixcbiAgICBcImNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAgaW4gdGhlIGNvcmUgd2lyZWxlc3Mgc3RhY2sgKGNmZzgwMjExKSBieSByZW1vdmluZyBhIGNoZWNrIHRoYXQgcHJldmVudGVkIHVwZGF0aW5nIEJTUyBlbnRyaWVzIGlmIHRoZWlyIHR5cGUgZGlkIG5vdCBtYXRjaCB0aGUgY29ubmVjdGlvbiBCU1MgdHlwZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHJlYWNoZWQgYW5kIHRlc3RlZCB1c2luZyB0aGUgYG1hYzgwMjExX2h3c2ltYCBzb2Z0d2FyZS1lbXVsYXRlZCB3aXJlbGVzcyBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNmZzgwMjExX3VwZGF0ZV9hc3NvY19ic3NfZW50cnlcIixcbiAgICBcImNmZzgwMjExX2NoX3N3aXRjaF9ub3RpZnlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgY2ZnODAyMTFfdXBkYXRlX2Fzc29jX2Jzc19lbnRyeWAgaW4gdGhlIGNvcmUgd2lyZWxlc3Mgc3RhY2sgKGNmZzgwMjExKSBieSByZW1vdmluZyBhIGNoZWNrIHRoYXQgcHJldmVudGVkIHVwZGF0aW5nIEJTUyBlbnRyaWVzIGlmIHRoZWlyIHR5cGUgZGlkIG5vdCBtYXRjaCB0aGUgY29ubmVjdGlvbiBCU1MgdHlwZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHJlYWNoZWQgYW5kIHRlc3RlZCB1c2luZyB0aGUgYG1hYzgwMjExX2h3c2ltYCBzb2Z0d2FyZS1lbXVsYXRlZCB3aXJlbGVzcyBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowq9t95[1] Phase: Succeeded StartedAt: 2026-08-05 10:09:59 +0000 UTC FinishedAt: 2026-08-05 10:09:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-05 10:09:59 +0000 UTC FinishedAt: 2026-08-05 10:09:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2] Phase: Succeeded StartedAt: 2026-08-05 10:09:59 +0000 UTC FinishedAt: 2026-08-05 13:48:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-05 10:09:59 +0000 UTC FinishedAt: 2026-08-05 13:48:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-05 10:09:59 +0000 UTC FinishedAt: 2026-08-05 10:10:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-05 10:09:59 +0000 UTC FinishedAt: 2026-08-05 10:10:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.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-workflowq9t95/series-workflowq9t95-convert-artifact-2452691288/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-05 10:10:09 +0000 UTC FinishedAt: 2026-08-05 10:26:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-05 10:10:09 +0000 UTC FinishedAt: 2026-08-05 10:26:18 +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:*3c9bcbab-6146-4d2a-a5d6-2c920e9d344d,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-workflowq9t95/series-workflowq9t95-convert-artifact-2452691288/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": "408d46f1-3e4d-4d52-85ad-2931c740e495", "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-workflowq9t95/series-workflowq9t95-build-action-1377677710/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-05 10:10:09 +0000 UTC FinishedAt: 2026-08-05 10:26:08 +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:*3c9bcbab-6146-4d2a-a5d6-2c920e9d344d,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-workflowq9t95/series-workflowq9t95-convert-artifact-2452691288/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": "408d46f1-3e4d-4d52-85ad-2931c740e495", "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-workflowq9t95/series-workflowq9t95-build-action-1377677710/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-05 10:26:18 +0000 UTC FinishedAt: 2026-08-05 10:26:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-05 10:26:18 +0000 UTC FinishedAt: 2026-08-05 10:26:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-05 10:26:18 +0000 UTC FinishedAt: 2026-08-05 10:26:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-05 10:26:18 +0000 UTC FinishedAt: 2026-08-05 10:26:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.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-workflowq9t95/series-workflowq9t95-convert-artifact-3333523647/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-05 10:26:28 +0000 UTC FinishedAt: 2026-08-05 10:28:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-05 10:26:28 +0000 UTC FinishedAt: 2026-08-05 10:28:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*408d46f1-3e4d-4d52-85ad-2931c740e495,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-workflowq9t95/series-workflowq9t95-build-action-1377677710/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-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-05 10:28:29 +0000 UTC FinishedAt: 2026-08-05 10:28:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-05 10:28:29 +0000 UTC FinishedAt: 2026-08-05 10:28:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-05 10:28:29 +0000 UTC FinishedAt: 2026-08-05 10:45:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-05 10:28:29 +0000 UTC FinishedAt: 2026-08-05 10:45:34 +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:*3c9bcbab-6146-4d2a-a5d6-2c920e9d344d,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-workflowq9t95/series-workflowq9t95-convert-artifact-3333523647/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": "dfe6ed93-9dbe-4c8c-af0d-07df4bdfcc5a", "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-workflowq9t95/series-workflowq9t95-build-action-4188507347/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-05 10:28:29 +0000 UTC FinishedAt: 2026-08-05 10:45:24 +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:*3c9bcbab-6146-4d2a-a5d6-2c920e9d344d,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-workflowq9t95/series-workflowq9t95-convert-artifact-3333523647/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": "dfe6ed93-9dbe-4c8c-af0d-07df4bdfcc5a", "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-workflowq9t95/series-workflowq9t95-build-action-4188507347/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-05 10:45:34 +0000 UTC FinishedAt: 2026-08-05 10:45:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-05 10:45:34 +0000 UTC FinishedAt: 2026-08-05 10:45:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-05 10:45:34 +0000 UTC FinishedAt: 2026-08-05 10:47:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-05 10:45:34 +0000 UTC FinishedAt: 2026-08-05 10:47:25 +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:*dfe6ed93-9dbe-4c8c-af0d-07df4bdfcc5a,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-workflowq9t95/series-workflowq9t95-build-action-4188507347/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-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-05 10:47:35 +0000 UTC FinishedAt: 2026-08-05 13:48:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-05 10:47:35 +0000 UTC FinishedAt: 2026-08-05 13:48:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"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:*408d46f1-3e4d-4d52-85ad-2931c740e495,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*dfe6ed93-9dbe-4c8c-af0d-07df4bdfcc5a,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-workflowq9t95/series-workflowq9t95-build-action-1377677710/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-workflowq9t95/series-workflowq9t95-build-action-4188507347/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-05 10:47:35 +0000 UTC FinishedAt: 2026-08-05 10:47:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-05 10:47:35 +0000 UTC FinishedAt: 2026-08-05 10:47:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"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-workflowq9t95/series-workflowq9t95-convert-artifact-4184102488/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-05 10:47:35 +0000 UTC FinishedAt: 2026-08-05 10:47:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-05 10:47:35 +0000 UTC FinishedAt: 2026-08-05 10:47:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-05 10:47:35 +0000 UTC FinishedAt: 2026-08-05 10:47:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-05 10:47:45 +0000 UTC FinishedAt: 2026-08-05 13:48:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq9t95[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["cfg80211_update_assoc_bss_entry","cfg80211_ch_switch_notify"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"4aa06913-d2f7-4b23-8056-e605748cdd41","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-05 10:47:45 +0000 UTC FinishedAt: 2026-08-05 13:48:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*408d46f1-3e4d-4d52-85ad-2931c740e495,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*dfe6ed93-9dbe-4c8c-af0d-07df4bdfcc5a,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-workflowq9t95/series-workflowq9t95-build-action-1377677710/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-workflowq9t95/series-workflowq9t95-build-action-4188507347/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-workflowq9t95/series-workflowq9t95-convert-artifact-4184102488/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,}