Name: series-workflowzhtgs Phase: Succeeded StartedAt: 2026-07-24 02:59:35 +0000 UTC FinishedAt: 2026-07-24 05:34:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[0] Phase: Succeeded StartedAt: 2026-07-24 02:59:35 +0000 UTC FinishedAt: 2026-07-24 03:28:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[0].run-triage Phase: Succeeded StartedAt: 2026-07-24 02:59:35 +0000 UTC FinishedAt: 2026-07-24 03:28:09 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "5e6c0e1b-ae0e-4dce-b314-59a3dcc51244" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_s1g_rx_twt_setup", "ieee80211_s1g_rx_twt_action" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgdG8gYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpbiBtYWM4MDIxMSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgYWNjZXNzIHdoZW4gcHJvY2Vzc2luZyBUV1Qgc2V0dXAgYWN0aW9uIGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSA4MDIuMTFhaCAoUzFHKSBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwMzoyNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGY5N2I3NTljZTE5YWQyYzkzZTA4ZDg2NWZmMTFiNjc2MjRkZmMwMTlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAyNCAwMzoyNTowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvczFnLmMgYi9uZXQvbWFjODAyMTEvczFnLmNcbmluZGV4IDVhZjRhMGM2YzY0MjRiLi5hYmMzMzhlMjJlNTljYyAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9zMWcuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL3MxZy5jXG5AQCAtMTAxLDYgJiM0MzsxMDEsMTAgQEAgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9zZXR1cCAqdHd0ID0gKHZvaWQgKiltZ210LVx1MDAzZXUuYWN0aW9uLnMxZy52YXJpYWJsZTtcbiBcdHN0cnVjdCBpZWVlODAyMTFfdHd0X3BhcmFtcyAqdHd0X2FncnQgPSAodm9pZCAqKXR3dC1cdTAwM2VwYXJhbXM7XG4gXG4mIzQzO1x0aWYgKCEodHd0LVx1MDAzZWNvbnRyb2wgXHUwMDI2IElFRUU4MDIxMV9UV1RfQ09OVFJPTF9ORUdfVFlQRV9CUk9BRENBU1QpIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICB0d3QtXHUwMDNlbGVuZ3RoIFx1MDAzYyBzaXplb2YodHd0LVx1MDAzZWNvbnRyb2wpICYjNDM7IHNpemVvZigqdHd0X2FncnQpKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiBcdHR3dF9hZ3J0LVx1MDAzZXJlcV90eXBlIFx1MDAyNj0gY3B1X3RvX2xlMTYofklFRUU4MDIxMV9UV1RfUkVRVFlQRV9SRVFVRVNUKTtcbiBcbiBcdC8qIGJyb2FkY2FzdCBUV1Qgbm90IHN1cHBvcnRlZCB5ZXQgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwMzoyNTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGluIG1hYzgwMjExIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgd2hlbiBwcm9jZXNzaW5nIFRXVCBzZXR1cCBhY3Rpb24gZnJhbWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIDgwMi4xMWFoIChTMUcpIGltcGxlbWVudGF0aW9uIGFuZCBpcyByZWFjaGFibGUgdmlhIG1hYzgwMjExX2h3c2ltLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmOTdiNzU5Y2UxOWFkMmM5M2UwOGQ4NjVmZjExYjY3NjI0ZGZjMDE5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMjQgMDM6MjU6MDcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvczFnLmMgYi9uZXQvbWFjODAyMTEvczFnLmMKaW5kZXggNWFmNGEwYzZjNjQyNGIuLmFiYzMzOGUyMmU1OWNjIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvczFnLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL3MxZy5jCkBAIC0xMDEsNiAmIzQzOzEwMSwxMCBAQCBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwKIAlzdHJ1Y3QgaWVlZTgwMjExX3R3dF9zZXR1cCAqdHd0ID0gKHZvaWQgKiltZ210LSZndDt1LmFjdGlvbi5zMWcudmFyaWFibGU7CiAJc3RydWN0IGllZWU4MDIxMV90d3RfcGFyYW1zICp0d3RfYWdydCA9ICh2b2lkICopdHd0LSZndDtwYXJhbXM7CiAKJiM0MzsJaWYgKCEodHd0LSZndDtjb250cm9sICZhbXA7IElFRUU4MDIxMV9UV1RfQ09OVFJPTF9ORUdfVFlQRV9CUk9BRENBU1QpICZhbXA7JmFtcDsKJiM0MzsJICAgIHR3dC0mZ3Q7bGVuZ3RoICZsdDsgc2l6ZW9mKHR3dC0mZ3Q7Y29udHJvbCkgJiM0Mzsgc2l6ZW9mKCp0d3RfYWdydCkpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiAJdHd0X2FncnQtJmd0O3JlcV90eXBlICZhbXA7PSBjcHVfdG9fbGUxNih+SUVFRTgwMjExX1RXVF9SRVFUWVBFX1JFUVVFU1QpOwogCiAJLyogYnJvYWRjYXN0IFRXVCBub3Qgc3VwcG9ydGVkIHlldCAqLwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwMzoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI2CgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogMzE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEJvdW5kcyBDaGVjayBpbiBtYWM4MDIxMSBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IGEgcGF0Y2ggaW4gYG5ldC9tYWM4MDIxMS9zMWcuY2AsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBhIGJvdW5kcyBjaGVjayBhZGRlZCB0byBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgLiBMZXQgbWUgcXVpY2tseSByZWZyZXNoIG15IG1lbW9yeSBvZiB0aGF0IGZ1bmN0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljLgoKTG9va2luZyBhdCB0aGUgY29kZSBzbmlwcGV0LCBpdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBJdCYjMzk7cyBjaGVja2luZyBpZiB0aGUgYHR3dC0mZ3Q7bGVuZ3RoYCBmaWVsZCBpcyBzdWZmaWNpZW50IHRvIGNvbnRhaW4gYm90aCB0aGUgYHR3dC0mZ3Q7Y29udHJvbGAgYW5kIGB0d3RfYWdydGAgc3RydWN0dXJlcyB3aGVuIHRoZSBuZWdvdGlhdGlvbiB0eXBlIGlzbiYjMzk7dCBhIGJyb2FkY2FzdC4gVGhpcyBzZWVtcyBsaWtlIGEgcGVyZmVjdGx5IHNlbnNpYmxlIGFuZCBuZWNlc3NhcnkgY2hlY2sgdG8gcHJldmVudCBidWZmZXIgb3ZlcmZsb3dzIG9yIHVuZGVyZmxvd3MuIEl0JiMzOTtzIGEgY3JpdGljYWwgc2FmZXR5IG1lYXN1cmUsIHByZXZlbnRpbmcgdGhlIGNvZGUgZnJvbSByZWFkaW5nIHBhc3QgdGhlIGVuZCBvZiBhbGxvY2F0ZWQgbWVtb3J5LiBUaGUgcGF0Y2ggaXMgZW5zdXJpbmcgdGhlIHNpemUgb2YgdGhlIHJlY2VpdmVkIFRXVCBzZXR1cCBmcmFtZSBpcyBhZGVxdWF0ZS4KCk5vdywgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUsIHRoaXMgZ2V0cyBpbnRlcmVzdGluZy4gbWFjODAyMTEgaXMgYSBrbm93biB0YXJnZXQgZm9yIGZ1enppbmcsIGFuZCBgbWFjODAyMTFfaHdzaW1gIGlzIGEga2V5IGNvbXBvbmVudCBmb3IgdGhhdC4gR2l2ZW4gdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIG1hYzgwMjExLCBpdCYjMzk7cyBzb21ldGhpbmcgSSBuZWVkIHRvIGV2YWx1YXRlIGZvciBmdXp6aW5nIGltcGFjdC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGJvdW5kcyBjaGVjayBpcyByb2J1c3QgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgbmV3IHZ1bG5lcmFiaWxpdGllcyBvciBieXBhc3Nlcy4KCk15IG5leHQgc3RlcCBpcyB0byBleGFtaW5lIHRoZSBgQ09ORklHX01BQzgwMjExYCBjb25maWd1cmF0aW9uIG9wdGlvbi4gSSBuZWVkIHRvIGtub3cgdGhlIHJlbGV2YW50IGJ1aWxkIGZsYWdzIHRvIGVuc3VyZSBgbWFjODAyMTFgIGlzIGVuYWJsZWQgY29ycmVjdGx5IGZvciBteSB0ZXN0cyBhbmQgaWYgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIHdpbGwgaW5mbHVlbmNlIHRoZSBiZWhhdmlvdXIgb2YgdGhpcyBjaGVjay4gVGltZSB0byBnZXQgZmFtaWxpYXIgd2l0aCB0aGUgZXhhY3QgbG9jYXRpb24gaW4gdGhlIGNvZGViYXNlIG9mIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgaW4gdGhlIHMxZy5jIGZpbGUgYW5kIHZlcmlmeSBpdHMgZGVwZW5kZW5jaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2llZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL3MxZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9zMWcuYz05Nj1zdGF0aWMgdm9pZFxubmV0L21hYzgwMjExL3MxZy5jOjk3OmllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL3MxZy5jLTk4LVx0XHRcdCAgIHN0cnVjdCBzdGFfaW5mbyAqc3RhLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9tYWM4MDIxMS9zMWcuYz0xNTQ9dm9pZCBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3MxZy5jLTE2OC1cdGNhc2UgV0xBTl9TMUdfVFdUX1NFVFVQOlxubmV0L21hYzgwMjExL3MxZy5jOjE2OTpcdFx0aWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAoc2RhdGEsIHN0YSwgc2tiKTtcbm5ldC9tYWM4MDIxMS9zMWcuYy0xNzAtXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwODkKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiA4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIFRXVCBTZXR1cCB3aXRoaW4gdGhlIDgwMi4xMSBzMWcgQ29udGV4dCoqCgpBbHJpZ2h0LCBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgZnVuY3Rpb24uIFRoZSBmaXJzdCB0aGluZyB0aGF0IGp1bXBzIG91dCBpcyB0aGF0IGl0JiMzOTtzIGRlY2xhcmVkIGBzdGF0aWNgLiBUaGlzIGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0JiMzOTtzIGxpbWl0ZWQgaW4gc2NvcGUgYW5kIGxpa2VseSBpbnRlcm5hbCB0byBhIHNwZWNpZmljIG1vZHVsZSwgbW9zdCBsaWtlbHkgdGhlIFMxRyByZWNlaXZlIHBhdGguIE15IG5leHQgdGhvdWdodCBpcywgd2hlcmUgaXMgaXQgY2FsbGVkIGZyb20/IFNlZW1zIGxpa2UgaXQmIzM5O3MgY2FsbGVkIGZyb20gYGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbmAsIHdoaWNoIGlzIHByb2JhYmx5IGhhbmRsaW5nIGEgVFdUIGFjdGlvbiBmcmFtZSBvbiB0aGUgcmVjZWl2ZSBzaWRlLiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB3aWRlciBjb250ZXh0LiBJcyBgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uYCBpdHNlbGYgYW4gZXhwb3J0ZWQgZnVuY3Rpb24/IE9yIGlzIGl0IHNpbWlsYXJseSBzY29wZWQsIGludGVybmFsIHRvIHRoZSBkcml2ZXI/IEkgbmVlZCB0byB2ZXJpZnkgaXRzIHZpc2liaWxpdHk7IGlzIGl0IGV4cG9zZWQgdmlhIGEgc3ltYm9sIHRhYmxlIG9yIGlzIGl0IG9ubHkgY2FsbGVkIHdpdGhpbiB0aGUgUzFHIFJYIHBhdGggb2YgdGhlIGRyaXZlcj8gVW5kZXJzdGFuZGluZyB0aGUgc2NvcGUgb2YgdGhlc2UgZnVuY3Rpb25zIHdpbGwgaGVscCBtZSBncmFzcCBob3cgdGhlIFRXVCBzZXR1cCBpcyB0cmlnZ2VyZWQgYW5kIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIGludG8gdGhlIHJlY2VpdmUgZmxvdyBvZiB0aGlzIHBhcnRpY3VsYXIgODAyLjExIHZhcmlhbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0yMzkzPWJvb2wgaWVlZTgwMjExX3MxZ19pc190d3Rfc2V0dXAoc3RydWN0IHNrX2J1ZmYgKnNrYik7XG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoyMzk0OnZvaWQgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjM5NS1cdFx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbi0tXG5uZXQvbWFjODAyMTEvaWZhY2UuYz0xNjIwPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9pZmFjZV9wcm9jZXNzX3NrYihzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcbi0tXG5uZXQvbWFjODAyMTEvaWZhY2UuYy0xNzE5LVx0XHRjYXNlIFdMQU5fUzFHX1RXVF9TRVRVUDpcbm5ldC9tYWM4MDIxMS9pZmFjZS5jOjE3MjA6XHRcdFx0aWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uKHNkYXRhLCBza2IpO1xubmV0L21hYzgwMjExL2lmYWNlLmMtMTcyMS1cdFx0XHRicmVhaztcbi0tXG5uZXQvbWFjODAyMTEvczFnLmM9MTM5PWllZWU4MDIxMV9zMWdfdHhfdHd0X3NldHVwX2ZhaWwoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3MxZy5jLTE1My1cbm5ldC9tYWM4MDIxMS9zMWcuYzoxNTQ6dm9pZCBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvczFnLmMtMTU1LVx0XHRcdFx0IHN0cnVjdCBza19idWZmICpza2IpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk5MQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlIHdoYXQgd2UmIzM5O3ZlIGdvdCBoZXJlLgoKKipBbmFseXppbmcgdGhlIENhbGwgUGF0aCBhbmQgQ29uZmlndXJhdGlvbiBDb250ZXh0KioKClJpZ2h0LCBzbyB0aGlzIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGBpZWVlODAyMTFfaWZhY2VfcHJvY2Vzc19za2JgLCB3aGljaCwgaWYgSSByZWNhbGwgY29ycmVjdGx5LCByZXNpZGVzIHdpdGhpbiBgbmV0L21hYzgwMjExL2lmYWNlLmNgLiBUaGF0IHBsYWNlcyBpdCBmaXJtbHkgd2l0aGluIHRoZSBtYWM4MDIxMSBmcmFtZXdvcmssIHdoaWNoIGlzIHdoZXJlIEkgZXhwZWN0ZWQuIEdvb2QuIEFuZCB0aGlzIGlzICpkZWZpbml0ZWx5KiByZWFjaGFibGUgdmlhIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoIG5hcnJvd3MgZG93biB0aGUgc2NvcGUgZm9yIGFuYWx5c2lzIGNvbnNpZGVyYWJseS4gV2l0aCB0aGUgY29udGV4dCBvZiB0aGUgbWFjODAyMTEgaW5mcmFzdHJ1Y3R1cmUgZXN0YWJsaXNoZWQsIG5vdyBJIGhhdmUgdG8gY2hlY2sgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24uIFRoZSByZWxldmFudCBjb25maWcgaXMgYE1BQzgwMjExYCwgdGhhdCBtYWtlcyBzZW5zZS4gTm93LCBsZXQmIzM5O3MgbG9vayBmb3IgUzFHIG9yIFRXVCBzcGVjaWZpYyBjb25maWcgb3B0aW9ucyB0byB1bmRlcnN0YW5kIHdoZXJlIHRoaXMgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBpY3R1cmUuIE15IG5leHQgdGFzayBpcyB0byB2ZXJpZnkgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBzZXQgZm9yIGVpdGhlciBTaW5nbGUtQ2FycmllciBtb2R1bGF0aW9uIG9yIFRhcmdldCBXYWtlIFRpbWUgZnVuY3Rpb25hbGl0aWVzLiBUaG9zZSB0d28gYXJlIGRlZmluaXRlbHkgdGhlIG1vc3QgcmVsZXZhbnQgd2hlbiBJIHRoaW5rIGFib3V0IHRoZSBsYXRlc3QgZW5oYW5jZW1lbnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19NQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxubmV0L21hYzgwMjExL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX01BQzgwMjExKSAmIzQzOz0gbWFjODAyMTEub1xubmV0L21hYzgwMjExL01ha2VmaWxlLTMtXG4tLVxubmV0L21hYzgwMjExL01ha2VmaWxlPTU9bWFjODAyMTEteSA6PSBcXFxuLS1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zOS1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0MDptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9MRURTKSAmIzQzOz0gbGVkLm9cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0MTptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTKSAmIzQzOz0gXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS00Mi1cdGRlYnVnZnMubyBcXFxuLS1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS00Ni1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0NzptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9NRVNIKSAmIzQzOz0gXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS00OC1cdG1lc2gubyBcXFxuLS1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZT01OT1yYzgwMjExX21pbnN0cmVsLXkgOj0gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNjEtXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NjI6cmM4MDIxMV9taW5zdHJlbC0kKENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTKSAmIzQzOz0gXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS02My1cdHJjODAyMTFfbWluc3RyZWxfaHRfZGVidWdmcy5vXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNjQtXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NjU6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfUkNfTUlOU1RSRUwpICYjNDM7PSAkKHJjODAyMTFfbWluc3RyZWwteSlcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS02Ni1cbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmM9NjEzPXN0YXRpYyBpbnQgaWVlZTgwMjExX2FkZF9rZXkoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2Rldixcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNzEwLVx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxubmV0L21hYzgwMjExL2NmZy5jOjcxMTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9jZmcuYy03MTItXHRcdGlmIChzZGF0YS1cdTAwM2V1Lm1lc2guc2VjdXJpdHkgIT0gSUVFRTgwMjExX01FU0hfU0VDX05PTkUpXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTIxODk9c3RhdGljIHZvaWQgc3RhX2FwcGx5X21lc2hfcGFyYW1zKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yMTkyLXtcbm5ldC9tYWM4MDIxMS9jZmcuYzoyMTkzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL2NmZy5jLTIxOTQtXHRzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSA9IHN0YS1cdTAwM2VzZGF0YTtcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmM9Mjc4Mz1zdGF0aWMgaW50IGllZWU4MDIxMV9jaGFuZ2Vfc3RhdGlvbihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yODg5LVxubmV0L21hYzgwMjExL2NmZy5jOjI4OTA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjg5MS1zdGF0aWMgaW50IGllZWU4MDIxMV9hZGRfbXBhdGgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmM9NDQyND1zdGF0aWMgaW50IGllZWU4MDIxMV9zZXRfYWZ0ZXJfY3NhX2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGlua19kYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy00NDQ3LVx0XHRicmVhaztcbm5ldC9tYWM4MDIxMS9jZmcuYzo0NDQ4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL2NmZy5jLTQ0NDktXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTQ1NTk9c3RhdGljIGludCBpZWVlODAyMTFfc2V0X2NzYV9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmtfZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDY1MC1cdFx0YnJlYWs7XG5uZXQvbWFjODAyMTEvY2ZnLmM6NDY1MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9jZmcuYy00NjUyLVx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOiB7XG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTU5ODQ9Y29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzID0ge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy02MDA0LVx0LmR1bXBfc3VydmV5ID0gaWVlZTgwMjExX2R1bXBfc3VydmV5LFxubmV0L21hYzgwMjExL2NmZy5jOjYwMDU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvY2ZnLmMtNjAwNi1cdC5hZGRfbXBhdGggPSBpZWVlODAyMTFfYWRkX21wYXRoLFxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTEwLVxubmV0L21hYzgwMjExL2RlYnVnLmg6MTE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9PQ0JfREVCVUdcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTEyLSNkZWZpbmUgTUFDODAyMTFfT0NCX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC0xNi1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjE3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfSUJTU19ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtMTgtI2RlZmluZSBNQUM4MDIxMV9JQlNTX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yMi1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjIzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTI0LSNkZWZpbmUgTUFDODAyMTFfUFNfREVCVUcgMVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTI4LVxubmV0L21hYzgwMjExL2RlYnVnLmg6Mjk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9IVF9ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtMzAtI2RlZmluZSBNQUM4MDIxMV9IVF9ERUJVRyAxXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtMzQtXG5uZXQvbWFjODAyMTEvZGVidWcuaDozNTojaWZkZWYgQ09ORklHX01BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtMzYtI2RlZmluZSBNQUM4MDIxMV9NUExfREVCVUcgMVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTQwLVxubmV0L21hYzgwMjExL2RlYnVnLmg6NDE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NUEFUSF9ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtNDItI2RlZmluZSBNQUM4MDIxMV9NUEFUSF9ERUJVRyAxXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtNDYtXG5uZXQvbWFjODAyMTEvZGVidWcuaDo0NzojaWZkZWYgQ09ORklHX01BQzgwMjExX01IV01QX0RFQlVHXG5uZXQvbWFjODAyMTEvZGVidWcuaC00OC0jZGVmaW5lIE1BQzgwMjExX01IV01QX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC01Mi1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjUzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvZGVidWcuaC01NC0jZGVmaW5lIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVRyAxXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtNTgtXG5uZXQvbWFjODAyMTEvZGVidWcuaDo1OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfQ1NBX0RFQlVHXG5uZXQvbWFjODAyMTEvZGVidWcuaC02MC0jZGVmaW5lIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC02NC1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjY1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtNjYtI2RlZmluZSBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC03MC1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjcxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtNzItI2RlZmluZSBNQUM4MDIxMV9URExTX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC03Ni1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjc3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvZGVidWcuaC03OC0jZGVmaW5lIE1BQzgwMjExX1NUQV9ERUJVRyAxXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtODItXG5uZXQvbWFjODAyMTEvZGVidWcuaDo4MzojaWZkZWYgQ09ORklHX01BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTg0LSNkZWZpbmUgTUFDODAyMTFfTUxNRV9ERUJVRyAxXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtODgtXG5uZXQvbWFjODAyMTEvZGVidWcuaDo4OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL2RlYnVnLmgtOTAtdm9pZCBfX3NkYXRhX2luZm8oY29uc3QgY2hhciAqZm10LCAuLi4pIF9fcHJpbnRmKDEsIDIpO1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmM9NjMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGVidWdmc19zaG9ydF9mb3BzIHN0YXRzXyAjI25hbWUjIyBfb3BzID0ge1x0XHRcdFxcXG4tLVxubmV0L21hYzgwMjExL2RlYnVnZnMuYy02MzYtXG5uZXQvbWFjODAyMTEvZGVidWdmcy5jOjYzNzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHX0NPVU5URVJTXG5uZXQvbWFjODAyMTEvZGVidWdmcy5jLTYzOC0jZGVmaW5lIERFQlVHRlNfU1RBVFNfQUREKG5hbWUpXHRcdFx0XHRcdFxcXG4tLVxubmV0L21hYzgwMjExL2RlYnVnZnMuYz02NDk9dm9pZCBkZWJ1Z2ZzX2h3X2FkZChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcbi0tXG5uZXQvbWFjODAyMTEvZGVidWdmcy5jLTY4My1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmM6Njg0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmMtNjg1LVx0REVCVUdGU19TVEFUU19BREQoZG90MTFUcmFuc21pdHRlZEZyYWdtZW50Q291bnQpO1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmgtNi1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmg6NzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmgtOC12b2lkIGRlYnVnZnNfaHdfYWRkKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKTtcbi0tXG5uZXQvbWFjODAyMTEvZGVidWdmc19rZXkuaC00LVxubmV0L21hYzgwMjExL2RlYnVnZnNfa2V5Lmg6NTojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX2tleS5oLTYtdm9pZCBpZWVlODAyMTFfZGVidWdmc19rZXlfYWRkKHN0cnVjdCBpZWVlODAyMTFfa2V5ICprZXkpO1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jPTczNj1JRUVFODAyMTFfSUZfTElOS19GSUxFKGFkZHIsIGNvbmYtXHUwMDNlYWRkciwgTUFDKTtcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczNy1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjczODojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczOS1JRUVFODAyMTFfSUZfRklMRShlc3RhYl9wbGlua3MsIHUubWVzaC5lc3RhYl9wbGlua3MsIEFUT01JQyk7XG4tLVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM9ODY4PXN0YXRpYyB2b2lkIGFkZF9pYnNzX2ZpbGVzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3Mi1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjg3MzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3NC1cbi0tXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYz05Mzc9c3RhdGljIHZvaWQgYWRkX2ZpbGVzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTk0OS1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjk1MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTk1MS1cdFx0YWRkX21lc2hfZmlsZXMoc2RhdGEpO1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5oLTEyLVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg6MTM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaC0xNC12b2lkIGllZWU4MDIxMV9kZWJ1Z2ZzX3JlbW92ZV9uZXRkZXYoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpO1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX3N0YS5oLTYtXG5uZXQvbWFjODAyMTEvZGVidWdmc19zdGEuaDo3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL2RlYnVnZnNfc3RhLmgtOC12b2lkIGllZWU4MDIxMV9zdGFfZGVidWdmc19hZGQoc3RydWN0IHN0YV9pbmZvICpzdGEpO1xuLS1cbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmg9NDc3PXN0YXRpYyBpbmxpbmUgdm9pZCBkcnZfc3RhX3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcbi0tXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTQ5NC1cbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmg6NDk1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaC00OTYtc3RhdGljIGlubGluZSB2b2lkIGRydl92aWZfYWRkX2RlYnVnZnMoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9NzcwPXN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCB7XG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtODUwLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6ODUxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtODUyLSNkZWZpbmUgSUVFRTgwMjExX0lGU1RBX01FU0hfQ1RSX0lOQyhtc2gsIG5hbWUpXHRcXFxuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTEwOTk9c3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEge1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTExNTEtXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxMTUyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTE1My1cdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZGlyO1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTExNTc9c3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSB7XG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTI0NC1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjEyNDU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xMjQ2LVx0c3RydWN0IHtcbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0xMzY0PWVudW0gcXVldWVfc3RvcF9yZWFzb24ge1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTEzNzktXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxMzgwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTEVEU1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTM4MS1zdHJ1Y3QgdHB0X2xlZF90cmlnZ2VyIHtcbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0xNDQ4PXN0cnVjdCBpZWVlODAyMTFfbG9jYWwge1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2MjgtXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxNjI5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTEVEU1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTYzMC1cdHN0cnVjdCBsZWRfdHJpZ2dlciB0eF9sZWQsIHJ4X2xlZCwgYXNzb2NfbGVkLCByYWRpb19sZWQ7XG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTYzNi1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjE2Mzc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTYzOC1cdC8qIFNOTVAgY291bnRlcnMgKi9cbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xNjY0LSNkZWZpbmUgSTgwMl9ERUJVR19JTkMoYykgKGMpJiM0MzsmIzQzO1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTY2NTojZWxzZSAvKiBDT05GSUdfTUFDODAyMTFfREVCVUdfQ09VTlRFUlMgKi9cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2NjYtI2RlZmluZSBJODAyX0RFQlVHX0lOQyhjKSBkbyB7IH0gd2hpbGUgKDApXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxNjY3OiNlbmRpZiAvKiBDT05GSUdfTUFDODAyMTFfREVCVUdfQ09VTlRFUlMgKi9cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2NjgtXG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTY5NS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjE2OTY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xNjk3LVx0c3RydWN0IGxvY2FsX2RlYnVnZnNkZW50cmllcyB7XG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9Mjk0MD11MzIgaWVlZTgwMjExX2NhbGNfZXhwZWN0ZWRfdHhfYWlydGltZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTQzLVx0XHRcdFx0ICAgICAgIGludCBsZW4sIGJvb2wgYW1wZHUpO1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6Mjk0NDojaWZkZWYgQ09ORklHX01BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTQ1LSNkZWZpbmUgZGVidWdfbm9pbmxpbmUgbm9pbmxpbmVcbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0yOTc2PWllZWU4MDIxMV91aHJfY2FwX2llX3RvX3N0YV91aHJfY2FwKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTI5ODEtXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoyOTgyOiNpZiBJU19FTkFCTEVEKENPTkZJR19NQUM4MDIxMV9LVU5JVF9URVNUKVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjk4My0jZGVmaW5lIEVYUE9SVF9TWU1CT0xfSUZfTUFDODAyMTFfS1VOSVQoc3ltKSBFWFBPUlRfU1lNQk9MX0lGX0tVTklUKHN5bSlcbi0tXG5uZXQvbWFjODAyMTEva2V5Lmg9NTk9c3RydWN0IGllZWU4MDIxMV9rZXkge1xuLS1cbm5ldC9tYWM4MDIxMS9rZXkuaC0xMjItXG5uZXQvbWFjODAyMTEva2V5Lmg6MTIzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL2tleS5oLTEyNC1cdHN0cnVjdCB7XG4tLVxubmV0L21hYzgwMjExL2xlZC5oPTEzPXN0YXRpYyBpbmxpbmUgdm9pZCBpZWVlODAyMTFfbGVkX3J4KHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxubmV0L21hYzgwMjExL2xlZC5oLTE0LXtcbm5ldC9tYWM4MDIxMS9sZWQuaDoxNTojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9sZWQuaC0xNi1cdGlmICghYXRvbWljX3JlYWQoXHUwMDI2bG9jYWwtXHUwMDNlcnhfbGVkX2FjdGl2ZSkpXG4tLVxubmV0L21hYzgwMjExL2xlZC5oPTIyPXN0YXRpYyBpbmxpbmUgdm9pZCBpZWVlODAyMTFfbGVkX3R4KHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxubmV0L21hYzgwMjExL2xlZC5oLTIzLXtcbm5ldC9tYWM4MDIxMS9sZWQuaDoyNDojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9sZWQuaC0yNS1cdGlmICghYXRvbWljX3JlYWQoXHUwMDI2bG9jYWwtXHUwMDNldHhfbGVkX2FjdGl2ZSkpXG4tLVxubmV0L21hYzgwMjExL2xlZC5oLTMwLVxubmV0L21hYzgwMjExL2xlZC5oOjMxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTEVEU1xubmV0L21hYzgwMjExL2xlZC5oLTMyLXZvaWQgaWVlZTgwMjExX2xlZF9hc3NvYyhzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcbi0tXG5uZXQvbWFjODAyMTEvbGVkLmg9NzE9aWVlZTgwMjExX3RwdF9sZWRfdHJpZ190eChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwgaW50IGJ5dGVzKVxubmV0L21hYzgwMjExL2xlZC5oLTcyLXtcbm5ldC9tYWM4MDIxMS9sZWQuaDo3MzojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9sZWQuaC03NC1cdGlmIChhdG9taWNfcmVhZChcdTAwMjZsb2NhbC1cdTAwM2V0cHRfbGVkX2FjdGl2ZSkpXG4tLVxubmV0L21hYzgwMjExL2xlZC5oPTgwPWllZWU4MDIxMV90cHRfbGVkX3RyaWdfcngoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsIGludCBieXRlcylcbm5ldC9tYWM4MDIxMS9sZWQuaC04MS17XG5uZXQvbWFjODAyMTEvbGVkLmg6ODI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvbGVkLmgtODMtXHRpZiAoYXRvbWljX3JlYWQoXHUwMDI2bG9jYWwtXHUwMDNldHB0X2xlZF9hY3RpdmUpKVxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmM9MTEzOD1pbnQgaWVlZTgwMjExX3JlZ2lzdGVyX2h3KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmMtMTM5My1cbm5ldC9tYWM4MDIxMS9tYWluLmM6MTM5NDojaWZuZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEzOTUtXHQvKiBtZXNoIGRlcGVuZHMgb24gS2NvbmZpZywgYnV0IGRyaXZlcnMgc2hvdWxkIHNldCBpdCBpZiB0aGV5IHdhbnQgKi9cbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5oPTM3OD12b2lkIG1lc2hfcGF0aF9yZWZyZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9tZXNoLmgtMzgwLVxubmV0L21hYzgwMjExL21lc2guaDozODE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvbWVzaC5oLTM4Mi1zdGF0aWMgaW5saW5lXG4tLVxubmV0L21hYzgwMjExL29mZmNoYW5uZWwuYz04MTI9aW50IGllZWU4MDIxMV9tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4tLVxubmV0L21hYzgwMjExL29mZmNoYW5uZWwuYy04NDEtXHRcdFx0bmVlZF9vZmZjaGFuID0gdHJ1ZTtcbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmM6ODQyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL29mZmNoYW5uZWwuYy04NDMtXHRcdGZhbGx0aHJvdWdoO1xuLS1cbm5ldC9tYWM4MDIxMS9yYXRlLmM9MjQ9c3RhdGljIERFRklORV9NVVRFWChyYXRlX2N0cmxfbXV0ZXgpO1xubmV0L21hYzgwMjExL3JhdGUuYy0yNS1cbm5ldC9tYWM4MDIxMS9yYXRlLmM6MjY6c3RhdGljIGNoYXIgKmllZWU4MDIxMV9kZWZhdWx0X3JjX2FsZ28gPSBDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVDtcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjctbW9kdWxlX3BhcmFtKGllZWU4MDIxMV9kZWZhdWx0X3JjX2FsZ28sIGNoYXJwLCAwNjQ0KTtcbi0tXG5uZXQvbWFjODAyMTEvcmF0ZS5jPTIxNj1pZWVlODAyMTFfcmF0ZV9jb250cm9sX29wc19nZXQoY29uc3QgY2hhciAqbmFtZSlcbi0tXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTIzMi1cdC8qIE5vdGU6IGNoZWNrIGZvciBcdTAwM2UgMCBpcyBpbnRlbnRpb25hbCB0byBhdm9pZCBjbGFuZyB3YXJuaW5nICovXG5uZXQvbWFjODAyMTEvcmF0ZS5jOjIzMzpcdGlmICghb3BzIFx1MDAyNlx1MDAyNiAoc3RybGVuKENPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUKSBcdTAwM2UgMCkpXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTIzNC1cdFx0LyogdHJ5IGJ1aWx0LWluIG9uZSBpZiBzcGVjaWZpYyBhbGcgcmVxdWVzdGVkIGJ1dCBub3QgZm91bmQgKi9cbm5ldC9tYWM4MDIxMS9yYXRlLmM6MjM1Olx0XHRvcHMgPSBpZWVlODAyMTFfdHJ5X3JhdGVfY29udHJvbF9vcHNfZ2V0KENPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUKTtcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjM2LVxuLS1cbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjQxLVxubmV0L21hYzgwMjExL3JhdGUuYzoyNDI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTI0My1zdGF0aWMgc3NpemVfdCByY25hbWVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJidWYsXG4tLVxubmV0L21hYzgwMjExL3JhdGUuYz0yODE9c3RhdGljIHZvaWQgcmF0ZV9jb250cm9sX2ZyZWUoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL3JhdGUuYy0yODUtXG5uZXQvbWFjODAyMTEvcmF0ZS5jOjI4NjojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjg3LVx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGxvY2FsLVx1MDAzZWRlYnVnZnMucmNkaXIpO1xuLS1cbm5ldC9tYWM4MDIxMS9yYXRlLmg9NTU9c3RhdGljIGlubGluZSB2b2lkIHJhdGVfY29udHJvbF9hZGRfc3RhX2RlYnVnZnMoc3RydWN0IHN0YV9pbmZvICpzdGEpXG5uZXQvbWFjODAyMTEvcmF0ZS5oLTU2LXtcbm5ldC9tYWM4MDIxMS9yYXRlLmg6NTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvcmF0ZS5oLTU4LVx0c3RydWN0IHJhdGVfY29udHJvbF9yZWYgKnJlZiA9IHN0YS1cdTAwM2VyYXRlX2N0cmw7XG4tLVxubmV0L21hYzgwMjExL3JhdGUuaD02Nz1zdGF0aWMgaW5saW5lIHZvaWQgcmF0ZV9jb250cm9sX2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxubmV0L21hYzgwMjExL3JhdGUuaC02OC17XG5uZXQvbWFjODAyMTEvcmF0ZS5oOjY5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL3JhdGUuaC03MC1cdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNkaXI7XG4tLVxubmV0L21hYzgwMjExL3JhdGUuaD05ND12b2lkIHJhdGVfY29udHJvbF9kZWluaXRpYWxpemUoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpO1xuLS1cbm5ldC9tYWM4MDIxMS9yYXRlLmgtOTctLyogUmF0ZSBjb250cm9sIGFsZ29yaXRobXMgKi9cbm5ldC9tYWM4MDIxMS9yYXRlLmg6OTg6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9SQ19NSU5TVFJFTFxubmV0L21hYzgwMjExL3JhdGUuaC05OS1pbnQgcmM4MDIxMV9taW5zdHJlbF9pbml0KHZvaWQpO1xuLS1cbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM9MTA1OT1taW5zdHJlbF9odF91cGRhdGVfc3RhdHMoc3RydWN0IG1pbnN0cmVsX3ByaXYgKm1wLCBzdHJ1Y3QgbWluc3RyZWxfaHRfc3RhICptaSlcbi0tXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jLTExODEtXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jOjExODI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jLTExODMtXHQvKiB1c2UgZml4ZWQgaW5kZXggaWYgc2V0ICovXG4tLVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYz0xNTk1PW1pbnN0cmVsX2h0X2dldF9yYXRlKHZvaWQgKnByaXYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHZvaWQgKnByaXZfc3RhLFxuLS1cbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmMtMTYwNi1cbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM6MTYwNzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmMtMTYwOC1cdGlmIChtcC1cdTAwM2VmaXhlZF9yYXRlX2lkeCAhPSAtMSlcbi0tXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jPTE5MTU9bWluc3RyZWxfaHRfYWxsb2Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xOTQ4LVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYzoxOTQ5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xOTUwLXN0YXRpYyB2b2lkIG1pbnN0cmVsX2h0X2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB2b2lkICpwcml2LFxuLS1cbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM9MTk4Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJhdGVfY29udHJvbF9vcHMgbWFjODAyMTFfbWluc3RyZWxfaHQgPSB7XG4tLVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xOTkzLVx0LmZyZWUgPSBtaW5zdHJlbF9odF9mcmVlLFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYzoxOTk0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xOTk1LVx0LmFkZF9kZWJ1Z2ZzID0gbWluc3RyZWxfaHRfYWRkX2RlYnVnZnMsXG4tLVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuaD03NT1zdHJ1Y3QgbWluc3RyZWxfcHJpdiB7XG4tLVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuaC04NS1cbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0Lmg6ODY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5oLTg3LVx0Lypcbi0tXG5uZXQvbWFjODAyMTEvcnguYz0xMDUxPXN0YXRpYyB2b2lkIGllZWU4MDIxMV92ZXJpZnlfYWxpZ25tZW50KHN0cnVjdCBpZWVlODAyMTFfcnhfZGF0YSAqcngpXG5uZXQvbWFjODAyMTEvcnguYy0xMDUyLXtcbm5ldC9tYWM4MDIxMS9yeC5jOjEwNTM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXG5uZXQvbWFjODAyMTEvcnguYy0xMDU0LVx0V0FSTl9PTl9PTkNFKCh1bnNpZ25lZCBsb25nKXJ4LVx1MDAzZXNrYi1cdTAwM2VkYXRhIFx1MDAyNiAxKTtcbi0tXG5uZXQvbWFjODAyMTEvcnguYz0yNzg5PWllZWU4MDIxMV9kZWxpdmVyX3NrYihzdHJ1Y3QgaWVlZTgwMjExX3J4X2RhdGEgKnJ4KVxuLS1cbm5ldC9tYWM4MDIxMS9yeC5jLTI4ODgtXG5uZXQvbWFjODAyMTEvcnguYzoyODg5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3J4LmMtMjg5MC1zdGF0aWMgYm9vbFxuLS1cbm5ldC9tYWM4MDIxMS9yeC5jPTI5NTY9aWVlZTgwMjExX3J4X21lc2hfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwgc3RydWN0IHN0YV9pbmZvICpzdGEsXG4tLVxubmV0L21hYzgwMjExL3J4LmMtMjk1OC17XG5uZXQvbWFjODAyMTEvcnguYzoyOTU5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3J4LmMtMjk2MC1cdHN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCAqaWZtc2ggPSBcdTAwMjZzZGF0YS1cdTAwM2V1Lm1lc2g7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9NzI9c3RhdGljIGNvbnN0IHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyBzdGFfcmh0X3BhcmFtcyA9IHtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy03Ny1cdC5rZXlfbGVuID0gRVRIX0FMRU4sXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo3ODpcdC5tYXhfc2l6ZSA9IENPTkZJR19NQUM4MDIxMV9TVEFfSEFTSF9NQVhfU0laRSxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTc5LX07XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9ODE9c3RhdGljIGNvbnN0IHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyBsaW5rX3N0YV9yaHRfcGFyYW1zID0ge1xuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTg2LVx0LmtleV9sZW4gPSBFVEhfQUxFTixcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjg3Olx0Lm1heF9zaXplID0gQ09ORklHX01BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFLFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtODgtfTtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz00NjE9dm9pZCBzdGFfaW5mb19mcmVlKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLCBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSlcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy00OTktXHRrZnJlZShyY3VfZGVyZWZlcmVuY2VfcmF3KHN0YS1cdTAwM2VzdGEucmF0ZXMpKTtcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjUwMDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTUwMS1cdGtmcmVlKHN0YS1cdTAwM2VtZXNoKTtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz02MjY9X19zdGFfaW5mb19hbGxvYyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy02NjAtXHR3aXBoeV93b3JrX2luaXQoXHUwMDI2c3RhLVx1MDAzZWFtcGR1X21sbWUud29yaywgaWVlZTgwMjExX2JhX3Nlc3Npb25fd29yayk7XG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo2NjE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy02NjItXHRpZiAoaWVlZTgwMjExX3ZpZl9pc19tZXNoKFx1MDAyNnNkYXRhLVx1MDAzZXZpZikpIHtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy03ODgtXHRzdGFfaW5mb19mcmVlX2xpbmsoXHUwMDI2c3RhLVx1MDAzZWRlZmxpbmspO1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6Nzg5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzkwLVx0a2ZyZWUoc3RhLVx1MDAzZW1lc2gpO1xuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTExMDA9c3RhdGljIHZvaWQgX19zdGFfaW5mb19yZWNhbGNfdGltKHN0cnVjdCBzdGFfaW5mbyAqc3RhLCBib29sIGlnbm9yZV9wZW5kaW5nKVxuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTExMTQtXHRcdHBzID0gXHUwMDI2c3RhLVx1MDAzZXNkYXRhLVx1MDAzZWJzcy1cdTAwM2Vwcztcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjExMTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0xMTE2LVx0fSBlbHNlIGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXHUwMDI2c3RhLVx1MDAzZXNkYXRhLVx1MDAzZXZpZikpIHtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0yNzIxPXN0YXRpYyBpbmxpbmUgdTY0IHN0YV9nZXRfc3RhdHNfYnl0ZXMoc3RydWN0IGllZWU4MDIxMV9zdGFfcnhfc3RhdHMgKnJ4c3RhdHMpXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtMjczMy1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjI3MzQ6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0yNzM1LXN0YXRpYyB2b2lkIHN0YV9zZXRfbWVzaF9zaW5mbyhzdHJ1Y3Qgc3RhX2luZm8gKnN0YSxcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0zMDMxPXZvaWQgc3RhX3NldF9zaW5mbyhzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHN0YXRpb25faW5mbyAqc2luZm8sXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtMzIxNi1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjMyMTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0zMjE4LVx0aWYgKGllZWU4MDIxMV92aWZfaXNfbWVzaChcdTAwMjZzZGF0YS1cdTAwM2V2aWYpKVxuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oPTUyNT1zdHJ1Y3QgbGlua19zdGFfaW5mbyB7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtNTc2LVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6NTc3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtNTc4LVx0c3RydWN0IGRlbnRyeSAqZGVidWdmc19kaXI7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg9NzE0PXN0cnVjdCBzdGFfaW5mbyB7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtNzMxLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6NzMyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtNzMzLVx0c3RydWN0IG1lc2hfc3RhICptZXNoO1xuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTc3Mi1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjc3MzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTc3NC1cdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZGlyO1xuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oPTc5OT1zdGF0aWMgaW5saW5lIGVudW0gbmw4MDIxMV9wbGlua19zdGF0ZSBzdGFfcGxpbmtfc3RhdGUoc3RydWN0IHN0YV9pbmZvICpzdGEpXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC04MDAte1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6ODAxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtODAyLVx0cmV0dXJuIHN0YS1cdTAwM2VtZXNoLVx1MDAzZXBsaW5rX3N0YXRlO1xuLS1cbm5ldC9tYWM4MDIxMS90ZXN0cy8ua3VuaXRjb25maWc9Mj1DT05GSUdfQ0ZHODAyMTE9eVxubmV0L21hYzgwMjExL3Rlc3RzLy5rdW5pdGNvbmZpZzozOkNPTkZJR19NQUM4MDIxMT15XG5uZXQvbWFjODAyMTEvdGVzdHMvLmt1bml0Y29uZmlnOjQ6Q09ORklHX01BQzgwMjExX0tVTklUX1RFU1Q9eVxuLS1cbm5ldC9tYWM4MDIxMS90ZXN0cy9NYWtlZmlsZT0xPW1hYzgwMjExLXRlc3RzLXkgJiM0Mzs9IG1vZHVsZS5vIHV0aWwubyBlbGVtcy5vIG1mcC5vIHRwZS5vIGNoYW4tbW9kZS5vIHMxZ190aW0ubyB0dGxtLm9cbm5ldC9tYWM4MDIxMS90ZXN0cy9NYWtlZmlsZS0yLVxubmV0L21hYzgwMjExL3Rlc3RzL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01BQzgwMjExX0tVTklUX1RFU1QpICYjNDM7PSBtYWM4MDIxMS10ZXN0cy5vXG4tLVxubmV0L21hYzgwMjExL3RyYWNlLmMtMTMtXG5uZXQvbWFjODAyMTEvdHJhY2UuYzoxNDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL3RyYWNlLmMtMTUtdm9pZCBfX3NkYXRhX2luZm8oY29uc3QgY2hhciAqZm10LCAuLi4pXG4tLVxubmV0L21hYzgwMjExL3RyYWNlX21zZy5oLTYtXG5uZXQvbWFjODAyMTEvdHJhY2VfbXNnLmg6NzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL3RyYWNlX21zZy5oLTgtXG4tLVxubmV0L21hYzgwMjExL3R4LmM9MjcwPWllZWU4MDIxMV90eF9oX2NoZWNrX2Fzc29jKHN0cnVjdCBpZWVlODAyMTFfdHhfZGF0YSAqdHgpXG4tLVxubmV0L21hYzgwMjExL3R4LmMtMzA1LVx0XHRcdCAgICAgaWVlZTgwMjExX2lzX2RhdGEoaGRyLVx1MDAzZWZyYW1lX2NvbnRyb2wpKSkge1xubmV0L21hYzgwMjExL3R4LmM6MzA2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL3R4LmMtMzA3LVx0XHRcdHNkYXRhX2luZm8odHgtXHUwMDNlc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3R4LmM9MTY4OT1zdGF0aWMgYm9vbCBpZWVlODAyMTFfdHhfZnJhZ3Moc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL3R4LmMtMTcwMi1cbm5ldC9tYWM4MDIxMS90eC5jOjE3MDM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXG5uZXQvbWFjODAyMTEvdHguYy0xNzA0LVx0XHRpZiAoV0FSTl9PTl9PTkNFKHEgXHUwMDNlPSBsb2NhbC1cdTAwM2Vody5xdWV1ZXMpKSB7XG4tLVxubmV0L21hYzgwMjExL3R4LmM9MjUxMD1pbnQgaWVlZTgwMjExX2xvb2t1cF9yYV9zdGEoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3R4LmMtMjUzNC1cdFx0YnJlYWs7XG5uZXQvbWFjODAyMTEvdHguYzoyNTM1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3R4LmMtMjUzNi1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbi0tXG5uZXQvbWFjODAyMTEvdHguYz0yNjQxPXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaWVlZTgwMjExX2J1aWxkX2hkcihzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvdHguYy0yNjY3LVxubmV0L21hYzgwMjExL3R4LmM6MjY2ODojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS90eC5jLTI2NjktXHRpZiAobG9jYWwtXHUwMDNlZm9yY2VfdHhfc3RhdHVzKVxuLS1cbm5ldC9tYWM4MDIxMS90eC5jLTI3NDAtXHRcdGJyZWFrO1xubmV0L21hYzgwMjExL3R4LmM6Mjc0MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS90eC5jLTI3NDItXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XG4tLVxubmV0L21hYzgwMjExL3R4LmMtMjkyOC1cdFx0ICAgICAgIWllZWU4MDIxMV9pc19vdXJfYWRkcihzZGF0YSwgc2tiLVx1MDAzZWRhdGEgJiM0MzsgRVRIX0FMRU4sIE5VTEwpKSkpIHtcbm5ldC9tYWM4MDIxMS90eC5jOjI5Mjk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXG5uZXQvbWFjODAyMTEvdHguYy0yOTMwLVx0XHRuZXRfaW5mb19yYXRlbGltaXRlZChcJiMzNDslczogZHJvcHBlZCBmcmFtZSB0byAlcE0gKHVuYXV0aG9yaXplZCBwb3J0KVxcblwmIzM0Oyxcbi0tXG5uZXQvbWFjODAyMTEvdHguYy0zMDAxLVxubmV0L21hYzgwMjExL3R4LmM6MzAwMjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS90eC5jLTMwMDMtXHRpZiAobWVzaGhkcmxlbiBcdTAwM2UgMClcbi0tXG5uZXQvbWFjODAyMTEvdHguYy0zMDQ4LVx0XHQgICAgbGlua19pZCAhPSBJRUVFODAyMTFfTElOS19VTlNQRUNJRklFRCkge1xubmV0L21hYzgwMjExL3R4LmM6MzA0OTojaWZkZWYgQ09ORklHX01BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS90eC5jLTMwNTAtXHRcdFx0bmV0X2luZm9fcmF0ZWxpbWl0ZWQoXCYjMzQ7JXM6IGRyb3BwZWQgZnJhbWUgdG8gJXBNIHdpdGggYmFkIGxpbmsgSUQgcmVxdWVzdCAoJWQgdnMuICVkKVxcblwmIzM0Oyxcbi0tXG5uZXQvbWFjODAyMTEvdHguYz0zNzI5PXZvaWQgX19pZWVlODAyMTFfeG1pdF9mYXN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS90eC5jLTM3NzUtXG5uZXQvbWFjODAyMTEvdHguYzozNzc2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL3R4LmMtMzc3Ny1cdGlmIChsb2NhbC1cdTAwM2Vmb3JjZV90eF9zdGF0dXMpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU5NTUKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAzNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgUzFHIFRXVCBTZXR1cCoqCgpPa2F5LCB0aGUgYE1BQzgwMjExYCBjb25maWcgaXMgZGVmaW5pdGVseSBpbiBwbGFjZSwgc28gd2UgY2FuIGFzc3VtZSB0aGUgcmVsZXZhbnQgaW5mcmFzdHJ1Y3R1cmUgaXMgYXZhaWxhYmxlLiBUaGUga2V5IGZ1bmN0aW9uIEkmIzM5O3ZlIGJlZW4gZm9jdXNpbmcgb24gaXMgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYC4gVGhhdCYjMzk7cyB0aGUgb25lIHRoYXQmIzM5O3MgYmVlbiBtb2RpZmllZCwgYW5kIHRoZSBwYXRjaCBpcyBsb2NhdGVkIGluIGBuZXQvbWFjODAyMTEvczFnLmNgLgoKTm93LCBiZWZvcmUgd2UgZGVjbGFyZSB2aWN0b3J5LCBsZXQmIzM5O3MgdGhpbmsgY3JpdGljYWxseTogYXJlIHRoZXJlIG90aGVyIGVudHJ5IHBvaW50cyBvciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IGFsc28gbmVlZCBmdXp6aW5nPyBIbW1tLCBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGlzIHN0YXRpYywgd2hpY2ggaXMgYSBwb3RlbnRpYWwgcmVkIGZsYWcuIEJ1dCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGNhbGxlZCBieSBgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uYC4gVGhhdCYjMzk7cyBhIGdvb2QgY2FuZGlkYXRlIGZvciBgRm9jdXNTeW1ib2xzYC4gTGV0JiMzOTtzIGFkZCB0aGF0LiBBbmQgYmVjYXVzZSBvZiB0aGUgc3RhdGljIG5hdHVyZSBvZiBzZXR1cCwgaXQgbWFrZXMgc2Vuc2UgdG8gaW5jbHVkZSBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGFzIHdlbGwuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRoYXQgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpcyByZWFjaGFibGUgZnJvbSBgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uYCwgd2hpY2ggc2VlbXMgbGlrZWx5LiBZZXMsIGhlcmUgaXQgaXMgaW4gdGhlIGNvZGU6CgpgYGBjCgljYXNlIFdMQU5fUzFHX1RXVF9TRVRVUDoKCQlpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cChzZGF0YSwgc3RhLCBza2IpOwoJCWJyZWFrOwpgYGAKClBlcmZlY3QuIE5vdywgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncywgZXZlbiB0aG91Z2ggdGhlIGN1cnJlbnQgcGF0Y2ggaXMgYWxsIGFib3V0IFRhcmdldCBXYWtlIFRpbWUgKFRXVCkgaW4gUzFHIChTdWItMSBHSHosIDgwMi4xMWFoKS4gSXMgdGhlcmUgYSBzcGVjaWZpYyBjb25maWcgZm9yIFMxRyBpdHNlbGYgdGhhdCB3ZSBzaG91bGQgYmUgYXdhcmUgb2Y/IFRoYXQmIzM5O3MgdGhlIG5leHQgY2hlY2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX01BQzgwMjExX1MxRyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwMzoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNjc5NQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipTMUcgQ29uZmlndXJhdGlvbiBDaGVja3BvaW50KioKCkFscmlnaHQsIHNvIHRoZXJlJiMzOTtzIG5vIGV4cGxpY2l0bHkgZGVmaW5lZCBjb25maWd1cmF0aW9uIGJsb2NrIGZvciBTMUcgKFNpbmdsZS1TcGF0aWFsIFN0cmVhbSwgMSBHSHogYmFuZCkgd2l0aGluIHRoZSBleGlzdGluZyBzZXR1cC4gVGhhdCYjMzk7cyB0aGUgZmlyc3QgdGhpbmcgdG8gbm90ZS4gTm93LCB3aGVyZSBkbyB3ZSB0eXBpY2FsbHkgaGFuZGxlIHRoZSBUaW1lIFdha2UtdXAgKFRXVCkgc2V0dXAgZm9yIFMxRyBzcGVjaWZpY2FsbHk/IFNlZW1zIGxpa2UgSSBzaG91bGQgcmV2aXNpdCB0aGUgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBmdW5jdGlvbiBhZ2Fpbi4gSSB3YW50IHRvIG1ha2UgYWJzb2x1dGVseSBzdXJlIHdlJiMzOTtyZSBoYW5kbGluZyBhbGwgdGhlIHNwZWNpZmljIG51YW5jZXMgb2YgUzFHIGNvcnJlY3RseSB3aXRoaW4gdGhhdCBmdW5jdGlvbi4gVGltZSB0byBkaXZlIGJhY2sgaW4gYW5kIGRvdWJsZS1jaGVjayBpdHMgbG9naWMsIGVzcGVjaWFsbHkgaW4gcmVsYXRpb24gdG8gVFdUIG9wZXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvczFnLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA5NiwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDk2Olx0c3RhdGljIHZvaWRcbiAgOTc6XHRpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiAgOTg6XHRcdFx0XHQgICBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiAgOTk6XHR7XG4gMTAwOlx0XHRzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQgPSAodm9pZCAqKXNrYi1cdTAwM2VkYXRhO1xuIDEwMTpcdFx0c3RydWN0IGllZWU4MDIxMV90d3Rfc2V0dXAgKnR3dCA9ICh2b2lkICopbWdtdC1cdTAwM2V1LmFjdGlvbi5zMWcudmFyaWFibGU7XG4gMTAyOlx0XHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9wYXJhbXMgKnR3dF9hZ3J0ID0gKHZvaWQgKil0d3QtXHUwMDNlcGFyYW1zO1xuIDEwMzpcdFxuIDEwNDpcdFx0aWYgKCEodHd0LVx1MDAzZWNvbnRyb2wgXHUwMDI2IElFRUU4MDIxMV9UV1RfQ09OVFJPTF9ORUdfVFlQRV9CUk9BRENBU1QpIFx1MDAyNlx1MDAyNlxuIDEwNTpcdFx0ICAgIHR3dC1cdTAwM2VsZW5ndGggXHUwMDNjIHNpemVvZih0d3QtXHUwMDNlY29udHJvbCkgJiM0Mzsgc2l6ZW9mKCp0d3RfYWdydCkpXG4gMTA2Olx0XHRcdHJldHVybjtcbiAxMDc6XHRcbiAxMDg6XHRcdHR3dF9hZ3J0LVx1MDAzZXJlcV90eXBlIFx1MDAyNj0gY3B1X3RvX2xlMTYofklFRUU4MDIxMV9UV1RfUkVRVFlQRV9SRVFVRVNUKTtcbiAxMDk6XHRcbiAxMTA6XHRcdC8qIGJyb2FkY2FzdCBUV1Qgbm90IHN1cHBvcnRlZCB5ZXQgKi9cbiAxMTE6XHRcdGlmICh0d3QtXHUwMDNlY29udHJvbCBcdTAwMjYgSUVFRTgwMjExX1RXVF9DT05UUk9MX05FR19UWVBFX0JST0FEQ0FTVCkge1xuIDExMjpcdFx0XHR0d3RfYWdydC1cdTAwM2VyZXFfdHlwZSBcdTAwMjY9XG4gMTEzOlx0XHRcdFx0fmNwdV90b19sZTE2KElFRUU4MDIxMV9UV1RfUkVRVFlQRV9TRVRVUF9DTUQpO1xuIDExNDpcdFx0XHR0d3RfYWdydC1cdTAwM2VyZXFfdHlwZSB8PVxuIDExNTpcdFx0XHRcdGxlMTZfZW5jb2RlX2JpdHMoVFdUX1NFVFVQX0NNRF9SRUpFQ1QsXG4gMTE2Olx0XHRcdFx0XHRcdCBJRUVFODAyMTFfVFdUX1JFUVRZUEVfU0VUVVBfQ01EKTtcbiAxMTc6XHRcdFx0Z290byBvdXQ7XG4gMTE4Olx0XHR9XG4gMTE5Olx0XG4gMTIwOlx0XHQvKiBUV1QgSW5mb3JtYXRpb24gbm90IHN1cHBvcnRlZCB5ZXQgKi9cbiAxMjE6XHRcdHR3dC1cdTAwM2Vjb250cm9sIHw9IElFRUU4MDIxMV9UV1RfQ09OVFJPTF9SWF9ESVNBQkxFRDtcbiAxMjI6XHRcbiAxMjM6XHRcdGRydl9hZGRfdHd0X3NldHVwKHNkYXRhLVx1MDAzZWxvY2FsLCBzZGF0YSwgXHUwMDI2c3RhLVx1MDAzZXN0YSwgdHd0KTtcbiAxMjQ6XHRvdXQ6XG4gMTI1Olx0XHRpZWVlODAyMTFfczFnX3NlbmRfdHd0X3NldHVwKHNkYXRhLCBtZ210LVx1MDAzZXNhLCBzZGF0YS1cdTAwM2V2aWYuYWRkciwgdHd0KTtcbiAxMjY6XHR9XG4gMTI3Olx0XG4gMTI4Olx0c3RhdGljIHZvaWRcbiAxMjk6XHRpZWVlODAyMTFfczFnX3J4X3R3dF90ZWFyZG93bihzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiAxMzA6XHRcdFx0XHQgICAgICBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiAxMzE6XHR7XG4gMTMyOlx0XHRzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQgPSAoc3RydWN0IGllZWU4MDIxMV9tZ210ICopc2tiLVx1MDAzZWRhdGE7XG4gMTMzOlx0XG4gMTM0Olx0XHRkcnZfdHd0X3RlYXJkb3duX3JlcXVlc3Qoc2RhdGEtXHUwMDNlbG9jYWwsIHNkYXRhLCBcdTAwMjZzdGEtXHUwMDNlc3RhLFxuIDEzNTpcdFx0XHRcdFx0IG1nbXQtXHUwMDNldS5hY3Rpb24uczFnLnZhcmlhYmxlWzBdKTtcbiAxMzY6XHR9XG4gMTM3Olx0XG4gMTM4Olx0c3RhdGljIHZvaWRcbiAxMzk6XHRpZWVlODAyMTFfczFnX3R4X3R3dF9zZXR1cF9mYWlsKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuIDE0MDpcdFx0XHRcdFx0c3RydWN0IHN0YV9pbmZvICpzdGEsIHN0cnVjdCBza19idWZmICpza2IpXG4gMTQxOlx0e1xuIDE0MjpcdFx0c3RydWN0IGllZWU4MDIxMV9tZ210ICptZ210ID0gKHN0cnVjdCBpZWVlODAyMTFfbWdtdCAqKXNrYi1cdTAwM2VkYXRhO1xuIDE0MzpcdFx0c3RydWN0IGllZWU4MDIxMV90d3Rfc2V0dXAgKnR3dCA9ICh2b2lkICopbWdtdC1cdTAwM2V1LmFjdGlvbi5zMWcudmFyaWFibGU7XG4gMTQ0Olx0XHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9wYXJhbXMgKnR3dF9hZ3J0ID0gKHZvaWQgKil0d3QtXHUwMDNlcGFyYW1zO1xuIDE0NTpcdFx0dTggZmxvd2lkID0gbGUxNl9nZXRfYml0cyh0d3RfYWdydC1cdTAwM2VyZXFfdHlwZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgxMjgKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBUV1QgU2V0dXAgRnVuY3Rpb25hbGl0eSoqCgpPa2F5LCBzbyB0aGUgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBmdW5jdGlvbiDigJMgeWVzLCB0aGF0JiMzOTtzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLCB3aGljaCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgdW5kZXJzdGFuZCBpdCBoYW5kbGVzIHRoZSBUV1QgKFRhcmdldCBXYWtlIFRpbWUpIHNldHVwIGFjdGlvbiBmcmFtZXMuIFRoZSByZWNlbnQgcGF0Y2ggaW50cm9kdWNlcyBhIGNydWNpYWwgYm91bmRzIGNoZWNrLCBzcGVjaWZpY2FsbHkgdG8gcHJldmVudCBhbnkgb3V0LW9mLWJvdW5kcyBtZW1vcnkgYWNjZXNzLiBUaGlzIGlzLCB3aXRob3V0IGEgZG91YnQsIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYW5kIGFkZHJlc3NlcyBhIHBvdGVudGlhbCB2dWxuZXJhYmlsaXR5LgoKTm93LCBsZXQmIzM5O3MgbWFrZSBzdXJlIHRoZSBzeW1ib2xzIGFyZSBwcm9wZXJseSBkb2N1bWVudGVkLiBUaGUgY29yZSBGb2N1c1N5bWJvbHMgZm9yIHRoaXMgYXJlYSBzaG91bGQgYmUgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBhbmQgYGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbmAsIGVuc3VyaW5nIHRoZXkgYXJlIGNvcnJlY3RseSBoaWdobGlnaHRlZCBhcyB0aGUga2V5IGZ1bmN0aW9ucyBoZXJlLiBUaGUgRW5hYmxlQ29uZmlncyBzaG91bGQgYmUgbGlzdGVkIGFzIGBNQUM4MDIxMWAuIFRoYXQgbWFrZXMgc2Vuc2UgZ2l2ZW4gdGhlIGNvbnRleHQuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSYjMzk7bSBnb2luZyB0byB0YWtlIGEgbW9tZW50IGFuZCBkb3VibGUtY2hlY2s7IEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcgZWxzZSBpbiB0ZXJtcyBvZiBjb25maWd1cmF0aW9ucywgb3IgYW55IG90aGVyIHJlbGF0ZWQgZmxhZ3MuIEFsd2F5cyBhIGdvb2QgcHJhY3RpY2UgdG8gYmUgdGhvcm91Z2ghCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX01BQzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwMzoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODU3MAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDc2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWU6CgoqKk5hdmlnYXRpbmcgS2VybmVsIENvbmZpZ3VyYXRpb24gUGF0aHMqKgoKT2theSwgaG9sZCBvbiBhIHNlY29uZC4gSSYjMzk7bSBwcmV0dHkgc3VyZSBJJiMzOTt2ZSBzZWVuIHRoZSBgbWFjODAyMTFgIGNvbmZpZ3VyYXRpb24gZmlsZXMgYmVmb3JlLiBCdXQsIEkgZG9uJiMzOTt0IHJlY2FsbCBhIGBuZXQvbWFjODAyMTEvS2NvbmZpZ2AgZXhpc3RpbmcuIElzIHRoYXQgY29ycmVjdD8gSXMgdGhhdCBwYXRoIG9mZiBieSBvbmU/IFdhaXQsIGlzIGl0IGBuZXQvbWFjODAyMTEvS2NvbmZpZ2A/IE5vLCB0aGF0IGNhbiYjMzk7dCBiZSByaWdodCBlaXRoZXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBpbiB0aGUgY29ycmVjdCBkaXJlY3RvcnkgaW4gdGhlIGtlcm5lbCB0cmVlLiBPa2F5LCBsZXQmIzM5O3MgdmVyaWZ5LiBJIGFtIGdvaW5nIHRvIGRvdWJsZS1jaGVjayBteSBhc3N1bXB0aW9uIGFuZCB0YWtlIGEgbG9vayBpbnNpZGUgdGhlIGBuZXQvbWFjODAyMTEvYCBkaXJlY3RvcnkgdG8gbWFrZSBzdXJlIEkmIzM5O20gb24gdGhlIHJpZ2h0IHRyYWNrIGJlZm9yZSBtb3Zpbmcgb24uIEkgbmVlZCB0byBnZXQgdGhpcyBjb3JyZWN0IHRvIHByb2NlZWQgd2l0aCB0aGUgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2FlYWRfYXBpLmMmIzM0OywKICAgICYjMzQ7YWVhZF9hcGkuaCYjMzQ7LAogICAgJiMzNDthZXNfY2NtLmgmIzM0OywKICAgICYjMzQ7YWVzX2NtYWMuYyYjMzQ7LAogICAgJiMzNDthZXNfY21hYy5oJiMzNDssCiAgICAmIzM0O2Flc19nY20uaCYjMzQ7LAogICAgJiMzNDthZXNfZ21hYy5jJiMzNDssCiAgICAmIzM0O2Flc19nbWFjLmgmIzM0OywKICAgICYjMzQ7YWdnLXJ4LmMmIzM0OywKICAgICYjMzQ7YWdnLXR4LmMmIzM0OywKICAgICYjMzQ7YWlydGltZS5jJiMzNDssCiAgICAmIzM0O2FwLmMmIzM0OywKICAgICYjMzQ7Y2ZnLmMmIzM0OywKICAgICYjMzQ7Y2hhbi5jJiMzNDssCiAgICAmIzM0O2RlYnVnLmgmIzM0OywKICAgICYjMzQ7ZGVidWdmcy5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzX2tleS5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnNfa2V5LmgmIzM0OywKICAgICYjMzQ7ZGVidWdmc19uZXRkZXYuYyYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzX25ldGRldi5oJiMzNDssCiAgICAmIzM0O2RlYnVnZnNfc3RhLmMmIzM0OywKICAgICYjMzQ7ZGVidWdmc19zdGEuaCYjMzQ7LAogICAgJiMzNDtkcml2ZXItb3BzLmMmIzM0OywKICAgICYjMzQ7ZHJpdmVyLW9wcy5oJiMzNDssCiAgICAmIzM0O2Ryb3AuaCYjMzQ7LAogICAgJiMzNDtlaHQuYyYjMzQ7LAogICAgJiMzNDtldGh0b29sLmMmIzM0OywKICAgICYjMzQ7Zmlsc19hZWFkLmMmIzM0OywKICAgICYjMzQ7Zmlsc19hZWFkLmgmIzM0OywKICAgICYjMzQ7aGUuYyYjMzQ7LAogICAgJiMzNDtodC5jJiMzNDssCiAgICAmIzM0O2lic3MuYyYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfaS5oJiMzNDssCiAgICAmIzM0O2lmYWNlLmMmIzM0OywKICAgICYjMzQ7a2V5LmMmIzM0OywKICAgICYjMzQ7a2V5LmgmIzM0OywKICAgICYjMzQ7bGVkLmMmIzM0OywKICAgICYjMzQ7bGVkLmgmIzM0OywKICAgICYjMzQ7bGluay5jJiMzNDssCiAgICAmIzM0O21haW4uYyYjMzQ7LAogICAgJiMzNDttZXNoLmMmIzM0OywKICAgICYjMzQ7bWVzaC5oJiMzNDssCiAgICAmIzM0O21lc2hfaHdtcC5jJiMzNDssCiAgICAmIzM0O21lc2hfcGF0aHRibC5jJiMzNDssCiAgICAmIzM0O21lc2hfcGxpbmsuYyYjMzQ7LAogICAgJiMzNDttZXNoX3BzLmMmIzM0OywKICAgICYjMzQ7bWVzaF9zeW5jLmMmIzM0OywKICAgICYjMzQ7bWxtZS5jJiMzNDssCiAgICAmIzM0O25hbi5jJiMzNDssCiAgICAmIzM0O29jYi5jJiMzNDssCiAgICAmIzM0O29mZmNoYW5uZWwuYyYjMzQ7LAogICAgJiMzNDtwYXJzZS5jJiMzNDssCiAgICAmIzM0O3BtLmMmIzM0OywKICAgICYjMzQ7cmF0ZS5jJiMzNDssCiAgICAmIzM0O3JhdGUuaCYjMzQ7LAogICAgJiMzNDtyYzgwMjExX21pbnN0cmVsX2h0LmMmIzM0OywKICAgICYjMzQ7cmM4MDIxMV9taW5zdHJlbF9odC5oJiMzNDssCiAgICAmIzM0O3JjODAyMTFfbWluc3RyZWxfaHRfZGVidWdmcy5jJiMzNDssCiAgICAmIzM0O3J4LmMmIzM0OywKICAgICYjMzQ7czFnLmMmIzM0OywKICAgICYjMzQ7c2Nhbi5jJiMzNDssCiAgICAmIzM0O3NwZWN0bWdtdC5jJiMzNDssCiAgICAmIzM0O3N0YV9pbmZvLmMmIzM0OywKICAgICYjMzQ7c3RhX2luZm8uaCYjMzQ7LAogICAgJiMzNDtzdGF0dXMuYyYjMzQ7LAogICAgJiMzNDt0ZGxzLmMmIzM0OywKICAgICYjMzQ7dGtpcC5jJiMzNDssCiAgICAmIzM0O3RraXAuaCYjMzQ7LAogICAgJiMzNDt0cmFjZS5jJiMzNDssCiAgICAmIzM0O3RyYWNlLmgmIzM0OywKICAgICYjMzQ7dHJhY2VfbXNnLmgmIzM0OywKICAgICYjMzQ7dHguYyYjMzQ7LAogICAgJiMzNDt1aHIuYyYjMzQ7LAogICAgJiMzNDt1dGlsLmMmIzM0OywKICAgICYjMzQ7dmh0LmMmIzM0OywKICAgICYjMzQ7d2JyZi5jJiMzNDssCiAgICAmIzM0O3dlcC5jJiMzNDssCiAgICAmIzM0O3dlcC5oJiMzNDssCiAgICAmIzM0O3dtZS5jJiMzNDssCiAgICAmIzM0O3dtZS5oJiMzNDssCiAgICAmIzM0O3dwYS5jJiMzNDssCiAgICAmIzM0O3dwYS5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBbCiAgICAmIzM0O3Rlc3RzJiMzNDsKICBdCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk1MzAKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiA4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGl0IHdlbnQgZG93bjoKCioqV2hlcmUmIzM5O3MgVGhhdCBLY29uZmlnPyEqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBgbmV0L21hYzgwMjExYCBkaXJlY3RvcnksIGFuZCBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBLY29uZmlnIGZpbGUsIGJlY2F1c2UsIHdlbGwsIHlvdSBuZWVkIGl0IGZvciB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiBCdXQgaXQmIzM5O3MganVzdCAqbm90KiB0aGVyZS4gU3RyYW5nZS4gTXkgZmlyc3QgdGhvdWdodCBpcywgaXMgaXQgcmVhbGx5IHN1cHBvc2VkIHRvIGJlIGluIGBuZXQvbWFjODAyMTEvYCwgb3IgaXMgaXQgY2xldmVybHkgcGxhY2VkIHNvbWV3aGVyZSBlbHNlPyBQZXJoYXBzIGl0JiMzOTtzIGluIGBuZXQvd2lyZWxlc3MvS2NvbmZpZ2A/IFRoYXQmIzM5O3MgdGhlIG1vc3QgbG9naWNhbCBwbGFjZSBpZiBpdCYjMzk7cyBub3QgdW5kZXIgYG1hYzgwMjExYC4gT3IsIGp1c3QgbWF5YmUsIEkmIzM5O20gc2ltcGx5IGJsaW5kIGFuZCBpdCYjMzk7cyBtaXMtbmFtZWQsIGV2ZW4gdGhvdWdoIGl0IHNob3VsZCBiZSBgbmV0L21hYzgwMjExL0tjb25maWdgIGFuZCBpdOKAmXMganVzdCBoaWRkZW4gaW4gdGhlcmUgc29tZXdoZXJlLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBgbmV0L3dpcmVsZXNzL0tjb25maWdgIGFuZCB0aGVuIG1heWJlIGBuZXQvS2NvbmZpZ2AsIGFuZCBnZXQgdGhpcyBzb3J0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVx0Ym9vbFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2Vcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2Vcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVx0c3RyaW5nXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcJiMzNDtTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBtYWM4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNjktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXHRib29sIFwmIzM0O0VuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVx0Ym9vbCBcJiMzNDtFbmFibGUgTEVEIHRyaWdnZXJzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctODctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctODktXHRib29sIFwmIzM0O0V4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL0tjb25maWctOTgtXHRib29sIFwmIzM0O1RyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cdGJvb2wgXCYjMzQ7U2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBIVCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjEwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjM2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXHRib29sIFwmIzM0O0V4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cdGludCBcJiMzNDtTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXCYjMzQ7IGlmIE1BQzgwMjExX0RFQlVHX01FTlVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIwNDUKCQkJCQkJCW91dHB1dDogMTY1CgkJCQkJCQl0aG91Z2h0czogMTk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGFzc2Vzc21lbnQgb2YgdGhpcyBwYXRjaDoKCioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIFZ1bG5lcmFiaWxpdHkgaW4gTUFDODAyMTEgVFdUIEhhbmRsaW5nKioKCkFscmlnaHQsIHNvIHRoZSBjb25maWcgaXMgZGVmaW5pdGVseSBgTUFDODAyMTFgLCB0aGF0JiMzOTtzIHRoZSBvYnZpb3VzIHN0YXJ0aW5nIHBvaW50LiBUaGUgcGF0Y2ggaXRzZWxmIGZvY3VzZXMgb24gYSBib3VuZHMgY2hlY2sgd2l0aGluIHRoZSBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGZ1bmN0aW9uIGluIGBuZXQvbWFjODAyMTEvczFnLmNgLiBJIGltbWVkaWF0ZWx5IHRoaW5rLCAqdGhhdCBmdW5jdGlvbiYjMzk7cyBjYWxsZWQgYnkqIGBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25gLCB3aGljaCBpcyBpdHNlbGYgcmVhY2hhYmxlIHRocm91Z2ggYGllZWU4MDIxMV9pZmFjZV9wcm9jZXNzX3NrYmAuIFNvLCBhIGNsYXNzaWMgcmVjZWl2ZSBwYXRoLiBUaGlzIGlzIGdvb2QgdG8ga25vdywgYW5kIHRoZSBjYWxsIGNoYWluIGdpdmVzIG1lIGEgZGlyZWN0IGF0dGFjayBzdXJmYWNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGFpbWVkIGF0IHByZXZlbnRpbmcgYW4gb3V0LW9mLWJvdW5kcyBtZW1vcnkgYWNjZXNzLiBUaGF0JiMzOTtzIGEgdGV4dGJvb2sgc2VjdXJpdHkgZml4LCBhbmQgbXkgZ3V0IHJlYWN0aW9uIGlzIHRoYXQgdGhpcyB3YXJyYW50cyBzZXJpb3VzIGNvbnNpZGVyYXRpb24uCgpHaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBjaGFuZ2UgYW5kIHRoZSBjcml0aWNhbCBwYXRoIGludm9sdmVkIGluIHdpcmVsZXNzIGNvbW11bmljYXRpb24sIHRoaXMgZmVlbHMgbGlrZSBhbiBleGNlbGxlbnQgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBUaGUga2V5IHN5bWJvbHMgSSYjMzk7bSBnb2luZyB0byBiZSBpbnRlcmVzdGVkIGluIGFyZSBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGFuZCBgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uYC4gVGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gZm9jdXMgbXkgZWZmb3J0cyB0byBnZW5lcmF0ZSBpbnRlcmVzdGluZyBpbnB1dHMuIFRoZSBmYWN0IHRoYXQgYE1BQzgwMjExYCBpcyBlbmFibGVkIG1lYW5zIEkgaGF2ZSBhIGNsZWFuIHN0YXJ0aW5nIHBvaW50IGZvciB0aGlzIGZ1enppbmcgZWZmb3J0LiBOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgaW4gbWFjODAyMTEgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2VzcyB3aGVuIHByb2Nlc3NpbmcgVFdUIHNldHVwIGFjdGlvbiBmcmFtZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgODAyLjExYWggKFMxRykgaW1wbGVtZW50YXRpb24gYW5kIGlzIHJlYWNoYWJsZSB2aWEgbWFjODAyMTFfaHdzaW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgdG8gYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpbiBtYWM4MDIxMSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgYWNjZXNzIHdoZW4gcHJvY2Vzc2luZyBUV1Qgc2V0dXAgYWN0aW9uIGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSA4MDIuMTFhaCAoUzFHKSBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDAzOjI1OjA5LjEyMDMxNDM4NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NTg3MDE5NDU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBcIixcbiAgICBcImllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgdG8gYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpbiBtYWM4MDIxMSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgYWNjZXNzIHdoZW4gcHJvY2Vzc2luZyBUV1Qgc2V0dXAgYWN0aW9uIGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSA4MDIuMTFhaCAoUzFHKSBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMV9od3NpbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDM6MjU6MDkuMTIwMzIwMTM0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjA3MDM5MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmOTdiNzU5Y2UxOWFkMmM5M2UwOGQ4NjVmZjExYjY3NjI0ZGZjMDE5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDI0IDAzOjI1OjA3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9zMWcuYyBiL25ldC9tYWM4MDIxMS9zMWcuY1xcbmluZGV4IDVhZjRhMGM2YzY0MjRiLi5hYmMzMzhlMjJlNTljYyAxMDA2NDRcXG4tLS0gYS9uZXQvbWFjODAyMTEvczFnLmNcXG4rKysgYi9uZXQvbWFjODAyMTEvczFnLmNcXG5AQCAtMTAxLDYgKzEwMSwxMCBAQCBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4gXFx0c3RydWN0IGllZWU4MDIxMV90d3Rfc2V0dXAgKnR3dCA9ICh2b2lkICopbWdtdC1cXHUwMDNldS5hY3Rpb24uczFnLnZhcmlhYmxlO1xcbiBcXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9wYXJhbXMgKnR3dF9hZ3J0ID0gKHZvaWQgKil0d3QtXFx1MDAzZXBhcmFtcztcXG4gXFxuK1xcdGlmICghKHR3dC1cXHUwMDNlY29udHJvbCBcXHUwMDI2IElFRUU4MDIxMV9UV1RfQ09OVFJPTF9ORUdfVFlQRV9CUk9BRENBU1QpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICB0d3QtXFx1MDAzZWxlbmd0aCBcXHUwMDNjIHNpemVvZih0d3QtXFx1MDAzZWNvbnRyb2wpICsgc2l6ZW9mKCp0d3RfYWdydCkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuIFxcdHR3dF9hZ3J0LVxcdTAwM2VyZXFfdHlwZSBcXHUwMDI2PSBjcHVfdG9fbGUxNih+SUVFRTgwMjExX1RXVF9SRVFUWVBFX1JFUVVFU1QpO1xcbiBcXG4gXFx0LyogYnJvYWRjYXN0IFRXVCBub3Qgc3VwcG9ydGVkIHlldCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTowOS41ODE1OTE0NDFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0NjEyNTczNDg2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwXCIsXG4gICAgXCJpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgaW4gbWFjODAyMTEgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2VzcyB3aGVuIHByb2Nlc3NpbmcgVFdUIHNldHVwIGFjdGlvbiBmcmFtZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgODAyLjExYWggKFMxRykgaW1wbGVtZW50YXRpb24gYW5kIGlzIHJlYWNoYWJsZSB2aWEgbWFjODAyMTFfaHdzaW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjk3Yjc1OWNlMTlhZDJjOTNlMDhkODY1ZmYxMWI2NzYyNGRmYzAxOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDI0IDAzOjI1OjA3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3MxZy5jIGIvbmV0L21hYzgwMjExL3MxZy5jXG5pbmRleCA1YWY0YTBjNmM2NDI0Yi4uYWJjMzM4ZTIyZTU5Y2MgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvczFnLmNcbisrKyBiL25ldC9tYWM4MDIxMS9zMWcuY1xuQEAgLTEwMSw2ICsxMDEsMTAgQEAgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9zZXR1cCAqdHd0ID0gKHZvaWQgKiltZ210LVx1MDAzZXUuYWN0aW9uLnMxZy52YXJpYWJsZTtcbiBcdHN0cnVjdCBpZWVlODAyMTFfdHd0X3BhcmFtcyAqdHd0X2FncnQgPSAodm9pZCAqKXR3dC1cdTAwM2VwYXJhbXM7XG4gXG4rXHRpZiAoISh0d3QtXHUwMDNlY29udHJvbCBcdTAwMjYgSUVFRTgwMjExX1RXVF9DT05UUk9MX05FR19UWVBFX0JST0FEQ0FTVCkgXHUwMDI2XHUwMDI2XG4rXHQgICAgdHd0LVx1MDAzZWxlbmd0aCBcdTAwM2Mgc2l6ZW9mKHR3dC1cdTAwM2Vjb250cm9sKSArIHNpemVvZigqdHd0X2FncnQpKVxuK1x0XHRyZXR1cm47XG4rXG4gXHR0d3RfYWdydC1cdTAwM2VyZXFfdHlwZSBcdTAwMjY9IGNwdV90b19sZTE2KH5JRUVFODAyMTFfVFdUX1JFUVRZUEVfUkVRVUVTVCk7XG4gXG4gXHQvKiBicm9hZGNhc3QgVFdUIG5vdCBzdXBwb3J0ZWQgeWV0ICovXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTowOS41ODE1OTI0OTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Nzk4MDA0MTY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEJvdW5kcyBDaGVjayBpbiBtYWM4MDIxMSBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCBhIHBhdGNoIGluIGBuZXQvbWFjODAyMTEvczFnLmNgLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gYSBib3VuZHMgY2hlY2sgYWRkZWQgdG8gYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYC4gTGV0IG1lIHF1aWNrbHkgcmVmcmVzaCBteSBtZW1vcnkgb2YgdGhhdCBmdW5jdGlvbi4gSSdsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljLlxuXG5Mb29raW5nIGF0IHRoZSBjb2RlIHNuaXBwZXQsIGl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSXQncyBjaGVja2luZyBpZiB0aGUgYHR3dC1cdTAwM2VsZW5ndGhgIGZpZWxkIGlzIHN1ZmZpY2llbnQgdG8gY29udGFpbiBib3RoIHRoZSBgdHd0LVx1MDAzZWNvbnRyb2xgIGFuZCBgdHd0X2FncnRgIHN0cnVjdHVyZXMgd2hlbiB0aGUgbmVnb3RpYXRpb24gdHlwZSBpc24ndCBhIGJyb2FkY2FzdC4gVGhpcyBzZWVtcyBsaWtlIGEgcGVyZmVjdGx5IHNlbnNpYmxlIGFuZCBuZWNlc3NhcnkgY2hlY2sgdG8gcHJldmVudCBidWZmZXIgb3ZlcmZsb3dzIG9yIHVuZGVyZmxvd3MuIEl0J3MgYSBjcml0aWNhbCBzYWZldHkgbWVhc3VyZSwgcHJldmVudGluZyB0aGUgY29kZSBmcm9tIHJlYWRpbmcgcGFzdCB0aGUgZW5kIG9mIGFsbG9jYXRlZCBtZW1vcnkuIFRoZSBwYXRjaCBpcyBlbnN1cmluZyB0aGUgc2l6ZSBvZiB0aGUgcmVjZWl2ZWQgVFdUIHNldHVwIGZyYW1lIGlzIGFkZXF1YXRlLlxuXG5Ob3csIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCB0aGlzIGdldHMgaW50ZXJlc3RpbmcuIG1hYzgwMjExIGlzIGEga25vd24gdGFyZ2V0IGZvciBmdXp6aW5nLCBhbmQgYG1hYzgwMjExX2h3c2ltYCBpcyBhIGtleSBjb21wb25lbnQgZm9yIHRoYXQuIEdpdmVuIHRoYXQgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiBtYWM4MDIxMSwgaXQncyBzb21ldGhpbmcgSSBuZWVkIHRvIGV2YWx1YXRlIGZvciBmdXp6aW5nIGltcGFjdC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGJvdW5kcyBjaGVjayBpcyByb2J1c3QgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIGFueSBuZXcgdnVsbmVyYWJpbGl0aWVzIG9yIGJ5cGFzc2VzLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gZXhhbWluZSB0aGUgYENPTkZJR19NQUM4MDIxMWAgY29uZmlndXJhdGlvbiBvcHRpb24uIEkgbmVlZCB0byBrbm93IHRoZSByZWxldmFudCBidWlsZCBmbGFncyB0byBlbnN1cmUgYG1hYzgwMjExYCBpcyBlbmFibGVkIGNvcnJlY3RseSBmb3IgbXkgdGVzdHMgYW5kIGlmIGFueSBvdGhlciBjb25maWd1cmF0aW9ucyB3aWxsIGluZmx1ZW5jZSB0aGUgYmVoYXZpb3VyIG9mIHRoaXMgY2hlY2suIFRpbWUgdG8gZ2V0IGZhbWlsaWFyIHdpdGggdGhlIGV4YWN0IGxvY2F0aW9uIGluIHRoZSBjb2RlYmFzZSBvZiBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGluIHRoZSBzMWcuYyBmaWxlIGFuZCB2ZXJpZnkgaXRzIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjAyNiwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxOCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDAzOjI1OjE1LjM3OTU5ODg4OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzY1OTY1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvczFnLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL3MxZy5jPTk2PXN0YXRpYyB2b2lkXFxubmV0L21hYzgwMjExL3MxZy5jOjk3OmllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbm5ldC9tYWM4MDIxMS9zMWcuYy05OC1cXHRcXHRcXHQgICBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC9tYWM4MDIxMS9zMWcuYz0xNTQ9dm9pZCBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvczFnLmMtMTY4LVxcdGNhc2UgV0xBTl9TMUdfVFdUX1NFVFVQOlxcbm5ldC9tYWM4MDIxMS9zMWcuYzoxNjk6XFx0XFx0aWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAoc2RhdGEsIHN0YSwgc2tiKTtcXG5uZXQvbWFjODAyMTEvczFnLmMtMTcwLVxcdFxcdGJyZWFrO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNToxNS40MzcyNjQyNDdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDk2NTg2Nzg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIFRXVCBTZXR1cCB3aXRoaW4gdGhlIDgwMi4xMSBzMWcgQ29udGV4dCoqXG5cbkFscmlnaHQsIEknbSBkaWdnaW5nIGludG8gdGhpcyBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGZ1bmN0aW9uLiBUaGUgZmlyc3QgdGhpbmcgdGhhdCBqdW1wcyBvdXQgaXMgdGhhdCBpdCdzIGRlY2xhcmVkIGBzdGF0aWNgLiBUaGlzIGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0J3MgbGltaXRlZCBpbiBzY29wZSBhbmQgbGlrZWx5IGludGVybmFsIHRvIGEgc3BlY2lmaWMgbW9kdWxlLCBtb3N0IGxpa2VseSB0aGUgUzFHIHJlY2VpdmUgcGF0aC4gTXkgbmV4dCB0aG91Z2h0IGlzLCB3aGVyZSBpcyBpdCBjYWxsZWQgZnJvbT8gU2VlbXMgbGlrZSBpdCdzIGNhbGxlZCBmcm9tIGBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25gLCB3aGljaCBpcyBwcm9iYWJseSBoYW5kbGluZyBhIFRXVCBhY3Rpb24gZnJhbWUgb24gdGhlIHJlY2VpdmUgc2lkZS4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgd2lkZXIgY29udGV4dC4gSXMgYGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbmAgaXRzZWxmIGFuIGV4cG9ydGVkIGZ1bmN0aW9uPyBPciBpcyBpdCBzaW1pbGFybHkgc2NvcGVkLCBpbnRlcm5hbCB0byB0aGUgZHJpdmVyPyBJIG5lZWQgdG8gdmVyaWZ5IGl0cyB2aXNpYmlsaXR5OyBpcyBpdCBleHBvc2VkIHZpYSBhIHN5bWJvbCB0YWJsZSBvciBpcyBpdCBvbmx5IGNhbGxlZCB3aXRoaW4gdGhlIFMxRyBSWCBwYXRoIG9mIHRoZSBkcml2ZXI/IFVuZGVyc3RhbmRpbmcgdGhlIHNjb3BlIG9mIHRoZXNlIGZ1bmN0aW9ucyB3aWxsIGhlbHAgbWUgZ3Jhc3AgaG93IHRoZSBUV1Qgc2V0dXAgaXMgdHJpZ2dlcmVkIGFuZCBob3cgaXQncyBpbnRlZ3JhdGVkIGludG8gdGhlIHJlY2VpdmUgZmxvdyBvZiB0aGlzIHBhcnRpY3VsYXIgODAyLjExIHZhcmlhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwODksIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNToxOS41MzM4NTMxOTNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzcyMTM2MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9MjM5Mz1ib29sIGllZWU4MDIxMV9zMWdfaXNfdHd0X3NldHVwKHN0cnVjdCBza19idWZmICpza2IpO1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjIzOTQ6dm9pZCBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjM5NS1cXHRcXHRcXHRcXHQgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWZhY2UuYz0xNjIwPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9pZmFjZV9wcm9jZXNzX3NrYihzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZmFjZS5jLTE3MTktXFx0XFx0Y2FzZSBXTEFOX1MxR19UV1RfU0VUVVA6XFxubmV0L21hYzgwMjExL2lmYWNlLmM6MTcyMDpcXHRcXHRcXHRpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24oc2RhdGEsIHNrYik7XFxubmV0L21hYzgwMjExL2lmYWNlLmMtMTcyMS1cXHRcXHRcXHRicmVhaztcXG4tLVxcbm5ldC9tYWM4MDIxMS9zMWcuYz0xMzk9aWVlZTgwMjExX3MxZ190eF90d3Rfc2V0dXBfZmFpbChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9zMWcuYy0xNTMtXFxubmV0L21hYzgwMjExL3MxZy5jOjE1NDp2b2lkIGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbihzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG5uZXQvbWFjODAyMTEvczFnLmMtMTU1LVxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNToxOS42MTEwNzIwMzFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzQ1MzA5ODE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QgaGVyZS5cblxuKipBbmFseXppbmcgdGhlIENhbGwgUGF0aCBhbmQgQ29uZmlndXJhdGlvbiBDb250ZXh0KipcblxuUmlnaHQsIHNvIHRoaXMgaXMgYmVpbmcgY2FsbGVkIGZyb20gYGllZWU4MDIxMV9pZmFjZV9wcm9jZXNzX3NrYmAsIHdoaWNoLCBpZiBJIHJlY2FsbCBjb3JyZWN0bHksIHJlc2lkZXMgd2l0aGluIGBuZXQvbWFjODAyMTEvaWZhY2UuY2AuIFRoYXQgcGxhY2VzIGl0IGZpcm1seSB3aXRoaW4gdGhlIG1hYzgwMjExIGZyYW1ld29yaywgd2hpY2ggaXMgd2hlcmUgSSBleHBlY3RlZC4gR29vZC4gQW5kIHRoaXMgaXMgKmRlZmluaXRlbHkqIHJlYWNoYWJsZSB2aWEgYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggbmFycm93cyBkb3duIHRoZSBzY29wZSBmb3IgYW5hbHlzaXMgY29uc2lkZXJhYmx5LiBXaXRoIHRoZSBjb250ZXh0IG9mIHRoZSBtYWM4MDIxMSBpbmZyYXN0cnVjdHVyZSBlc3RhYmxpc2hlZCwgbm93IEkgaGF2ZSB0byBjaGVjayB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbi4gVGhlIHJlbGV2YW50IGNvbmZpZyBpcyBgTUFDODAyMTFgLCB0aGF0IG1ha2VzIHNlbnNlLiBOb3csIGxldCdzIGxvb2sgZm9yIFMxRyBvciBUV1Qgc3BlY2lmaWMgY29uZmlnIG9wdGlvbnMgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGlzIGZpdHMgaW50byB0aGUgYnJvYWRlciBwaWN0dXJlLiBNeSBuZXh0IHRhc2sgaXMgdG8gdmVyaWZ5IGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgc2V0IGZvciBlaXRoZXIgU2luZ2xlLUNhcnJpZXIgbW9kdWxhdGlvbiBvciBUYXJnZXQgV2FrZSBUaW1lIGZ1bmN0aW9uYWxpdGllcy4gVGhvc2UgdHdvIGFyZSBkZWZpbml0ZWx5IHRoZSBtb3N0IHJlbGV2YW50IHdoZW4gSSB0aGluayBhYm91dCB0aGUgbGF0ZXN0IGVuaGFuY2VtZW50cy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzk5MSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDAzOjI1OjIzLjk1NjM4NDM2OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODA0NDI1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfTUFDODAyMTFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX01BQzgwMjExKSArPSBtYWM4MDIxMS5vXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTMtXFxuLS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU9NT1tYWM4MDIxMS15IDo9IFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zOS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDA6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfTEVEUykgKz0gbGVkLm9cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDE6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgKz0gXFxcXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS00Mi1cXHRkZWJ1Z2ZzLm8gXFxcXFxcbi0tXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ2LVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0NzptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9NRVNIKSArPSBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ4LVxcdG1lc2gubyBcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU9NTk9cmM4MDIxMV9taW5zdHJlbC15IDo9IFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS02MS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NjI6cmM4MDIxMV9taW5zdHJlbC0kKENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTKSArPSBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTYzLVxcdHJjODAyMTFfbWluc3RyZWxfaHRfZGVidWdmcy5vXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTY0LVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo2NTptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9SQ19NSU5TVFJFTCkgKz0gJChyYzgwMjExX21pbnN0cmVsLXkpXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTY2LVxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTYxMz1zdGF0aWMgaW50IGllZWU4MDIxMV9hZGRfa2V5KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNzEwLVxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG5uZXQvbWFjODAyMTEvY2ZnLmM6NzExOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9jZmcuYy03MTItXFx0XFx0aWYgKHNkYXRhLVxcdTAwM2V1Lm1lc2guc2VjdXJpdHkgIT0gSUVFRTgwMjExX01FU0hfU0VDX05PTkUpXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9MjE4OT1zdGF0aWMgdm9pZCBzdGFfYXBwbHlfbWVzaF9wYXJhbXMoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjE5Mi17XFxubmV0L21hYzgwMjExL2NmZy5jOjIxOTM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL2NmZy5jLTIxOTQtXFx0c3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEgPSBzdGEtXFx1MDAzZXNkYXRhO1xcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTI3ODM9c3RhdGljIGludCBpZWVlODAyMTFfY2hhbmdlX3N0YXRpb24oc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yODg5LVxcbm5ldC9tYWM4MDIxMS9jZmcuYzoyODkwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yODkxLXN0YXRpYyBpbnQgaWVlZTgwMjExX2FkZF9tcGF0aChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTQ0MjQ9c3RhdGljIGludCBpZWVlODAyMTFfc2V0X2FmdGVyX2NzYV9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmtfZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy00NDQ3LVxcdFxcdGJyZWFrO1xcbm5ldC9tYWM4MDIxMS9jZmcuYzo0NDQ4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9jZmcuYy00NDQ5LVxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz00NTU5PXN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9jc2FfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rX2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDY1MC1cXHRcXHRicmVhaztcXG5uZXQvbWFjODAyMTEvY2ZnLmM6NDY1MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDY1Mi1cXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz01OTg0PWNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy02MDA0LVxcdC5kdW1wX3N1cnZleSA9IGllZWU4MDIxMV9kdW1wX3N1cnZleSxcXG5uZXQvbWFjODAyMTEvY2ZnLmM6NjAwNTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNjAwNi1cXHQuYWRkX21wYXRoID0gaWVlZTgwMjExX2FkZF9tcGF0aCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTEwLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjExOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfT0NCX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMTItI2RlZmluZSBNQUM4MDIxMV9PQ0JfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMTYtXFxubmV0L21hYzgwMjExL2RlYnVnLmg6MTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9JQlNTX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMTgtI2RlZmluZSBNQUM4MDIxMV9JQlNTX0RFQlVHIDFcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIyLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjIzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yNC0jZGVmaW5lIE1BQzgwMjExX1BTX0RFQlVHIDFcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTI4LVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjI5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfSFRfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0zMC0jZGVmaW5lIE1BQzgwMjExX0hUX0RFQlVHIDFcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTM0LVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjM1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTVBMX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMzYtI2RlZmluZSBNQUM4MDIxMV9NUExfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNDAtXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NDE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTQyLSNkZWZpbmUgTUFDODAyMTFfTVBBVEhfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNDYtXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NDc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTQ4LSNkZWZpbmUgTUFDODAyMTFfTUhXTVBfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNTItXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NTM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaC01NC0jZGVmaW5lIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVRyAxXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWcuaC01OC1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo1OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNjAtI2RlZmluZSBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVRyAxXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWcuaC02NC1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo2NTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaC02Ni0jZGVmaW5lIE1BQzgwMjExX01FU0hfUFNfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNzAtXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NzE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9URExTX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNzItI2RlZmluZSBNQUM4MDIxMV9URExTX0RFQlVHIDFcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTc2LVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjc3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfU1RBX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNzgtI2RlZmluZSBNQUM4MDIxMV9TVEFfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtODItXFxubmV0L21hYzgwMjExL2RlYnVnLmg6ODM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtODQtI2RlZmluZSBNQUM4MDIxMV9NTE1FX0RFQlVHIDFcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTg4LVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjg5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTU0FHRV9UUkFDSU5HXFxubmV0L21hYzgwMjExL2RlYnVnLmgtOTAtdm9pZCBfX3NkYXRhX2luZm8oY29uc3QgY2hhciAqZm10LCAuLi4pIF9fcHJpbnRmKDEsIDIpO1xcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnMuYz02MzI9c3RhdGljIGNvbnN0IHN0cnVjdCBkZWJ1Z2ZzX3Nob3J0X2ZvcHMgc3RhdHNfICMjbmFtZSMjIF9vcHMgPSB7XFx0XFx0XFx0XFxcXFxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnMuYy02MzYtXFxubmV0L21hYzgwMjExL2RlYnVnZnMuYzo2Mzc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmMtNjM4LSNkZWZpbmUgREVCVUdGU19TVEFUU19BREQobmFtZSlcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmcy5jPTY0OT12b2lkIGRlYnVnZnNfaHdfYWRkKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnMuYy02ODMtXFxubmV0L21hYzgwMjExL2RlYnVnZnMuYzo2ODQ6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmMtNjg1LVxcdERFQlVHRlNfU1RBVFNfQUREKGRvdDExVHJhbnNtaXR0ZWRGcmFnbWVudENvdW50KTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmgtNi1cXG5uZXQvbWFjODAyMTEvZGVidWdmcy5oOjc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL2RlYnVnZnMuaC04LXZvaWQgZGVidWdmc19od19hZGQoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpO1xcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnNfa2V5LmgtNC1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19rZXkuaDo1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX2tleS5oLTYtdm9pZCBpZWVlODAyMTFfZGVidWdmc19rZXlfYWRkKHN0cnVjdCBpZWVlODAyMTFfa2V5ICprZXkpO1xcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM9NzM2PUlFRUU4MDIxMV9JRl9MSU5LX0ZJTEUoYWRkciwgY29uZi1cXHUwMDNlYWRkciwgTUFDKTtcXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy03MzctXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM6NzM4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczOS1JRUVFODAyMTFfSUZfRklMRShlc3RhYl9wbGlua3MsIHUubWVzaC5lc3RhYl9wbGlua3MsIEFUT01JQyk7XFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYz04Njg9c3RhdGljIHZvaWQgYWRkX2lic3NfZmlsZXMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy04NzItXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM6ODczOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3NC1cXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jPTkzNz1zdGF0aWMgdm9pZCBhZGRfZmlsZXMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy05NDktXFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjk1MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy05NTEtXFx0XFx0YWRkX21lc2hfZmlsZXMoc2RhdGEpO1xcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMTItXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg6MTM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMTQtdm9pZCBpZWVlODAyMTFfZGVidWdmc19yZW1vdmVfbmV0ZGV2KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX3N0YS5oLTYtXFxubmV0L21hYzgwMjExL2RlYnVnZnNfc3RhLmg6NzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvZGVidWdmc19zdGEuaC04LXZvaWQgaWVlZTgwMjExX3N0YV9kZWJ1Z2ZzX2FkZChzdHJ1Y3Qgc3RhX2luZm8gKnN0YSk7XFxuLS1cXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oPTQ3Nz1zdGF0aWMgaW5saW5lIHZvaWQgZHJ2X3N0YV9yZW1vdmUoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuLS1cXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTQ5NC1cXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oOjQ5NTojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTQ5Ni1zdGF0aWMgaW5saW5lIHZvaWQgZHJ2X3ZpZl9hZGRfZGVidWdmcyhzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTc3MD1zdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2gge1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtODUwLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjg1MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC04NTItI2RlZmluZSBJRUVFODAyMTFfSUZTVEFfTUVTSF9DVFJfSU5DKG1zaCwgbmFtZSlcXHRcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0xMDk5PXN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTExNTEtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTE1MjojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xMTUzLVxcdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZGlyO1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9MTE1Nz1zdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTEyNDQtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTI0NTojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xMjQ2LVxcdHN0cnVjdCB7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0xMzY0PWVudW0gcXVldWVfc3RvcF9yZWFzb24ge1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTM3OS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxMzgwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTEVEU1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTEzODEtc3RydWN0IHRwdF9sZWRfdHJpZ2dlciB7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0xNDQ4PXN0cnVjdCBpZWVlODAyMTFfbG9jYWwge1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTYyOC1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxNjI5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTEVEU1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2MzAtXFx0c3RydWN0IGxlZF90cmlnZ2VyIHR4X2xlZCwgcnhfbGVkLCBhc3NvY19sZWQsIHJhZGlvX2xlZDtcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2MzYtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTYzNzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHX0NPVU5URVJTXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTYzOC1cXHQvKiBTTk1QIGNvdW50ZXJzICovXFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xNjY0LSNkZWZpbmUgSTgwMl9ERUJVR19JTkMoYykgKGMpKytcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxNjY1OiNlbHNlIC8qIENPTkZJR19NQUM4MDIxMV9ERUJVR19DT1VOVEVSUyAqL1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2NjYtI2RlZmluZSBJODAyX0RFQlVHX0lOQyhjKSBkbyB7IH0gd2hpbGUgKDApXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTY2NzojZW5kaWYgLyogQ09ORklHX01BQzgwMjExX0RFQlVHX0NPVU5URVJTICovXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTY2OC1cXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2OTUtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTY5NjojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xNjk3LVxcdHN0cnVjdCBsb2NhbF9kZWJ1Z2ZzZGVudHJpZXMge1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9Mjk0MD11MzIgaWVlZTgwMjExX2NhbGNfZXhwZWN0ZWRfdHhfYWlydGltZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTI5NDMtXFx0XFx0XFx0XFx0ICAgICAgIGludCBsZW4sIGJvb2wgYW1wZHUpO1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjI5NDQ6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9OT0lOTElORVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTI5NDUtI2RlZmluZSBkZWJ1Z19ub2lubGluZSBub2lubGluZVxcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9Mjk3Nj1pZWVlODAyMTFfdWhyX2NhcF9pZV90b19zdGFfdWhyX2NhcChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTI5ODEtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6Mjk4MjojaWYgSVNfRU5BQkxFRChDT05GSUdfTUFDODAyMTFfS1VOSVRfVEVTVClcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTgzLSNkZWZpbmUgRVhQT1JUX1NZTUJPTF9JRl9NQUM4MDIxMV9LVU5JVChzeW0pIEVYUE9SVF9TWU1CT0xfSUZfS1VOSVQoc3ltKVxcbi0tXFxubmV0L21hYzgwMjExL2tleS5oPTU5PXN0cnVjdCBpZWVlODAyMTFfa2V5IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9rZXkuaC0xMjItXFxubmV0L21hYzgwMjExL2tleS5oOjEyMzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEva2V5LmgtMTI0LVxcdHN0cnVjdCB7XFxuLS1cXG5uZXQvbWFjODAyMTEvbGVkLmg9MTM9c3RhdGljIGlubGluZSB2b2lkIGllZWU4MDIxMV9sZWRfcngoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXFxubmV0L21hYzgwMjExL2xlZC5oLTE0LXtcXG5uZXQvbWFjODAyMTEvbGVkLmg6MTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9MRURTXFxubmV0L21hYzgwMjExL2xlZC5oLTE2LVxcdGlmICghYXRvbWljX3JlYWQoXFx1MDAyNmxvY2FsLVxcdTAwM2VyeF9sZWRfYWN0aXZlKSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9sZWQuaD0yMj1zdGF0aWMgaW5saW5lIHZvaWQgaWVlZTgwMjExX2xlZF90eChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcXG5uZXQvbWFjODAyMTEvbGVkLmgtMjMte1xcbm5ldC9tYWM4MDIxMS9sZWQuaDoyNDojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvbGVkLmgtMjUtXFx0aWYgKCFhdG9taWNfcmVhZChcXHUwMDI2bG9jYWwtXFx1MDAzZXR4X2xlZF9hY3RpdmUpKVxcbi0tXFxubmV0L21hYzgwMjExL2xlZC5oLTMwLVxcbm5ldC9tYWM4MDIxMS9sZWQuaDozMTojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvbGVkLmgtMzItdm9pZCBpZWVlODAyMTFfbGVkX2Fzc29jKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxcbi0tXFxubmV0L21hYzgwMjExL2xlZC5oPTcxPWllZWU4MDIxMV90cHRfbGVkX3RyaWdfdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsIGludCBieXRlcylcXG5uZXQvbWFjODAyMTEvbGVkLmgtNzIte1xcbm5ldC9tYWM4MDIxMS9sZWQuaDo3MzojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvbGVkLmgtNzQtXFx0aWYgKGF0b21pY19yZWFkKFxcdTAwMjZsb2NhbC1cXHUwMDNldHB0X2xlZF9hY3RpdmUpKVxcbi0tXFxubmV0L21hYzgwMjExL2xlZC5oPTgwPWllZWU4MDIxMV90cHRfbGVkX3RyaWdfcngoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsIGludCBieXRlcylcXG5uZXQvbWFjODAyMTEvbGVkLmgtODEte1xcbm5ldC9tYWM4MDIxMS9sZWQuaDo4MjojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvbGVkLmgtODMtXFx0aWYgKGF0b21pY19yZWFkKFxcdTAwMjZsb2NhbC1cXHUwMDNldHB0X2xlZF9hY3RpdmUpKVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz0xMTM4PWludCBpZWVlODAyMTFfcmVnaXN0ZXJfaHcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEzOTMtXFxubmV0L21hYzgwMjExL21haW4uYzoxMzk0OiNpZm5kZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEzOTUtXFx0LyogbWVzaCBkZXBlbmRzIG9uIEtjb25maWcsIGJ1dCBkcml2ZXJzIHNob3VsZCBzZXQgaXQgaWYgdGhleSB3YW50ICovXFxuLS1cXG5uZXQvbWFjODAyMTEvbWVzaC5oPTM3OD12b2lkIG1lc2hfcGF0aF9yZWZyZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL21lc2guaC0zODAtXFxubmV0L21hYzgwMjExL21lc2guaDozODE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL21lc2guaC0zODItc3RhdGljIGlubGluZVxcbi0tXFxubmV0L21hYzgwMjExL29mZmNoYW5uZWwuYz04MTI9aW50IGllZWU4MDIxMV9tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXFxuLS1cXG5uZXQvbWFjODAyMTEvb2ZmY2hhbm5lbC5jLTg0MS1cXHRcXHRcXHRuZWVkX29mZmNoYW4gPSB0cnVlO1xcbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmM6ODQyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmMtODQzLVxcdFxcdGZhbGx0aHJvdWdoO1xcbi0tXFxubmV0L21hYzgwMjExL3JhdGUuYz0yND1zdGF0aWMgREVGSU5FX01VVEVYKHJhdGVfY3RybF9tdXRleCk7XFxubmV0L21hYzgwMjExL3JhdGUuYy0yNS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5jOjI2OnN0YXRpYyBjaGFyICppZWVlODAyMTFfZGVmYXVsdF9yY19hbGdvID0gQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFQ7XFxubmV0L21hYzgwMjExL3JhdGUuYy0yNy1tb2R1bGVfcGFyYW0oaWVlZTgwMjExX2RlZmF1bHRfcmNfYWxnbywgY2hhcnAsIDA2NDQpO1xcbi0tXFxubmV0L21hYzgwMjExL3JhdGUuYz0yMTY9aWVlZTgwMjExX3JhdGVfY29udHJvbF9vcHNfZ2V0KGNvbnN0IGNoYXIgKm5hbWUpXFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTIzMi1cXHQvKiBOb3RlOiBjaGVjayBmb3IgXFx1MDAzZSAwIGlzIGludGVudGlvbmFsIHRvIGF2b2lkIGNsYW5nIHdhcm5pbmcgKi9cXG5uZXQvbWFjODAyMTEvcmF0ZS5jOjIzMzpcXHRpZiAoIW9wcyBcXHUwMDI2XFx1MDAyNiAoc3RybGVuKENPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUKSBcXHUwMDNlIDApKVxcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjM0LVxcdFxcdC8qIHRyeSBidWlsdC1pbiBvbmUgaWYgc3BlY2lmaWMgYWxnIHJlcXVlc3RlZCBidXQgbm90IGZvdW5kICovXFxubmV0L21hYzgwMjExL3JhdGUuYzoyMzU6XFx0XFx0b3BzID0gaWVlZTgwMjExX3RyeV9yYXRlX2NvbnRyb2xfb3BzX2dldChDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVCk7XFxubmV0L21hYzgwMjExL3JhdGUuYy0yMzYtXFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTI0MS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5jOjI0MjojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTI0My1zdGF0aWMgc3NpemVfdCByY25hbWVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJidWYsXFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5jPTI4MT1zdGF0aWMgdm9pZCByYXRlX2NvbnRyb2xfZnJlZShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjg1LVxcbm5ldC9tYWM4MDIxMS9yYXRlLmM6Mjg2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjg3LVxcdGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShsb2NhbC1cXHUwMDNlZGVidWdmcy5yY2Rpcik7XFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5oPTU1PXN0YXRpYyBpbmxpbmUgdm9pZCByYXRlX2NvbnRyb2xfYWRkX3N0YV9kZWJ1Z2ZzKHN0cnVjdCBzdGFfaW5mbyAqc3RhKVxcbm5ldC9tYWM4MDIxMS9yYXRlLmgtNTYte1xcbm5ldC9tYWM4MDIxMS9yYXRlLmg6NTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL3JhdGUuaC01OC1cXHRzdHJ1Y3QgcmF0ZV9jb250cm9sX3JlZiAqcmVmID0gc3RhLVxcdTAwM2VyYXRlX2N0cmw7XFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5oPTY3PXN0YXRpYyBpbmxpbmUgdm9pZCByYXRlX2NvbnRyb2xfYWRkX2RlYnVnZnMoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXFxubmV0L21hYzgwMjExL3JhdGUuaC02OC17XFxubmV0L21hYzgwMjExL3JhdGUuaDo2OTojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvcmF0ZS5oLTcwLVxcdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNkaXI7XFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5oPTk0PXZvaWQgcmF0ZV9jb250cm9sX2RlaW5pdGlhbGl6ZShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5oLTk3LS8qIFJhdGUgY29udHJvbCBhbGdvcml0aG1zICovXFxubmV0L21hYzgwMjExL3JhdGUuaDo5ODojaWZkZWYgQ09ORklHX01BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL3JhdGUuaC05OS1pbnQgcmM4MDIxMV9taW5zdHJlbF9pbml0KHZvaWQpO1xcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYz0xMDU5PW1pbnN0cmVsX2h0X3VwZGF0ZV9zdGF0cyhzdHJ1Y3QgbWluc3RyZWxfcHJpdiAqbXAsIHN0cnVjdCBtaW5zdHJlbF9odF9zdGEgKm1pKVxcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xMTgxLVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM6MTE4MjojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jLTExODMtXFx0LyogdXNlIGZpeGVkIGluZGV4IGlmIHNldCAqL1xcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYz0xNTk1PW1pbnN0cmVsX2h0X2dldF9yYXRlKHZvaWQgKnByaXYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHZvaWQgKnByaXZfc3RhLFxcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xNjA2LVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM6MTYwNzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jLTE2MDgtXFx0aWYgKG1wLVxcdTAwM2VmaXhlZF9yYXRlX2lkeCAhPSAtMSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM9MTkxNT1taW5zdHJlbF9odF9hbGxvYyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmMtMTk0OC1cXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jOjE5NDk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xOTUwLXN0YXRpYyB2b2lkIG1pbnN0cmVsX2h0X2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB2b2lkICpwcml2LFxcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYz0xOTgzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmF0ZV9jb250cm9sX29wcyBtYWM4MDIxMV9taW5zdHJlbF9odCA9IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmMtMTk5My1cXHQuZnJlZSA9IG1pbnN0cmVsX2h0X2ZyZWUsXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYzoxOTk0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmMtMTk5NS1cXHQuYWRkX2RlYnVnZnMgPSBtaW5zdHJlbF9odF9hZGRfZGVidWdmcyxcXG4tLVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0Lmg9NzU9c3RydWN0IG1pbnN0cmVsX3ByaXYge1xcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuaC04NS1cXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5oOjg2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmgtODctXFx0LypcXG4tLVxcbm5ldC9tYWM4MDIxMS9yeC5jPTEwNTE9c3RhdGljIHZvaWQgaWVlZTgwMjExX3ZlcmlmeV9hbGlnbm1lbnQoc3RydWN0IGllZWU4MDIxMV9yeF9kYXRhICpyeClcXG5uZXQvbWFjODAyMTEvcnguYy0xMDUyLXtcXG5uZXQvbWFjODAyMTEvcnguYzoxMDUzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9yeC5jLTEwNTQtXFx0V0FSTl9PTl9PTkNFKCh1bnNpZ25lZCBsb25nKXJ4LVxcdTAwM2Vza2ItXFx1MDAzZWRhdGEgXFx1MDAyNiAxKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9yeC5jPTI3ODk9aWVlZTgwMjExX2RlbGl2ZXJfc2tiKHN0cnVjdCBpZWVlODAyMTFfcnhfZGF0YSAqcngpXFxuLS1cXG5uZXQvbWFjODAyMTEvcnguYy0yODg4LVxcbm5ldC9tYWM4MDIxMS9yeC5jOjI4ODk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3J4LmMtMjg5MC1zdGF0aWMgYm9vbFxcbi0tXFxubmV0L21hYzgwMjExL3J4LmM9Mjk1Nj1pZWVlODAyMTFfcnhfbWVzaF9kYXRhKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLCBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9yeC5jLTI5NTgte1xcbm5ldC9tYWM4MDIxMS9yeC5jOjI5NTk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3J4LmMtMjk2MC1cXHRzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoID0gXFx1MDAyNnNkYXRhLVxcdTAwM2V1Lm1lc2g7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz03Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHJoYXNodGFibGVfcGFyYW1zIHN0YV9yaHRfcGFyYW1zID0ge1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzctXFx0LmtleV9sZW4gPSBFVEhfQUxFTixcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo3ODpcXHQubWF4X3NpemUgPSBDT05GSUdfTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkUsXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzktfTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTgxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgbGlua19zdGFfcmh0X3BhcmFtcyA9IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTg2LVxcdC5rZXlfbGVuID0gRVRIX0FMRU4sXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6ODc6XFx0Lm1heF9zaXplID0gQ09ORklHX01BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFLFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTg4LX07XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz00NjE9dm9pZCBzdGFfaW5mb19mcmVlKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLCBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTQ5OS1cXHRrZnJlZShyY3VfZGVyZWZlcmVuY2VfcmF3KHN0YS1cXHUwMDNlc3RhLnJhdGVzKSk7XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6NTAwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTUwMS1cXHRrZnJlZShzdGEtXFx1MDAzZW1lc2gpO1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9NjI2PV9fc3RhX2luZm9fYWxsb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy02NjAtXFx0d2lwaHlfd29ya19pbml0KFxcdTAwMjZzdGEtXFx1MDAzZWFtcGR1X21sbWUud29yaywgaWVlZTgwMjExX2JhX3Nlc3Npb25fd29yayk7XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6NjYxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTY2Mi1cXHRpZiAoaWVlZTgwMjExX3ZpZl9pc19tZXNoKFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmKSkge1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzg4LVxcdHN0YV9pbmZvX2ZyZWVfbGluayhcXHUwMDI2c3RhLVxcdTAwM2VkZWZsaW5rKTtcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo3ODk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzkwLVxcdGtmcmVlKHN0YS1cXHUwMDNlbWVzaCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0xMTAwPXN0YXRpYyB2b2lkIF9fc3RhX2luZm9fcmVjYWxjX3RpbShzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgYm9vbCBpZ25vcmVfcGVuZGluZylcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTExMTQtXFx0XFx0cHMgPSBcXHUwMDI2c3RhLVxcdTAwM2VzZGF0YS1cXHUwMDNlYnNzLVxcdTAwM2VwcztcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzoxMTE1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTExMTYtXFx0fSBlbHNlIGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXFx1MDAyNnN0YS1cXHUwMDNlc2RhdGEtXFx1MDAzZXZpZikpIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTI3MjE9c3RhdGljIGlubGluZSB1NjQgc3RhX2dldF9zdGF0c19ieXRlcyhzdHJ1Y3QgaWVlZTgwMjExX3N0YV9yeF9zdGF0cyAqcnhzdGF0cylcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTI3MzMtXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6MjczNDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0yNzM1LXN0YXRpYyB2b2lkIHN0YV9zZXRfbWVzaF9zaW5mbyhzdHJ1Y3Qgc3RhX2luZm8gKnN0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTMwMzE9dm9pZCBzdGFfc2V0X3NpbmZvKHN0cnVjdCBzdGFfaW5mbyAqc3RhLCBzdHJ1Y3Qgc3RhdGlvbl9pbmZvICpzaW5mbyxcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTMyMTYtXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6MzIxNzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0zMjE4LVxcdGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXFx1MDAyNnNkYXRhLVxcdTAwM2V2aWYpKVxcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg9NTI1PXN0cnVjdCBsaW5rX3N0YV9pbmZvIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTU3Ni1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaDo1Nzc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtNTc4LVxcdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZGlyO1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg9NzE0PXN0cnVjdCBzdGFfaW5mbyB7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC03MzEtXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6NzMyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTczMy1cXHRzdHJ1Y3QgbWVzaF9zdGEgKm1lc2g7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC03NzItXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6NzczOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTc3NC1cXHRzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX2RpcjtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oPTc5OT1zdGF0aWMgaW5saW5lIGVudW0gbmw4MDIxMV9wbGlua19zdGF0ZSBzdGFfcGxpbmtfc3RhdGUoc3RydWN0IHN0YV9pbmZvICpzdGEpXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtODAwLXtcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaDo4MDE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtODAyLVxcdHJldHVybiBzdGEtXFx1MDAzZW1lc2gtXFx1MDAzZXBsaW5rX3N0YXRlO1xcbi0tXFxubmV0L21hYzgwMjExL3Rlc3RzLy5rdW5pdGNvbmZpZz0yPUNPTkZJR19DRkc4MDIxMT15XFxubmV0L21hYzgwMjExL3Rlc3RzLy5rdW5pdGNvbmZpZzozOkNPTkZJR19NQUM4MDIxMT15XFxubmV0L21hYzgwMjExL3Rlc3RzLy5rdW5pdGNvbmZpZzo0OkNPTkZJR19NQUM4MDIxMV9LVU5JVF9URVNUPXlcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZXN0cy9NYWtlZmlsZT0xPW1hYzgwMjExLXRlc3RzLXkgKz0gbW9kdWxlLm8gdXRpbC5vIGVsZW1zLm8gbWZwLm8gdHBlLm8gY2hhbi1tb2RlLm8gczFnX3RpbS5vIHR0bG0ub1xcbm5ldC9tYWM4MDIxMS90ZXN0cy9NYWtlZmlsZS0yLVxcbm5ldC9tYWM4MDIxMS90ZXN0cy9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NQUM4MDIxMV9LVU5JVF9URVNUKSArPSBtYWM4MDIxMS10ZXN0cy5vXFxuLS1cXG5uZXQvbWFjODAyMTEvdHJhY2UuYy0xMy1cXG5uZXQvbWFjODAyMTEvdHJhY2UuYzoxNDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xcbm5ldC9tYWM4MDIxMS90cmFjZS5jLTE1LXZvaWQgX19zZGF0YV9pbmZvKGNvbnN0IGNoYXIgKmZtdCwgLi4uKVxcbi0tXFxubmV0L21hYzgwMjExL3RyYWNlX21zZy5oLTYtXFxubmV0L21hYzgwMjExL3RyYWNlX21zZy5oOjc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvdHJhY2VfbXNnLmgtOC1cXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jPTI3MD1pZWVlODAyMTFfdHhfaF9jaGVja19hc3NvYyhzdHJ1Y3QgaWVlZTgwMjExX3R4X2RhdGEgKnR4KVxcbi0tXFxubmV0L21hYzgwMjExL3R4LmMtMzA1LVxcdFxcdFxcdCAgICAgaWVlZTgwMjExX2lzX2RhdGEoaGRyLVxcdTAwM2VmcmFtZV9jb250cm9sKSkpIHtcXG5uZXQvbWFjODAyMTEvdHguYzozMDY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXFxubmV0L21hYzgwMjExL3R4LmMtMzA3LVxcdFxcdFxcdHNkYXRhX2luZm8odHgtXFx1MDAzZXNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL3R4LmM9MTY4OT1zdGF0aWMgYm9vbCBpZWVlODAyMTFfdHhfZnJhZ3Moc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuLS1cXG5uZXQvbWFjODAyMTEvdHguYy0xNzAyLVxcbm5ldC9tYWM4MDIxMS90eC5jOjE3MDM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXFxubmV0L21hYzgwMjExL3R4LmMtMTcwNC1cXHRcXHRpZiAoV0FSTl9PTl9PTkNFKHEgXFx1MDAzZT0gbG9jYWwtXFx1MDAzZWh3LnF1ZXVlcykpIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jPTI1MTA9aW50IGllZWU4MDIxMV9sb29rdXBfcmFfc3RhKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL3R4LmMtMjUzNC1cXHRcXHRicmVhaztcXG5uZXQvbWFjODAyMTEvdHguYzoyNTM1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS90eC5jLTI1MzYtXFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcbi0tXFxubmV0L21hYzgwMjExL3R4LmM9MjY0MT1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmllZWU4MDIxMV9idWlsZF9oZHIoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvdHguYy0yNjY3LVxcbm5ldC9tYWM4MDIxMS90eC5jOjI2Njg6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL3R4LmMtMjY2OS1cXHRpZiAobG9jYWwtXFx1MDAzZWZvcmNlX3R4X3N0YXR1cylcXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jLTI3NDAtXFx0XFx0YnJlYWs7XFxubmV0L21hYzgwMjExL3R4LmM6Mjc0MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvdHguYy0yNzQyLVxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jLTI5MjgtXFx0XFx0ICAgICAgIWllZWU4MDIxMV9pc19vdXJfYWRkcihzZGF0YSwgc2tiLVxcdTAwM2VkYXRhICsgRVRIX0FMRU4sIE5VTEwpKSkpIHtcXG5uZXQvbWFjODAyMTEvdHguYzoyOTI5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS90eC5jLTI5MzAtXFx0XFx0bmV0X2luZm9fcmF0ZWxpbWl0ZWQoXFxcIiVzOiBkcm9wcGVkIGZyYW1lIHRvICVwTSAodW5hdXRob3JpemVkIHBvcnQpXFxcXG5cXFwiLFxcbi0tXFxubmV0L21hYzgwMjExL3R4LmMtMzAwMS1cXG5uZXQvbWFjODAyMTEvdHguYzozMDAyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS90eC5jLTMwMDMtXFx0aWYgKG1lc2hoZHJsZW4gXFx1MDAzZSAwKVxcbi0tXFxubmV0L21hYzgwMjExL3R4LmMtMzA0OC1cXHRcXHQgICAgbGlua19pZCAhPSBJRUVFODAyMTFfTElOS19VTlNQRUNJRklFRCkge1xcbm5ldC9tYWM4MDIxMS90eC5jOjMwNDk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXFxubmV0L21hYzgwMjExL3R4LmMtMzA1MC1cXHRcXHRcXHRuZXRfaW5mb19yYXRlbGltaXRlZChcXFwiJXM6IGRyb3BwZWQgZnJhbWUgdG8gJXBNIHdpdGggYmFkIGxpbmsgSUQgcmVxdWVzdCAoJWQgdnMuICVkKVxcXFxuXFxcIixcXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jPTM3Mjk9dm9pZCBfX2llZWU4MDIxMV94bWl0X2Zhc3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvdHguYy0zNzc1LVxcbm5ldC9tYWM4MDIxMS90eC5jOjM3NzY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL3R4LmMtMzc3Ny1cXHRpZiAobG9jYWwtXFx1MDAzZWZvcmNlX3R4X3N0YXR1cylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDM6MjU6MjQuMDE0NDMzMzk4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzE1ODAwMjMxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBTMUcgVFdUIFNldHVwKipcblxuT2theSwgdGhlIGBNQUM4MDIxMWAgY29uZmlnIGlzIGRlZmluaXRlbHkgaW4gcGxhY2UsIHNvIHdlIGNhbiBhc3N1bWUgdGhlIHJlbGV2YW50IGluZnJhc3RydWN0dXJlIGlzIGF2YWlsYWJsZS4gVGhlIGtleSBmdW5jdGlvbiBJJ3ZlIGJlZW4gZm9jdXNpbmcgb24gaXMgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYC4gVGhhdCdzIHRoZSBvbmUgdGhhdCdzIGJlZW4gbW9kaWZpZWQsIGFuZCB0aGUgcGF0Y2ggaXMgbG9jYXRlZCBpbiBgbmV0L21hYzgwMjExL3MxZy5jYC5cblxuTm93LCBiZWZvcmUgd2UgZGVjbGFyZSB2aWN0b3J5LCBsZXQncyB0aGluayBjcml0aWNhbGx5OiBhcmUgdGhlcmUgb3RoZXIgZW50cnkgcG9pbnRzIG9yIHJlbGF0ZWQgZnVuY3Rpb25zIHRoYXQgYWxzbyBuZWVkIGZ1enppbmc/IEhtbW0sIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgaXMgc3RhdGljLCB3aGljaCBpcyBhIHBvdGVudGlhbCByZWQgZmxhZy4gQnV0IGl0IGxvb2tzIGxpa2UgaXQncyBjYWxsZWQgYnkgYGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbmAuIFRoYXQncyBhIGdvb2QgY2FuZGlkYXRlIGZvciBgRm9jdXNTeW1ib2xzYC4gTGV0J3MgYWRkIHRoYXQuIEFuZCBiZWNhdXNlIG9mIHRoZSBzdGF0aWMgbmF0dXJlIG9mIHNldHVwLCBpdCBtYWtlcyBzZW5zZSB0byBpbmNsdWRlIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgYXMgd2VsbC5cblxuTGV0J3MgcXVpY2tseSBjb25maXJtIHRoYXQgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpcyByZWFjaGFibGUgZnJvbSBgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uYCwgd2hpY2ggc2VlbXMgbGlrZWx5LiBZZXMsIGhlcmUgaXQgaXMgaW4gdGhlIGNvZGU6XG5cbmBgYGNcblx0Y2FzZSBXTEFOX1MxR19UV1RfU0VUVVA6XG5cdFx0aWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAoc2RhdGEsIHN0YSwgc2tiKTtcblx0XHRicmVhaztcbmBgYFxuXG5QZXJmZWN0LiBOb3csIGxldCdzIGp1c3QgbWFrZSBzdXJlIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWdzLCBldmVuIHRob3VnaCB0aGUgY3VycmVudCBwYXRjaCBpcyBhbGwgYWJvdXQgVGFyZ2V0IFdha2UgVGltZSAoVFdUKSBpbiBTMUcgKFN1Yi0xIEdIeiwgODAyLjExYWgpLiBJcyB0aGVyZSBhIHNwZWNpZmljIGNvbmZpZyBmb3IgUzFHIGl0c2VsZiB0aGF0IHdlIHNob3VsZCBiZSBhd2FyZSBvZj8gVGhhdCdzIHRoZSBuZXh0IGNoZWNrLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTk1NSwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTozMS4xNzI0Mzc2MThaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4MjAwMjg3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfTUFDODAyMTFfUzFHXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDAzOjI1OjMxLjI2MDY0NzUzNVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDgxOTY2NTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqUzFHIENvbmZpZ3VyYXRpb24gQ2hlY2twb2ludCoqXG5cbkFscmlnaHQsIHNvIHRoZXJlJ3Mgbm8gZXhwbGljaXRseSBkZWZpbmVkIGNvbmZpZ3VyYXRpb24gYmxvY2sgZm9yIFMxRyAoU2luZ2xlLVNwYXRpYWwgU3RyZWFtLCAxIEdIeiBiYW5kKSB3aXRoaW4gdGhlIGV4aXN0aW5nIHNldHVwLiBUaGF0J3MgdGhlIGZpcnN0IHRoaW5nIHRvIG5vdGUuIE5vdywgd2hlcmUgZG8gd2UgdHlwaWNhbGx5IGhhbmRsZSB0aGUgVGltZSBXYWtlLXVwIChUV1QpIHNldHVwIGZvciBTMUcgc3BlY2lmaWNhbGx5PyBTZWVtcyBsaWtlIEkgc2hvdWxkIHJldmlzaXQgdGhlIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgZnVuY3Rpb24gYWdhaW4uIEkgd2FudCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSB3ZSdyZSBoYW5kbGluZyBhbGwgdGhlIHNwZWNpZmljIG51YW5jZXMgb2YgUzFHIGNvcnJlY3RseSB3aXRoaW4gdGhhdCBmdW5jdGlvbi4gVGltZSB0byBkaXZlIGJhY2sgaW4gYW5kIGRvdWJsZS1jaGVjayBpdHMgbG9naWMsIGVzcGVjaWFsbHkgaW4gcmVsYXRpb24gdG8gVFdUIG9wZXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTY3OTUsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTozNS4zNDI2MTc5MjFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODI1MzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21hYzgwMjExL3MxZy5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDk2LFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDk2OlxcdHN0YXRpYyB2b2lkXFxuICA5NzpcXHRpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4gIDk4OlxcdFxcdFxcdFxcdCAgIHN0cnVjdCBzdGFfaW5mbyAqc3RhLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiAgOTk6XFx0e1xcbiAxMDA6XFx0XFx0c3RydWN0IGllZWU4MDIxMV9tZ210ICptZ210ID0gKHZvaWQgKilza2ItXFx1MDAzZWRhdGE7XFxuIDEwMTpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9zZXR1cCAqdHd0ID0gKHZvaWQgKiltZ210LVxcdTAwM2V1LmFjdGlvbi5zMWcudmFyaWFibGU7XFxuIDEwMjpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9wYXJhbXMgKnR3dF9hZ3J0ID0gKHZvaWQgKil0d3QtXFx1MDAzZXBhcmFtcztcXG4gMTAzOlxcdFxcbiAxMDQ6XFx0XFx0aWYgKCEodHd0LVxcdTAwM2Vjb250cm9sIFxcdTAwMjYgSUVFRTgwMjExX1RXVF9DT05UUk9MX05FR19UWVBFX0JST0FEQ0FTVCkgXFx1MDAyNlxcdTAwMjZcXG4gMTA1OlxcdFxcdCAgICB0d3QtXFx1MDAzZWxlbmd0aCBcXHUwMDNjIHNpemVvZih0d3QtXFx1MDAzZWNvbnRyb2wpICsgc2l6ZW9mKCp0d3RfYWdydCkpXFxuIDEwNjpcXHRcXHRcXHRyZXR1cm47XFxuIDEwNzpcXHRcXG4gMTA4OlxcdFxcdHR3dF9hZ3J0LVxcdTAwM2VyZXFfdHlwZSBcXHUwMDI2PSBjcHVfdG9fbGUxNih+SUVFRTgwMjExX1RXVF9SRVFUWVBFX1JFUVVFU1QpO1xcbiAxMDk6XFx0XFxuIDExMDpcXHRcXHQvKiBicm9hZGNhc3QgVFdUIG5vdCBzdXBwb3J0ZWQgeWV0ICovXFxuIDExMTpcXHRcXHRpZiAodHd0LVxcdTAwM2Vjb250cm9sIFxcdTAwMjYgSUVFRTgwMjExX1RXVF9DT05UUk9MX05FR19UWVBFX0JST0FEQ0FTVCkge1xcbiAxMTI6XFx0XFx0XFx0dHd0X2FncnQtXFx1MDAzZXJlcV90eXBlIFxcdTAwMjY9XFxuIDExMzpcXHRcXHRcXHRcXHR+Y3B1X3RvX2xlMTYoSUVFRTgwMjExX1RXVF9SRVFUWVBFX1NFVFVQX0NNRCk7XFxuIDExNDpcXHRcXHRcXHR0d3RfYWdydC1cXHUwMDNlcmVxX3R5cGUgfD1cXG4gMTE1OlxcdFxcdFxcdFxcdGxlMTZfZW5jb2RlX2JpdHMoVFdUX1NFVFVQX0NNRF9SRUpFQ1QsXFxuIDExNjpcXHRcXHRcXHRcXHRcXHRcXHQgSUVFRTgwMjExX1RXVF9SRVFUWVBFX1NFVFVQX0NNRCk7XFxuIDExNzpcXHRcXHRcXHRnb3RvIG91dDtcXG4gMTE4OlxcdFxcdH1cXG4gMTE5OlxcdFxcbiAxMjA6XFx0XFx0LyogVFdUIEluZm9ybWF0aW9uIG5vdCBzdXBwb3J0ZWQgeWV0ICovXFxuIDEyMTpcXHRcXHR0d3QtXFx1MDAzZWNvbnRyb2wgfD0gSUVFRTgwMjExX1RXVF9DT05UUk9MX1JYX0RJU0FCTEVEO1xcbiAxMjI6XFx0XFxuIDEyMzpcXHRcXHRkcnZfYWRkX3R3dF9zZXR1cChzZGF0YS1cXHUwMDNlbG9jYWwsIHNkYXRhLCBcXHUwMDI2c3RhLVxcdTAwM2VzdGEsIHR3dCk7XFxuIDEyNDpcXHRvdXQ6XFxuIDEyNTpcXHRcXHRpZWVlODAyMTFfczFnX3NlbmRfdHd0X3NldHVwKHNkYXRhLCBtZ210LVxcdTAwM2VzYSwgc2RhdGEtXFx1MDAzZXZpZi5hZGRyLCB0d3QpO1xcbiAxMjY6XFx0fVxcbiAxMjc6XFx0XFxuIDEyODpcXHRzdGF0aWMgdm9pZFxcbiAxMjk6XFx0aWVlZTgwMjExX3MxZ19yeF90d3RfdGVhcmRvd24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuIDEzMDpcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gMTMxOlxcdHtcXG4gMTMyOlxcdFxcdHN0cnVjdCBpZWVlODAyMTFfbWdtdCAqbWdtdCA9IChzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKilza2ItXFx1MDAzZWRhdGE7XFxuIDEzMzpcXHRcXG4gMTM0OlxcdFxcdGRydl90d3RfdGVhcmRvd25fcmVxdWVzdChzZGF0YS1cXHUwMDNlbG9jYWwsIHNkYXRhLCBcXHUwMDI2c3RhLVxcdTAwM2VzdGEsXFxuIDEzNTpcXHRcXHRcXHRcXHRcXHQgbWdtdC1cXHUwMDNldS5hY3Rpb24uczFnLnZhcmlhYmxlWzBdKTtcXG4gMTM2OlxcdH1cXG4gMTM3OlxcdFxcbiAxMzg6XFx0c3RhdGljIHZvaWRcXG4gMTM5OlxcdGllZWU4MDIxMV9zMWdfdHhfdHd0X3NldHVwX2ZhaWwoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuIDE0MDpcXHRcXHRcXHRcXHRcXHRzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gMTQxOlxcdHtcXG4gMTQyOlxcdFxcdHN0cnVjdCBpZWVlODAyMTFfbWdtdCAqbWdtdCA9IChzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKilza2ItXFx1MDAzZWRhdGE7XFxuIDE0MzpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9zZXR1cCAqdHd0ID0gKHZvaWQgKiltZ210LVxcdTAwM2V1LmFjdGlvbi5zMWcudmFyaWFibGU7XFxuIDE0NDpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9wYXJhbXMgKnR3dF9hZ3J0ID0gKHZvaWQgKil0d3QtXFx1MDAzZXBhcmFtcztcXG4gMTQ1OlxcdFxcdHU4IGZsb3dpZCA9IGxlMTZfZ2V0X2JpdHModHd0X2FncnQtXFx1MDAzZXJlcV90eXBlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTozNS4zNDI3MDIxMDFaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQ2MjcwNjA5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFRXVCBTZXR1cCBGdW5jdGlvbmFsaXR5KipcblxuT2theSwgc28gdGhlIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgZnVuY3Rpb24g4oCTIHllcywgdGhhdCdzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLCB3aGljaCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgdW5kZXJzdGFuZCBpdCBoYW5kbGVzIHRoZSBUV1QgKFRhcmdldCBXYWtlIFRpbWUpIHNldHVwIGFjdGlvbiBmcmFtZXMuIFRoZSByZWNlbnQgcGF0Y2ggaW50cm9kdWNlcyBhIGNydWNpYWwgYm91bmRzIGNoZWNrLCBzcGVjaWZpY2FsbHkgdG8gcHJldmVudCBhbnkgb3V0LW9mLWJvdW5kcyBtZW1vcnkgYWNjZXNzLiBUaGlzIGlzLCB3aXRob3V0IGEgZG91YnQsIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYW5kIGFkZHJlc3NlcyBhIHBvdGVudGlhbCB2dWxuZXJhYmlsaXR5LlxuXG5Ob3csIGxldCdzIG1ha2Ugc3VyZSB0aGUgc3ltYm9scyBhcmUgcHJvcGVybHkgZG9jdW1lbnRlZC4gVGhlIGNvcmUgRm9jdXNTeW1ib2xzIGZvciB0aGlzIGFyZWEgc2hvdWxkIGJlIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgYW5kIGBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25gLCBlbnN1cmluZyB0aGV5IGFyZSBjb3JyZWN0bHkgaGlnaGxpZ2h0ZWQgYXMgdGhlIGtleSBmdW5jdGlvbnMgaGVyZS4gVGhlIEVuYWJsZUNvbmZpZ3Mgc2hvdWxkIGJlIGxpc3RlZCBhcyBgTUFDODAyMTFgLiBUaGF0IG1ha2VzIHNlbnNlIGdpdmVuIHRoZSBjb250ZXh0LlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSdtIGdvaW5nIHRvIHRha2UgYSBtb21lbnQgYW5kIGRvdWJsZS1jaGVjazsgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueXRoaW5nIGVsc2UgaW4gdGVybXMgb2YgY29uZmlndXJhdGlvbnMsIG9yIGFueSBvdGhlciByZWxhdGVkIGZsYWdzLiBBbHdheXMgYSBnb29kIHByYWN0aWNlIHRvIGJlIHRob3JvdWdoIVxuXG5cbiIsIklucHV0VG9rZW5zIjoxODEyOCwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDAzOjI1OjM5LjgwNTQxMDUxN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI3NDg2NDUwNSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX01BQzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTo0MS4wODAyODE1MTFaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDE0MzE0NzUyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWU6XG5cbioqTmF2aWdhdGluZyBLZXJuZWwgQ29uZmlndXJhdGlvbiBQYXRocyoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEknbSBwcmV0dHkgc3VyZSBJJ3ZlIHNlZW4gdGhlIGBtYWM4MDIxMWAgY29uZmlndXJhdGlvbiBmaWxlcyBiZWZvcmUuIEJ1dCwgSSBkb24ndCByZWNhbGwgYSBgbmV0L21hYzgwMjExL0tjb25maWdgIGV4aXN0aW5nLiBJcyB0aGF0IGNvcnJlY3Q/IElzIHRoYXQgcGF0aCBvZmYgYnkgb25lPyBXYWl0LCBpcyBpdCBgbmV0L21hYzgwMjExL0tjb25maWdgPyBObywgdGhhdCBjYW4ndCBiZSByaWdodCBlaXRoZXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBpbiB0aGUgY29ycmVjdCBkaXJlY3RvcnkgaW4gdGhlIGtlcm5lbCB0cmVlLiBPa2F5LCBsZXQncyB2ZXJpZnkuIEkgYW0gZ29pbmcgdG8gZG91YmxlLWNoZWNrIG15IGFzc3VtcHRpb24gYW5kIHRha2UgYSBsb29rIGluc2lkZSB0aGUgYG5ldC9tYWM4MDIxMS9gIGRpcmVjdG9yeSB0byBtYWtlIHN1cmUgSSdtIG9uIHRoZSByaWdodCB0cmFjayBiZWZvcmUgbW92aW5nIG9uLiBJIG5lZWQgdG8gZ2V0IHRoaXMgY29ycmVjdCB0byBwcm9jZWVkIHdpdGggdGhlIGNvbmZpZ3VyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4NTcwLCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDM6MjU6NDUuMjIzNDMyMjc1WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEyNTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJhZWFkX2FwaS5jXCIsXG4gICAgXCJhZWFkX2FwaS5oXCIsXG4gICAgXCJhZXNfY2NtLmhcIixcbiAgICBcImFlc19jbWFjLmNcIixcbiAgICBcImFlc19jbWFjLmhcIixcbiAgICBcImFlc19nY20uaFwiLFxuICAgIFwiYWVzX2dtYWMuY1wiLFxuICAgIFwiYWVzX2dtYWMuaFwiLFxuICAgIFwiYWdnLXJ4LmNcIixcbiAgICBcImFnZy10eC5jXCIsXG4gICAgXCJhaXJ0aW1lLmNcIixcbiAgICBcImFwLmNcIixcbiAgICBcImNmZy5jXCIsXG4gICAgXCJjaGFuLmNcIixcbiAgICBcImRlYnVnLmhcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZGVidWdmcy5oXCIsXG4gICAgXCJkZWJ1Z2ZzX2tleS5jXCIsXG4gICAgXCJkZWJ1Z2ZzX2tleS5oXCIsXG4gICAgXCJkZWJ1Z2ZzX25ldGRldi5jXCIsXG4gICAgXCJkZWJ1Z2ZzX25ldGRldi5oXCIsXG4gICAgXCJkZWJ1Z2ZzX3N0YS5jXCIsXG4gICAgXCJkZWJ1Z2ZzX3N0YS5oXCIsXG4gICAgXCJkcml2ZXItb3BzLmNcIixcbiAgICBcImRyaXZlci1vcHMuaFwiLFxuICAgIFwiZHJvcC5oXCIsXG4gICAgXCJlaHQuY1wiLFxuICAgIFwiZXRodG9vbC5jXCIsXG4gICAgXCJmaWxzX2FlYWQuY1wiLFxuICAgIFwiZmlsc19hZWFkLmhcIixcbiAgICBcImhlLmNcIixcbiAgICBcImh0LmNcIixcbiAgICBcImlic3MuY1wiLFxuICAgIFwiaWVlZTgwMjExX2kuaFwiLFxuICAgIFwiaWZhY2UuY1wiLFxuICAgIFwia2V5LmNcIixcbiAgICBcImtleS5oXCIsXG4gICAgXCJsZWQuY1wiLFxuICAgIFwibGVkLmhcIixcbiAgICBcImxpbmsuY1wiLFxuICAgIFwibWFpbi5jXCIsXG4gICAgXCJtZXNoLmNcIixcbiAgICBcIm1lc2guaFwiLFxuICAgIFwibWVzaF9od21wLmNcIixcbiAgICBcIm1lc2hfcGF0aHRibC5jXCIsXG4gICAgXCJtZXNoX3BsaW5rLmNcIixcbiAgICBcIm1lc2hfcHMuY1wiLFxuICAgIFwibWVzaF9zeW5jLmNcIixcbiAgICBcIm1sbWUuY1wiLFxuICAgIFwibmFuLmNcIixcbiAgICBcIm9jYi5jXCIsXG4gICAgXCJvZmZjaGFubmVsLmNcIixcbiAgICBcInBhcnNlLmNcIixcbiAgICBcInBtLmNcIixcbiAgICBcInJhdGUuY1wiLFxuICAgIFwicmF0ZS5oXCIsXG4gICAgXCJyYzgwMjExX21pbnN0cmVsX2h0LmNcIixcbiAgICBcInJjODAyMTFfbWluc3RyZWxfaHQuaFwiLFxuICAgIFwicmM4MDIxMV9taW5zdHJlbF9odF9kZWJ1Z2ZzLmNcIixcbiAgICBcInJ4LmNcIixcbiAgICBcInMxZy5jXCIsXG4gICAgXCJzY2FuLmNcIixcbiAgICBcInNwZWN0bWdtdC5jXCIsXG4gICAgXCJzdGFfaW5mby5jXCIsXG4gICAgXCJzdGFfaW5mby5oXCIsXG4gICAgXCJzdGF0dXMuY1wiLFxuICAgIFwidGRscy5jXCIsXG4gICAgXCJ0a2lwLmNcIixcbiAgICBcInRraXAuaFwiLFxuICAgIFwidHJhY2UuY1wiLFxuICAgIFwidHJhY2UuaFwiLFxuICAgIFwidHJhY2VfbXNnLmhcIixcbiAgICBcInR4LmNcIixcbiAgICBcInVoci5jXCIsXG4gICAgXCJ1dGlsLmNcIixcbiAgICBcInZodC5jXCIsXG4gICAgXCJ3YnJmLmNcIixcbiAgICBcIndlcC5jXCIsXG4gICAgXCJ3ZXAuaFwiLFxuICAgIFwid21lLmNcIixcbiAgICBcIndtZS5oXCIsXG4gICAgXCJ3cGEuY1wiLFxuICAgIFwid3BhLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwidGVzdHNcIlxuICBdXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTo0NS4yMjM1NDYwODVaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAxMjkyNjIwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgd2VudCBkb3duOlxuXG4qKldoZXJlJ3MgVGhhdCBLY29uZmlnPyEqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgYG5ldC9tYWM4MDIxMWAgZGlyZWN0b3J5LCBhbmQgSSdtIGxvb2tpbmcgZm9yIHRoZSBLY29uZmlnIGZpbGUsIGJlY2F1c2UsIHdlbGwsIHlvdSBuZWVkIGl0IGZvciB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiBCdXQgaXQncyBqdXN0ICpub3QqIHRoZXJlLiBTdHJhbmdlLiBNeSBmaXJzdCB0aG91Z2h0IGlzLCBpcyBpdCByZWFsbHkgc3VwcG9zZWQgdG8gYmUgaW4gYG5ldC9tYWM4MDIxMS9gLCBvciBpcyBpdCBjbGV2ZXJseSBwbGFjZWQgc29tZXdoZXJlIGVsc2U/IFBlcmhhcHMgaXQncyBpbiBgbmV0L3dpcmVsZXNzL0tjb25maWdgPyBUaGF0J3MgdGhlIG1vc3QgbG9naWNhbCBwbGFjZSBpZiBpdCdzIG5vdCB1bmRlciBgbWFjODAyMTFgLiBPciwganVzdCBtYXliZSwgSSdtIHNpbXBseSBibGluZCBhbmQgaXQncyBtaXMtbmFtZWQsIGV2ZW4gdGhvdWdoIGl0IHNob3VsZCBiZSBgbmV0L21hYzgwMjExL0tjb25maWdgIGFuZCBpdOKAmXMganVzdCBoaWRkZW4gaW4gdGhlcmUgc29tZXdoZXJlLiBMZXQncyBzdGFydCB3aXRoIGBuZXQvd2lyZWxlc3MvS2NvbmZpZ2AgYW5kIHRoZW4gbWF5YmUgYG5ldC9LY29uZmlnYCwgYW5kIGdldCB0aGlzIHNvcnRlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk1MzAsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NiwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDM6MjU6NDkuMjM2NDc1NjUzWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDQzMjMwMTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cXHRib29sXFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQyLVxcdGJvb2wgXFxcIk1pbnN0cmVsXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXFxubmV0L21hYzgwMjExL0tjb25maWctNDktXFxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cXHRzdHJpbmdcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXFxcIlNvbWUgd2lyZWxlc3MgZHJpdmVycyByZXF1aXJlIGEgcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTU5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBtYWM4MDIxMVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03MS1cXHRib29sIFxcXCJFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3OTpjb25maWcgTUFDODAyMTFfTEVEU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVxcdGJvb2wgXFxcIkVuYWJsZSBMRUQgdHJpZ2dlcnNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVxcdGJvb2wgXFxcIkV4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cXHRib29sIFxcXCJUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXFxubmV0L21hYzgwMjExL0tjb25maWc6MTEwOm1lbnVjb25maWcgTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cXHRib29sIFxcXCJTZWxlY3QgbWFjODAyMTEgZGVidWdnaW5nIGZlYXR1cmVzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTE1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXFx0Ym9vbCBcXFwiRG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE0Mzpjb25maWcgTUFDODAyMTFfTUxNRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cXHRib29sIFxcXCJWZXJib3NlIG1hbmFnZWQgTUxNRSBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXFx0Ym9vbCBcXFwiVmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTY0LVxcdGJvb2wgXFxcIlZlcmJvc2UgSFQgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NTpjb25maWcgTUFDODAyMTFfT0NCX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTc2LVxcdGJvb2wgXFxcIlZlcmJvc2UgT0NCIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXFx0Ym9vbCBcXFwiVmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTk4LVxcdGJvb2wgXFxcIlZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIwOTpjb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjEwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwZWVyIGxpbmsgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjIxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3MS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyODE6Y29uZmlnIE1BQzgwMjExX1RETFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXFx0Ym9vbCBcXFwiVmVyYm9zZSBURExTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXFxubmV0L21hYzgwMjExL0tjb25maWctMjk0LVxcdGJvb2wgXFxcIkV4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXFxubmV0L21hYzgwMjExL0tjb25maWctMzA5LVxcdGludCBcXFwiU3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVxcXCIgaWYgTUFDODAyMTFfREVCVUdfTUVOVVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTo0OS41NDA4MDgxNDVaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjAyMDc5NTYyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGFzc2Vzc21lbnQgb2YgdGhpcyBwYXRjaDpcblxuKipBbmFseXppbmcgYSBQb3RlbnRpYWwgVnVsbmVyYWJpbGl0eSBpbiBNQUM4MDIxMSBUV1QgSGFuZGxpbmcqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgY29uZmlnIGlzIGRlZmluaXRlbHkgYE1BQzgwMjExYCwgdGhhdCdzIHRoZSBvYnZpb3VzIHN0YXJ0aW5nIHBvaW50LiBUaGUgcGF0Y2ggaXRzZWxmIGZvY3VzZXMgb24gYSBib3VuZHMgY2hlY2sgd2l0aGluIHRoZSBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGZ1bmN0aW9uIGluIGBuZXQvbWFjODAyMTEvczFnLmNgLiBJIGltbWVkaWF0ZWx5IHRoaW5rLCAqdGhhdCBmdW5jdGlvbidzIGNhbGxlZCBieSogYGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbmAsIHdoaWNoIGlzIGl0c2VsZiByZWFjaGFibGUgdGhyb3VnaCBgaWVlZTgwMjExX2lmYWNlX3Byb2Nlc3Nfc2tiYC4gU28sIGEgY2xhc3NpYyByZWNlaXZlIHBhdGguIFRoaXMgaXMgZ29vZCB0byBrbm93LCBhbmQgdGhlIGNhbGwgY2hhaW4gZ2l2ZXMgbWUgYSBkaXJlY3QgYXR0YWNrIHN1cmZhY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYWltZWQgYXQgcHJldmVudGluZyBhbiBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3MuIFRoYXQncyBhIHRleHRib29rIHNlY3VyaXR5IGZpeCwgYW5kIG15IGd1dCByZWFjdGlvbiBpcyB0aGF0IHRoaXMgd2FycmFudHMgc2VyaW91cyBjb25zaWRlcmF0aW9uLlxuXG5HaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBjaGFuZ2UgYW5kIHRoZSBjcml0aWNhbCBwYXRoIGludm9sdmVkIGluIHdpcmVsZXNzIGNvbW11bmljYXRpb24sIHRoaXMgZmVlbHMgbGlrZSBhbiBleGNlbGxlbnQgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBUaGUga2V5IHN5bWJvbHMgSSdtIGdvaW5nIHRvIGJlIGludGVyZXN0ZWQgaW4gYXJlIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgYW5kIGBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25gLiBUaGF0J3Mgd2hlcmUgSSBuZWVkIHRvIGZvY3VzIG15IGVmZm9ydHMgdG8gZ2VuZXJhdGUgaW50ZXJlc3RpbmcgaW5wdXRzLiBUaGUgZmFjdCB0aGF0IGBNQUM4MDIxMWAgaXMgZW5hYmxlZCBtZWFucyBJIGhhdmUgYSBjbGVhbiBzdGFydGluZyBwb2ludCBmb3IgdGhpcyBmdXp6aW5nIGVmZm9ydC4gTm93LCBsZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMDQ1LCJPdXRwdXRUb2tlbnMiOjE2NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTo1NS41NjE2MDYzMDZaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDU3MTcyNjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBcIixcbiAgICBcImllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgdG8gYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpbiBtYWM4MDIxMSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgYWNjZXNzIHdoZW4gcHJvY2Vzc2luZyBUV1Qgc2V0dXAgYWN0aW9uIGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSA4MDIuMTFhaCAoUzFHKSBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMV9od3NpbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwXCIsXG4gICAgXCJpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgaW4gbWFjODAyMTEgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2VzcyB3aGVuIHByb2Nlc3NpbmcgVFdUIHNldHVwIGFjdGlvbiBmcmFtZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgODAyLjExYWggKFMxRykgaW1wbGVtZW50YXRpb24gYW5kIGlzIHJlYWNoYWJsZSB2aWEgbWFjODAyMTFfaHdzaW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowzhtgs[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-24 02:59:35 +0000 UTC FinishedAt: 2026-07-24 03:25:57 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "5e6c0e1b-ae0e-4dce-b314-59a3dcc51244" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_s1g_rx_twt_setup", "ieee80211_s1g_rx_twt_action" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgdG8gYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpbiBtYWM4MDIxMSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgYWNjZXNzIHdoZW4gcHJvY2Vzc2luZyBUV1Qgc2V0dXAgYWN0aW9uIGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSA4MDIuMTFhaCAoUzFHKSBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwMzoyNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGY5N2I3NTljZTE5YWQyYzkzZTA4ZDg2NWZmMTFiNjc2MjRkZmMwMTlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAyNCAwMzoyNTowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvczFnLmMgYi9uZXQvbWFjODAyMTEvczFnLmNcbmluZGV4IDVhZjRhMGM2YzY0MjRiLi5hYmMzMzhlMjJlNTljYyAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9zMWcuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL3MxZy5jXG5AQCAtMTAxLDYgJiM0MzsxMDEsMTAgQEAgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9zZXR1cCAqdHd0ID0gKHZvaWQgKiltZ210LVx1MDAzZXUuYWN0aW9uLnMxZy52YXJpYWJsZTtcbiBcdHN0cnVjdCBpZWVlODAyMTFfdHd0X3BhcmFtcyAqdHd0X2FncnQgPSAodm9pZCAqKXR3dC1cdTAwM2VwYXJhbXM7XG4gXG4mIzQzO1x0aWYgKCEodHd0LVx1MDAzZWNvbnRyb2wgXHUwMDI2IElFRUU4MDIxMV9UV1RfQ09OVFJPTF9ORUdfVFlQRV9CUk9BRENBU1QpIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICB0d3QtXHUwMDNlbGVuZ3RoIFx1MDAzYyBzaXplb2YodHd0LVx1MDAzZWNvbnRyb2wpICYjNDM7IHNpemVvZigqdHd0X2FncnQpKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiBcdHR3dF9hZ3J0LVx1MDAzZXJlcV90eXBlIFx1MDAyNj0gY3B1X3RvX2xlMTYofklFRUU4MDIxMV9UV1RfUkVRVFlQRV9SRVFVRVNUKTtcbiBcbiBcdC8qIGJyb2FkY2FzdCBUV1Qgbm90IHN1cHBvcnRlZCB5ZXQgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwMzoyNTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGluIG1hYzgwMjExIHRvIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgd2hlbiBwcm9jZXNzaW5nIFRXVCBzZXR1cCBhY3Rpb24gZnJhbWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIDgwMi4xMWFoIChTMUcpIGltcGxlbWVudGF0aW9uIGFuZCBpcyByZWFjaGFibGUgdmlhIG1hYzgwMjExX2h3c2ltLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmOTdiNzU5Y2UxOWFkMmM5M2UwOGQ4NjVmZjExYjY3NjI0ZGZjMDE5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMjQgMDM6MjU6MDcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvczFnLmMgYi9uZXQvbWFjODAyMTEvczFnLmMKaW5kZXggNWFmNGEwYzZjNjQyNGIuLmFiYzMzOGUyMmU1OWNjIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvczFnLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL3MxZy5jCkBAIC0xMDEsNiAmIzQzOzEwMSwxMCBAQCBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwKIAlzdHJ1Y3QgaWVlZTgwMjExX3R3dF9zZXR1cCAqdHd0ID0gKHZvaWQgKiltZ210LSZndDt1LmFjdGlvbi5zMWcudmFyaWFibGU7CiAJc3RydWN0IGllZWU4MDIxMV90d3RfcGFyYW1zICp0d3RfYWdydCA9ICh2b2lkICopdHd0LSZndDtwYXJhbXM7CiAKJiM0MzsJaWYgKCEodHd0LSZndDtjb250cm9sICZhbXA7IElFRUU4MDIxMV9UV1RfQ09OVFJPTF9ORUdfVFlQRV9CUk9BRENBU1QpICZhbXA7JmFtcDsKJiM0MzsJICAgIHR3dC0mZ3Q7bGVuZ3RoICZsdDsgc2l6ZW9mKHR3dC0mZ3Q7Y29udHJvbCkgJiM0Mzsgc2l6ZW9mKCp0d3RfYWdydCkpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiAJdHd0X2FncnQtJmd0O3JlcV90eXBlICZhbXA7PSBjcHVfdG9fbGUxNih+SUVFRTgwMjExX1RXVF9SRVFUWVBFX1JFUVVFU1QpOwogCiAJLyogYnJvYWRjYXN0IFRXVCBub3Qgc3VwcG9ydGVkIHlldCAqLwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwMzoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI2CgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogMzE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEJvdW5kcyBDaGVjayBpbiBtYWM4MDIxMSBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IGEgcGF0Y2ggaW4gYG5ldC9tYWM4MDIxMS9zMWcuY2AsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBhIGJvdW5kcyBjaGVjayBhZGRlZCB0byBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgLiBMZXQgbWUgcXVpY2tseSByZWZyZXNoIG15IG1lbW9yeSBvZiB0aGF0IGZ1bmN0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljLgoKTG9va2luZyBhdCB0aGUgY29kZSBzbmlwcGV0LCBpdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBJdCYjMzk7cyBjaGVja2luZyBpZiB0aGUgYHR3dC0mZ3Q7bGVuZ3RoYCBmaWVsZCBpcyBzdWZmaWNpZW50IHRvIGNvbnRhaW4gYm90aCB0aGUgYHR3dC0mZ3Q7Y29udHJvbGAgYW5kIGB0d3RfYWdydGAgc3RydWN0dXJlcyB3aGVuIHRoZSBuZWdvdGlhdGlvbiB0eXBlIGlzbiYjMzk7dCBhIGJyb2FkY2FzdC4gVGhpcyBzZWVtcyBsaWtlIGEgcGVyZmVjdGx5IHNlbnNpYmxlIGFuZCBuZWNlc3NhcnkgY2hlY2sgdG8gcHJldmVudCBidWZmZXIgb3ZlcmZsb3dzIG9yIHVuZGVyZmxvd3MuIEl0JiMzOTtzIGEgY3JpdGljYWwgc2FmZXR5IG1lYXN1cmUsIHByZXZlbnRpbmcgdGhlIGNvZGUgZnJvbSByZWFkaW5nIHBhc3QgdGhlIGVuZCBvZiBhbGxvY2F0ZWQgbWVtb3J5LiBUaGUgcGF0Y2ggaXMgZW5zdXJpbmcgdGhlIHNpemUgb2YgdGhlIHJlY2VpdmVkIFRXVCBzZXR1cCBmcmFtZSBpcyBhZGVxdWF0ZS4KCk5vdywgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUsIHRoaXMgZ2V0cyBpbnRlcmVzdGluZy4gbWFjODAyMTEgaXMgYSBrbm93biB0YXJnZXQgZm9yIGZ1enppbmcsIGFuZCBgbWFjODAyMTFfaHdzaW1gIGlzIGEga2V5IGNvbXBvbmVudCBmb3IgdGhhdC4gR2l2ZW4gdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIG1hYzgwMjExLCBpdCYjMzk7cyBzb21ldGhpbmcgSSBuZWVkIHRvIGV2YWx1YXRlIGZvciBmdXp6aW5nIGltcGFjdC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGJvdW5kcyBjaGVjayBpcyByb2J1c3QgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgbmV3IHZ1bG5lcmFiaWxpdGllcyBvciBieXBhc3Nlcy4KCk15IG5leHQgc3RlcCBpcyB0byBleGFtaW5lIHRoZSBgQ09ORklHX01BQzgwMjExYCBjb25maWd1cmF0aW9uIG9wdGlvbi4gSSBuZWVkIHRvIGtub3cgdGhlIHJlbGV2YW50IGJ1aWxkIGZsYWdzIHRvIGVuc3VyZSBgbWFjODAyMTFgIGlzIGVuYWJsZWQgY29ycmVjdGx5IGZvciBteSB0ZXN0cyBhbmQgaWYgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIHdpbGwgaW5mbHVlbmNlIHRoZSBiZWhhdmlvdXIgb2YgdGhpcyBjaGVjay4gVGltZSB0byBnZXQgZmFtaWxpYXIgd2l0aCB0aGUgZXhhY3QgbG9jYXRpb24gaW4gdGhlIGNvZGViYXNlIG9mIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgaW4gdGhlIHMxZy5jIGZpbGUgYW5kIHZlcmlmeSBpdHMgZGVwZW5kZW5jaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2llZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL3MxZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9zMWcuYz05Nj1zdGF0aWMgdm9pZFxubmV0L21hYzgwMjExL3MxZy5jOjk3OmllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL3MxZy5jLTk4LVx0XHRcdCAgIHN0cnVjdCBzdGFfaW5mbyAqc3RhLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9tYWM4MDIxMS9zMWcuYz0xNTQ9dm9pZCBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3MxZy5jLTE2OC1cdGNhc2UgV0xBTl9TMUdfVFdUX1NFVFVQOlxubmV0L21hYzgwMjExL3MxZy5jOjE2OTpcdFx0aWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAoc2RhdGEsIHN0YSwgc2tiKTtcbm5ldC9tYWM4MDIxMS9zMWcuYy0xNzAtXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwODkKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiA4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIFRXVCBTZXR1cCB3aXRoaW4gdGhlIDgwMi4xMSBzMWcgQ29udGV4dCoqCgpBbHJpZ2h0LCBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgZnVuY3Rpb24uIFRoZSBmaXJzdCB0aGluZyB0aGF0IGp1bXBzIG91dCBpcyB0aGF0IGl0JiMzOTtzIGRlY2xhcmVkIGBzdGF0aWNgLiBUaGlzIGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0JiMzOTtzIGxpbWl0ZWQgaW4gc2NvcGUgYW5kIGxpa2VseSBpbnRlcm5hbCB0byBhIHNwZWNpZmljIG1vZHVsZSwgbW9zdCBsaWtlbHkgdGhlIFMxRyByZWNlaXZlIHBhdGguIE15IG5leHQgdGhvdWdodCBpcywgd2hlcmUgaXMgaXQgY2FsbGVkIGZyb20/IFNlZW1zIGxpa2UgaXQmIzM5O3MgY2FsbGVkIGZyb20gYGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbmAsIHdoaWNoIGlzIHByb2JhYmx5IGhhbmRsaW5nIGEgVFdUIGFjdGlvbiBmcmFtZSBvbiB0aGUgcmVjZWl2ZSBzaWRlLiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB3aWRlciBjb250ZXh0LiBJcyBgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uYCBpdHNlbGYgYW4gZXhwb3J0ZWQgZnVuY3Rpb24/IE9yIGlzIGl0IHNpbWlsYXJseSBzY29wZWQsIGludGVybmFsIHRvIHRoZSBkcml2ZXI/IEkgbmVlZCB0byB2ZXJpZnkgaXRzIHZpc2liaWxpdHk7IGlzIGl0IGV4cG9zZWQgdmlhIGEgc3ltYm9sIHRhYmxlIG9yIGlzIGl0IG9ubHkgY2FsbGVkIHdpdGhpbiB0aGUgUzFHIFJYIHBhdGggb2YgdGhlIGRyaXZlcj8gVW5kZXJzdGFuZGluZyB0aGUgc2NvcGUgb2YgdGhlc2UgZnVuY3Rpb25zIHdpbGwgaGVscCBtZSBncmFzcCBob3cgdGhlIFRXVCBzZXR1cCBpcyB0cmlnZ2VyZWQgYW5kIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIGludG8gdGhlIHJlY2VpdmUgZmxvdyBvZiB0aGlzIHBhcnRpY3VsYXIgODAyLjExIHZhcmlhbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0yMzkzPWJvb2wgaWVlZTgwMjExX3MxZ19pc190d3Rfc2V0dXAoc3RydWN0IHNrX2J1ZmYgKnNrYik7XG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoyMzk0OnZvaWQgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjM5NS1cdFx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbi0tXG5uZXQvbWFjODAyMTEvaWZhY2UuYz0xNjIwPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9pZmFjZV9wcm9jZXNzX3NrYihzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcbi0tXG5uZXQvbWFjODAyMTEvaWZhY2UuYy0xNzE5LVx0XHRjYXNlIFdMQU5fUzFHX1RXVF9TRVRVUDpcbm5ldC9tYWM4MDIxMS9pZmFjZS5jOjE3MjA6XHRcdFx0aWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uKHNkYXRhLCBza2IpO1xubmV0L21hYzgwMjExL2lmYWNlLmMtMTcyMS1cdFx0XHRicmVhaztcbi0tXG5uZXQvbWFjODAyMTEvczFnLmM9MTM5PWllZWU4MDIxMV9zMWdfdHhfdHd0X3NldHVwX2ZhaWwoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3MxZy5jLTE1My1cbm5ldC9tYWM4MDIxMS9zMWcuYzoxNTQ6dm9pZCBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvczFnLmMtMTU1LVx0XHRcdFx0IHN0cnVjdCBza19idWZmICpza2IpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk5MQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlIHdoYXQgd2UmIzM5O3ZlIGdvdCBoZXJlLgoKKipBbmFseXppbmcgdGhlIENhbGwgUGF0aCBhbmQgQ29uZmlndXJhdGlvbiBDb250ZXh0KioKClJpZ2h0LCBzbyB0aGlzIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGBpZWVlODAyMTFfaWZhY2VfcHJvY2Vzc19za2JgLCB3aGljaCwgaWYgSSByZWNhbGwgY29ycmVjdGx5LCByZXNpZGVzIHdpdGhpbiBgbmV0L21hYzgwMjExL2lmYWNlLmNgLiBUaGF0IHBsYWNlcyBpdCBmaXJtbHkgd2l0aGluIHRoZSBtYWM4MDIxMSBmcmFtZXdvcmssIHdoaWNoIGlzIHdoZXJlIEkgZXhwZWN0ZWQuIEdvb2QuIEFuZCB0aGlzIGlzICpkZWZpbml0ZWx5KiByZWFjaGFibGUgdmlhIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoIG5hcnJvd3MgZG93biB0aGUgc2NvcGUgZm9yIGFuYWx5c2lzIGNvbnNpZGVyYWJseS4gV2l0aCB0aGUgY29udGV4dCBvZiB0aGUgbWFjODAyMTEgaW5mcmFzdHJ1Y3R1cmUgZXN0YWJsaXNoZWQsIG5vdyBJIGhhdmUgdG8gY2hlY2sgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24uIFRoZSByZWxldmFudCBjb25maWcgaXMgYE1BQzgwMjExYCwgdGhhdCBtYWtlcyBzZW5zZS4gTm93LCBsZXQmIzM5O3MgbG9vayBmb3IgUzFHIG9yIFRXVCBzcGVjaWZpYyBjb25maWcgb3B0aW9ucyB0byB1bmRlcnN0YW5kIHdoZXJlIHRoaXMgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBpY3R1cmUuIE15IG5leHQgdGFzayBpcyB0byB2ZXJpZnkgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBzZXQgZm9yIGVpdGhlciBTaW5nbGUtQ2FycmllciBtb2R1bGF0aW9uIG9yIFRhcmdldCBXYWtlIFRpbWUgZnVuY3Rpb25hbGl0aWVzLiBUaG9zZSB0d28gYXJlIGRlZmluaXRlbHkgdGhlIG1vc3QgcmVsZXZhbnQgd2hlbiBJIHRoaW5rIGFib3V0IHRoZSBsYXRlc3QgZW5oYW5jZW1lbnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19NQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxubmV0L21hYzgwMjExL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX01BQzgwMjExKSAmIzQzOz0gbWFjODAyMTEub1xubmV0L21hYzgwMjExL01ha2VmaWxlLTMtXG4tLVxubmV0L21hYzgwMjExL01ha2VmaWxlPTU9bWFjODAyMTEteSA6PSBcXFxuLS1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zOS1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0MDptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9MRURTKSAmIzQzOz0gbGVkLm9cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0MTptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTKSAmIzQzOz0gXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS00Mi1cdGRlYnVnZnMubyBcXFxuLS1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS00Ni1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0NzptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9NRVNIKSAmIzQzOz0gXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS00OC1cdG1lc2gubyBcXFxuLS1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZT01OT1yYzgwMjExX21pbnN0cmVsLXkgOj0gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNjEtXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NjI6cmM4MDIxMV9taW5zdHJlbC0kKENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTKSAmIzQzOz0gXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS02My1cdHJjODAyMTFfbWluc3RyZWxfaHRfZGVidWdmcy5vXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNjQtXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NjU6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfUkNfTUlOU1RSRUwpICYjNDM7PSAkKHJjODAyMTFfbWluc3RyZWwteSlcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS02Ni1cbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmM9NjEzPXN0YXRpYyBpbnQgaWVlZTgwMjExX2FkZF9rZXkoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2Rldixcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNzEwLVx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxubmV0L21hYzgwMjExL2NmZy5jOjcxMTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9jZmcuYy03MTItXHRcdGlmIChzZGF0YS1cdTAwM2V1Lm1lc2guc2VjdXJpdHkgIT0gSUVFRTgwMjExX01FU0hfU0VDX05PTkUpXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTIxODk9c3RhdGljIHZvaWQgc3RhX2FwcGx5X21lc2hfcGFyYW1zKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yMTkyLXtcbm5ldC9tYWM4MDIxMS9jZmcuYzoyMTkzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL2NmZy5jLTIxOTQtXHRzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSA9IHN0YS1cdTAwM2VzZGF0YTtcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmM9Mjc4Mz1zdGF0aWMgaW50IGllZWU4MDIxMV9jaGFuZ2Vfc3RhdGlvbihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yODg5LVxubmV0L21hYzgwMjExL2NmZy5jOjI4OTA6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjg5MS1zdGF0aWMgaW50IGllZWU4MDIxMV9hZGRfbXBhdGgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmM9NDQyND1zdGF0aWMgaW50IGllZWU4MDIxMV9zZXRfYWZ0ZXJfY3NhX2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGlua19kYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy00NDQ3LVx0XHRicmVhaztcbm5ldC9tYWM4MDIxMS9jZmcuYzo0NDQ4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL2NmZy5jLTQ0NDktXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTQ1NTk9c3RhdGljIGludCBpZWVlODAyMTFfc2V0X2NzYV9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmtfZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDY1MC1cdFx0YnJlYWs7XG5uZXQvbWFjODAyMTEvY2ZnLmM6NDY1MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9jZmcuYy00NjUyLVx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOiB7XG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTU5ODQ9Y29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzID0ge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy02MDA0LVx0LmR1bXBfc3VydmV5ID0gaWVlZTgwMjExX2R1bXBfc3VydmV5LFxubmV0L21hYzgwMjExL2NmZy5jOjYwMDU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvY2ZnLmMtNjAwNi1cdC5hZGRfbXBhdGggPSBpZWVlODAyMTFfYWRkX21wYXRoLFxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTEwLVxubmV0L21hYzgwMjExL2RlYnVnLmg6MTE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9PQ0JfREVCVUdcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTEyLSNkZWZpbmUgTUFDODAyMTFfT0NCX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC0xNi1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjE3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfSUJTU19ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtMTgtI2RlZmluZSBNQUM4MDIxMV9JQlNTX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yMi1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjIzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTI0LSNkZWZpbmUgTUFDODAyMTFfUFNfREVCVUcgMVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTI4LVxubmV0L21hYzgwMjExL2RlYnVnLmg6Mjk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9IVF9ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtMzAtI2RlZmluZSBNQUM4MDIxMV9IVF9ERUJVRyAxXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtMzQtXG5uZXQvbWFjODAyMTEvZGVidWcuaDozNTojaWZkZWYgQ09ORklHX01BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtMzYtI2RlZmluZSBNQUM4MDIxMV9NUExfREVCVUcgMVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTQwLVxubmV0L21hYzgwMjExL2RlYnVnLmg6NDE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NUEFUSF9ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtNDItI2RlZmluZSBNQUM4MDIxMV9NUEFUSF9ERUJVRyAxXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtNDYtXG5uZXQvbWFjODAyMTEvZGVidWcuaDo0NzojaWZkZWYgQ09ORklHX01BQzgwMjExX01IV01QX0RFQlVHXG5uZXQvbWFjODAyMTEvZGVidWcuaC00OC0jZGVmaW5lIE1BQzgwMjExX01IV01QX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC01Mi1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjUzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvZGVidWcuaC01NC0jZGVmaW5lIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVRyAxXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtNTgtXG5uZXQvbWFjODAyMTEvZGVidWcuaDo1OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfQ1NBX0RFQlVHXG5uZXQvbWFjODAyMTEvZGVidWcuaC02MC0jZGVmaW5lIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC02NC1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjY1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtNjYtI2RlZmluZSBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC03MC1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjcxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmgtNzItI2RlZmluZSBNQUM4MDIxMV9URExTX0RFQlVHIDFcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC03Ni1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjc3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvZGVidWcuaC03OC0jZGVmaW5lIE1BQzgwMjExX1NUQV9ERUJVRyAxXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtODItXG5uZXQvbWFjODAyMTEvZGVidWcuaDo4MzojaWZkZWYgQ09ORklHX01BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTg0LSNkZWZpbmUgTUFDODAyMTFfTUxNRV9ERUJVRyAxXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmgtODgtXG5uZXQvbWFjODAyMTEvZGVidWcuaDo4OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL2RlYnVnLmgtOTAtdm9pZCBfX3NkYXRhX2luZm8oY29uc3QgY2hhciAqZm10LCAuLi4pIF9fcHJpbnRmKDEsIDIpO1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmM9NjMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGVidWdmc19zaG9ydF9mb3BzIHN0YXRzXyAjI25hbWUjIyBfb3BzID0ge1x0XHRcdFxcXG4tLVxubmV0L21hYzgwMjExL2RlYnVnZnMuYy02MzYtXG5uZXQvbWFjODAyMTEvZGVidWdmcy5jOjYzNzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHX0NPVU5URVJTXG5uZXQvbWFjODAyMTEvZGVidWdmcy5jLTYzOC0jZGVmaW5lIERFQlVHRlNfU1RBVFNfQUREKG5hbWUpXHRcdFx0XHRcdFxcXG4tLVxubmV0L21hYzgwMjExL2RlYnVnZnMuYz02NDk9dm9pZCBkZWJ1Z2ZzX2h3X2FkZChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcbi0tXG5uZXQvbWFjODAyMTEvZGVidWdmcy5jLTY4My1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmM6Njg0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmMtNjg1LVx0REVCVUdGU19TVEFUU19BREQoZG90MTFUcmFuc21pdHRlZEZyYWdtZW50Q291bnQpO1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmgtNi1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmg6NzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmgtOC12b2lkIGRlYnVnZnNfaHdfYWRkKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKTtcbi0tXG5uZXQvbWFjODAyMTEvZGVidWdmc19rZXkuaC00LVxubmV0L21hYzgwMjExL2RlYnVnZnNfa2V5Lmg6NTojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX2tleS5oLTYtdm9pZCBpZWVlODAyMTFfZGVidWdmc19rZXlfYWRkKHN0cnVjdCBpZWVlODAyMTFfa2V5ICprZXkpO1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jPTczNj1JRUVFODAyMTFfSUZfTElOS19GSUxFKGFkZHIsIGNvbmYtXHUwMDNlYWRkciwgTUFDKTtcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczNy1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjczODojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczOS1JRUVFODAyMTFfSUZfRklMRShlc3RhYl9wbGlua3MsIHUubWVzaC5lc3RhYl9wbGlua3MsIEFUT01JQyk7XG4tLVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM9ODY4PXN0YXRpYyB2b2lkIGFkZF9pYnNzX2ZpbGVzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3Mi1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjg3MzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3NC1cbi0tXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYz05Mzc9c3RhdGljIHZvaWQgYWRkX2ZpbGVzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTk0OS1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjk1MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTk1MS1cdFx0YWRkX21lc2hfZmlsZXMoc2RhdGEpO1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5oLTEyLVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg6MTM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaC0xNC12b2lkIGllZWU4MDIxMV9kZWJ1Z2ZzX3JlbW92ZV9uZXRkZXYoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpO1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX3N0YS5oLTYtXG5uZXQvbWFjODAyMTEvZGVidWdmc19zdGEuaDo3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL2RlYnVnZnNfc3RhLmgtOC12b2lkIGllZWU4MDIxMV9zdGFfZGVidWdmc19hZGQoc3RydWN0IHN0YV9pbmZvICpzdGEpO1xuLS1cbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmg9NDc3PXN0YXRpYyBpbmxpbmUgdm9pZCBkcnZfc3RhX3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcbi0tXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTQ5NC1cbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmg6NDk1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaC00OTYtc3RhdGljIGlubGluZSB2b2lkIGRydl92aWZfYWRkX2RlYnVnZnMoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9NzcwPXN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCB7XG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtODUwLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6ODUxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtODUyLSNkZWZpbmUgSUVFRTgwMjExX0lGU1RBX01FU0hfQ1RSX0lOQyhtc2gsIG5hbWUpXHRcXFxuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTEwOTk9c3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEge1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTExNTEtXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxMTUyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTE1My1cdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZGlyO1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTExNTc9c3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSB7XG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTI0NC1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjEyNDU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xMjQ2LVx0c3RydWN0IHtcbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0xMzY0PWVudW0gcXVldWVfc3RvcF9yZWFzb24ge1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTEzNzktXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxMzgwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTEVEU1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTM4MS1zdHJ1Y3QgdHB0X2xlZF90cmlnZ2VyIHtcbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0xNDQ4PXN0cnVjdCBpZWVlODAyMTFfbG9jYWwge1xuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2MjgtXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxNjI5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTEVEU1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTYzMC1cdHN0cnVjdCBsZWRfdHJpZ2dlciB0eF9sZWQsIHJ4X2xlZCwgYXNzb2NfbGVkLCByYWRpb19sZWQ7XG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTYzNi1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjE2Mzc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTYzOC1cdC8qIFNOTVAgY291bnRlcnMgKi9cbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xNjY0LSNkZWZpbmUgSTgwMl9ERUJVR19JTkMoYykgKGMpJiM0MzsmIzQzO1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTY2NTojZWxzZSAvKiBDT05GSUdfTUFDODAyMTFfREVCVUdfQ09VTlRFUlMgKi9cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2NjYtI2RlZmluZSBJODAyX0RFQlVHX0lOQyhjKSBkbyB7IH0gd2hpbGUgKDApXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxNjY3OiNlbmRpZiAvKiBDT05GSUdfTUFDODAyMTFfREVCVUdfQ09VTlRFUlMgKi9cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2NjgtXG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTY5NS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjE2OTY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xNjk3LVx0c3RydWN0IGxvY2FsX2RlYnVnZnNkZW50cmllcyB7XG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9Mjk0MD11MzIgaWVlZTgwMjExX2NhbGNfZXhwZWN0ZWRfdHhfYWlydGltZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTQzLVx0XHRcdFx0ICAgICAgIGludCBsZW4sIGJvb2wgYW1wZHUpO1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6Mjk0NDojaWZkZWYgQ09ORklHX01BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTQ1LSNkZWZpbmUgZGVidWdfbm9pbmxpbmUgbm9pbmxpbmVcbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0yOTc2PWllZWU4MDIxMV91aHJfY2FwX2llX3RvX3N0YV91aHJfY2FwKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTI5ODEtXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoyOTgyOiNpZiBJU19FTkFCTEVEKENPTkZJR19NQUM4MDIxMV9LVU5JVF9URVNUKVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjk4My0jZGVmaW5lIEVYUE9SVF9TWU1CT0xfSUZfTUFDODAyMTFfS1VOSVQoc3ltKSBFWFBPUlRfU1lNQk9MX0lGX0tVTklUKHN5bSlcbi0tXG5uZXQvbWFjODAyMTEva2V5Lmg9NTk9c3RydWN0IGllZWU4MDIxMV9rZXkge1xuLS1cbm5ldC9tYWM4MDIxMS9rZXkuaC0xMjItXG5uZXQvbWFjODAyMTEva2V5Lmg6MTIzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL2tleS5oLTEyNC1cdHN0cnVjdCB7XG4tLVxubmV0L21hYzgwMjExL2xlZC5oPTEzPXN0YXRpYyBpbmxpbmUgdm9pZCBpZWVlODAyMTFfbGVkX3J4KHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxubmV0L21hYzgwMjExL2xlZC5oLTE0LXtcbm5ldC9tYWM4MDIxMS9sZWQuaDoxNTojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9sZWQuaC0xNi1cdGlmICghYXRvbWljX3JlYWQoXHUwMDI2bG9jYWwtXHUwMDNlcnhfbGVkX2FjdGl2ZSkpXG4tLVxubmV0L21hYzgwMjExL2xlZC5oPTIyPXN0YXRpYyBpbmxpbmUgdm9pZCBpZWVlODAyMTFfbGVkX3R4KHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxubmV0L21hYzgwMjExL2xlZC5oLTIzLXtcbm5ldC9tYWM4MDIxMS9sZWQuaDoyNDojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9sZWQuaC0yNS1cdGlmICghYXRvbWljX3JlYWQoXHUwMDI2bG9jYWwtXHUwMDNldHhfbGVkX2FjdGl2ZSkpXG4tLVxubmV0L21hYzgwMjExL2xlZC5oLTMwLVxubmV0L21hYzgwMjExL2xlZC5oOjMxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTEVEU1xubmV0L21hYzgwMjExL2xlZC5oLTMyLXZvaWQgaWVlZTgwMjExX2xlZF9hc3NvYyhzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcbi0tXG5uZXQvbWFjODAyMTEvbGVkLmg9NzE9aWVlZTgwMjExX3RwdF9sZWRfdHJpZ190eChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwgaW50IGJ5dGVzKVxubmV0L21hYzgwMjExL2xlZC5oLTcyLXtcbm5ldC9tYWM4MDIxMS9sZWQuaDo3MzojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9sZWQuaC03NC1cdGlmIChhdG9taWNfcmVhZChcdTAwMjZsb2NhbC1cdTAwM2V0cHRfbGVkX2FjdGl2ZSkpXG4tLVxubmV0L21hYzgwMjExL2xlZC5oPTgwPWllZWU4MDIxMV90cHRfbGVkX3RyaWdfcngoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsIGludCBieXRlcylcbm5ldC9tYWM4MDIxMS9sZWQuaC04MS17XG5uZXQvbWFjODAyMTEvbGVkLmg6ODI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvbGVkLmgtODMtXHRpZiAoYXRvbWljX3JlYWQoXHUwMDI2bG9jYWwtXHUwMDNldHB0X2xlZF9hY3RpdmUpKVxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmM9MTEzOD1pbnQgaWVlZTgwMjExX3JlZ2lzdGVyX2h3KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmMtMTM5My1cbm5ldC9tYWM4MDIxMS9tYWluLmM6MTM5NDojaWZuZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEzOTUtXHQvKiBtZXNoIGRlcGVuZHMgb24gS2NvbmZpZywgYnV0IGRyaXZlcnMgc2hvdWxkIHNldCBpdCBpZiB0aGV5IHdhbnQgKi9cbi0tXG5uZXQvbWFjODAyMTEvbWVzaC5oPTM3OD12b2lkIG1lc2hfcGF0aF9yZWZyZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9tZXNoLmgtMzgwLVxubmV0L21hYzgwMjExL21lc2guaDozODE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvbWVzaC5oLTM4Mi1zdGF0aWMgaW5saW5lXG4tLVxubmV0L21hYzgwMjExL29mZmNoYW5uZWwuYz04MTI9aW50IGllZWU4MDIxMV9tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4tLVxubmV0L21hYzgwMjExL29mZmNoYW5uZWwuYy04NDEtXHRcdFx0bmVlZF9vZmZjaGFuID0gdHJ1ZTtcbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmM6ODQyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL29mZmNoYW5uZWwuYy04NDMtXHRcdGZhbGx0aHJvdWdoO1xuLS1cbm5ldC9tYWM4MDIxMS9yYXRlLmM9MjQ9c3RhdGljIERFRklORV9NVVRFWChyYXRlX2N0cmxfbXV0ZXgpO1xubmV0L21hYzgwMjExL3JhdGUuYy0yNS1cbm5ldC9tYWM4MDIxMS9yYXRlLmM6MjY6c3RhdGljIGNoYXIgKmllZWU4MDIxMV9kZWZhdWx0X3JjX2FsZ28gPSBDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVDtcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjctbW9kdWxlX3BhcmFtKGllZWU4MDIxMV9kZWZhdWx0X3JjX2FsZ28sIGNoYXJwLCAwNjQ0KTtcbi0tXG5uZXQvbWFjODAyMTEvcmF0ZS5jPTIxNj1pZWVlODAyMTFfcmF0ZV9jb250cm9sX29wc19nZXQoY29uc3QgY2hhciAqbmFtZSlcbi0tXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTIzMi1cdC8qIE5vdGU6IGNoZWNrIGZvciBcdTAwM2UgMCBpcyBpbnRlbnRpb25hbCB0byBhdm9pZCBjbGFuZyB3YXJuaW5nICovXG5uZXQvbWFjODAyMTEvcmF0ZS5jOjIzMzpcdGlmICghb3BzIFx1MDAyNlx1MDAyNiAoc3RybGVuKENPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUKSBcdTAwM2UgMCkpXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTIzNC1cdFx0LyogdHJ5IGJ1aWx0LWluIG9uZSBpZiBzcGVjaWZpYyBhbGcgcmVxdWVzdGVkIGJ1dCBub3QgZm91bmQgKi9cbm5ldC9tYWM4MDIxMS9yYXRlLmM6MjM1Olx0XHRvcHMgPSBpZWVlODAyMTFfdHJ5X3JhdGVfY29udHJvbF9vcHNfZ2V0KENPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUKTtcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjM2LVxuLS1cbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjQxLVxubmV0L21hYzgwMjExL3JhdGUuYzoyNDI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTI0My1zdGF0aWMgc3NpemVfdCByY25hbWVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJidWYsXG4tLVxubmV0L21hYzgwMjExL3JhdGUuYz0yODE9c3RhdGljIHZvaWQgcmF0ZV9jb250cm9sX2ZyZWUoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL3JhdGUuYy0yODUtXG5uZXQvbWFjODAyMTEvcmF0ZS5jOjI4NjojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjg3LVx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGxvY2FsLVx1MDAzZWRlYnVnZnMucmNkaXIpO1xuLS1cbm5ldC9tYWM4MDIxMS9yYXRlLmg9NTU9c3RhdGljIGlubGluZSB2b2lkIHJhdGVfY29udHJvbF9hZGRfc3RhX2RlYnVnZnMoc3RydWN0IHN0YV9pbmZvICpzdGEpXG5uZXQvbWFjODAyMTEvcmF0ZS5oLTU2LXtcbm5ldC9tYWM4MDIxMS9yYXRlLmg6NTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvcmF0ZS5oLTU4LVx0c3RydWN0IHJhdGVfY29udHJvbF9yZWYgKnJlZiA9IHN0YS1cdTAwM2VyYXRlX2N0cmw7XG4tLVxubmV0L21hYzgwMjExL3JhdGUuaD02Nz1zdGF0aWMgaW5saW5lIHZvaWQgcmF0ZV9jb250cm9sX2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxubmV0L21hYzgwMjExL3JhdGUuaC02OC17XG5uZXQvbWFjODAyMTEvcmF0ZS5oOjY5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL3JhdGUuaC03MC1cdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNkaXI7XG4tLVxubmV0L21hYzgwMjExL3JhdGUuaD05ND12b2lkIHJhdGVfY29udHJvbF9kZWluaXRpYWxpemUoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpO1xuLS1cbm5ldC9tYWM4MDIxMS9yYXRlLmgtOTctLyogUmF0ZSBjb250cm9sIGFsZ29yaXRobXMgKi9cbm5ldC9tYWM4MDIxMS9yYXRlLmg6OTg6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9SQ19NSU5TVFJFTFxubmV0L21hYzgwMjExL3JhdGUuaC05OS1pbnQgcmM4MDIxMV9taW5zdHJlbF9pbml0KHZvaWQpO1xuLS1cbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM9MTA1OT1taW5zdHJlbF9odF91cGRhdGVfc3RhdHMoc3RydWN0IG1pbnN0cmVsX3ByaXYgKm1wLCBzdHJ1Y3QgbWluc3RyZWxfaHRfc3RhICptaSlcbi0tXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jLTExODEtXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jOjExODI6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jLTExODMtXHQvKiB1c2UgZml4ZWQgaW5kZXggaWYgc2V0ICovXG4tLVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYz0xNTk1PW1pbnN0cmVsX2h0X2dldF9yYXRlKHZvaWQgKnByaXYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHZvaWQgKnByaXZfc3RhLFxuLS1cbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmMtMTYwNi1cbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM6MTYwNzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmMtMTYwOC1cdGlmIChtcC1cdTAwM2VmaXhlZF9yYXRlX2lkeCAhPSAtMSlcbi0tXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jPTE5MTU9bWluc3RyZWxfaHRfYWxsb2Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xOTQ4LVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYzoxOTQ5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xOTUwLXN0YXRpYyB2b2lkIG1pbnN0cmVsX2h0X2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB2b2lkICpwcml2LFxuLS1cbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM9MTk4Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJhdGVfY29udHJvbF9vcHMgbWFjODAyMTFfbWluc3RyZWxfaHQgPSB7XG4tLVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xOTkzLVx0LmZyZWUgPSBtaW5zdHJlbF9odF9mcmVlLFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYzoxOTk0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xOTk1LVx0LmFkZF9kZWJ1Z2ZzID0gbWluc3RyZWxfaHRfYWRkX2RlYnVnZnMsXG4tLVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuaD03NT1zdHJ1Y3QgbWluc3RyZWxfcHJpdiB7XG4tLVxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuaC04NS1cbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0Lmg6ODY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5oLTg3LVx0Lypcbi0tXG5uZXQvbWFjODAyMTEvcnguYz0xMDUxPXN0YXRpYyB2b2lkIGllZWU4MDIxMV92ZXJpZnlfYWxpZ25tZW50KHN0cnVjdCBpZWVlODAyMTFfcnhfZGF0YSAqcngpXG5uZXQvbWFjODAyMTEvcnguYy0xMDUyLXtcbm5ldC9tYWM4MDIxMS9yeC5jOjEwNTM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXG5uZXQvbWFjODAyMTEvcnguYy0xMDU0LVx0V0FSTl9PTl9PTkNFKCh1bnNpZ25lZCBsb25nKXJ4LVx1MDAzZXNrYi1cdTAwM2VkYXRhIFx1MDAyNiAxKTtcbi0tXG5uZXQvbWFjODAyMTEvcnguYz0yNzg5PWllZWU4MDIxMV9kZWxpdmVyX3NrYihzdHJ1Y3QgaWVlZTgwMjExX3J4X2RhdGEgKnJ4KVxuLS1cbm5ldC9tYWM4MDIxMS9yeC5jLTI4ODgtXG5uZXQvbWFjODAyMTEvcnguYzoyODg5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3J4LmMtMjg5MC1zdGF0aWMgYm9vbFxuLS1cbm5ldC9tYWM4MDIxMS9yeC5jPTI5NTY9aWVlZTgwMjExX3J4X21lc2hfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwgc3RydWN0IHN0YV9pbmZvICpzdGEsXG4tLVxubmV0L21hYzgwMjExL3J4LmMtMjk1OC17XG5uZXQvbWFjODAyMTEvcnguYzoyOTU5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3J4LmMtMjk2MC1cdHN0cnVjdCBpZWVlODAyMTFfaWZfbWVzaCAqaWZtc2ggPSBcdTAwMjZzZGF0YS1cdTAwM2V1Lm1lc2g7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9NzI9c3RhdGljIGNvbnN0IHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyBzdGFfcmh0X3BhcmFtcyA9IHtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy03Ny1cdC5rZXlfbGVuID0gRVRIX0FMRU4sXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo3ODpcdC5tYXhfc2l6ZSA9IENPTkZJR19NQUM4MDIxMV9TVEFfSEFTSF9NQVhfU0laRSxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTc5LX07XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9ODE9c3RhdGljIGNvbnN0IHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyBsaW5rX3N0YV9yaHRfcGFyYW1zID0ge1xuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTg2LVx0LmtleV9sZW4gPSBFVEhfQUxFTixcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjg3Olx0Lm1heF9zaXplID0gQ09ORklHX01BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFLFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtODgtfTtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz00NjE9dm9pZCBzdGFfaW5mb19mcmVlKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLCBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSlcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy00OTktXHRrZnJlZShyY3VfZGVyZWZlcmVuY2VfcmF3KHN0YS1cdTAwM2VzdGEucmF0ZXMpKTtcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjUwMDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTUwMS1cdGtmcmVlKHN0YS1cdTAwM2VtZXNoKTtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz02MjY9X19zdGFfaW5mb19hbGxvYyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy02NjAtXHR3aXBoeV93b3JrX2luaXQoXHUwMDI2c3RhLVx1MDAzZWFtcGR1X21sbWUud29yaywgaWVlZTgwMjExX2JhX3Nlc3Npb25fd29yayk7XG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo2NjE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy02NjItXHRpZiAoaWVlZTgwMjExX3ZpZl9pc19tZXNoKFx1MDAyNnNkYXRhLVx1MDAzZXZpZikpIHtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy03ODgtXHRzdGFfaW5mb19mcmVlX2xpbmsoXHUwMDI2c3RhLVx1MDAzZWRlZmxpbmspO1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6Nzg5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzkwLVx0a2ZyZWUoc3RhLVx1MDAzZW1lc2gpO1xuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTExMDA9c3RhdGljIHZvaWQgX19zdGFfaW5mb19yZWNhbGNfdGltKHN0cnVjdCBzdGFfaW5mbyAqc3RhLCBib29sIGlnbm9yZV9wZW5kaW5nKVxuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTExMTQtXHRcdHBzID0gXHUwMDI2c3RhLVx1MDAzZXNkYXRhLVx1MDAzZWJzcy1cdTAwM2Vwcztcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjExMTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0xMTE2LVx0fSBlbHNlIGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXHUwMDI2c3RhLVx1MDAzZXNkYXRhLVx1MDAzZXZpZikpIHtcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0yNzIxPXN0YXRpYyBpbmxpbmUgdTY0IHN0YV9nZXRfc3RhdHNfYnl0ZXMoc3RydWN0IGllZWU4MDIxMV9zdGFfcnhfc3RhdHMgKnJ4c3RhdHMpXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtMjczMy1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjI3MzQ6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0yNzM1LXN0YXRpYyB2b2lkIHN0YV9zZXRfbWVzaF9zaW5mbyhzdHJ1Y3Qgc3RhX2luZm8gKnN0YSxcbi0tXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0zMDMxPXZvaWQgc3RhX3NldF9zaW5mbyhzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHN0YXRpb25faW5mbyAqc2luZm8sXG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtMzIxNi1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jOjMyMTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0zMjE4LVx0aWYgKGllZWU4MDIxMV92aWZfaXNfbWVzaChcdTAwMjZzZGF0YS1cdTAwM2V2aWYpKVxuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oPTUyNT1zdHJ1Y3QgbGlua19zdGFfaW5mbyB7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtNTc2LVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6NTc3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtNTc4LVx0c3RydWN0IGRlbnRyeSAqZGVidWdmc19kaXI7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg9NzE0PXN0cnVjdCBzdGFfaW5mbyB7XG4tLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtNzMxLVxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6NzMyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtNzMzLVx0c3RydWN0IG1lc2hfc3RhICptZXNoO1xuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTc3Mi1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oOjc3MzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTc3NC1cdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZGlyO1xuLS1cbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oPTc5OT1zdGF0aWMgaW5saW5lIGVudW0gbmw4MDIxMV9wbGlua19zdGF0ZSBzdGFfcGxpbmtfc3RhdGUoc3RydWN0IHN0YV9pbmZvICpzdGEpXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC04MDAte1xubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6ODAxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtODAyLVx0cmV0dXJuIHN0YS1cdTAwM2VtZXNoLVx1MDAzZXBsaW5rX3N0YXRlO1xuLS1cbm5ldC9tYWM4MDIxMS90ZXN0cy8ua3VuaXRjb25maWc9Mj1DT05GSUdfQ0ZHODAyMTE9eVxubmV0L21hYzgwMjExL3Rlc3RzLy5rdW5pdGNvbmZpZzozOkNPTkZJR19NQUM4MDIxMT15XG5uZXQvbWFjODAyMTEvdGVzdHMvLmt1bml0Y29uZmlnOjQ6Q09ORklHX01BQzgwMjExX0tVTklUX1RFU1Q9eVxuLS1cbm5ldC9tYWM4MDIxMS90ZXN0cy9NYWtlZmlsZT0xPW1hYzgwMjExLXRlc3RzLXkgJiM0Mzs9IG1vZHVsZS5vIHV0aWwubyBlbGVtcy5vIG1mcC5vIHRwZS5vIGNoYW4tbW9kZS5vIHMxZ190aW0ubyB0dGxtLm9cbm5ldC9tYWM4MDIxMS90ZXN0cy9NYWtlZmlsZS0yLVxubmV0L21hYzgwMjExL3Rlc3RzL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01BQzgwMjExX0tVTklUX1RFU1QpICYjNDM7PSBtYWM4MDIxMS10ZXN0cy5vXG4tLVxubmV0L21hYzgwMjExL3RyYWNlLmMtMTMtXG5uZXQvbWFjODAyMTEvdHJhY2UuYzoxNDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL3RyYWNlLmMtMTUtdm9pZCBfX3NkYXRhX2luZm8oY29uc3QgY2hhciAqZm10LCAuLi4pXG4tLVxubmV0L21hYzgwMjExL3RyYWNlX21zZy5oLTYtXG5uZXQvbWFjODAyMTEvdHJhY2VfbXNnLmg6NzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL3RyYWNlX21zZy5oLTgtXG4tLVxubmV0L21hYzgwMjExL3R4LmM9MjcwPWllZWU4MDIxMV90eF9oX2NoZWNrX2Fzc29jKHN0cnVjdCBpZWVlODAyMTFfdHhfZGF0YSAqdHgpXG4tLVxubmV0L21hYzgwMjExL3R4LmMtMzA1LVx0XHRcdCAgICAgaWVlZTgwMjExX2lzX2RhdGEoaGRyLVx1MDAzZWZyYW1lX2NvbnRyb2wpKSkge1xubmV0L21hYzgwMjExL3R4LmM6MzA2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL3R4LmMtMzA3LVx0XHRcdHNkYXRhX2luZm8odHgtXHUwMDNlc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3R4LmM9MTY4OT1zdGF0aWMgYm9vbCBpZWVlODAyMTFfdHhfZnJhZ3Moc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL3R4LmMtMTcwMi1cbm5ldC9tYWM4MDIxMS90eC5jOjE3MDM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXG5uZXQvbWFjODAyMTEvdHguYy0xNzA0LVx0XHRpZiAoV0FSTl9PTl9PTkNFKHEgXHUwMDNlPSBsb2NhbC1cdTAwM2Vody5xdWV1ZXMpKSB7XG4tLVxubmV0L21hYzgwMjExL3R4LmM9MjUxMD1pbnQgaWVlZTgwMjExX2xvb2t1cF9yYV9zdGEoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3R4LmMtMjUzNC1cdFx0YnJlYWs7XG5uZXQvbWFjODAyMTEvdHguYzoyNTM1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL3R4LmMtMjUzNi1cdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcbi0tXG5uZXQvbWFjODAyMTEvdHguYz0yNjQxPXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaWVlZTgwMjExX2J1aWxkX2hkcihzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvdHguYy0yNjY3LVxubmV0L21hYzgwMjExL3R4LmM6MjY2ODojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS90eC5jLTI2NjktXHRpZiAobG9jYWwtXHUwMDNlZm9yY2VfdHhfc3RhdHVzKVxuLS1cbm5ldC9tYWM4MDIxMS90eC5jLTI3NDAtXHRcdGJyZWFrO1xubmV0L21hYzgwMjExL3R4LmM6Mjc0MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS90eC5jLTI3NDItXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6XG4tLVxubmV0L21hYzgwMjExL3R4LmMtMjkyOC1cdFx0ICAgICAgIWllZWU4MDIxMV9pc19vdXJfYWRkcihzZGF0YSwgc2tiLVx1MDAzZWRhdGEgJiM0MzsgRVRIX0FMRU4sIE5VTEwpKSkpIHtcbm5ldC9tYWM4MDIxMS90eC5jOjI5Mjk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXG5uZXQvbWFjODAyMTEvdHguYy0yOTMwLVx0XHRuZXRfaW5mb19yYXRlbGltaXRlZChcJiMzNDslczogZHJvcHBlZCBmcmFtZSB0byAlcE0gKHVuYXV0aG9yaXplZCBwb3J0KVxcblwmIzM0Oyxcbi0tXG5uZXQvbWFjODAyMTEvdHguYy0zMDAxLVxubmV0L21hYzgwMjExL3R4LmM6MzAwMjojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS90eC5jLTMwMDMtXHRpZiAobWVzaGhkcmxlbiBcdTAwM2UgMClcbi0tXG5uZXQvbWFjODAyMTEvdHguYy0zMDQ4LVx0XHQgICAgbGlua19pZCAhPSBJRUVFODAyMTFfTElOS19VTlNQRUNJRklFRCkge1xubmV0L21hYzgwMjExL3R4LmM6MzA0OTojaWZkZWYgQ09ORklHX01BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS90eC5jLTMwNTAtXHRcdFx0bmV0X2luZm9fcmF0ZWxpbWl0ZWQoXCYjMzQ7JXM6IGRyb3BwZWQgZnJhbWUgdG8gJXBNIHdpdGggYmFkIGxpbmsgSUQgcmVxdWVzdCAoJWQgdnMuICVkKVxcblwmIzM0Oyxcbi0tXG5uZXQvbWFjODAyMTEvdHguYz0zNzI5PXZvaWQgX19pZWVlODAyMTFfeG1pdF9mYXN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS90eC5jLTM3NzUtXG5uZXQvbWFjODAyMTEvdHguYzozNzc2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL3R4LmMtMzc3Ny1cdGlmIChsb2NhbC1cdTAwM2Vmb3JjZV90eF9zdGF0dXMpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU5NTUKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAzNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgUzFHIFRXVCBTZXR1cCoqCgpPa2F5LCB0aGUgYE1BQzgwMjExYCBjb25maWcgaXMgZGVmaW5pdGVseSBpbiBwbGFjZSwgc28gd2UgY2FuIGFzc3VtZSB0aGUgcmVsZXZhbnQgaW5mcmFzdHJ1Y3R1cmUgaXMgYXZhaWxhYmxlLiBUaGUga2V5IGZ1bmN0aW9uIEkmIzM5O3ZlIGJlZW4gZm9jdXNpbmcgb24gaXMgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYC4gVGhhdCYjMzk7cyB0aGUgb25lIHRoYXQmIzM5O3MgYmVlbiBtb2RpZmllZCwgYW5kIHRoZSBwYXRjaCBpcyBsb2NhdGVkIGluIGBuZXQvbWFjODAyMTEvczFnLmNgLgoKTm93LCBiZWZvcmUgd2UgZGVjbGFyZSB2aWN0b3J5LCBsZXQmIzM5O3MgdGhpbmsgY3JpdGljYWxseTogYXJlIHRoZXJlIG90aGVyIGVudHJ5IHBvaW50cyBvciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IGFsc28gbmVlZCBmdXp6aW5nPyBIbW1tLCBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGlzIHN0YXRpYywgd2hpY2ggaXMgYSBwb3RlbnRpYWwgcmVkIGZsYWcuIEJ1dCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGNhbGxlZCBieSBgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uYC4gVGhhdCYjMzk7cyBhIGdvb2QgY2FuZGlkYXRlIGZvciBgRm9jdXNTeW1ib2xzYC4gTGV0JiMzOTtzIGFkZCB0aGF0LiBBbmQgYmVjYXVzZSBvZiB0aGUgc3RhdGljIG5hdHVyZSBvZiBzZXR1cCwgaXQgbWFrZXMgc2Vuc2UgdG8gaW5jbHVkZSBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGFzIHdlbGwuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRoYXQgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpcyByZWFjaGFibGUgZnJvbSBgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uYCwgd2hpY2ggc2VlbXMgbGlrZWx5LiBZZXMsIGhlcmUgaXQgaXMgaW4gdGhlIGNvZGU6CgpgYGBjCgljYXNlIFdMQU5fUzFHX1RXVF9TRVRVUDoKCQlpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cChzZGF0YSwgc3RhLCBza2IpOwoJCWJyZWFrOwpgYGAKClBlcmZlY3QuIE5vdywgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncywgZXZlbiB0aG91Z2ggdGhlIGN1cnJlbnQgcGF0Y2ggaXMgYWxsIGFib3V0IFRhcmdldCBXYWtlIFRpbWUgKFRXVCkgaW4gUzFHIChTdWItMSBHSHosIDgwMi4xMWFoKS4gSXMgdGhlcmUgYSBzcGVjaWZpYyBjb25maWcgZm9yIFMxRyBpdHNlbGYgdGhhdCB3ZSBzaG91bGQgYmUgYXdhcmUgb2Y/IFRoYXQmIzM5O3MgdGhlIG5leHQgY2hlY2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX01BQzgwMjExX1MxRyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwMzoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNjc5NQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipTMUcgQ29uZmlndXJhdGlvbiBDaGVja3BvaW50KioKCkFscmlnaHQsIHNvIHRoZXJlJiMzOTtzIG5vIGV4cGxpY2l0bHkgZGVmaW5lZCBjb25maWd1cmF0aW9uIGJsb2NrIGZvciBTMUcgKFNpbmdsZS1TcGF0aWFsIFN0cmVhbSwgMSBHSHogYmFuZCkgd2l0aGluIHRoZSBleGlzdGluZyBzZXR1cC4gVGhhdCYjMzk7cyB0aGUgZmlyc3QgdGhpbmcgdG8gbm90ZS4gTm93LCB3aGVyZSBkbyB3ZSB0eXBpY2FsbHkgaGFuZGxlIHRoZSBUaW1lIFdha2UtdXAgKFRXVCkgc2V0dXAgZm9yIFMxRyBzcGVjaWZpY2FsbHk/IFNlZW1zIGxpa2UgSSBzaG91bGQgcmV2aXNpdCB0aGUgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBmdW5jdGlvbiBhZ2Fpbi4gSSB3YW50IHRvIG1ha2UgYWJzb2x1dGVseSBzdXJlIHdlJiMzOTtyZSBoYW5kbGluZyBhbGwgdGhlIHNwZWNpZmljIG51YW5jZXMgb2YgUzFHIGNvcnJlY3RseSB3aXRoaW4gdGhhdCBmdW5jdGlvbi4gVGltZSB0byBkaXZlIGJhY2sgaW4gYW5kIGRvdWJsZS1jaGVjayBpdHMgbG9naWMsIGVzcGVjaWFsbHkgaW4gcmVsYXRpb24gdG8gVFdUIG9wZXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvczFnLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA5NiwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDk2Olx0c3RhdGljIHZvaWRcbiAgOTc6XHRpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiAgOTg6XHRcdFx0XHQgICBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiAgOTk6XHR7XG4gMTAwOlx0XHRzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQgPSAodm9pZCAqKXNrYi1cdTAwM2VkYXRhO1xuIDEwMTpcdFx0c3RydWN0IGllZWU4MDIxMV90d3Rfc2V0dXAgKnR3dCA9ICh2b2lkICopbWdtdC1cdTAwM2V1LmFjdGlvbi5zMWcudmFyaWFibGU7XG4gMTAyOlx0XHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9wYXJhbXMgKnR3dF9hZ3J0ID0gKHZvaWQgKil0d3QtXHUwMDNlcGFyYW1zO1xuIDEwMzpcdFxuIDEwNDpcdFx0aWYgKCEodHd0LVx1MDAzZWNvbnRyb2wgXHUwMDI2IElFRUU4MDIxMV9UV1RfQ09OVFJPTF9ORUdfVFlQRV9CUk9BRENBU1QpIFx1MDAyNlx1MDAyNlxuIDEwNTpcdFx0ICAgIHR3dC1cdTAwM2VsZW5ndGggXHUwMDNjIHNpemVvZih0d3QtXHUwMDNlY29udHJvbCkgJiM0Mzsgc2l6ZW9mKCp0d3RfYWdydCkpXG4gMTA2Olx0XHRcdHJldHVybjtcbiAxMDc6XHRcbiAxMDg6XHRcdHR3dF9hZ3J0LVx1MDAzZXJlcV90eXBlIFx1MDAyNj0gY3B1X3RvX2xlMTYofklFRUU4MDIxMV9UV1RfUkVRVFlQRV9SRVFVRVNUKTtcbiAxMDk6XHRcbiAxMTA6XHRcdC8qIGJyb2FkY2FzdCBUV1Qgbm90IHN1cHBvcnRlZCB5ZXQgKi9cbiAxMTE6XHRcdGlmICh0d3QtXHUwMDNlY29udHJvbCBcdTAwMjYgSUVFRTgwMjExX1RXVF9DT05UUk9MX05FR19UWVBFX0JST0FEQ0FTVCkge1xuIDExMjpcdFx0XHR0d3RfYWdydC1cdTAwM2VyZXFfdHlwZSBcdTAwMjY9XG4gMTEzOlx0XHRcdFx0fmNwdV90b19sZTE2KElFRUU4MDIxMV9UV1RfUkVRVFlQRV9TRVRVUF9DTUQpO1xuIDExNDpcdFx0XHR0d3RfYWdydC1cdTAwM2VyZXFfdHlwZSB8PVxuIDExNTpcdFx0XHRcdGxlMTZfZW5jb2RlX2JpdHMoVFdUX1NFVFVQX0NNRF9SRUpFQ1QsXG4gMTE2Olx0XHRcdFx0XHRcdCBJRUVFODAyMTFfVFdUX1JFUVRZUEVfU0VUVVBfQ01EKTtcbiAxMTc6XHRcdFx0Z290byBvdXQ7XG4gMTE4Olx0XHR9XG4gMTE5Olx0XG4gMTIwOlx0XHQvKiBUV1QgSW5mb3JtYXRpb24gbm90IHN1cHBvcnRlZCB5ZXQgKi9cbiAxMjE6XHRcdHR3dC1cdTAwM2Vjb250cm9sIHw9IElFRUU4MDIxMV9UV1RfQ09OVFJPTF9SWF9ESVNBQkxFRDtcbiAxMjI6XHRcbiAxMjM6XHRcdGRydl9hZGRfdHd0X3NldHVwKHNkYXRhLVx1MDAzZWxvY2FsLCBzZGF0YSwgXHUwMDI2c3RhLVx1MDAzZXN0YSwgdHd0KTtcbiAxMjQ6XHRvdXQ6XG4gMTI1Olx0XHRpZWVlODAyMTFfczFnX3NlbmRfdHd0X3NldHVwKHNkYXRhLCBtZ210LVx1MDAzZXNhLCBzZGF0YS1cdTAwM2V2aWYuYWRkciwgdHd0KTtcbiAxMjY6XHR9XG4gMTI3Olx0XG4gMTI4Olx0c3RhdGljIHZvaWRcbiAxMjk6XHRpZWVlODAyMTFfczFnX3J4X3R3dF90ZWFyZG93bihzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiAxMzA6XHRcdFx0XHQgICAgICBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiAxMzE6XHR7XG4gMTMyOlx0XHRzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQgPSAoc3RydWN0IGllZWU4MDIxMV9tZ210ICopc2tiLVx1MDAzZWRhdGE7XG4gMTMzOlx0XG4gMTM0Olx0XHRkcnZfdHd0X3RlYXJkb3duX3JlcXVlc3Qoc2RhdGEtXHUwMDNlbG9jYWwsIHNkYXRhLCBcdTAwMjZzdGEtXHUwMDNlc3RhLFxuIDEzNTpcdFx0XHRcdFx0IG1nbXQtXHUwMDNldS5hY3Rpb24uczFnLnZhcmlhYmxlWzBdKTtcbiAxMzY6XHR9XG4gMTM3Olx0XG4gMTM4Olx0c3RhdGljIHZvaWRcbiAxMzk6XHRpZWVlODAyMTFfczFnX3R4X3R3dF9zZXR1cF9mYWlsKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuIDE0MDpcdFx0XHRcdFx0c3RydWN0IHN0YV9pbmZvICpzdGEsIHN0cnVjdCBza19idWZmICpza2IpXG4gMTQxOlx0e1xuIDE0MjpcdFx0c3RydWN0IGllZWU4MDIxMV9tZ210ICptZ210ID0gKHN0cnVjdCBpZWVlODAyMTFfbWdtdCAqKXNrYi1cdTAwM2VkYXRhO1xuIDE0MzpcdFx0c3RydWN0IGllZWU4MDIxMV90d3Rfc2V0dXAgKnR3dCA9ICh2b2lkICopbWdtdC1cdTAwM2V1LmFjdGlvbi5zMWcudmFyaWFibGU7XG4gMTQ0Olx0XHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9wYXJhbXMgKnR3dF9hZ3J0ID0gKHZvaWQgKil0d3QtXHUwMDNlcGFyYW1zO1xuIDE0NTpcdFx0dTggZmxvd2lkID0gbGUxNl9nZXRfYml0cyh0d3RfYWdydC1cdTAwM2VyZXFfdHlwZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgxMjgKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBUV1QgU2V0dXAgRnVuY3Rpb25hbGl0eSoqCgpPa2F5LCBzbyB0aGUgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBmdW5jdGlvbiDigJMgeWVzLCB0aGF0JiMzOTtzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLCB3aGljaCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgdW5kZXJzdGFuZCBpdCBoYW5kbGVzIHRoZSBUV1QgKFRhcmdldCBXYWtlIFRpbWUpIHNldHVwIGFjdGlvbiBmcmFtZXMuIFRoZSByZWNlbnQgcGF0Y2ggaW50cm9kdWNlcyBhIGNydWNpYWwgYm91bmRzIGNoZWNrLCBzcGVjaWZpY2FsbHkgdG8gcHJldmVudCBhbnkgb3V0LW9mLWJvdW5kcyBtZW1vcnkgYWNjZXNzLiBUaGlzIGlzLCB3aXRob3V0IGEgZG91YnQsIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYW5kIGFkZHJlc3NlcyBhIHBvdGVudGlhbCB2dWxuZXJhYmlsaXR5LgoKTm93LCBsZXQmIzM5O3MgbWFrZSBzdXJlIHRoZSBzeW1ib2xzIGFyZSBwcm9wZXJseSBkb2N1bWVudGVkLiBUaGUgY29yZSBGb2N1c1N5bWJvbHMgZm9yIHRoaXMgYXJlYSBzaG91bGQgYmUgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBhbmQgYGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbmAsIGVuc3VyaW5nIHRoZXkgYXJlIGNvcnJlY3RseSBoaWdobGlnaHRlZCBhcyB0aGUga2V5IGZ1bmN0aW9ucyBoZXJlLiBUaGUgRW5hYmxlQ29uZmlncyBzaG91bGQgYmUgbGlzdGVkIGFzIGBNQUM4MDIxMWAuIFRoYXQgbWFrZXMgc2Vuc2UgZ2l2ZW4gdGhlIGNvbnRleHQuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSYjMzk7bSBnb2luZyB0byB0YWtlIGEgbW9tZW50IGFuZCBkb3VibGUtY2hlY2s7IEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcgZWxzZSBpbiB0ZXJtcyBvZiBjb25maWd1cmF0aW9ucywgb3IgYW55IG90aGVyIHJlbGF0ZWQgZmxhZ3MuIEFsd2F5cyBhIGdvb2QgcHJhY3RpY2UgdG8gYmUgdGhvcm91Z2ghCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX01BQzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAwMzoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODU3MAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDc2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWU6CgoqKk5hdmlnYXRpbmcgS2VybmVsIENvbmZpZ3VyYXRpb24gUGF0aHMqKgoKT2theSwgaG9sZCBvbiBhIHNlY29uZC4gSSYjMzk7bSBwcmV0dHkgc3VyZSBJJiMzOTt2ZSBzZWVuIHRoZSBgbWFjODAyMTFgIGNvbmZpZ3VyYXRpb24gZmlsZXMgYmVmb3JlLiBCdXQsIEkgZG9uJiMzOTt0IHJlY2FsbCBhIGBuZXQvbWFjODAyMTEvS2NvbmZpZ2AgZXhpc3RpbmcuIElzIHRoYXQgY29ycmVjdD8gSXMgdGhhdCBwYXRoIG9mZiBieSBvbmU/IFdhaXQsIGlzIGl0IGBuZXQvbWFjODAyMTEvS2NvbmZpZ2A/IE5vLCB0aGF0IGNhbiYjMzk7dCBiZSByaWdodCBlaXRoZXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBpbiB0aGUgY29ycmVjdCBkaXJlY3RvcnkgaW4gdGhlIGtlcm5lbCB0cmVlLiBPa2F5LCBsZXQmIzM5O3MgdmVyaWZ5LiBJIGFtIGdvaW5nIHRvIGRvdWJsZS1jaGVjayBteSBhc3N1bXB0aW9uIGFuZCB0YWtlIGEgbG9vayBpbnNpZGUgdGhlIGBuZXQvbWFjODAyMTEvYCBkaXJlY3RvcnkgdG8gbWFrZSBzdXJlIEkmIzM5O20gb24gdGhlIHJpZ2h0IHRyYWNrIGJlZm9yZSBtb3Zpbmcgb24uIEkgbmVlZCB0byBnZXQgdGhpcyBjb3JyZWN0IHRvIHByb2NlZWQgd2l0aCB0aGUgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2FlYWRfYXBpLmMmIzM0OywKICAgICYjMzQ7YWVhZF9hcGkuaCYjMzQ7LAogICAgJiMzNDthZXNfY2NtLmgmIzM0OywKICAgICYjMzQ7YWVzX2NtYWMuYyYjMzQ7LAogICAgJiMzNDthZXNfY21hYy5oJiMzNDssCiAgICAmIzM0O2Flc19nY20uaCYjMzQ7LAogICAgJiMzNDthZXNfZ21hYy5jJiMzNDssCiAgICAmIzM0O2Flc19nbWFjLmgmIzM0OywKICAgICYjMzQ7YWdnLXJ4LmMmIzM0OywKICAgICYjMzQ7YWdnLXR4LmMmIzM0OywKICAgICYjMzQ7YWlydGltZS5jJiMzNDssCiAgICAmIzM0O2FwLmMmIzM0OywKICAgICYjMzQ7Y2ZnLmMmIzM0OywKICAgICYjMzQ7Y2hhbi5jJiMzNDssCiAgICAmIzM0O2RlYnVnLmgmIzM0OywKICAgICYjMzQ7ZGVidWdmcy5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzX2tleS5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnNfa2V5LmgmIzM0OywKICAgICYjMzQ7ZGVidWdmc19uZXRkZXYuYyYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzX25ldGRldi5oJiMzNDssCiAgICAmIzM0O2RlYnVnZnNfc3RhLmMmIzM0OywKICAgICYjMzQ7ZGVidWdmc19zdGEuaCYjMzQ7LAogICAgJiMzNDtkcml2ZXItb3BzLmMmIzM0OywKICAgICYjMzQ7ZHJpdmVyLW9wcy5oJiMzNDssCiAgICAmIzM0O2Ryb3AuaCYjMzQ7LAogICAgJiMzNDtlaHQuYyYjMzQ7LAogICAgJiMzNDtldGh0b29sLmMmIzM0OywKICAgICYjMzQ7Zmlsc19hZWFkLmMmIzM0OywKICAgICYjMzQ7Zmlsc19hZWFkLmgmIzM0OywKICAgICYjMzQ7aGUuYyYjMzQ7LAogICAgJiMzNDtodC5jJiMzNDssCiAgICAmIzM0O2lic3MuYyYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfaS5oJiMzNDssCiAgICAmIzM0O2lmYWNlLmMmIzM0OywKICAgICYjMzQ7a2V5LmMmIzM0OywKICAgICYjMzQ7a2V5LmgmIzM0OywKICAgICYjMzQ7bGVkLmMmIzM0OywKICAgICYjMzQ7bGVkLmgmIzM0OywKICAgICYjMzQ7bGluay5jJiMzNDssCiAgICAmIzM0O21haW4uYyYjMzQ7LAogICAgJiMzNDttZXNoLmMmIzM0OywKICAgICYjMzQ7bWVzaC5oJiMzNDssCiAgICAmIzM0O21lc2hfaHdtcC5jJiMzNDssCiAgICAmIzM0O21lc2hfcGF0aHRibC5jJiMzNDssCiAgICAmIzM0O21lc2hfcGxpbmsuYyYjMzQ7LAogICAgJiMzNDttZXNoX3BzLmMmIzM0OywKICAgICYjMzQ7bWVzaF9zeW5jLmMmIzM0OywKICAgICYjMzQ7bWxtZS5jJiMzNDssCiAgICAmIzM0O25hbi5jJiMzNDssCiAgICAmIzM0O29jYi5jJiMzNDssCiAgICAmIzM0O29mZmNoYW5uZWwuYyYjMzQ7LAogICAgJiMzNDtwYXJzZS5jJiMzNDssCiAgICAmIzM0O3BtLmMmIzM0OywKICAgICYjMzQ7cmF0ZS5jJiMzNDssCiAgICAmIzM0O3JhdGUuaCYjMzQ7LAogICAgJiMzNDtyYzgwMjExX21pbnN0cmVsX2h0LmMmIzM0OywKICAgICYjMzQ7cmM4MDIxMV9taW5zdHJlbF9odC5oJiMzNDssCiAgICAmIzM0O3JjODAyMTFfbWluc3RyZWxfaHRfZGVidWdmcy5jJiMzNDssCiAgICAmIzM0O3J4LmMmIzM0OywKICAgICYjMzQ7czFnLmMmIzM0OywKICAgICYjMzQ7c2Nhbi5jJiMzNDssCiAgICAmIzM0O3NwZWN0bWdtdC5jJiMzNDssCiAgICAmIzM0O3N0YV9pbmZvLmMmIzM0OywKICAgICYjMzQ7c3RhX2luZm8uaCYjMzQ7LAogICAgJiMzNDtzdGF0dXMuYyYjMzQ7LAogICAgJiMzNDt0ZGxzLmMmIzM0OywKICAgICYjMzQ7dGtpcC5jJiMzNDssCiAgICAmIzM0O3RraXAuaCYjMzQ7LAogICAgJiMzNDt0cmFjZS5jJiMzNDssCiAgICAmIzM0O3RyYWNlLmgmIzM0OywKICAgICYjMzQ7dHJhY2VfbXNnLmgmIzM0OywKICAgICYjMzQ7dHguYyYjMzQ7LAogICAgJiMzNDt1aHIuYyYjMzQ7LAogICAgJiMzNDt1dGlsLmMmIzM0OywKICAgICYjMzQ7dmh0LmMmIzM0OywKICAgICYjMzQ7d2JyZi5jJiMzNDssCiAgICAmIzM0O3dlcC5jJiMzNDssCiAgICAmIzM0O3dlcC5oJiMzNDssCiAgICAmIzM0O3dtZS5jJiMzNDssCiAgICAmIzM0O3dtZS5oJiMzNDssCiAgICAmIzM0O3dwYS5jJiMzNDssCiAgICAmIzM0O3dwYS5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBbCiAgICAmIzM0O3Rlc3RzJiMzNDsKICBdCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk1MzAKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiA4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGl0IHdlbnQgZG93bjoKCioqV2hlcmUmIzM5O3MgVGhhdCBLY29uZmlnPyEqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBgbmV0L21hYzgwMjExYCBkaXJlY3RvcnksIGFuZCBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBLY29uZmlnIGZpbGUsIGJlY2F1c2UsIHdlbGwsIHlvdSBuZWVkIGl0IGZvciB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiBCdXQgaXQmIzM5O3MganVzdCAqbm90KiB0aGVyZS4gU3RyYW5nZS4gTXkgZmlyc3QgdGhvdWdodCBpcywgaXMgaXQgcmVhbGx5IHN1cHBvc2VkIHRvIGJlIGluIGBuZXQvbWFjODAyMTEvYCwgb3IgaXMgaXQgY2xldmVybHkgcGxhY2VkIHNvbWV3aGVyZSBlbHNlPyBQZXJoYXBzIGl0JiMzOTtzIGluIGBuZXQvd2lyZWxlc3MvS2NvbmZpZ2A/IFRoYXQmIzM5O3MgdGhlIG1vc3QgbG9naWNhbCBwbGFjZSBpZiBpdCYjMzk7cyBub3QgdW5kZXIgYG1hYzgwMjExYC4gT3IsIGp1c3QgbWF5YmUsIEkmIzM5O20gc2ltcGx5IGJsaW5kIGFuZCBpdCYjMzk7cyBtaXMtbmFtZWQsIGV2ZW4gdGhvdWdoIGl0IHNob3VsZCBiZSBgbmV0L21hYzgwMjExL0tjb25maWdgIGFuZCBpdOKAmXMganVzdCBoaWRkZW4gaW4gdGhlcmUgc29tZXdoZXJlLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBgbmV0L3dpcmVsZXNzL0tjb25maWdgIGFuZCB0aGVuIG1heWJlIGBuZXQvS2NvbmZpZ2AsIGFuZCBnZXQgdGhpcyBzb3J0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVx0Ym9vbFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2Vcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2Vcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVx0c3RyaW5nXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcJiMzNDtTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBtYWM4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNjktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXHRib29sIFwmIzM0O0VuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVx0Ym9vbCBcJiMzNDtFbmFibGUgTEVEIHRyaWdnZXJzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctODctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctODktXHRib29sIFwmIzM0O0V4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL0tjb25maWctOTgtXHRib29sIFwmIzM0O1RyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cdGJvb2wgXCYjMzQ7U2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBIVCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjEwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjM2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXHRib29sIFwmIzM0O0V4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cdGludCBcJiMzNDtTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXCYjMzQ7IGlmIE1BQzgwMjExX0RFQlVHX01FTlVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMDM6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIwNDUKCQkJCQkJCW91dHB1dDogMTY1CgkJCQkJCQl0aG91Z2h0czogMTk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGFzc2Vzc21lbnQgb2YgdGhpcyBwYXRjaDoKCioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIFZ1bG5lcmFiaWxpdHkgaW4gTUFDODAyMTEgVFdUIEhhbmRsaW5nKioKCkFscmlnaHQsIHNvIHRoZSBjb25maWcgaXMgZGVmaW5pdGVseSBgTUFDODAyMTFgLCB0aGF0JiMzOTtzIHRoZSBvYnZpb3VzIHN0YXJ0aW5nIHBvaW50LiBUaGUgcGF0Y2ggaXRzZWxmIGZvY3VzZXMgb24gYSBib3VuZHMgY2hlY2sgd2l0aGluIHRoZSBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGZ1bmN0aW9uIGluIGBuZXQvbWFjODAyMTEvczFnLmNgLiBJIGltbWVkaWF0ZWx5IHRoaW5rLCAqdGhhdCBmdW5jdGlvbiYjMzk7cyBjYWxsZWQgYnkqIGBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25gLCB3aGljaCBpcyBpdHNlbGYgcmVhY2hhYmxlIHRocm91Z2ggYGllZWU4MDIxMV9pZmFjZV9wcm9jZXNzX3NrYmAuIFNvLCBhIGNsYXNzaWMgcmVjZWl2ZSBwYXRoLiBUaGlzIGlzIGdvb2QgdG8ga25vdywgYW5kIHRoZSBjYWxsIGNoYWluIGdpdmVzIG1lIGEgZGlyZWN0IGF0dGFjayBzdXJmYWNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGFpbWVkIGF0IHByZXZlbnRpbmcgYW4gb3V0LW9mLWJvdW5kcyBtZW1vcnkgYWNjZXNzLiBUaGF0JiMzOTtzIGEgdGV4dGJvb2sgc2VjdXJpdHkgZml4LCBhbmQgbXkgZ3V0IHJlYWN0aW9uIGlzIHRoYXQgdGhpcyB3YXJyYW50cyBzZXJpb3VzIGNvbnNpZGVyYXRpb24uCgpHaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBjaGFuZ2UgYW5kIHRoZSBjcml0aWNhbCBwYXRoIGludm9sdmVkIGluIHdpcmVsZXNzIGNvbW11bmljYXRpb24sIHRoaXMgZmVlbHMgbGlrZSBhbiBleGNlbGxlbnQgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBUaGUga2V5IHN5bWJvbHMgSSYjMzk7bSBnb2luZyB0byBiZSBpbnRlcmVzdGVkIGluIGFyZSBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGFuZCBgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uYC4gVGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gZm9jdXMgbXkgZWZmb3J0cyB0byBnZW5lcmF0ZSBpbnRlcmVzdGluZyBpbnB1dHMuIFRoZSBmYWN0IHRoYXQgYE1BQzgwMjExYCBpcyBlbmFibGVkIG1lYW5zIEkgaGF2ZSBhIGNsZWFuIHN0YXJ0aW5nIHBvaW50IGZvciB0aGlzIGZ1enppbmcgZWZmb3J0LiBOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDAzOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgaW4gbWFjODAyMTEgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2VzcyB3aGVuIHByb2Nlc3NpbmcgVFdUIHNldHVwIGFjdGlvbiBmcmFtZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgODAyLjExYWggKFMxRykgaW1wbGVtZW50YXRpb24gYW5kIGlzIHJlYWNoYWJsZSB2aWEgbWFjODAyMTFfaHdzaW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgdG8gYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpbiBtYWM4MDIxMSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgYWNjZXNzIHdoZW4gcHJvY2Vzc2luZyBUV1Qgc2V0dXAgYWN0aW9uIGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSA4MDIuMTFhaCAoUzFHKSBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDAzOjI1OjA5LjEyMDMxNDM4NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NTg3MDE5NDU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBcIixcbiAgICBcImllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgdG8gYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpbiBtYWM4MDIxMSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgYWNjZXNzIHdoZW4gcHJvY2Vzc2luZyBUV1Qgc2V0dXAgYWN0aW9uIGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSA4MDIuMTFhaCAoUzFHKSBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMV9od3NpbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDM6MjU6MDkuMTIwMzIwMTM0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjA3MDM5MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmOTdiNzU5Y2UxOWFkMmM5M2UwOGQ4NjVmZjExYjY3NjI0ZGZjMDE5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDI0IDAzOjI1OjA3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9zMWcuYyBiL25ldC9tYWM4MDIxMS9zMWcuY1xcbmluZGV4IDVhZjRhMGM2YzY0MjRiLi5hYmMzMzhlMjJlNTljYyAxMDA2NDRcXG4tLS0gYS9uZXQvbWFjODAyMTEvczFnLmNcXG4rKysgYi9uZXQvbWFjODAyMTEvczFnLmNcXG5AQCAtMTAxLDYgKzEwMSwxMCBAQCBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4gXFx0c3RydWN0IGllZWU4MDIxMV90d3Rfc2V0dXAgKnR3dCA9ICh2b2lkICopbWdtdC1cXHUwMDNldS5hY3Rpb24uczFnLnZhcmlhYmxlO1xcbiBcXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9wYXJhbXMgKnR3dF9hZ3J0ID0gKHZvaWQgKil0d3QtXFx1MDAzZXBhcmFtcztcXG4gXFxuK1xcdGlmICghKHR3dC1cXHUwMDNlY29udHJvbCBcXHUwMDI2IElFRUU4MDIxMV9UV1RfQ09OVFJPTF9ORUdfVFlQRV9CUk9BRENBU1QpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICB0d3QtXFx1MDAzZWxlbmd0aCBcXHUwMDNjIHNpemVvZih0d3QtXFx1MDAzZWNvbnRyb2wpICsgc2l6ZW9mKCp0d3RfYWdydCkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuIFxcdHR3dF9hZ3J0LVxcdTAwM2VyZXFfdHlwZSBcXHUwMDI2PSBjcHVfdG9fbGUxNih+SUVFRTgwMjExX1RXVF9SRVFUWVBFX1JFUVVFU1QpO1xcbiBcXG4gXFx0LyogYnJvYWRjYXN0IFRXVCBub3Qgc3VwcG9ydGVkIHlldCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTowOS41ODE1OTE0NDFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0NjEyNTczNDg2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwXCIsXG4gICAgXCJpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgaW4gbWFjODAyMTEgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2VzcyB3aGVuIHByb2Nlc3NpbmcgVFdUIHNldHVwIGFjdGlvbiBmcmFtZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgODAyLjExYWggKFMxRykgaW1wbGVtZW50YXRpb24gYW5kIGlzIHJlYWNoYWJsZSB2aWEgbWFjODAyMTFfaHdzaW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjk3Yjc1OWNlMTlhZDJjOTNlMDhkODY1ZmYxMWI2NzYyNGRmYzAxOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDI0IDAzOjI1OjA3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3MxZy5jIGIvbmV0L21hYzgwMjExL3MxZy5jXG5pbmRleCA1YWY0YTBjNmM2NDI0Yi4uYWJjMzM4ZTIyZTU5Y2MgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvczFnLmNcbisrKyBiL25ldC9tYWM4MDIxMS9zMWcuY1xuQEAgLTEwMSw2ICsxMDEsMTAgQEAgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9zZXR1cCAqdHd0ID0gKHZvaWQgKiltZ210LVx1MDAzZXUuYWN0aW9uLnMxZy52YXJpYWJsZTtcbiBcdHN0cnVjdCBpZWVlODAyMTFfdHd0X3BhcmFtcyAqdHd0X2FncnQgPSAodm9pZCAqKXR3dC1cdTAwM2VwYXJhbXM7XG4gXG4rXHRpZiAoISh0d3QtXHUwMDNlY29udHJvbCBcdTAwMjYgSUVFRTgwMjExX1RXVF9DT05UUk9MX05FR19UWVBFX0JST0FEQ0FTVCkgXHUwMDI2XHUwMDI2XG4rXHQgICAgdHd0LVx1MDAzZWxlbmd0aCBcdTAwM2Mgc2l6ZW9mKHR3dC1cdTAwM2Vjb250cm9sKSArIHNpemVvZigqdHd0X2FncnQpKVxuK1x0XHRyZXR1cm47XG4rXG4gXHR0d3RfYWdydC1cdTAwM2VyZXFfdHlwZSBcdTAwMjY9IGNwdV90b19sZTE2KH5JRUVFODAyMTFfVFdUX1JFUVRZUEVfUkVRVUVTVCk7XG4gXG4gXHQvKiBicm9hZGNhc3QgVFdUIG5vdCBzdXBwb3J0ZWQgeWV0ICovXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTowOS41ODE1OTI0OTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Nzk4MDA0MTY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEJvdW5kcyBDaGVjayBpbiBtYWM4MDIxMSBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCBhIHBhdGNoIGluIGBuZXQvbWFjODAyMTEvczFnLmNgLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gYSBib3VuZHMgY2hlY2sgYWRkZWQgdG8gYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYC4gTGV0IG1lIHF1aWNrbHkgcmVmcmVzaCBteSBtZW1vcnkgb2YgdGhhdCBmdW5jdGlvbi4gSSdsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljLlxuXG5Mb29raW5nIGF0IHRoZSBjb2RlIHNuaXBwZXQsIGl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSXQncyBjaGVja2luZyBpZiB0aGUgYHR3dC1cdTAwM2VsZW5ndGhgIGZpZWxkIGlzIHN1ZmZpY2llbnQgdG8gY29udGFpbiBib3RoIHRoZSBgdHd0LVx1MDAzZWNvbnRyb2xgIGFuZCBgdHd0X2FncnRgIHN0cnVjdHVyZXMgd2hlbiB0aGUgbmVnb3RpYXRpb24gdHlwZSBpc24ndCBhIGJyb2FkY2FzdC4gVGhpcyBzZWVtcyBsaWtlIGEgcGVyZmVjdGx5IHNlbnNpYmxlIGFuZCBuZWNlc3NhcnkgY2hlY2sgdG8gcHJldmVudCBidWZmZXIgb3ZlcmZsb3dzIG9yIHVuZGVyZmxvd3MuIEl0J3MgYSBjcml0aWNhbCBzYWZldHkgbWVhc3VyZSwgcHJldmVudGluZyB0aGUgY29kZSBmcm9tIHJlYWRpbmcgcGFzdCB0aGUgZW5kIG9mIGFsbG9jYXRlZCBtZW1vcnkuIFRoZSBwYXRjaCBpcyBlbnN1cmluZyB0aGUgc2l6ZSBvZiB0aGUgcmVjZWl2ZWQgVFdUIHNldHVwIGZyYW1lIGlzIGFkZXF1YXRlLlxuXG5Ob3csIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCB0aGlzIGdldHMgaW50ZXJlc3RpbmcuIG1hYzgwMjExIGlzIGEga25vd24gdGFyZ2V0IGZvciBmdXp6aW5nLCBhbmQgYG1hYzgwMjExX2h3c2ltYCBpcyBhIGtleSBjb21wb25lbnQgZm9yIHRoYXQuIEdpdmVuIHRoYXQgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiBtYWM4MDIxMSwgaXQncyBzb21ldGhpbmcgSSBuZWVkIHRvIGV2YWx1YXRlIGZvciBmdXp6aW5nIGltcGFjdC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGJvdW5kcyBjaGVjayBpcyByb2J1c3QgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIGFueSBuZXcgdnVsbmVyYWJpbGl0aWVzIG9yIGJ5cGFzc2VzLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gZXhhbWluZSB0aGUgYENPTkZJR19NQUM4MDIxMWAgY29uZmlndXJhdGlvbiBvcHRpb24uIEkgbmVlZCB0byBrbm93IHRoZSByZWxldmFudCBidWlsZCBmbGFncyB0byBlbnN1cmUgYG1hYzgwMjExYCBpcyBlbmFibGVkIGNvcnJlY3RseSBmb3IgbXkgdGVzdHMgYW5kIGlmIGFueSBvdGhlciBjb25maWd1cmF0aW9ucyB3aWxsIGluZmx1ZW5jZSB0aGUgYmVoYXZpb3VyIG9mIHRoaXMgY2hlY2suIFRpbWUgdG8gZ2V0IGZhbWlsaWFyIHdpdGggdGhlIGV4YWN0IGxvY2F0aW9uIGluIHRoZSBjb2RlYmFzZSBvZiBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGluIHRoZSBzMWcuYyBmaWxlIGFuZCB2ZXJpZnkgaXRzIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjAyNiwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxOCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDAzOjI1OjE1LjM3OTU5ODg4OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzY1OTY1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvczFnLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL3MxZy5jPTk2PXN0YXRpYyB2b2lkXFxubmV0L21hYzgwMjExL3MxZy5jOjk3OmllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbm5ldC9tYWM4MDIxMS9zMWcuYy05OC1cXHRcXHRcXHQgICBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC9tYWM4MDIxMS9zMWcuYz0xNTQ9dm9pZCBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvczFnLmMtMTY4LVxcdGNhc2UgV0xBTl9TMUdfVFdUX1NFVFVQOlxcbm5ldC9tYWM4MDIxMS9zMWcuYzoxNjk6XFx0XFx0aWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAoc2RhdGEsIHN0YSwgc2tiKTtcXG5uZXQvbWFjODAyMTEvczFnLmMtMTcwLVxcdFxcdGJyZWFrO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNToxNS40MzcyNjQyNDdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDk2NTg2Nzg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIFRXVCBTZXR1cCB3aXRoaW4gdGhlIDgwMi4xMSBzMWcgQ29udGV4dCoqXG5cbkFscmlnaHQsIEknbSBkaWdnaW5nIGludG8gdGhpcyBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGZ1bmN0aW9uLiBUaGUgZmlyc3QgdGhpbmcgdGhhdCBqdW1wcyBvdXQgaXMgdGhhdCBpdCdzIGRlY2xhcmVkIGBzdGF0aWNgLiBUaGlzIGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0J3MgbGltaXRlZCBpbiBzY29wZSBhbmQgbGlrZWx5IGludGVybmFsIHRvIGEgc3BlY2lmaWMgbW9kdWxlLCBtb3N0IGxpa2VseSB0aGUgUzFHIHJlY2VpdmUgcGF0aC4gTXkgbmV4dCB0aG91Z2h0IGlzLCB3aGVyZSBpcyBpdCBjYWxsZWQgZnJvbT8gU2VlbXMgbGlrZSBpdCdzIGNhbGxlZCBmcm9tIGBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25gLCB3aGljaCBpcyBwcm9iYWJseSBoYW5kbGluZyBhIFRXVCBhY3Rpb24gZnJhbWUgb24gdGhlIHJlY2VpdmUgc2lkZS4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgd2lkZXIgY29udGV4dC4gSXMgYGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbmAgaXRzZWxmIGFuIGV4cG9ydGVkIGZ1bmN0aW9uPyBPciBpcyBpdCBzaW1pbGFybHkgc2NvcGVkLCBpbnRlcm5hbCB0byB0aGUgZHJpdmVyPyBJIG5lZWQgdG8gdmVyaWZ5IGl0cyB2aXNpYmlsaXR5OyBpcyBpdCBleHBvc2VkIHZpYSBhIHN5bWJvbCB0YWJsZSBvciBpcyBpdCBvbmx5IGNhbGxlZCB3aXRoaW4gdGhlIFMxRyBSWCBwYXRoIG9mIHRoZSBkcml2ZXI/IFVuZGVyc3RhbmRpbmcgdGhlIHNjb3BlIG9mIHRoZXNlIGZ1bmN0aW9ucyB3aWxsIGhlbHAgbWUgZ3Jhc3AgaG93IHRoZSBUV1Qgc2V0dXAgaXMgdHJpZ2dlcmVkIGFuZCBob3cgaXQncyBpbnRlZ3JhdGVkIGludG8gdGhlIHJlY2VpdmUgZmxvdyBvZiB0aGlzIHBhcnRpY3VsYXIgODAyLjExIHZhcmlhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwODksIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNToxOS41MzM4NTMxOTNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzcyMTM2MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9MjM5Mz1ib29sIGllZWU4MDIxMV9zMWdfaXNfdHd0X3NldHVwKHN0cnVjdCBza19idWZmICpza2IpO1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjIzOTQ6dm9pZCBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjM5NS1cXHRcXHRcXHRcXHQgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWZhY2UuYz0xNjIwPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9pZmFjZV9wcm9jZXNzX3NrYihzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZmFjZS5jLTE3MTktXFx0XFx0Y2FzZSBXTEFOX1MxR19UV1RfU0VUVVA6XFxubmV0L21hYzgwMjExL2lmYWNlLmM6MTcyMDpcXHRcXHRcXHRpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb24oc2RhdGEsIHNrYik7XFxubmV0L21hYzgwMjExL2lmYWNlLmMtMTcyMS1cXHRcXHRcXHRicmVhaztcXG4tLVxcbm5ldC9tYWM4MDIxMS9zMWcuYz0xMzk9aWVlZTgwMjExX3MxZ190eF90d3Rfc2V0dXBfZmFpbChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9zMWcuYy0xNTMtXFxubmV0L21hYzgwMjExL3MxZy5jOjE1NDp2b2lkIGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbihzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG5uZXQvbWFjODAyMTEvczFnLmMtMTU1LVxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNToxOS42MTEwNzIwMzFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzQ1MzA5ODE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QgaGVyZS5cblxuKipBbmFseXppbmcgdGhlIENhbGwgUGF0aCBhbmQgQ29uZmlndXJhdGlvbiBDb250ZXh0KipcblxuUmlnaHQsIHNvIHRoaXMgaXMgYmVpbmcgY2FsbGVkIGZyb20gYGllZWU4MDIxMV9pZmFjZV9wcm9jZXNzX3NrYmAsIHdoaWNoLCBpZiBJIHJlY2FsbCBjb3JyZWN0bHksIHJlc2lkZXMgd2l0aGluIGBuZXQvbWFjODAyMTEvaWZhY2UuY2AuIFRoYXQgcGxhY2VzIGl0IGZpcm1seSB3aXRoaW4gdGhlIG1hYzgwMjExIGZyYW1ld29yaywgd2hpY2ggaXMgd2hlcmUgSSBleHBlY3RlZC4gR29vZC4gQW5kIHRoaXMgaXMgKmRlZmluaXRlbHkqIHJlYWNoYWJsZSB2aWEgYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggbmFycm93cyBkb3duIHRoZSBzY29wZSBmb3IgYW5hbHlzaXMgY29uc2lkZXJhYmx5LiBXaXRoIHRoZSBjb250ZXh0IG9mIHRoZSBtYWM4MDIxMSBpbmZyYXN0cnVjdHVyZSBlc3RhYmxpc2hlZCwgbm93IEkgaGF2ZSB0byBjaGVjayB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbi4gVGhlIHJlbGV2YW50IGNvbmZpZyBpcyBgTUFDODAyMTFgLCB0aGF0IG1ha2VzIHNlbnNlLiBOb3csIGxldCdzIGxvb2sgZm9yIFMxRyBvciBUV1Qgc3BlY2lmaWMgY29uZmlnIG9wdGlvbnMgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGlzIGZpdHMgaW50byB0aGUgYnJvYWRlciBwaWN0dXJlLiBNeSBuZXh0IHRhc2sgaXMgdG8gdmVyaWZ5IGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgc2V0IGZvciBlaXRoZXIgU2luZ2xlLUNhcnJpZXIgbW9kdWxhdGlvbiBvciBUYXJnZXQgV2FrZSBUaW1lIGZ1bmN0aW9uYWxpdGllcy4gVGhvc2UgdHdvIGFyZSBkZWZpbml0ZWx5IHRoZSBtb3N0IHJlbGV2YW50IHdoZW4gSSB0aGluayBhYm91dCB0aGUgbGF0ZXN0IGVuaGFuY2VtZW50cy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzk5MSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDAzOjI1OjIzLjk1NjM4NDM2OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODA0NDI1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfTUFDODAyMTFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX01BQzgwMjExKSArPSBtYWM4MDIxMS5vXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTMtXFxuLS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU9NT1tYWM4MDIxMS15IDo9IFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zOS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDA6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfTEVEUykgKz0gbGVkLm9cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDE6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgKz0gXFxcXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS00Mi1cXHRkZWJ1Z2ZzLm8gXFxcXFxcbi0tXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ2LVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0NzptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9NRVNIKSArPSBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ4LVxcdG1lc2gubyBcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU9NTk9cmM4MDIxMV9taW5zdHJlbC15IDo9IFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS02MS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NjI6cmM4MDIxMV9taW5zdHJlbC0kKENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTKSArPSBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTYzLVxcdHJjODAyMTFfbWluc3RyZWxfaHRfZGVidWdmcy5vXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTY0LVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo2NTptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9SQ19NSU5TVFJFTCkgKz0gJChyYzgwMjExX21pbnN0cmVsLXkpXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTY2LVxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTYxMz1zdGF0aWMgaW50IGllZWU4MDIxMV9hZGRfa2V5KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNzEwLVxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG5uZXQvbWFjODAyMTEvY2ZnLmM6NzExOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9jZmcuYy03MTItXFx0XFx0aWYgKHNkYXRhLVxcdTAwM2V1Lm1lc2guc2VjdXJpdHkgIT0gSUVFRTgwMjExX01FU0hfU0VDX05PTkUpXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9MjE4OT1zdGF0aWMgdm9pZCBzdGFfYXBwbHlfbWVzaF9wYXJhbXMoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjE5Mi17XFxubmV0L21hYzgwMjExL2NmZy5jOjIxOTM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL2NmZy5jLTIxOTQtXFx0c3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEgPSBzdGEtXFx1MDAzZXNkYXRhO1xcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTI3ODM9c3RhdGljIGludCBpZWVlODAyMTFfY2hhbmdlX3N0YXRpb24oc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yODg5LVxcbm5ldC9tYWM4MDIxMS9jZmcuYzoyODkwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yODkxLXN0YXRpYyBpbnQgaWVlZTgwMjExX2FkZF9tcGF0aChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTQ0MjQ9c3RhdGljIGludCBpZWVlODAyMTFfc2V0X2FmdGVyX2NzYV9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmtfZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy00NDQ3LVxcdFxcdGJyZWFrO1xcbm5ldC9tYWM4MDIxMS9jZmcuYzo0NDQ4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9jZmcuYy00NDQ5LVxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz00NTU5PXN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9jc2FfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rX2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDY1MC1cXHRcXHRicmVhaztcXG5uZXQvbWFjODAyMTEvY2ZnLmM6NDY1MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNDY1Mi1cXHRjYXNlIE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz01OTg0PWNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy02MDA0LVxcdC5kdW1wX3N1cnZleSA9IGllZWU4MDIxMV9kdW1wX3N1cnZleSxcXG5uZXQvbWFjODAyMTEvY2ZnLmM6NjAwNTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNjAwNi1cXHQuYWRkX21wYXRoID0gaWVlZTgwMjExX2FkZF9tcGF0aCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTEwLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjExOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfT0NCX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMTItI2RlZmluZSBNQUM4MDIxMV9PQ0JfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMTYtXFxubmV0L21hYzgwMjExL2RlYnVnLmg6MTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9JQlNTX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMTgtI2RlZmluZSBNQUM4MDIxMV9JQlNTX0RFQlVHIDFcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIyLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjIzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yNC0jZGVmaW5lIE1BQzgwMjExX1BTX0RFQlVHIDFcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTI4LVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjI5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfSFRfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0zMC0jZGVmaW5lIE1BQzgwMjExX0hUX0RFQlVHIDFcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTM0LVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjM1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTVBMX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMzYtI2RlZmluZSBNQUM4MDIxMV9NUExfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNDAtXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NDE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTQyLSNkZWZpbmUgTUFDODAyMTFfTVBBVEhfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNDYtXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NDc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTQ4LSNkZWZpbmUgTUFDODAyMTFfTUhXTVBfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNTItXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NTM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaC01NC0jZGVmaW5lIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVRyAxXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWcuaC01OC1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo1OTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNjAtI2RlZmluZSBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVRyAxXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWcuaC02NC1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo2NTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaC02Ni0jZGVmaW5lIE1BQzgwMjExX01FU0hfUFNfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNzAtXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NzE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9URExTX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNzItI2RlZmluZSBNQUM4MDIxMV9URExTX0RFQlVHIDFcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTc2LVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjc3OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfU1RBX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtNzgtI2RlZmluZSBNQUM4MDIxMV9TVEFfREVCVUcgMVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtODItXFxubmV0L21hYzgwMjExL2RlYnVnLmg6ODM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL2RlYnVnLmgtODQtI2RlZmluZSBNQUM4MDIxMV9NTE1FX0RFQlVHIDFcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTg4LVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjg5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTU0FHRV9UUkFDSU5HXFxubmV0L21hYzgwMjExL2RlYnVnLmgtOTAtdm9pZCBfX3NkYXRhX2luZm8oY29uc3QgY2hhciAqZm10LCAuLi4pIF9fcHJpbnRmKDEsIDIpO1xcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnMuYz02MzI9c3RhdGljIGNvbnN0IHN0cnVjdCBkZWJ1Z2ZzX3Nob3J0X2ZvcHMgc3RhdHNfICMjbmFtZSMjIF9vcHMgPSB7XFx0XFx0XFx0XFxcXFxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnMuYy02MzYtXFxubmV0L21hYzgwMjExL2RlYnVnZnMuYzo2Mzc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmMtNjM4LSNkZWZpbmUgREVCVUdGU19TVEFUU19BREQobmFtZSlcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmcy5jPTY0OT12b2lkIGRlYnVnZnNfaHdfYWRkKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnMuYy02ODMtXFxubmV0L21hYzgwMjExL2RlYnVnZnMuYzo2ODQ6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmMtNjg1LVxcdERFQlVHRlNfU1RBVFNfQUREKGRvdDExVHJhbnNtaXR0ZWRGcmFnbWVudENvdW50KTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzLmgtNi1cXG5uZXQvbWFjODAyMTEvZGVidWdmcy5oOjc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL2RlYnVnZnMuaC04LXZvaWQgZGVidWdmc19od19hZGQoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpO1xcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnNfa2V5LmgtNC1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19rZXkuaDo1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX2tleS5oLTYtdm9pZCBpZWVlODAyMTFfZGVidWdmc19rZXlfYWRkKHN0cnVjdCBpZWVlODAyMTFfa2V5ICprZXkpO1xcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM9NzM2PUlFRUU4MDIxMV9JRl9MSU5LX0ZJTEUoYWRkciwgY29uZi1cXHUwMDNlYWRkciwgTUFDKTtcXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy03MzctXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM6NzM4OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTczOS1JRUVFODAyMTFfSUZfRklMRShlc3RhYl9wbGlua3MsIHUubWVzaC5lc3RhYl9wbGlua3MsIEFUT01JQyk7XFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYz04Njg9c3RhdGljIHZvaWQgYWRkX2lic3NfZmlsZXMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy04NzItXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM6ODczOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTg3NC1cXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jPTkzNz1zdGF0aWMgdm9pZCBhZGRfZmlsZXMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy05NDktXFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjk1MDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYy05NTEtXFx0XFx0YWRkX21lc2hfZmlsZXMoc2RhdGEpO1xcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMTItXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg6MTM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMTQtdm9pZCBpZWVlODAyMTFfZGVidWdmc19yZW1vdmVfbmV0ZGV2KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX3N0YS5oLTYtXFxubmV0L21hYzgwMjExL2RlYnVnZnNfc3RhLmg6NzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvZGVidWdmc19zdGEuaC04LXZvaWQgaWVlZTgwMjExX3N0YV9kZWJ1Z2ZzX2FkZChzdHJ1Y3Qgc3RhX2luZm8gKnN0YSk7XFxuLS1cXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oPTQ3Nz1zdGF0aWMgaW5saW5lIHZvaWQgZHJ2X3N0YV9yZW1vdmUoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuLS1cXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTQ5NC1cXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oOjQ5NTojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTQ5Ni1zdGF0aWMgaW5saW5lIHZvaWQgZHJ2X3ZpZl9hZGRfZGVidWdmcyhzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTc3MD1zdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2gge1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtODUwLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjg1MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC04NTItI2RlZmluZSBJRUVFODAyMTFfSUZTVEFfTUVTSF9DVFJfSU5DKG1zaCwgbmFtZSlcXHRcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0xMDk5PXN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTExNTEtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTE1MjojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xMTUzLVxcdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZGlyO1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9MTE1Nz1zdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTEyNDQtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTI0NTojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xMjQ2LVxcdHN0cnVjdCB7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0xMzY0PWVudW0gcXVldWVfc3RvcF9yZWFzb24ge1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTM3OS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxMzgwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTEVEU1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTEzODEtc3RydWN0IHRwdF9sZWRfdHJpZ2dlciB7XFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0xNDQ4PXN0cnVjdCBpZWVlODAyMTFfbG9jYWwge1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTYyOC1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxNjI5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTEVEU1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2MzAtXFx0c3RydWN0IGxlZF90cmlnZ2VyIHR4X2xlZCwgcnhfbGVkLCBhc3NvY19sZWQsIHJhZGlvX2xlZDtcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2MzYtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTYzNzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHX0NPVU5URVJTXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTYzOC1cXHQvKiBTTk1QIGNvdW50ZXJzICovXFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xNjY0LSNkZWZpbmUgSTgwMl9ERUJVR19JTkMoYykgKGMpKytcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoxNjY1OiNlbHNlIC8qIENPTkZJR19NQUM4MDIxMV9ERUJVR19DT1VOVEVSUyAqL1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2NjYtI2RlZmluZSBJODAyX0RFQlVHX0lOQyhjKSBkbyB7IH0gd2hpbGUgKDApXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTY2NzojZW5kaWYgLyogQ09ORklHX01BQzgwMjExX0RFQlVHX0NPVU5URVJTICovXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMTY2OC1cXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTE2OTUtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MTY5NjojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0xNjk3LVxcdHN0cnVjdCBsb2NhbF9kZWJ1Z2ZzZGVudHJpZXMge1xcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9Mjk0MD11MzIgaWVlZTgwMjExX2NhbGNfZXhwZWN0ZWRfdHhfYWlydGltZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTI5NDMtXFx0XFx0XFx0XFx0ICAgICAgIGludCBsZW4sIGJvb2wgYW1wZHUpO1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjI5NDQ6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9OT0lOTElORVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTI5NDUtI2RlZmluZSBkZWJ1Z19ub2lubGluZSBub2lubGluZVxcbi0tXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9Mjk3Nj1pZWVlODAyMTFfdWhyX2NhcF9pZV90b19zdGFfdWhyX2NhcChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTI5ODEtXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6Mjk4MjojaWYgSVNfRU5BQkxFRChDT05GSUdfTUFDODAyMTFfS1VOSVRfVEVTVClcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTgzLSNkZWZpbmUgRVhQT1JUX1NZTUJPTF9JRl9NQUM4MDIxMV9LVU5JVChzeW0pIEVYUE9SVF9TWU1CT0xfSUZfS1VOSVQoc3ltKVxcbi0tXFxubmV0L21hYzgwMjExL2tleS5oPTU5PXN0cnVjdCBpZWVlODAyMTFfa2V5IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9rZXkuaC0xMjItXFxubmV0L21hYzgwMjExL2tleS5oOjEyMzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEva2V5LmgtMTI0LVxcdHN0cnVjdCB7XFxuLS1cXG5uZXQvbWFjODAyMTEvbGVkLmg9MTM9c3RhdGljIGlubGluZSB2b2lkIGllZWU4MDIxMV9sZWRfcngoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXFxubmV0L21hYzgwMjExL2xlZC5oLTE0LXtcXG5uZXQvbWFjODAyMTEvbGVkLmg6MTU6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9MRURTXFxubmV0L21hYzgwMjExL2xlZC5oLTE2LVxcdGlmICghYXRvbWljX3JlYWQoXFx1MDAyNmxvY2FsLVxcdTAwM2VyeF9sZWRfYWN0aXZlKSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9sZWQuaD0yMj1zdGF0aWMgaW5saW5lIHZvaWQgaWVlZTgwMjExX2xlZF90eChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcXG5uZXQvbWFjODAyMTEvbGVkLmgtMjMte1xcbm5ldC9tYWM4MDIxMS9sZWQuaDoyNDojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvbGVkLmgtMjUtXFx0aWYgKCFhdG9taWNfcmVhZChcXHUwMDI2bG9jYWwtXFx1MDAzZXR4X2xlZF9hY3RpdmUpKVxcbi0tXFxubmV0L21hYzgwMjExL2xlZC5oLTMwLVxcbm5ldC9tYWM4MDIxMS9sZWQuaDozMTojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvbGVkLmgtMzItdm9pZCBpZWVlODAyMTFfbGVkX2Fzc29jKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxcbi0tXFxubmV0L21hYzgwMjExL2xlZC5oPTcxPWllZWU4MDIxMV90cHRfbGVkX3RyaWdfdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsIGludCBieXRlcylcXG5uZXQvbWFjODAyMTEvbGVkLmgtNzIte1xcbm5ldC9tYWM4MDIxMS9sZWQuaDo3MzojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvbGVkLmgtNzQtXFx0aWYgKGF0b21pY19yZWFkKFxcdTAwMjZsb2NhbC1cXHUwMDNldHB0X2xlZF9hY3RpdmUpKVxcbi0tXFxubmV0L21hYzgwMjExL2xlZC5oPTgwPWllZWU4MDIxMV90cHRfbGVkX3RyaWdfcngoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsIGludCBieXRlcylcXG5uZXQvbWFjODAyMTEvbGVkLmgtODEte1xcbm5ldC9tYWM4MDIxMS9sZWQuaDo4MjojaWZkZWYgQ09ORklHX01BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvbGVkLmgtODMtXFx0aWYgKGF0b21pY19yZWFkKFxcdTAwMjZsb2NhbC1cXHUwMDNldHB0X2xlZF9hY3RpdmUpKVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz0xMTM4PWludCBpZWVlODAyMTFfcmVnaXN0ZXJfaHcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEzOTMtXFxubmV0L21hYzgwMjExL21haW4uYzoxMzk0OiNpZm5kZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTEzOTUtXFx0LyogbWVzaCBkZXBlbmRzIG9uIEtjb25maWcsIGJ1dCBkcml2ZXJzIHNob3VsZCBzZXQgaXQgaWYgdGhleSB3YW50ICovXFxuLS1cXG5uZXQvbWFjODAyMTEvbWVzaC5oPTM3OD12b2lkIG1lc2hfcGF0aF9yZWZyZXNoKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL21lc2guaC0zODAtXFxubmV0L21hYzgwMjExL21lc2guaDozODE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL21lc2guaC0zODItc3RhdGljIGlubGluZVxcbi0tXFxubmV0L21hYzgwMjExL29mZmNoYW5uZWwuYz04MTI9aW50IGllZWU4MDIxMV9tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXFxuLS1cXG5uZXQvbWFjODAyMTEvb2ZmY2hhbm5lbC5jLTg0MS1cXHRcXHRcXHRuZWVkX29mZmNoYW4gPSB0cnVlO1xcbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmM6ODQyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9vZmZjaGFubmVsLmMtODQzLVxcdFxcdGZhbGx0aHJvdWdoO1xcbi0tXFxubmV0L21hYzgwMjExL3JhdGUuYz0yND1zdGF0aWMgREVGSU5FX01VVEVYKHJhdGVfY3RybF9tdXRleCk7XFxubmV0L21hYzgwMjExL3JhdGUuYy0yNS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5jOjI2OnN0YXRpYyBjaGFyICppZWVlODAyMTFfZGVmYXVsdF9yY19hbGdvID0gQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFQ7XFxubmV0L21hYzgwMjExL3JhdGUuYy0yNy1tb2R1bGVfcGFyYW0oaWVlZTgwMjExX2RlZmF1bHRfcmNfYWxnbywgY2hhcnAsIDA2NDQpO1xcbi0tXFxubmV0L21hYzgwMjExL3JhdGUuYz0yMTY9aWVlZTgwMjExX3JhdGVfY29udHJvbF9vcHNfZ2V0KGNvbnN0IGNoYXIgKm5hbWUpXFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTIzMi1cXHQvKiBOb3RlOiBjaGVjayBmb3IgXFx1MDAzZSAwIGlzIGludGVudGlvbmFsIHRvIGF2b2lkIGNsYW5nIHdhcm5pbmcgKi9cXG5uZXQvbWFjODAyMTEvcmF0ZS5jOjIzMzpcXHRpZiAoIW9wcyBcXHUwMDI2XFx1MDAyNiAoc3RybGVuKENPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUKSBcXHUwMDNlIDApKVxcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjM0LVxcdFxcdC8qIHRyeSBidWlsdC1pbiBvbmUgaWYgc3BlY2lmaWMgYWxnIHJlcXVlc3RlZCBidXQgbm90IGZvdW5kICovXFxubmV0L21hYzgwMjExL3JhdGUuYzoyMzU6XFx0XFx0b3BzID0gaWVlZTgwMjExX3RyeV9yYXRlX2NvbnRyb2xfb3BzX2dldChDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVCk7XFxubmV0L21hYzgwMjExL3JhdGUuYy0yMzYtXFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTI0MS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5jOjI0MjojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvcmF0ZS5jLTI0My1zdGF0aWMgc3NpemVfdCByY25hbWVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJidWYsXFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5jPTI4MT1zdGF0aWMgdm9pZCByYXRlX2NvbnRyb2xfZnJlZShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjg1LVxcbm5ldC9tYWM4MDIxMS9yYXRlLmM6Mjg2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9yYXRlLmMtMjg3LVxcdGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShsb2NhbC1cXHUwMDNlZGVidWdmcy5yY2Rpcik7XFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5oPTU1PXN0YXRpYyBpbmxpbmUgdm9pZCByYXRlX2NvbnRyb2xfYWRkX3N0YV9kZWJ1Z2ZzKHN0cnVjdCBzdGFfaW5mbyAqc3RhKVxcbm5ldC9tYWM4MDIxMS9yYXRlLmgtNTYte1xcbm5ldC9tYWM4MDIxMS9yYXRlLmg6NTc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL3JhdGUuaC01OC1cXHRzdHJ1Y3QgcmF0ZV9jb250cm9sX3JlZiAqcmVmID0gc3RhLVxcdTAwM2VyYXRlX2N0cmw7XFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5oPTY3PXN0YXRpYyBpbmxpbmUgdm9pZCByYXRlX2NvbnRyb2xfYWRkX2RlYnVnZnMoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXFxubmV0L21hYzgwMjExL3JhdGUuaC02OC17XFxubmV0L21hYzgwMjExL3JhdGUuaDo2OTojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvcmF0ZS5oLTcwLVxcdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNkaXI7XFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5oPTk0PXZvaWQgcmF0ZV9jb250cm9sX2RlaW5pdGlhbGl6ZShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvcmF0ZS5oLTk3LS8qIFJhdGUgY29udHJvbCBhbGdvcml0aG1zICovXFxubmV0L21hYzgwMjExL3JhdGUuaDo5ODojaWZkZWYgQ09ORklHX01BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL3JhdGUuaC05OS1pbnQgcmM4MDIxMV9taW5zdHJlbF9pbml0KHZvaWQpO1xcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYz0xMDU5PW1pbnN0cmVsX2h0X3VwZGF0ZV9zdGF0cyhzdHJ1Y3QgbWluc3RyZWxfcHJpdiAqbXAsIHN0cnVjdCBtaW5zdHJlbF9odF9zdGEgKm1pKVxcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xMTgxLVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM6MTE4MjojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jLTExODMtXFx0LyogdXNlIGZpeGVkIGluZGV4IGlmIHNldCAqL1xcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYz0xNTk1PW1pbnN0cmVsX2h0X2dldF9yYXRlKHZvaWQgKnByaXYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHZvaWQgKnByaXZfc3RhLFxcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xNjA2LVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM6MTYwNzojaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jLTE2MDgtXFx0aWYgKG1wLVxcdTAwM2VmaXhlZF9yYXRlX2lkeCAhPSAtMSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmM9MTkxNT1taW5zdHJlbF9odF9hbGxvYyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmMtMTk0OC1cXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jOjE5NDk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYy0xOTUwLXN0YXRpYyB2b2lkIG1pbnN0cmVsX2h0X2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB2b2lkICpwcml2LFxcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYz0xOTgzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmF0ZV9jb250cm9sX29wcyBtYWM4MDIxMV9taW5zdHJlbF9odCA9IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmMtMTk5My1cXHQuZnJlZSA9IG1pbnN0cmVsX2h0X2ZyZWUsXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYzoxOTk0OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmMtMTk5NS1cXHQuYWRkX2RlYnVnZnMgPSBtaW5zdHJlbF9odF9hZGRfZGVidWdmcyxcXG4tLVxcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0Lmg9NzU9c3RydWN0IG1pbnN0cmVsX3ByaXYge1xcbi0tXFxubmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuaC04NS1cXG5uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5oOjg2OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVsX2h0LmgtODctXFx0LypcXG4tLVxcbm5ldC9tYWM4MDIxMS9yeC5jPTEwNTE9c3RhdGljIHZvaWQgaWVlZTgwMjExX3ZlcmlmeV9hbGlnbm1lbnQoc3RydWN0IGllZWU4MDIxMV9yeF9kYXRhICpyeClcXG5uZXQvbWFjODAyMTEvcnguYy0xMDUyLXtcXG5uZXQvbWFjODAyMTEvcnguYzoxMDUzOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9yeC5jLTEwNTQtXFx0V0FSTl9PTl9PTkNFKCh1bnNpZ25lZCBsb25nKXJ4LVxcdTAwM2Vza2ItXFx1MDAzZWRhdGEgXFx1MDAyNiAxKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9yeC5jPTI3ODk9aWVlZTgwMjExX2RlbGl2ZXJfc2tiKHN0cnVjdCBpZWVlODAyMTFfcnhfZGF0YSAqcngpXFxuLS1cXG5uZXQvbWFjODAyMTEvcnguYy0yODg4LVxcbm5ldC9tYWM4MDIxMS9yeC5jOjI4ODk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3J4LmMtMjg5MC1zdGF0aWMgYm9vbFxcbi0tXFxubmV0L21hYzgwMjExL3J4LmM9Mjk1Nj1pZWVlODAyMTFfcnhfbWVzaF9kYXRhKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLCBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9yeC5jLTI5NTgte1xcbm5ldC9tYWM4MDIxMS9yeC5jOjI5NTk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3J4LmMtMjk2MC1cXHRzdHJ1Y3QgaWVlZTgwMjExX2lmX21lc2ggKmlmbXNoID0gXFx1MDAyNnNkYXRhLVxcdTAwM2V1Lm1lc2g7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz03Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHJoYXNodGFibGVfcGFyYW1zIHN0YV9yaHRfcGFyYW1zID0ge1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzctXFx0LmtleV9sZW4gPSBFVEhfQUxFTixcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo3ODpcXHQubWF4X3NpemUgPSBDT05GSUdfTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkUsXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzktfTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTgxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgbGlua19zdGFfcmh0X3BhcmFtcyA9IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTg2LVxcdC5rZXlfbGVuID0gRVRIX0FMRU4sXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6ODc6XFx0Lm1heF9zaXplID0gQ09ORklHX01BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFLFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTg4LX07XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz00NjE9dm9pZCBzdGFfaW5mb19mcmVlKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLCBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTQ5OS1cXHRrZnJlZShyY3VfZGVyZWZlcmVuY2VfcmF3KHN0YS1cXHUwMDNlc3RhLnJhdGVzKSk7XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6NTAwOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTUwMS1cXHRrZnJlZShzdGEtXFx1MDAzZW1lc2gpO1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM9NjI2PV9fc3RhX2luZm9fYWxsb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy02NjAtXFx0d2lwaHlfd29ya19pbml0KFxcdTAwMjZzdGEtXFx1MDAzZWFtcGR1X21sbWUud29yaywgaWVlZTgwMjExX2JhX3Nlc3Npb25fd29yayk7XFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6NjYxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTY2Mi1cXHRpZiAoaWVlZTgwMjExX3ZpZl9pc19tZXNoKFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmKSkge1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzg4LVxcdHN0YV9pbmZvX2ZyZWVfbGluayhcXHUwMDI2c3RhLVxcdTAwM2VkZWZsaW5rKTtcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzo3ODk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmMtNzkwLVxcdGtmcmVlKHN0YS1cXHUwMDNlbWVzaCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYz0xMTAwPXN0YXRpYyB2b2lkIF9fc3RhX2luZm9fcmVjYWxjX3RpbShzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgYm9vbCBpZ25vcmVfcGVuZGluZylcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTExMTQtXFx0XFx0cHMgPSBcXHUwMDI2c3RhLVxcdTAwM2VzZGF0YS1cXHUwMDNlYnNzLVxcdTAwM2VwcztcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYzoxMTE1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTExMTYtXFx0fSBlbHNlIGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXFx1MDAyNnN0YS1cXHUwMDNlc2RhdGEtXFx1MDAzZXZpZikpIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTI3MjE9c3RhdGljIGlubGluZSB1NjQgc3RhX2dldF9zdGF0c19ieXRlcyhzdHJ1Y3QgaWVlZTgwMjExX3N0YV9yeF9zdGF0cyAqcnhzdGF0cylcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTI3MzMtXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6MjczNDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0yNzM1LXN0YXRpYyB2b2lkIHN0YV9zZXRfbWVzaF9zaW5mbyhzdHJ1Y3Qgc3RhX2luZm8gKnN0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jPTMwMzE9dm9pZCBzdGFfc2V0X3NpbmZvKHN0cnVjdCBzdGFfaW5mbyAqc3RhLCBzdHJ1Y3Qgc3RhdGlvbl9pbmZvICpzaW5mbyxcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5jLTMyMTYtXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmM6MzIxNzojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uYy0zMjE4LVxcdGlmIChpZWVlODAyMTFfdmlmX2lzX21lc2goXFx1MDAyNnNkYXRhLVxcdTAwM2V2aWYpKVxcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg9NTI1PXN0cnVjdCBsaW5rX3N0YV9pbmZvIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTU3Ni1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaDo1Nzc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtNTc4LVxcdHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZGlyO1xcbi0tXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg9NzE0PXN0cnVjdCBzdGFfaW5mbyB7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC03MzEtXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6NzMyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTczMy1cXHRzdHJ1Y3QgbWVzaF9zdGEgKm1lc2g7XFxuLS1cXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaC03NzItXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmg6NzczOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oLTc3NC1cXHRzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX2RpcjtcXG4tLVxcbm5ldC9tYWM4MDIxMS9zdGFfaW5mby5oPTc5OT1zdGF0aWMgaW5saW5lIGVudW0gbmw4MDIxMV9wbGlua19zdGF0ZSBzdGFfcGxpbmtfc3RhdGUoc3RydWN0IHN0YV9pbmZvICpzdGEpXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtODAwLXtcXG5uZXQvbWFjODAyMTEvc3RhX2luZm8uaDo4MDE6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL3N0YV9pbmZvLmgtODAyLVxcdHJldHVybiBzdGEtXFx1MDAzZW1lc2gtXFx1MDAzZXBsaW5rX3N0YXRlO1xcbi0tXFxubmV0L21hYzgwMjExL3Rlc3RzLy5rdW5pdGNvbmZpZz0yPUNPTkZJR19DRkc4MDIxMT15XFxubmV0L21hYzgwMjExL3Rlc3RzLy5rdW5pdGNvbmZpZzozOkNPTkZJR19NQUM4MDIxMT15XFxubmV0L21hYzgwMjExL3Rlc3RzLy5rdW5pdGNvbmZpZzo0OkNPTkZJR19NQUM4MDIxMV9LVU5JVF9URVNUPXlcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZXN0cy9NYWtlZmlsZT0xPW1hYzgwMjExLXRlc3RzLXkgKz0gbW9kdWxlLm8gdXRpbC5vIGVsZW1zLm8gbWZwLm8gdHBlLm8gY2hhbi1tb2RlLm8gczFnX3RpbS5vIHR0bG0ub1xcbm5ldC9tYWM4MDIxMS90ZXN0cy9NYWtlZmlsZS0yLVxcbm5ldC9tYWM4MDIxMS90ZXN0cy9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NQUM4MDIxMV9LVU5JVF9URVNUKSArPSBtYWM4MDIxMS10ZXN0cy5vXFxuLS1cXG5uZXQvbWFjODAyMTEvdHJhY2UuYy0xMy1cXG5uZXQvbWFjODAyMTEvdHJhY2UuYzoxNDojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xcbm5ldC9tYWM4MDIxMS90cmFjZS5jLTE1LXZvaWQgX19zZGF0YV9pbmZvKGNvbnN0IGNoYXIgKmZtdCwgLi4uKVxcbi0tXFxubmV0L21hYzgwMjExL3RyYWNlX21zZy5oLTYtXFxubmV0L21hYzgwMjExL3RyYWNlX21zZy5oOjc6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvdHJhY2VfbXNnLmgtOC1cXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jPTI3MD1pZWVlODAyMTFfdHhfaF9jaGVja19hc3NvYyhzdHJ1Y3QgaWVlZTgwMjExX3R4X2RhdGEgKnR4KVxcbi0tXFxubmV0L21hYzgwMjExL3R4LmMtMzA1LVxcdFxcdFxcdCAgICAgaWVlZTgwMjExX2lzX2RhdGEoaGRyLVxcdTAwM2VmcmFtZV9jb250cm9sKSkpIHtcXG5uZXQvbWFjODAyMTEvdHguYzozMDY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXFxubmV0L21hYzgwMjExL3R4LmMtMzA3LVxcdFxcdFxcdHNkYXRhX2luZm8odHgtXFx1MDAzZXNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL3R4LmM9MTY4OT1zdGF0aWMgYm9vbCBpZWVlODAyMTFfdHhfZnJhZ3Moc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuLS1cXG5uZXQvbWFjODAyMTEvdHguYy0xNzAyLVxcbm5ldC9tYWM4MDIxMS90eC5jOjE3MDM6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXFxubmV0L21hYzgwMjExL3R4LmMtMTcwNC1cXHRcXHRpZiAoV0FSTl9PTl9PTkNFKHEgXFx1MDAzZT0gbG9jYWwtXFx1MDAzZWh3LnF1ZXVlcykpIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jPTI1MTA9aW50IGllZWU4MDIxMV9sb29rdXBfcmFfc3RhKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL3R4LmMtMjUzNC1cXHRcXHRicmVhaztcXG5uZXQvbWFjODAyMTEvdHguYzoyNTM1OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS90eC5jLTI1MzYtXFx0Y2FzZSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UOlxcbi0tXFxubmV0L21hYzgwMjExL3R4LmM9MjY0MT1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmllZWU4MDIxMV9idWlsZF9oZHIoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvdHguYy0yNjY3LVxcbm5ldC9tYWM4MDIxMS90eC5jOjI2Njg6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL3R4LmMtMjY2OS1cXHRpZiAobG9jYWwtXFx1MDAzZWZvcmNlX3R4X3N0YXR1cylcXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jLTI3NDAtXFx0XFx0YnJlYWs7XFxubmV0L21hYzgwMjExL3R4LmM6Mjc0MTojaWZkZWYgQ09ORklHX01BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvdHguYy0yNzQyLVxcdGNhc2UgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVDpcXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jLTI5MjgtXFx0XFx0ICAgICAgIWllZWU4MDIxMV9pc19vdXJfYWRkcihzZGF0YSwgc2tiLVxcdTAwM2VkYXRhICsgRVRIX0FMRU4sIE5VTEwpKSkpIHtcXG5uZXQvbWFjODAyMTEvdHguYzoyOTI5OiNpZmRlZiBDT05GSUdfTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS90eC5jLTI5MzAtXFx0XFx0bmV0X2luZm9fcmF0ZWxpbWl0ZWQoXFxcIiVzOiBkcm9wcGVkIGZyYW1lIHRvICVwTSAodW5hdXRob3JpemVkIHBvcnQpXFxcXG5cXFwiLFxcbi0tXFxubmV0L21hYzgwMjExL3R4LmMtMzAwMS1cXG5uZXQvbWFjODAyMTEvdHguYzozMDAyOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS90eC5jLTMwMDMtXFx0aWYgKG1lc2hoZHJsZW4gXFx1MDAzZSAwKVxcbi0tXFxubmV0L21hYzgwMjExL3R4LmMtMzA0OC1cXHRcXHQgICAgbGlua19pZCAhPSBJRUVFODAyMTFfTElOS19VTlNQRUNJRklFRCkge1xcbm5ldC9tYWM4MDIxMS90eC5jOjMwNDk6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9WRVJCT1NFX0RFQlVHXFxubmV0L21hYzgwMjExL3R4LmMtMzA1MC1cXHRcXHRcXHRuZXRfaW5mb19yYXRlbGltaXRlZChcXFwiJXM6IGRyb3BwZWQgZnJhbWUgdG8gJXBNIHdpdGggYmFkIGxpbmsgSUQgcmVxdWVzdCAoJWQgdnMuICVkKVxcXFxuXFxcIixcXG4tLVxcbm5ldC9tYWM4MDIxMS90eC5jPTM3Mjk9dm9pZCBfX2llZWU4MDIxMV94bWl0X2Zhc3Qoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvdHguYy0zNzc1LVxcbm5ldC9tYWM4MDIxMS90eC5jOjM3NzY6I2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL3R4LmMtMzc3Ny1cXHRpZiAobG9jYWwtXFx1MDAzZWZvcmNlX3R4X3N0YXR1cylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDM6MjU6MjQuMDE0NDMzMzk4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzE1ODAwMjMxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBTMUcgVFdUIFNldHVwKipcblxuT2theSwgdGhlIGBNQUM4MDIxMWAgY29uZmlnIGlzIGRlZmluaXRlbHkgaW4gcGxhY2UsIHNvIHdlIGNhbiBhc3N1bWUgdGhlIHJlbGV2YW50IGluZnJhc3RydWN0dXJlIGlzIGF2YWlsYWJsZS4gVGhlIGtleSBmdW5jdGlvbiBJJ3ZlIGJlZW4gZm9jdXNpbmcgb24gaXMgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYC4gVGhhdCdzIHRoZSBvbmUgdGhhdCdzIGJlZW4gbW9kaWZpZWQsIGFuZCB0aGUgcGF0Y2ggaXMgbG9jYXRlZCBpbiBgbmV0L21hYzgwMjExL3MxZy5jYC5cblxuTm93LCBiZWZvcmUgd2UgZGVjbGFyZSB2aWN0b3J5LCBsZXQncyB0aGluayBjcml0aWNhbGx5OiBhcmUgdGhlcmUgb3RoZXIgZW50cnkgcG9pbnRzIG9yIHJlbGF0ZWQgZnVuY3Rpb25zIHRoYXQgYWxzbyBuZWVkIGZ1enppbmc/IEhtbW0sIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgaXMgc3RhdGljLCB3aGljaCBpcyBhIHBvdGVudGlhbCByZWQgZmxhZy4gQnV0IGl0IGxvb2tzIGxpa2UgaXQncyBjYWxsZWQgYnkgYGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbmAuIFRoYXQncyBhIGdvb2QgY2FuZGlkYXRlIGZvciBgRm9jdXNTeW1ib2xzYC4gTGV0J3MgYWRkIHRoYXQuIEFuZCBiZWNhdXNlIG9mIHRoZSBzdGF0aWMgbmF0dXJlIG9mIHNldHVwLCBpdCBtYWtlcyBzZW5zZSB0byBpbmNsdWRlIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgYXMgd2VsbC5cblxuTGV0J3MgcXVpY2tseSBjb25maXJtIHRoYXQgYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpcyByZWFjaGFibGUgZnJvbSBgaWVlZTgwMjExX3MxZ19yeF90d3RfYWN0aW9uYCwgd2hpY2ggc2VlbXMgbGlrZWx5LiBZZXMsIGhlcmUgaXQgaXMgaW4gdGhlIGNvZGU6XG5cbmBgYGNcblx0Y2FzZSBXTEFOX1MxR19UV1RfU0VUVVA6XG5cdFx0aWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXAoc2RhdGEsIHN0YSwgc2tiKTtcblx0XHRicmVhaztcbmBgYFxuXG5QZXJmZWN0LiBOb3csIGxldCdzIGp1c3QgbWFrZSBzdXJlIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWdzLCBldmVuIHRob3VnaCB0aGUgY3VycmVudCBwYXRjaCBpcyBhbGwgYWJvdXQgVGFyZ2V0IFdha2UgVGltZSAoVFdUKSBpbiBTMUcgKFN1Yi0xIEdIeiwgODAyLjExYWgpLiBJcyB0aGVyZSBhIHNwZWNpZmljIGNvbmZpZyBmb3IgUzFHIGl0c2VsZiB0aGF0IHdlIHNob3VsZCBiZSBhd2FyZSBvZj8gVGhhdCdzIHRoZSBuZXh0IGNoZWNrLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTk1NSwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTozMS4xNzI0Mzc2MThaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4MjAwMjg3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfTUFDODAyMTFfUzFHXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDAzOjI1OjMxLjI2MDY0NzUzNVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDgxOTY2NTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqUzFHIENvbmZpZ3VyYXRpb24gQ2hlY2twb2ludCoqXG5cbkFscmlnaHQsIHNvIHRoZXJlJ3Mgbm8gZXhwbGljaXRseSBkZWZpbmVkIGNvbmZpZ3VyYXRpb24gYmxvY2sgZm9yIFMxRyAoU2luZ2xlLVNwYXRpYWwgU3RyZWFtLCAxIEdIeiBiYW5kKSB3aXRoaW4gdGhlIGV4aXN0aW5nIHNldHVwLiBUaGF0J3MgdGhlIGZpcnN0IHRoaW5nIHRvIG5vdGUuIE5vdywgd2hlcmUgZG8gd2UgdHlwaWNhbGx5IGhhbmRsZSB0aGUgVGltZSBXYWtlLXVwIChUV1QpIHNldHVwIGZvciBTMUcgc3BlY2lmaWNhbGx5PyBTZWVtcyBsaWtlIEkgc2hvdWxkIHJldmlzaXQgdGhlIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgZnVuY3Rpb24gYWdhaW4uIEkgd2FudCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSB3ZSdyZSBoYW5kbGluZyBhbGwgdGhlIHNwZWNpZmljIG51YW5jZXMgb2YgUzFHIGNvcnJlY3RseSB3aXRoaW4gdGhhdCBmdW5jdGlvbi4gVGltZSB0byBkaXZlIGJhY2sgaW4gYW5kIGRvdWJsZS1jaGVjayBpdHMgbG9naWMsIGVzcGVjaWFsbHkgaW4gcmVsYXRpb24gdG8gVFdUIG9wZXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTY3OTUsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTozNS4zNDI2MTc5MjFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODI1MzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21hYzgwMjExL3MxZy5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDk2LFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDk2OlxcdHN0YXRpYyB2b2lkXFxuICA5NzpcXHRpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4gIDk4OlxcdFxcdFxcdFxcdCAgIHN0cnVjdCBzdGFfaW5mbyAqc3RhLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiAgOTk6XFx0e1xcbiAxMDA6XFx0XFx0c3RydWN0IGllZWU4MDIxMV9tZ210ICptZ210ID0gKHZvaWQgKilza2ItXFx1MDAzZWRhdGE7XFxuIDEwMTpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9zZXR1cCAqdHd0ID0gKHZvaWQgKiltZ210LVxcdTAwM2V1LmFjdGlvbi5zMWcudmFyaWFibGU7XFxuIDEwMjpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9wYXJhbXMgKnR3dF9hZ3J0ID0gKHZvaWQgKil0d3QtXFx1MDAzZXBhcmFtcztcXG4gMTAzOlxcdFxcbiAxMDQ6XFx0XFx0aWYgKCEodHd0LVxcdTAwM2Vjb250cm9sIFxcdTAwMjYgSUVFRTgwMjExX1RXVF9DT05UUk9MX05FR19UWVBFX0JST0FEQ0FTVCkgXFx1MDAyNlxcdTAwMjZcXG4gMTA1OlxcdFxcdCAgICB0d3QtXFx1MDAzZWxlbmd0aCBcXHUwMDNjIHNpemVvZih0d3QtXFx1MDAzZWNvbnRyb2wpICsgc2l6ZW9mKCp0d3RfYWdydCkpXFxuIDEwNjpcXHRcXHRcXHRyZXR1cm47XFxuIDEwNzpcXHRcXG4gMTA4OlxcdFxcdHR3dF9hZ3J0LVxcdTAwM2VyZXFfdHlwZSBcXHUwMDI2PSBjcHVfdG9fbGUxNih+SUVFRTgwMjExX1RXVF9SRVFUWVBFX1JFUVVFU1QpO1xcbiAxMDk6XFx0XFxuIDExMDpcXHRcXHQvKiBicm9hZGNhc3QgVFdUIG5vdCBzdXBwb3J0ZWQgeWV0ICovXFxuIDExMTpcXHRcXHRpZiAodHd0LVxcdTAwM2Vjb250cm9sIFxcdTAwMjYgSUVFRTgwMjExX1RXVF9DT05UUk9MX05FR19UWVBFX0JST0FEQ0FTVCkge1xcbiAxMTI6XFx0XFx0XFx0dHd0X2FncnQtXFx1MDAzZXJlcV90eXBlIFxcdTAwMjY9XFxuIDExMzpcXHRcXHRcXHRcXHR+Y3B1X3RvX2xlMTYoSUVFRTgwMjExX1RXVF9SRVFUWVBFX1NFVFVQX0NNRCk7XFxuIDExNDpcXHRcXHRcXHR0d3RfYWdydC1cXHUwMDNlcmVxX3R5cGUgfD1cXG4gMTE1OlxcdFxcdFxcdFxcdGxlMTZfZW5jb2RlX2JpdHMoVFdUX1NFVFVQX0NNRF9SRUpFQ1QsXFxuIDExNjpcXHRcXHRcXHRcXHRcXHRcXHQgSUVFRTgwMjExX1RXVF9SRVFUWVBFX1NFVFVQX0NNRCk7XFxuIDExNzpcXHRcXHRcXHRnb3RvIG91dDtcXG4gMTE4OlxcdFxcdH1cXG4gMTE5OlxcdFxcbiAxMjA6XFx0XFx0LyogVFdUIEluZm9ybWF0aW9uIG5vdCBzdXBwb3J0ZWQgeWV0ICovXFxuIDEyMTpcXHRcXHR0d3QtXFx1MDAzZWNvbnRyb2wgfD0gSUVFRTgwMjExX1RXVF9DT05UUk9MX1JYX0RJU0FCTEVEO1xcbiAxMjI6XFx0XFxuIDEyMzpcXHRcXHRkcnZfYWRkX3R3dF9zZXR1cChzZGF0YS1cXHUwMDNlbG9jYWwsIHNkYXRhLCBcXHUwMDI2c3RhLVxcdTAwM2VzdGEsIHR3dCk7XFxuIDEyNDpcXHRvdXQ6XFxuIDEyNTpcXHRcXHRpZWVlODAyMTFfczFnX3NlbmRfdHd0X3NldHVwKHNkYXRhLCBtZ210LVxcdTAwM2VzYSwgc2RhdGEtXFx1MDAzZXZpZi5hZGRyLCB0d3QpO1xcbiAxMjY6XFx0fVxcbiAxMjc6XFx0XFxuIDEyODpcXHRzdGF0aWMgdm9pZFxcbiAxMjk6XFx0aWVlZTgwMjExX3MxZ19yeF90d3RfdGVhcmRvd24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuIDEzMDpcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gMTMxOlxcdHtcXG4gMTMyOlxcdFxcdHN0cnVjdCBpZWVlODAyMTFfbWdtdCAqbWdtdCA9IChzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKilza2ItXFx1MDAzZWRhdGE7XFxuIDEzMzpcXHRcXG4gMTM0OlxcdFxcdGRydl90d3RfdGVhcmRvd25fcmVxdWVzdChzZGF0YS1cXHUwMDNlbG9jYWwsIHNkYXRhLCBcXHUwMDI2c3RhLVxcdTAwM2VzdGEsXFxuIDEzNTpcXHRcXHRcXHRcXHRcXHQgbWdtdC1cXHUwMDNldS5hY3Rpb24uczFnLnZhcmlhYmxlWzBdKTtcXG4gMTM2OlxcdH1cXG4gMTM3OlxcdFxcbiAxMzg6XFx0c3RhdGljIHZvaWRcXG4gMTM5OlxcdGllZWU4MDIxMV9zMWdfdHhfdHd0X3NldHVwX2ZhaWwoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuIDE0MDpcXHRcXHRcXHRcXHRcXHRzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gMTQxOlxcdHtcXG4gMTQyOlxcdFxcdHN0cnVjdCBpZWVlODAyMTFfbWdtdCAqbWdtdCA9IChzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKilza2ItXFx1MDAzZWRhdGE7XFxuIDE0MzpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9zZXR1cCAqdHd0ID0gKHZvaWQgKiltZ210LVxcdTAwM2V1LmFjdGlvbi5zMWcudmFyaWFibGU7XFxuIDE0NDpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3R3dF9wYXJhbXMgKnR3dF9hZ3J0ID0gKHZvaWQgKil0d3QtXFx1MDAzZXBhcmFtcztcXG4gMTQ1OlxcdFxcdHU4IGZsb3dpZCA9IGxlMTZfZ2V0X2JpdHModHd0X2FncnQtXFx1MDAzZXJlcV90eXBlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTozNS4zNDI3MDIxMDFaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQ2MjcwNjA5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFRXVCBTZXR1cCBGdW5jdGlvbmFsaXR5KipcblxuT2theSwgc28gdGhlIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgZnVuY3Rpb24g4oCTIHllcywgdGhhdCdzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLCB3aGljaCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgdW5kZXJzdGFuZCBpdCBoYW5kbGVzIHRoZSBUV1QgKFRhcmdldCBXYWtlIFRpbWUpIHNldHVwIGFjdGlvbiBmcmFtZXMuIFRoZSByZWNlbnQgcGF0Y2ggaW50cm9kdWNlcyBhIGNydWNpYWwgYm91bmRzIGNoZWNrLCBzcGVjaWZpY2FsbHkgdG8gcHJldmVudCBhbnkgb3V0LW9mLWJvdW5kcyBtZW1vcnkgYWNjZXNzLiBUaGlzIGlzLCB3aXRob3V0IGEgZG91YnQsIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYW5kIGFkZHJlc3NlcyBhIHBvdGVudGlhbCB2dWxuZXJhYmlsaXR5LlxuXG5Ob3csIGxldCdzIG1ha2Ugc3VyZSB0aGUgc3ltYm9scyBhcmUgcHJvcGVybHkgZG9jdW1lbnRlZC4gVGhlIGNvcmUgRm9jdXNTeW1ib2xzIGZvciB0aGlzIGFyZWEgc2hvdWxkIGJlIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgYW5kIGBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25gLCBlbnN1cmluZyB0aGV5IGFyZSBjb3JyZWN0bHkgaGlnaGxpZ2h0ZWQgYXMgdGhlIGtleSBmdW5jdGlvbnMgaGVyZS4gVGhlIEVuYWJsZUNvbmZpZ3Mgc2hvdWxkIGJlIGxpc3RlZCBhcyBgTUFDODAyMTFgLiBUaGF0IG1ha2VzIHNlbnNlIGdpdmVuIHRoZSBjb250ZXh0LlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSdtIGdvaW5nIHRvIHRha2UgYSBtb21lbnQgYW5kIGRvdWJsZS1jaGVjazsgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueXRoaW5nIGVsc2UgaW4gdGVybXMgb2YgY29uZmlndXJhdGlvbnMsIG9yIGFueSBvdGhlciByZWxhdGVkIGZsYWdzLiBBbHdheXMgYSBnb29kIHByYWN0aWNlIHRvIGJlIHRob3JvdWdoIVxuXG5cbiIsIklucHV0VG9rZW5zIjoxODEyOCwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDAzOjI1OjM5LjgwNTQxMDUxN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI3NDg2NDUwNSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX01BQzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTo0MS4wODAyODE1MTFaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDE0MzE0NzUyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWU6XG5cbioqTmF2aWdhdGluZyBLZXJuZWwgQ29uZmlndXJhdGlvbiBQYXRocyoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEknbSBwcmV0dHkgc3VyZSBJJ3ZlIHNlZW4gdGhlIGBtYWM4MDIxMWAgY29uZmlndXJhdGlvbiBmaWxlcyBiZWZvcmUuIEJ1dCwgSSBkb24ndCByZWNhbGwgYSBgbmV0L21hYzgwMjExL0tjb25maWdgIGV4aXN0aW5nLiBJcyB0aGF0IGNvcnJlY3Q/IElzIHRoYXQgcGF0aCBvZmYgYnkgb25lPyBXYWl0LCBpcyBpdCBgbmV0L21hYzgwMjExL0tjb25maWdgPyBObywgdGhhdCBjYW4ndCBiZSByaWdodCBlaXRoZXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBpbiB0aGUgY29ycmVjdCBkaXJlY3RvcnkgaW4gdGhlIGtlcm5lbCB0cmVlLiBPa2F5LCBsZXQncyB2ZXJpZnkuIEkgYW0gZ29pbmcgdG8gZG91YmxlLWNoZWNrIG15IGFzc3VtcHRpb24gYW5kIHRha2UgYSBsb29rIGluc2lkZSB0aGUgYG5ldC9tYWM4MDIxMS9gIGRpcmVjdG9yeSB0byBtYWtlIHN1cmUgSSdtIG9uIHRoZSByaWdodCB0cmFjayBiZWZvcmUgbW92aW5nIG9uLiBJIG5lZWQgdG8gZ2V0IHRoaXMgY29ycmVjdCB0byBwcm9jZWVkIHdpdGggdGhlIGNvbmZpZ3VyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4NTcwLCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDM6MjU6NDUuMjIzNDMyMjc1WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEyNTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJhZWFkX2FwaS5jXCIsXG4gICAgXCJhZWFkX2FwaS5oXCIsXG4gICAgXCJhZXNfY2NtLmhcIixcbiAgICBcImFlc19jbWFjLmNcIixcbiAgICBcImFlc19jbWFjLmhcIixcbiAgICBcImFlc19nY20uaFwiLFxuICAgIFwiYWVzX2dtYWMuY1wiLFxuICAgIFwiYWVzX2dtYWMuaFwiLFxuICAgIFwiYWdnLXJ4LmNcIixcbiAgICBcImFnZy10eC5jXCIsXG4gICAgXCJhaXJ0aW1lLmNcIixcbiAgICBcImFwLmNcIixcbiAgICBcImNmZy5jXCIsXG4gICAgXCJjaGFuLmNcIixcbiAgICBcImRlYnVnLmhcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZGVidWdmcy5oXCIsXG4gICAgXCJkZWJ1Z2ZzX2tleS5jXCIsXG4gICAgXCJkZWJ1Z2ZzX2tleS5oXCIsXG4gICAgXCJkZWJ1Z2ZzX25ldGRldi5jXCIsXG4gICAgXCJkZWJ1Z2ZzX25ldGRldi5oXCIsXG4gICAgXCJkZWJ1Z2ZzX3N0YS5jXCIsXG4gICAgXCJkZWJ1Z2ZzX3N0YS5oXCIsXG4gICAgXCJkcml2ZXItb3BzLmNcIixcbiAgICBcImRyaXZlci1vcHMuaFwiLFxuICAgIFwiZHJvcC5oXCIsXG4gICAgXCJlaHQuY1wiLFxuICAgIFwiZXRodG9vbC5jXCIsXG4gICAgXCJmaWxzX2FlYWQuY1wiLFxuICAgIFwiZmlsc19hZWFkLmhcIixcbiAgICBcImhlLmNcIixcbiAgICBcImh0LmNcIixcbiAgICBcImlic3MuY1wiLFxuICAgIFwiaWVlZTgwMjExX2kuaFwiLFxuICAgIFwiaWZhY2UuY1wiLFxuICAgIFwia2V5LmNcIixcbiAgICBcImtleS5oXCIsXG4gICAgXCJsZWQuY1wiLFxuICAgIFwibGVkLmhcIixcbiAgICBcImxpbmsuY1wiLFxuICAgIFwibWFpbi5jXCIsXG4gICAgXCJtZXNoLmNcIixcbiAgICBcIm1lc2guaFwiLFxuICAgIFwibWVzaF9od21wLmNcIixcbiAgICBcIm1lc2hfcGF0aHRibC5jXCIsXG4gICAgXCJtZXNoX3BsaW5rLmNcIixcbiAgICBcIm1lc2hfcHMuY1wiLFxuICAgIFwibWVzaF9zeW5jLmNcIixcbiAgICBcIm1sbWUuY1wiLFxuICAgIFwibmFuLmNcIixcbiAgICBcIm9jYi5jXCIsXG4gICAgXCJvZmZjaGFubmVsLmNcIixcbiAgICBcInBhcnNlLmNcIixcbiAgICBcInBtLmNcIixcbiAgICBcInJhdGUuY1wiLFxuICAgIFwicmF0ZS5oXCIsXG4gICAgXCJyYzgwMjExX21pbnN0cmVsX2h0LmNcIixcbiAgICBcInJjODAyMTFfbWluc3RyZWxfaHQuaFwiLFxuICAgIFwicmM4MDIxMV9taW5zdHJlbF9odF9kZWJ1Z2ZzLmNcIixcbiAgICBcInJ4LmNcIixcbiAgICBcInMxZy5jXCIsXG4gICAgXCJzY2FuLmNcIixcbiAgICBcInNwZWN0bWdtdC5jXCIsXG4gICAgXCJzdGFfaW5mby5jXCIsXG4gICAgXCJzdGFfaW5mby5oXCIsXG4gICAgXCJzdGF0dXMuY1wiLFxuICAgIFwidGRscy5jXCIsXG4gICAgXCJ0a2lwLmNcIixcbiAgICBcInRraXAuaFwiLFxuICAgIFwidHJhY2UuY1wiLFxuICAgIFwidHJhY2UuaFwiLFxuICAgIFwidHJhY2VfbXNnLmhcIixcbiAgICBcInR4LmNcIixcbiAgICBcInVoci5jXCIsXG4gICAgXCJ1dGlsLmNcIixcbiAgICBcInZodC5jXCIsXG4gICAgXCJ3YnJmLmNcIixcbiAgICBcIndlcC5jXCIsXG4gICAgXCJ3ZXAuaFwiLFxuICAgIFwid21lLmNcIixcbiAgICBcIndtZS5oXCIsXG4gICAgXCJ3cGEuY1wiLFxuICAgIFwid3BhLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwidGVzdHNcIlxuICBdXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTo0NS4yMjM1NDYwODVaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAxMjkyNjIwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgd2VudCBkb3duOlxuXG4qKldoZXJlJ3MgVGhhdCBLY29uZmlnPyEqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgYG5ldC9tYWM4MDIxMWAgZGlyZWN0b3J5LCBhbmQgSSdtIGxvb2tpbmcgZm9yIHRoZSBLY29uZmlnIGZpbGUsIGJlY2F1c2UsIHdlbGwsIHlvdSBuZWVkIGl0IGZvciB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiBCdXQgaXQncyBqdXN0ICpub3QqIHRoZXJlLiBTdHJhbmdlLiBNeSBmaXJzdCB0aG91Z2h0IGlzLCBpcyBpdCByZWFsbHkgc3VwcG9zZWQgdG8gYmUgaW4gYG5ldC9tYWM4MDIxMS9gLCBvciBpcyBpdCBjbGV2ZXJseSBwbGFjZWQgc29tZXdoZXJlIGVsc2U/IFBlcmhhcHMgaXQncyBpbiBgbmV0L3dpcmVsZXNzL0tjb25maWdgPyBUaGF0J3MgdGhlIG1vc3QgbG9naWNhbCBwbGFjZSBpZiBpdCdzIG5vdCB1bmRlciBgbWFjODAyMTFgLiBPciwganVzdCBtYXliZSwgSSdtIHNpbXBseSBibGluZCBhbmQgaXQncyBtaXMtbmFtZWQsIGV2ZW4gdGhvdWdoIGl0IHNob3VsZCBiZSBgbmV0L21hYzgwMjExL0tjb25maWdgIGFuZCBpdOKAmXMganVzdCBoaWRkZW4gaW4gdGhlcmUgc29tZXdoZXJlLiBMZXQncyBzdGFydCB3aXRoIGBuZXQvd2lyZWxlc3MvS2NvbmZpZ2AgYW5kIHRoZW4gbWF5YmUgYG5ldC9LY29uZmlnYCwgYW5kIGdldCB0aGlzIHNvcnRlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk1MzAsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NiwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMDM6MjU6NDkuMjM2NDc1NjUzWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDQzMjMwMTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cXHRib29sXFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQyLVxcdGJvb2wgXFxcIk1pbnN0cmVsXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXFxubmV0L21hYzgwMjExL0tjb25maWctNDktXFxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cXHRzdHJpbmdcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXFxcIlNvbWUgd2lyZWxlc3MgZHJpdmVycyByZXF1aXJlIGEgcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTU5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBtYWM4MDIxMVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03MS1cXHRib29sIFxcXCJFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3OTpjb25maWcgTUFDODAyMTFfTEVEU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVxcdGJvb2wgXFxcIkVuYWJsZSBMRUQgdHJpZ2dlcnNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVxcdGJvb2wgXFxcIkV4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cXHRib29sIFxcXCJUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXFxubmV0L21hYzgwMjExL0tjb25maWc6MTEwOm1lbnVjb25maWcgTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cXHRib29sIFxcXCJTZWxlY3QgbWFjODAyMTEgZGVidWdnaW5nIGZlYXR1cmVzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTE1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXFx0Ym9vbCBcXFwiRG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE0Mzpjb25maWcgTUFDODAyMTFfTUxNRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cXHRib29sIFxcXCJWZXJib3NlIG1hbmFnZWQgTUxNRSBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXFx0Ym9vbCBcXFwiVmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTY0LVxcdGJvb2wgXFxcIlZlcmJvc2UgSFQgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NTpjb25maWcgTUFDODAyMTFfT0NCX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTc2LVxcdGJvb2wgXFxcIlZlcmJvc2UgT0NCIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXFx0Ym9vbCBcXFwiVmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTk4LVxcdGJvb2wgXFxcIlZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIwOTpjb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjEwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwZWVyIGxpbmsgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjIxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3MS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyODE6Y29uZmlnIE1BQzgwMjExX1RETFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXFx0Ym9vbCBcXFwiVmVyYm9zZSBURExTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXFxubmV0L21hYzgwMjExL0tjb25maWctMjk0LVxcdGJvb2wgXFxcIkV4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXFxubmV0L21hYzgwMjExL0tjb25maWctMzA5LVxcdGludCBcXFwiU3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVxcXCIgaWYgTUFDODAyMTFfREVCVUdfTUVOVVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTo0OS41NDA4MDgxNDVaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjAyMDc5NTYyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGFzc2Vzc21lbnQgb2YgdGhpcyBwYXRjaDpcblxuKipBbmFseXppbmcgYSBQb3RlbnRpYWwgVnVsbmVyYWJpbGl0eSBpbiBNQUM4MDIxMSBUV1QgSGFuZGxpbmcqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgY29uZmlnIGlzIGRlZmluaXRlbHkgYE1BQzgwMjExYCwgdGhhdCdzIHRoZSBvYnZpb3VzIHN0YXJ0aW5nIHBvaW50LiBUaGUgcGF0Y2ggaXRzZWxmIGZvY3VzZXMgb24gYSBib3VuZHMgY2hlY2sgd2l0aGluIHRoZSBgaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBgIGZ1bmN0aW9uIGluIGBuZXQvbWFjODAyMTEvczFnLmNgLiBJIGltbWVkaWF0ZWx5IHRoaW5rLCAqdGhhdCBmdW5jdGlvbidzIGNhbGxlZCBieSogYGllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvbmAsIHdoaWNoIGlzIGl0c2VsZiByZWFjaGFibGUgdGhyb3VnaCBgaWVlZTgwMjExX2lmYWNlX3Byb2Nlc3Nfc2tiYC4gU28sIGEgY2xhc3NpYyByZWNlaXZlIHBhdGguIFRoaXMgaXMgZ29vZCB0byBrbm93LCBhbmQgdGhlIGNhbGwgY2hhaW4gZ2l2ZXMgbWUgYSBkaXJlY3QgYXR0YWNrIHN1cmZhY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYWltZWQgYXQgcHJldmVudGluZyBhbiBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3MuIFRoYXQncyBhIHRleHRib29rIHNlY3VyaXR5IGZpeCwgYW5kIG15IGd1dCByZWFjdGlvbiBpcyB0aGF0IHRoaXMgd2FycmFudHMgc2VyaW91cyBjb25zaWRlcmF0aW9uLlxuXG5HaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBjaGFuZ2UgYW5kIHRoZSBjcml0aWNhbCBwYXRoIGludm9sdmVkIGluIHdpcmVsZXNzIGNvbW11bmljYXRpb24sIHRoaXMgZmVlbHMgbGlrZSBhbiBleGNlbGxlbnQgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBUaGUga2V5IHN5bWJvbHMgSSdtIGdvaW5nIHRvIGJlIGludGVyZXN0ZWQgaW4gYXJlIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgYW5kIGBpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25gLiBUaGF0J3Mgd2hlcmUgSSBuZWVkIHRvIGZvY3VzIG15IGVmZm9ydHMgdG8gZ2VuZXJhdGUgaW50ZXJlc3RpbmcgaW5wdXRzLiBUaGUgZmFjdCB0aGF0IGBNQUM4MDIxMWAgaXMgZW5hYmxlZCBtZWFucyBJIGhhdmUgYSBjbGVhbiBzdGFydGluZyBwb2ludCBmb3IgdGhpcyBmdXp6aW5nIGVmZm9ydC4gTm93LCBsZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMDQ1LCJPdXRwdXRUb2tlbnMiOjE2NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQwMzoyNTo1NS41NjE2MDYzMDZaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDU3MTcyNjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3MxZ19yeF90d3Rfc2V0dXBcIixcbiAgICBcImllZWU4MDIxMV9zMWdfcnhfdHd0X2FjdGlvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgdG8gYGllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwYCBpbiBtYWM4MDIxMSB0byBwcmV2ZW50IG91dC1vZi1ib3VuZHMgYWNjZXNzIHdoZW4gcHJvY2Vzc2luZyBUV1Qgc2V0dXAgYWN0aW9uIGZyYW1lcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSA4MDIuMTFhaCAoUzFHKSBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMV9od3NpbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV9zMWdfcnhfdHd0X3NldHVwXCIsXG4gICAgXCJpZWVlODAyMTFfczFnX3J4X3R3dF9hY3Rpb25cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBpZWVlODAyMTFfczFnX3J4X3R3dF9zZXR1cGAgaW4gbWFjODAyMTEgdG8gcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2VzcyB3aGVuIHByb2Nlc3NpbmcgVFdUIHNldHVwIGFjdGlvbiBmcmFtZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgODAyLjExYWggKFMxRykgaW1wbGVtZW50YXRpb24gYW5kIGlzIHJlYWNoYWJsZSB2aWEgbWFjODAyMTFfaHdzaW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowzhtgs[1] Phase: Succeeded StartedAt: 2026-07-24 03:28:09 +0000 UTC FinishedAt: 2026-07-24 03:28:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-24 03:28:09 +0000 UTC FinishedAt: 2026-07-24 03:28:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2] Phase: Succeeded StartedAt: 2026-07-24 03:28:09 +0000 UTC FinishedAt: 2026-07-24 05:34:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-24 03:28:09 +0000 UTC FinishedAt: 2026-07-24 05:34:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-24 03:28:09 +0000 UTC FinishedAt: 2026-07-24 03:28:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-24 03:28:09 +0000 UTC FinishedAt: 2026-07-24 03:28:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowzhtgs/series-workflowzhtgs-convert-artifact-3722408918/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-24 03:28:30 +0000 UTC FinishedAt: 2026-07-24 03:58:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-24 03:28:30 +0000 UTC FinishedAt: 2026-07-24 03:58:53 +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:*92a71201-9e5d-40f5-90e5-09f112378939,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-workflowzhtgs/series-workflowzhtgs-convert-artifact-3722408918/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": "aad857d1-fbc1-4322-8a3c-0b06aac3990a", "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-workflowzhtgs/series-workflowzhtgs-build-action-386158700/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-24 03:28:30 +0000 UTC FinishedAt: 2026-07-24 03:58:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*92a71201-9e5d-40f5-90e5-09f112378939,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-workflowzhtgs/series-workflowzhtgs-convert-artifact-3722408918/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": "aad857d1-fbc1-4322-8a3c-0b06aac3990a", "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-workflowzhtgs/series-workflowzhtgs-build-action-386158700/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-24 03:58:53 +0000 UTC FinishedAt: 2026-07-24 03:58:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-24 03:58:53 +0000 UTC FinishedAt: 2026-07-24 03:58:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-24 03:58:53 +0000 UTC FinishedAt: 2026-07-24 03:59:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-24 03:58:53 +0000 UTC FinishedAt: 2026-07-24 03:59:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowzhtgs/series-workflowzhtgs-convert-artifact-276202345/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-24 03:59:05 +0000 UTC FinishedAt: 2026-07-24 04:01:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-24 03:59:05 +0000 UTC FinishedAt: 2026-07-24 04:00:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*aad857d1-fbc1-4322-8a3c-0b06aac3990a,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-workflowzhtgs/series-workflowzhtgs-build-action-386158700/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-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-24 04:01:04 +0000 UTC FinishedAt: 2026-07-24 04:01:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-24 04:01:04 +0000 UTC FinishedAt: 2026-07-24 04:01:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-24 04:01:04 +0000 UTC FinishedAt: 2026-07-24 04:38:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-24 04:01:04 +0000 UTC FinishedAt: 2026-07-24 04:38:50 +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:*92a71201-9e5d-40f5-90e5-09f112378939,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-workflowzhtgs/series-workflowzhtgs-convert-artifact-276202345/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": "d42c718f-8d15-4192-8c07-ece6950c6d78", "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-workflowzhtgs/series-workflowzhtgs-build-action-472564549/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-24 04:01:04 +0000 UTC FinishedAt: 2026-07-24 04:38:40 +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:*92a71201-9e5d-40f5-90e5-09f112378939,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-workflowzhtgs/series-workflowzhtgs-convert-artifact-276202345/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": "d42c718f-8d15-4192-8c07-ece6950c6d78", "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-workflowzhtgs/series-workflowzhtgs-build-action-472564549/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-24 04:38:50 +0000 UTC FinishedAt: 2026-07-24 04:38:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-24 04:38:50 +0000 UTC FinishedAt: 2026-07-24 04:38:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-24 04:38:50 +0000 UTC FinishedAt: 2026-07-24 04:41:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-24 04:38:50 +0000 UTC FinishedAt: 2026-07-24 04:40:24 +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:*d42c718f-8d15-4192-8c07-ece6950c6d78,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-workflowzhtgs/series-workflowzhtgs-build-action-472564549/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-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-24 04:41:04 +0000 UTC FinishedAt: 2026-07-24 05:34:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-24 04:41:04 +0000 UTC FinishedAt: 2026-07-24 05:34:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"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:*aad857d1-fbc1-4322-8a3c-0b06aac3990a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d42c718f-8d15-4192-8c07-ece6950c6d78,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-workflowzhtgs/series-workflowzhtgs-build-action-386158700/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-workflowzhtgs/series-workflowzhtgs-build-action-472564549/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-24 04:41:04 +0000 UTC FinishedAt: 2026-07-24 04:41:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-24 04:41:04 +0000 UTC FinishedAt: 2026-07-24 04:41:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"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-workflowzhtgs/series-workflowzhtgs-convert-artifact-914973630/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-24 04:41:04 +0000 UTC FinishedAt: 2026-07-24 04:41:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-24 04:41:04 +0000 UTC FinishedAt: 2026-07-24 04:41:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-24 04:41:04 +0000 UTC FinishedAt: 2026-07-24 04:41:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-24 04:41:14 +0000 UTC FinishedAt: 2026-07-24 05:34:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzhtgs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_s1g_rx_twt_setup","ieee80211_s1g_rx_twt_action"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"5e6c0e1b-ae0e-4dce-b314-59a3dcc51244","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-24 04:41:14 +0000 UTC FinishedAt: 2026-07-24 05:34:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*aad857d1-fbc1-4322-8a3c-0b06aac3990a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d42c718f-8d15-4192-8c07-ece6950c6d78,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-workflowzhtgs/series-workflowzhtgs-build-action-386158700/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-workflowzhtgs/series-workflowzhtgs-build-action-472564549/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-workflowzhtgs/series-workflowzhtgs-convert-artifact-914973630/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,}