Name: series-workflowscrnm Phase: Succeeded StartedAt: 2026-09-01 22:24:24 +0000 UTC FinishedAt: 2026-09-01 23:51:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[0] Phase: Succeeded StartedAt: 2026-09-01 22:24:24 +0000 UTC FinishedAt: 2026-09-01 23:10:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[0].run-triage Phase: Succeeded StartedAt: 2026-09-01 22:24:24 +0000 UTC FinishedAt: 2026-09-01 23:10:43 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "6c322f5cf7476ded7a9a20f7be72462065a03c68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89", "RTW89_CORE", "RTW89_USB", "RTW89_8852AU", "MAC80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "6c322f5cf7476ded7a9a20f7be72462065a03c68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89", "RTW89_CORE", "RTW89_USB", "RTW89_8852AU", "MAC80211" ], "series_id": "01c2cc0c-e7c7-49c8-a734-7991d6fd25f4" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtw89_fw_h2c_general_pkt", "rtw89_fw_h2c_keep_alive", "rtw89_fw_h2c_arp_offload", "rtw89_fw_h2c_wow_gtk_ofld" ], "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+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5JiMzNDssCiAgICAmIzM0O1JUVzg5X0NPUkUmIzM0OywKICAgICYjMzQ7UlRXODlfVVNCJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJBVSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdCYjMzQ7LAogICAgJiMzNDtydHc4OV9md19oMmNfa2VlcF9hbGl2ZSYjMzQ7LAogICAgJiMzNDtydHc4OV9md19oMmNfYXJwX29mZmxvYWQmIzM0OywKICAgICYjMzQ7cnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZCYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvcnJlY3RzIGVycm9yIGhhbmRsaW5nIGFuZCByZXR1cm4gY29kZSBwcm9wYWdhdGlvbiBpbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCgpYC4gU3BlY2lmaWNhbGx5LCBpdCBhc3NpZ25zIGFwcHJvcHJpYXRlIGVycm9yIGNvZGVzIChgLUVJTlZBTGAgb24gdW5rbm93biBwYWNrZXQgdHlwZSBhbmQgYC1FTk9NRU1gIG9uIHBhY2tldCBhbGxvY2F0aW9uIGZhaWx1cmUpIGFuZCByZXR1cm5zIGByZXRgIGluc3RlYWQgb2YgaGFyZGNvZGluZyBgLUVOT01FTWAuIEFsbCB2YXJpYWJsZXMgYXJlIGZ1bGx5IGluaXRpYWxpemVkLCBhbmQgdGhlcmUgYXJlIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLCBpbmZvLWxlYWtzIHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgYnVmZmVyIHVzYWdlcyBpbnZvbHZlZC4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHJlcXVpcmVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBjb2RlIHByb3BhZ2F0aW9uIGluIHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QgaW4gdGhlIFJlYWx0ZWsgcnR3ODkgZHJpdmVyLCBlbnN1cmluZyBwcm9wZXIgZXJyb3IgcmV0dXJuIHZhbHVlcyAoc3VjaCBhcyAtRUlOVkFMIG9uIGludmFsaWQgcGFja2V0IHR5cGVzIG9yIHByb3BhZ2F0aW9uIG9mIGVycm9ycyBmcm9tIHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQpIGluc3RlYWQgb2YgdW5jb25kaXRpb25hbGx5IHJldHVybmluZyAtRU5PTUVNLiBUaGUgcnR3ODkgZHJpdmVyIHN1cHBvcnRzIFVTQiBkZXZpY2VzIHdoaWNoIGNhbiBiZSBlbXVsYXRlZCBhbmQgZnV6emVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzowOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDMwOGE0NGJhMmI1ZDFjZDJiN2Y4ZjZmY2U4YTdiNTFkN2E4OGI5MGZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIFNlcCAxIDIzOjA5OjA5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuaW5kZXggZDZhNTk0Yjc1YWIyMC4uYWIyZDBiMGNiMWU1OSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXG5AQCAtMzAxMywxMSAmIzQzOzMwMTMsMTQgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcdFx0c2tiID0gcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChydHdkZXYsIHJ0d3ZpZl9saW5rKTtcbiBcdFx0YnJlYWs7XG4gXHRkZWZhdWx0OlxuJiM0MztcdFx0cmV0ID0gLUVJTlZBTDtcbiBcdFx0Z290byBlcnI7XG4gXHR9XG4gXG4tXHRpZiAoIXNrYilcbiYjNDM7XHRpZiAoIXNrYikge1xuJiM0MztcdFx0cmV0ID0gLUVOT01FTTtcbiBcdFx0Z290byBlcnI7XG4mIzQzO1x0fVxuIFxuIFx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZChydHdkZXYsIFx1MDAyNmluZm8tXHUwMDNlaWQsIHNrYik7XG4gXHRrZnJlZV9za2Ioc2tiKTtcbkBAIC0zMDMxLDcgJiM0MzszMDM0LDcgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcbiBlcnI6XG4gXHRrZnJlZShpbmZvKTtcbi1cdHJldHVybiAtRU5PTUVNO1xuJiM0MztcdHJldHVybiByZXQ7XG4gfVxuIFxuIHZvaWQgcnR3ODlfZndfcmVsZWFzZV9nZW5lcmFsX3BrdF9saXN0X3ZpZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRXODkmIzM0OywKICAgICYjMzQ7UlRXODlfQ09SRSYjMzQ7LAogICAgJiMzNDtSVFc4OV9VU0ImIzM0OywKICAgICYjMzQ7UlRXODlfODg1MkFVJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0JiMzNDssCiAgICAmIzM0O3J0dzg5X2Z3X2gyY19rZWVwX2FsaXZlJiMzNDssCiAgICAmIzM0O3J0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZCYjMzQ7LAogICAgJiMzNDtydHc4OV9md19oMmNfd293X2d0a19vZmxkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGNvZGUgcHJvcGFnYXRpb24gaW4gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCBpbiB0aGUgUmVhbHRlayBydHc4OSBkcml2ZXIsIGVuc3VyaW5nIHByb3BlciBlcnJvciByZXR1cm4gdmFsdWVzIChzdWNoIGFzIC1FSU5WQUwgb24gaW52YWxpZCBwYWNrZXQgdHlwZXMgb3IgcHJvcGFnYXRpb24gb2YgZXJyb3JzIGZyb20gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZCkgaW5zdGVhZCBvZiB1bmNvbmRpdGlvbmFsbHkgcmV0dXJuaW5nIC1FTk9NRU0uIFRoZSBydHc4OSBkcml2ZXIgc3VwcG9ydHMgVVNCIGRldmljZXMgd2hpY2ggY2FuIGJlIGVtdWxhdGVkIGFuZCBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMzA4YTQ0YmEyYjVkMWNkMmI3ZjhmNmZjZThhN2I1MWQ3YTg4YjkwZgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgU2VwIDEgMjM6MDk6MDkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMKaW5kZXggZDZhNTk0Yjc1YWIyMC4uYWIyZDBiMGNiMWU1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYwpAQCAtMzAxMywxMSAmIzQzOzMwMTMsMTQgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwKIAkJc2tiID0gcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChydHdkZXYsIHJ0d3ZpZl9saW5rKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKJiM0MzsJCXJldCA9IC1FSU5WQUw7CiAJCWdvdG8gZXJyOwogCX0KIAotCWlmICghc2tiKQomIzQzOwlpZiAoIXNrYikgewomIzQzOwkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBlcnI7CiYjNDM7CX0KIAogCXJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQocnR3ZGV2LCAmYW1wO2luZm8tJmd0O2lkLCBza2IpOwogCWtmcmVlX3NrYihza2IpOwpAQCAtMzAzMSw3ICYjNDM7MzAzNCw3IEBAIHN0YXRpYyBpbnQgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsCiAKIGVycjoKIAlrZnJlZShpbmZvKTsKLQlyZXR1cm4gLUVOT01FTTsKJiM0MzsJcmV0dXJuIHJldDsKIH0KIAogdm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3RfdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI5NAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEwNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBGaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHNjb3BlIG9mIHRoaXMgcGF0Y2guIFRoZSBpbml0aWFsIGNsdWUgaXMgdGhhdCBpdCYjMzk7cyBoaXR0aW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgLCBzcGVjaWZpY2FsbHkgdGhlIGZ1bmN0aW9uIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YC4gVGhhdCBwb2ludHMgbWUgZGlyZWN0bHkgdG8gYSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciDigJMgYSBjb21tb24gdGFyZ2V0IGZvciB2dWxuZXJhYmlsaXRpZXMuCgpNeSBpbW1lZGlhdGUgdGhvdWdodHMgYXJlIGFib3V0IHRoZSBwb3RlbnRpYWwgZm9yIGZ1enppbmcuIElzIHRoaXMgYSBkcml2ZXIgdGhhdCYjMzk7cyBlYXNpbHkgdGVzdGFibGUgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIG9yIGRvZXMgaXQgZGVwZW5kIG9uIHNwZWNpZmljIFJlYWx0ZWsgaGFyZHdhcmU/IEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyBzb21ldGhpbmcgSSBjYW4gZWFzaWx5IHNldCB1cCBpbiBteSBsYWIuIFRvIGRldGVybWluZSB0aGF0LCBJJiMzOTtsbCBuZWVkIHRvIGtub3cgYSBiaXQgbW9yZSBhYm91dCB0aGUgZHJpdmVyIGl0c2VsZi4gTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgc2VhcmNoIHRocm91Z2ggdGhlIEtjb25maWcgZmlsZXMgYW5kIGRyaXZlciBkaXJlY3RvcmllcyB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBgcnR3ODlgIGNvbXBvbmVudC4gVGhpcyB3aWxsIGhlbHAgbWUgdW5kZXJzdGFuZCBpdHMgZGVwZW5kZW5jaWVzIGFuZCBpZiBpdCYjMzk7cyBhIGdvb2QgY2FuZGlkYXRlIGZvciB2dWxuZXJhYmlsaXR5IGFzc2Vzc21lbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UlRXODkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA5MzAwMiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4MDIuMTFheCB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExOmlmIFJUVzg5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM6Y29uZmlnIFJUVzg5X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3OmNvbmZpZyBSVFc4OV9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xOC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjA6Y29uZmlnIFJUVzg5X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMzpjb25maWcgUlRXODlfODg1MUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjY6Y29uZmlnIFJUVzg5Xzg4NTJBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI5OmNvbmZpZyBSVFc4OV84ODUyQl9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zMC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MzI6Y29uZmlnIFJUVzg5Xzg4NTJCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzMtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjM1OmNvbmZpZyBSVFc4OV84ODUyQlRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNi1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Mzg6Y29uZmlnIFJUVzg5Xzg4NTJDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzktXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQxOmNvbmZpZyBSVFc4OV84OTIyQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQyLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0NDpjb25maWcgUlRXODlfODg1MUJFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQ2LVx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0NzpcdHNlbGVjdCBSVFc4OV9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDg6XHRzZWxlY3QgUlRXODlfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDk6XHRzZWxlY3QgUlRXODlfODg1MUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01MC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTU6Y29uZmlnIFJUVzg5Xzg4NTFCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU2LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01Ny1cdGRlcGVuZHMgb24gVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTg6XHRzZWxlY3QgUlRXODlfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU5Olx0c2VsZWN0IFJUVzg5X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjYwOlx0c2VsZWN0IFJUVzg5Xzg4NTFCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNjEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjY2OmNvbmZpZyBSVFc4OV84ODUyQUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02Ny1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MkFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNjgtXHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjY5Olx0c2VsZWN0IFJUVzg5X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo3MDpcdHNlbGVjdCBSVFc4OV9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo3MTpcdHNlbGVjdCBSVFc4OV84ODUyQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTcyLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy03Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo3Nzpjb25maWcgUlRXODlfODg1MkFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTc5LVx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo4MDpcdHNlbGVjdCBSVFc4OV9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODE6XHRzZWxlY3QgUlRXODlfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODI6XHRzZWxlY3QgUlRXODlfODg1MkFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy04My1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODg6Y29uZmlnIFJUVzg5Xzg4NTJCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTg5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy05MC1cdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6OTE6XHRzZWxlY3QgUlRXODlfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjkyOlx0c2VsZWN0IFJUVzg5X1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjkzOlx0c2VsZWN0IFJUVzg5Xzg4NTJCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6OTQ6XHRzZWxlY3QgUlRXODlfODg1MkJfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctOTUtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwMDpjb25maWcgUlRXODlfODg1MkJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAxLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDItXHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwMzpcdHNlbGVjdCBSVFc4OV9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTA0Olx0c2VsZWN0IFJUVzg5X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwNTpcdHNlbGVjdCBSVFc4OV84ODUyQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwNjpcdHNlbGVjdCBSVFc4OV84ODUyQl9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDctXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTExMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMTI6Y29uZmlnIFJUVzg5Xzg4NTJCVEVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJCRS1WVCBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTExNC1cdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTE1Olx0c2VsZWN0IFJUVzg5X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMTY6XHRzZWxlY3QgUlRXODlfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTE3Olx0c2VsZWN0IFJUVzg5Xzg4NTJCVFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExODpcdHNlbGVjdCBSVFc4OV84ODUyQl9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTktXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjQ6Y29uZmlnIFJUVzg5Xzg4NTJDRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyNS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyNi1cdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTI3Olx0c2VsZWN0IFJUVzg5X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjg6XHRzZWxlY3QgUlRXODlfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTI5Olx0c2VsZWN0IFJUVzg5Xzg4NTJDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTMwLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM1OmNvbmZpZyBSVFc4OV84ODUyQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzYtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNkUpIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzctXHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEzODpcdHNlbGVjdCBSVFc4OV9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM5Olx0c2VsZWN0IFJUVzg5X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE0MDpcdHNlbGVjdCBSVFc4OV84ODUyQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE0MS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE0Njpjb25maWcgUlRXODlfODkyMkFFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4OTIyQUUvODkyMkFFLVZTIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ4LVx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNDk6XHRzZWxlY3QgUlRXODlfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE1MDpcdHNlbGVjdCBSVFc4OV9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNTE6XHRzZWxlY3QgUlRXODlfODkyMkFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNTItXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNjA6Y29uZmlnIFJUVzg5Xzg5MjJBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2MS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODkyMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTYyLVx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNjM6XHRzZWxlY3QgUlRXODlfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE2NDpcdHNlbGVjdCBSVFc4OV9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNjU6XHRzZWxlY3QgUlRXODlfODkyMkFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNjYtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzI6Y29uZmlnIFJUVzg5X0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTczLVx0Ym9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzU6Y29uZmlnIFJUVzg5X0RFQlVHTVNHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtSZWFsdGVrIHJ0dzg5IGRlYnVnIG1lc3NhZ2Ugc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3NzpcdGRlcGVuZHMgb24gUlRXODlfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3ODpcdHNlbGVjdCBSVFc4OV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3OS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE4NDpjb25maWcgUlRXODlfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE4NS1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OSBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxODY6XHRkZXBlbmRzIG9uIFJUVzg5X0NPUkUgXHUwMDI2XHUwMDI2IENGRzgwMjExX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxODc6XHRzZWxlY3QgUlRXODlfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODgtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozOm9iai0kKENPTkZJR19SVFc4OV9DT1JFKSAmIzQzOz0gcnR3ODlfY29yZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQtcnR3ODlfY29yZS15ICYjNDM7PSBjb3JlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlPTIzPXJ0dzg5X2NvcmUtJChDT05GSUdfUE0pICYjNDM7PSB3b3cub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTFCKSAmIzQzOz0gcnR3ODlfODg1MWIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yNi1ydHc4OV84ODUxYi1vYmpzIDo9IHJ0dzg4NTFiLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfUlRXODlfODg1MUJFKSAmIzQzOz0gcnR3ODlfODg1MWJlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzItcnR3ODlfODg1MWJlLW9ianMgOj0gcnR3ODg1MWJlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19SVFc4OV84ODUxQlUpICYjNDM7PSBydHc4OV84ODUxYnUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zNS1ydHc4OV84ODUxYnUtb2JqcyA6PSBydHc4ODUxYnUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6Mzc6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJBKSAmIzQzOz0gcnR3ODlfODg1MmEub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zOC1ydHc4OV84ODUyYS1vYmpzIDo9IHJ0dzg4NTJhLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo0MzpvYmotJChDT05GSUdfUlRXODlfODg1MkFFKSAmIzQzOz0gcnR3ODlfODg1MmFlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNDQtcnR3ODlfODg1MmFlLW9ianMgOj0gcnR3ODg1MmFlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjQ2Om9iai0kKENPTkZJR19SVFc4OV84ODUyQVUpICYjNDM7PSBydHc4OV84ODUyYXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00Ny1ydHc4OV84ODUyYXUtb2JqcyA6PSBydHc4ODUyYXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDk6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCX0NPTU1PTikgJiM0Mzs9IHJ0dzg5Xzg4NTJiX2NvbW1vbi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTUwLXJ0dzg5Xzg4NTJiX2NvbW1vbi1vYmpzIDo9IHJ0dzg4NTJiX2NvbW1vbi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo1MjpvYmotJChDT05GSUdfUlRXODlfODg1MkIpICYjNDM7PSBydHc4OV84ODUyYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTUzLXJ0dzg5Xzg4NTJiLW9ianMgOj0gcnR3ODg1MmIubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjU4Om9iai0kKENPTkZJR19SVFc4OV84ODUyQkUpICYjNDM7PSBydHc4OV84ODUyYmUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01OS1ydHc4OV84ODUyYmUtb2JqcyA6PSBydHc4ODUyYmUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS02MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NjE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCVSkgJiM0Mzs9IHJ0dzg5Xzg4NTJidS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTYyLXJ0dzg5Xzg4NTJidS1vYmpzIDo9IHJ0dzg4NTJidS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2NDpvYmotJChDT05GSUdfUlRXODlfODg1MkJUKSAmIzQzOz0gcnR3ODlfODg1MmJ0Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjUtcnR3ODlfODg1MmJ0LW9ianMgOj0gcnR3ODg1MmJ0Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2OTpvYmotJChDT05GSUdfUlRXODlfODg1MkJURSkgJiM0Mzs9IHJ0dzg5Xzg4NTJidGUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS03MC1ydHc4OV84ODUyYnRlLW9ianMgOj0gcnR3ODg1MmJ0ZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo3MjpvYmotJChDT05GSUdfUlRXODlfODg1MkMpICYjNDM7PSBydHc4OV84ODUyYy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTczLXJ0dzg5Xzg4NTJjLW9ianMgOj0gcnR3ODg1MmMubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjc4Om9iai0kKENPTkZJR19SVFc4OV84ODUyQ0UpICYjNDM7PSBydHc4OV84ODUyY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS03OS1ydHc4OV84ODUyY2Utb2JqcyA6PSBydHc4ODUyY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS04MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJDVSkgJiM0Mzs9IHJ0dzg5Xzg4NTJjdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgyLXJ0dzg5Xzg4NTJjdS1vYmpzIDo9IHJ0dzg4NTJjdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4NDpvYmotJChDT05GSUdfUlRXODlfODkyMkEpICYjNDM7PSBydHc4OV84OTIyYS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTg1LXJ0dzg5Xzg5MjJhLW9ianMgOj0gcnR3ODkyMmEubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjg4Om9iai0kKENPTkZJR19SVFc4OV84OTIyQUUpICYjNDM7PSBydHc4OV84OTIyYWUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS04OS1ydHc4OV84OTIyYWUtb2JqcyA6PSBydHc4OTIyYWUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTE6b2JqLSQoQ09ORklHX1JUVzg5Xzg5MjJBVSkgJiM0Mzs9IHJ0dzg5Xzg5MjJhdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTkyLXJ0dzg5Xzg5MjJhdS1vYmpzIDo9IHJ0dzg5MjJhdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo5NDpydHc4OV9jb3JlLSQoQ09ORklHX1JUVzg5X0RFQlVHKSAmIzQzOz0gZGVidWcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTY6b2JqLSQoQ09ORklHX1JUVzg5X1BDSSkgJiM0Mzs9IHJ0dzg5X3BjaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTk3LXJ0dzg5X3BjaS15IDo9IHBjaS5vIHBjaV9iZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo5OTpvYmotJChDT05GSUdfUlRXODlfVVNCKSAmIzQzOz0gcnR3ODlfdXNiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMTAwLXJ0dzg5X3VzYi15IDo9IHVzYi5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MTU9c3RhdGljIHUzMiBydHc4OV9hY3BpX3RyYXZlcnNhbF9vYmplY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyLVx0XHRpZiAodW5saWtlbHkob2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGggPT0gMCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMzOlx0XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNC1cdFx0XHRcdCAgICBcJiMzNDslczogaW52YWxpZCBidWZmZXIgdHlwZVxcblwmIzM0OywgX19mdW5jX18pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ0LVx0XHRpZiAodW5saWtlbHkob2JqLVx1MDAzZXBhY2thZ2UuY291bnQgPT0gMCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ1Olx0XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00Ni1cdFx0XHRcdCAgICBcJiMzNDslczogaW52YWxpZCBwYWNrYWdlIHR5cGVcXG5cJiMzNDssIF9fZnVuY19fKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MS1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MjpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7JXM6IHVuaGFuZGxlZCB0eXBlOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTYzLVx0XHRcdCAgICBfX2Z1bmNfXywgb2JqLVx1MDAzZXR5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTgwPXJ0dzg5X2FjcGlfZXZhbHVhdGVfbWV0aG9kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgY29uc3QgY2hhciAqbWV0aG9kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTkwLVx0aWYgKCFyb290KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo5MTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTkyLVx0XHRcdCAgICBcJiMzNDthY3BpICglcyk6IGZhaWxlZCB0byBnZXQgcm9vdFxcblwmIzM0OywgbWV0aG9kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05Ny1cdGlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6OTg6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05OS1cdFx0XHQgICAgXCYjMzQ7YWNwaSAoJXMpOiBmYWlsZWQgdG8gZ2V0IGhhbmRsZVxcblwmIzM0OywgbWV0aG9kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMDQtXHRpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEwNTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEwNi1cdFx0XHQgICAgXCYjMzQ7YWNwaSAoJXMpOiBmYWlsZWQgdG8gZXZhbHVhdGUgb2JqZWN0XFxuXCYjMzQ7LCBtZXRob2QpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTExMi1cdGlmICh1bmxpa2VseShsZW4gPT0gMCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjExMzpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTExNC1cdFx0XHQgICAgXCYjMzQ7YWNwaSAoJXMpOiBmYWlsZWQgdG8gdHJhdmVyc2FsIG9iaiBsZW5cXG5cJiMzNDssIG1ldGhvZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MTMxPWludCBydHc4OV9hY3BpX2RzbV9nZXRfdmFsdWUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1bmlvbiBhY3BpX29iamVjdCAqb2JqLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEzNC1cdGlmIChvYmotXHUwMDNldHlwZSAhPSBBQ1BJX1RZUEVfSU5URUdFUikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTM1Olx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTM2LVx0XHRcdCAgICBcJiMzNDthY3BpOiBleHBlY3QgaW50ZWdlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0xNTI9aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoeihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTYwLVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE2MTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2Mi1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNjctXHRpZiAobGVuIFx1MDAzYyBzaXplb2YoKnB0cikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE2ODpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7JXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNjktXHRcdFx0ICAgIF9fZnVuY19fLCBsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE3NC1cdGlmICghY2hrX2FjcGlfcG9saWN5XzZnaHpfc2lnKHB0cikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE3NTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7JXM6IGJhZCBzaWduYXR1cmVcXG5cJiMzNDssIF9fZnVuY19fKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE3Ni1cdFx0cmV0dXJuIC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTgwLVx0aWYgKGxlbiBcdTAwM2MgZXhwZWN0X2xlbikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTgxOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDslczogZXhwZWN0ICV1IGJ1dCBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTgyLVx0XHRcdCAgICBfX2Z1bmNfXywgZXhwZWN0X2xlbiwgbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxOTA6XHRydHc4OV9oZXhfZHVtcChydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDtwb2xpY3lfNmdoejogXCYjMzQ7LCAqcG9saWN5XzZnaHosXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xOTEtXHRcdCAgICAgICBleHBlY3RfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yMDQ9aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel9zcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjExLVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIxMjpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxMy1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMTgtXHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyMTk6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjIwLVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjI1LVx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfNmdoel9zcF9zaWcocHRyKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjI2Olx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDslczogYmFkIHNpZ25hdHVyZVxcblwmIzM0OywgX19mdW5jX18pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjI3LVx0XHRyZXR1cm4gLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyMzQ6XHRydHc4OV9oZXhfZHVtcChydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDtwb2xpY3lfNmdoel9zcDogXCYjMzQ7LCAqcG9saWN5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjM1LVx0XHQgICAgICAgc2l6ZW9mKCpwdHIpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yNDg9aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel92bHAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1NS1cdGlmIChvYmotXHUwMDNldHlwZSAhPSBBQ1BJX1RZUEVfQlVGRkVSKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNTY6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNTctXHRcdFx0ICAgIFwmIzM0O2FjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxuXCYjMzQ7LCBvYmotXHUwMDNldHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjYyLVx0aWYgKGJ1Zl9sZW4gXHUwMDNjIHNpemVvZigqcHRyKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjYzOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDslczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2NC1cdFx0XHQgICAgX19mdW5jX18sIGJ1Zl9sZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2OS1cdGlmICghY2hrX2FjcGlfcG9saWN5XzZnaHpfdmxwX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNzA6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzEtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI3ODpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV82Z2h6X3ZscDogXCYjMzQ7LCAqcG9saWN5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjc5LVx0XHQgICAgICAgc2l6ZW9mKCpwdHIpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yOTE9c3RhdGljIGludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3RhcyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjk4LVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI5OTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMwMC1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMDUtXHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMDY6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzA3LVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzEyLVx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfdGFzX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMTM6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMTQtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMyMTpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV90YXM6IFwmIzM0OywgKnBvbGljeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyMi1cdFx0ICAgICAgIHNpemVvZigqcHRyKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzM2PWludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3JlZ19ydWxlcyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQzLVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM0NDpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM0NS1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTAtXHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNTE6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzUyLVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzU3LVx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfcmVnX3J1bGVzX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNTg6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTktXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM2NjpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV9yZWdfcnVsZXM6IFwmIzM0OywgKnBvbGljeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM2Ny1cdFx0ICAgICAgIHNpemVvZigqcHRyKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzcxPWludCBydHc4OV9hY3BpX2V2YWx1YXRlX2RzbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzgwLVx0aWYgKCFvYmopIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM4MTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM4Mi1cdFx0XHQgICAgXCYjMzQ7YWNwaSBkc20gZmFpbCB0byBldmFsdWF0ZSBmdW5jOiAlZFxcblwmIzM0OywgZnVuYyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzg1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mzg2Olx0aWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ182R19CUClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM4Ny1cdFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV82Z2h6KHJ0d2Rldiwgb2JqLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzg4LVx0XHRcdFx0XHRcdCAgICAgXHUwMDI2cmVzLVx1MDAzZXUucG9saWN5XzZnaHopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mzg5Olx0ZWxzZSBpZiAoZnVuYyA9PSBSVFc4OV9BQ1BJX0RTTV9GVU5DXzZHSFpfU1BfU1VQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzkwLVx0XHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfc3AocnR3ZGV2LCBvYmosXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTEtXHRcdFx0XHRcdFx0XHRcdTAwMjZyZXMtXHUwMDNldS5wb2xpY3lfNmdoel9zcCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTI6XHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfNkdIWl9WTFBfU1VQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzkzLVx0XHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfdmxwKHJ0d2Rldiwgb2JqLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk0LVx0XHRcdFx0XHRcdFx0IFx1MDAyNnJlcy1cdTAwM2V1LnBvbGljeV82Z2h6X3ZscCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTU6XHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfVEFTX0VOKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk2LVx0XHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3RhcyhydHdkZXYsIG9iaiwgXHUwMDI2cmVzLVx1MDAzZXUucG9saWN5X3Rhcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTc6XHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfUkVHX1JVTEVTX0VOKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk4LVx0XHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3JlZ19ydWxlcyhydHdkZXYsIG9iaixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz00MDc9aW50IHJ0dzg5X2FjcGlfZXZhbHVhdGVfcnRhZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDE5LVx0aWYgKGJ1Zl9sZW4gIT0gc2l6ZW9mKCpyZXMpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MjA6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDIxLVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDI4Olx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7YW50ZW5uYV9nYWluOiBcJiMzNDssIHJlcywgc2l6ZW9mKCpyZXMpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQyOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz00MzU9ZW51bSBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kIHJ0dzg5X2FjcGlfc2FyX2dldF9zdWJiYW5kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzktXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDQwOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDQxLVx0XHRcdCAgICBcJiMzNDtjZW50ZXIgZnJlcSAldSB0byBBQ1BJIFNBUiBzdWJiYW5kIGlzIHVuaGFuZGxlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NDQtXHRjYXNlIDI0MTIgLi4uIDI0ODQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NDU6XHRcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl8yR0haX1NVQkJBTkQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NDYtXHRjYXNlIDUxODAgLi4uIDUyNDA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NDc6XHRcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfMTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ0OC1cdGNhc2UgNTI1MCAuLi4gNTMyMDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ0OTpcdFx0cmV0dXJuIFJUVzg5X0FDUElfU0FSXzVHSFpfU1VCQkFORF8yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDUwLVx0Y2FzZSA1NTAwIC4uLiA1NzIwOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDUxOlx0XHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNUdIWl9TVUJCQU5EXzJFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDUyLVx0Y2FzZSA1NzQ1IC4uLiA1ODg1OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDUzOlx0XHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNUdIWl9TVUJCQU5EXzNfNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ1NC1cdGNhc2UgNTk1NSAuLi4gNjE1NTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ1NTpcdFx0cmV0dXJuIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF81X0w7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NTYtXHRjYXNlIDYxNzUgLi4uIDY0MTU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NTc6XHRcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfNV9IO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDU4LVx0Y2FzZSA2NDM1IC4uLiA2NTE1OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDU5Olx0XHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjAtXHRjYXNlIDY1MzUgLi4uIDY2OTU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NjE6XHRcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfN19MO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDYyLVx0Y2FzZSA2NzE1IC4uLiA2ODU1OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDYzOlx0XHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzdfSDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ2NTpcdC8qIGZyZXEgNjg3NSAoY2ggMTg1LCAyME1Ieikgc3BhbnMgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzdfSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDY2Olx0ICogYW5kIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF84LCBzbyBkaXJlY3RseSBkZXNjcmliZSBpdCB3aXRoXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjctXHQgKiBzdHJ1Y3QgcnR3ODlfNmdoel9zcGFuLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ3MC1cdGNhc2UgNjg5NSAuLi4gNzExNTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ3MTpcdFx0cmV0dXJuIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF84O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDcyLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTQ3NT1lbnVtIHJ0dzg5X2JhbmQgcnR3ODlfYWNwaV9zYXJfc3ViYmFuZF90b19iYW5kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NzktXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDgwOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDgxLVx0XHRcdCAgICBcJiMzNDtBQ1BJIFNBUiBzdWJiYW5kICV1IHRvIGJhbmQgaXMgdW5oYW5kbGVkXFxuXCYjMzQ7LCBzdWJiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ4Mi1cdFx0ZmFsbHRocm91Z2g7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0ODM6XHRjYXNlIFJUVzg5X0FDUElfU0FSXzJHSFpfU1VCQkFORDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4NDpcdFx0cmV0dXJuIFJUVzg5X0JBTkRfMkc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0ODU6XHRjYXNlIFJUVzg5X0FDUElfU0FSXzVHSFpfU1VCQkFORF8xOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDg2Olx0XHRyZXR1cm4gUlRXODlfQkFORF81RztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4NzpcdGNhc2UgUlRXODlfQUNQSV9TQVJfNUdIWl9TVUJCQU5EXzI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0ODg6XHRcdHJldHVybiBSVFc4OV9CQU5EXzVHO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDg5Olx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfMkU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0OTA6XHRcdHJldHVybiBSVFc4OV9CQU5EXzVHO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDkxOlx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfM180OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDkyOlx0XHRyZXR1cm4gUlRXODlfQkFORF81RztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5MzpcdGNhc2UgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzVfTDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5NDpcdFx0cmV0dXJuIFJUVzg5X0JBTkRfNkc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0OTU6XHRjYXNlIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF81X0g6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0OTY6XHRcdHJldHVybiBSVFc4OV9CQU5EXzZHO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDk3Olx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfNjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5ODpcdFx0cmV0dXJuIFJUVzg5X0JBTkRfNkc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0OTk6XHRjYXNlIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF83X0w6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MDA6XHRcdHJldHVybiBSVFc4OV9CQU5EXzZHO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTAxOlx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfN19IOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTAyOlx0XHRyZXR1cm4gUlRXODlfQkFORF82RztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUwMzpcdGNhc2UgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzg6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MDQ6XHRcdHJldHVybiBSVFc4OV9CQU5EXzZHO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTA1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTUzMD1zdGF0aWMgczE2IHJ0dzg5X2FjcGlfc2FyX25vcm1hbGl6ZV9ocF92YWwodTggdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01MzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MzY6XHRCVUlMRF9CVUdfT04oZmN0IFx1MDAzZSBUWFBXUl9GQUNUT1JfT0ZfUlRXODlfQUNQSV9TQVIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTM4Olx0cmVzID0gKGJpYXMgXHUwMDNjXHUwMDNjIFRYUFdSX0ZBQ1RPUl9PRl9SVFc4OV9BQ1BJX1NBUikgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUzOTpcdCAgICAgICh2IFx1MDAzY1x1MDAzYyAoVFhQV1JfRkFDVE9SX09GX1JUVzg5X0FDUElfU0FSIC0gZmN0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NDE6XHRyZXR1cm4gbWluX3QoczMyLCByZXMsIE1BWF9WQUxfT0ZfUlRXODlfQUNQSV9TQVIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTQyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz01NDQ9c3RhdGljIHMxNiBydHc4OV9hY3BpX3Nhcl9ub3JtYWxpemVfcnRfdmFsKHU4IHYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTQ5Olx0QlVJTERfQlVHX09OKGZjdCBcdTAwM2UgVFhQV1JfRkFDVE9SX09GX1JUVzg5X0FDUElfU0FSKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU1MTpcdHJlcyA9IHYgXHUwMDNjXHUwMDNjIChUWFBXUl9GQUNUT1JfT0ZfUlRXODlfQUNQSV9TQVIgLSBmY3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTUzOlx0cmV0dXJuIG1pbl90KHMzMiwgcmVzLCBNQVhfVkFMX09GX1JUVzg5X0FDUElfU0FSKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU1NC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NTU3PXZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zdGRfbGVnYWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NjY6XHRmb3IgKHN1YmJhbmQgPSAwOyBzdWJiYW5kIFx1MDAzYyBOVU1fT0ZfUlRXODlfQUNQSV9TQVJfU1VCQkFORDsgc3ViYmFuZCYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2NzpcdFx0Zm9yIChwYXRoID0gMDsgcGF0aCBcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1JGX1BBVEg7IHBhdGgmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NjgtXHRcdFx0dTggYW50aWR4ID0gcmVjLVx1MDAzZXJmcGF0aF90b19hbnRpZHgocGF0aCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NzA6XHRcdFx0aWYgKHN1YmJhbmQgXHUwMDNjIFJUVzg5X0FDUElfU0FSX1NVQkJBTkRfTlJfTEVHQUNZKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTcxLVx0XHRcdFx0ZW50LVx1MDAzZXZbc3ViYmFuZF1bcGF0aF0gPVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU3My1cdFx0XHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NzQ6XHRcdFx0XHRlbnQtXHUwMDNldltzdWJiYW5kXVtwYXRoXSA9IE1BWF9WQUxfT0ZfUlRXODlfQUNQSV9TQVI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NzUtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz01ODA9dm9pZCBydHc4OV9hY3BpX3Nhcl9sb2FkX3N0ZF9oYXNfNmdoeihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTg5Olx0QlVJTERfQlVHX09OKFJUVzg5X0FDUElfU0FSX1NVQkJBTkRfTlJfSEFTXzZHSFogIT0gTlVNX09GX1JUVzg5X0FDUElfU0FSX1NVQkJBTkQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTkxOlx0Zm9yIChzdWJiYW5kID0gMDsgc3ViYmFuZCBcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1NVQkJBTkQ7IHN1YmJhbmQmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1OTI6XHRcdGZvciAocGF0aCA9IDA7IHBhdGggXHUwMDNjIE5VTV9PRl9SVFc4OV9BQ1BJX1NBUl9SRl9QQVRIOyBwYXRoJiM0MzsmIzQzOykge1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgzNDkKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAyNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVVNCIFdpcmVsZXNzIEFkYXB0ZXIgRW11bGF0aW9uIGFuZCBGdXp6aW5nIFN0cmF0ZWd5KioKCk9rYXksIHNvIEkgc2VlIHRoZXNlIFJUVzg5IG1vZGVscyBoYXZlIFVTQiBpbnRlcmZhY2VzIOKAkyBgUlRXODlfODg1MUJVYCwgYFJUVzg5Xzg4NTJBVWAsIGBSVFc4OV84ODUyQlVgLCBgUlRXODlfODg1MkNVYCwgYW5kIGBSVFc4OV84OTIyQVVgLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHdoZXRoZXIgd2UgY2FuIGVmZmVjdGl2ZWx5IGVtdWxhdGUgdGhlc2UgVVNCIHdpcmVsZXNzIGFkYXB0ZXJzLCBwYXJ0aWN1bGFybHkgbGV2ZXJhZ2luZyBVU0IgUmF3IEdhZGdldCBhbmQgc3l6a2FsbGVyJiMzOTtzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgc3l6a2FsbGVyIGNhbiBoYW5kbGUgdGhpcyB0eXBlIG9mIGRldmljZS4KClJpZ2h0LCB0aW1lIHRvIGNoZWNrIGhvdyBzeXprYWxsZXIgYXBwcm9hY2hlcyBVU0IgZHJpdmVyIGZ1enppbmcuICBJIHJlY2FsbCBpdCBoYXMgYHN5el91c2JfY29ubmVjdGAsIGBzeXpfdXNiX2NvbnRyb2xfaW9gLCBhbmQgc3VwcG9ydHMgcmF3LWdhZGdldCBhbmQgZHVtbXlfaGNkIGVtdWxhdGlvbi4gVGhpcyBpcyBwcm9taXNpbmc7IHN5emthbGxlciYjMzk7cyBhYmlsaXR5IHRvIGVtdWxhdGUgKmFueSogVVNCIGRldmljZSwgcHJvYmUgZHJpdmVycywgZnV6eiB0aGVtLCBzZW5kIHBhY2tldHMsIGhhbmRsZSBmaXJtd2FyZSBsb2FkaW5nIOKAkyB0aGF0JiMzOTtzIHByZWNpc2VseSB3aGF0IEkgbmVlZC4KCk5vdywgSSB3YW50IHRvIGNvbmZpcm0gc29tZXRoaW5nIGNyaXRpY2FsOiBDYW4gd2UgdHJpZ2dlciB0aGUgYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGZ1bmN0aW9uIGluIHRoZSBkcml2ZXI/IEl0JiMzOTtzIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIGl0cyBjYWxsIHBhdGggYW5kIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIEkgbmVlZCB0byBrbm93IGhvdyBpdCYjMzk7cyBiZWluZyBjYWxsZWQuCgpMZXQmIzM5O3MgZG8gYSBxdWljayBgZ3JlcGAgZm9yIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCB3aXRoaW4gdGhlIGNvZGViYXNlIHRvIG1hcCBvdXQgaXRzIHVzYWdlLiBJIG5lZWQgdG8gc2VlIHRoZSBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTI5Mjg9c3RhdGljIHN0cnVjdCBza19idWZmICpydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjk3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyOTc4OnN0YXRpYyBpbnQgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjk3OS1cdFx0XHRcdFx0c3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MzA3MT1pbnQgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA3OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDgwOlx0cnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwODEtXHRcdFx0XHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFNfUE9MTCwgXHUwMDI2cGt0X2lkX3BzX3BvbGwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODI6XHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4My1cdFx0XHRcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9OVUxMX0RBVEEsIFx1MDAyNnBrdF9pZF9udWxsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDg0Olx0cnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwODUtXHRcdFx0XHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfUU9TX05VTEwsIFx1MDAyNnBrdF9pZF9xb3NfbnVsbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTk2Mjc9aW50IHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTYzNC1cdGlmIChlbmFibGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5NjM1Olx0XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTYzNi1cdFx0XHRcdFx0XHQgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX0FSUF9SU1AsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTk2NzU9aW50IHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk2ODQtXHRpZiAoZW5hYmxlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6OTY4NTpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk2ODYtXHRcdFx0XHRcdFx0ICAgUlRXODlfUEtUX09GTERfVFlQRV9BUlBfUlNQLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0xMDA0Mj1pbnQgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjEwMDcxOlx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDcyLVx0XHRcdFx0XHQgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX0VBUE9MX0tFWSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzctXHRpZiAoZ3RrX2luZm8tXHUwMDNlaWd0a19rZXlpZCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjEwMDc4Olx0XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzktXHRcdFx0XHRcdFx0ICAgUlRXODlfUEtUX09GTERfVFlQRV9TQV9RVUVSWSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI3OAoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEkmIzM5O20gZ29pbmcgdG8gcHVsbCB1cCB0aGF0IGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgIGZpbGUgYW5kIHN0YXJ0IGV4YW1pbmluZyBpdC4gTXkgaW1tZWRpYXRlIGZvY3VzIHdpbGwgYmUgb24gdGhlIGZ1bmN0aW9uIGl0c2VsZiwgYW5kLCBvZiBjb3Vyc2UsIHRoZSBzdXJyb3VuZGluZyBjb2RlIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIHBhcnRpY3VsYXIgZnVuY3Rpb24gZml0cyBpbnRvIHRoZSBiaWdnZXIgcGljdHVyZSBvZiB0aGUgUmVhbHRlayB3aXJlbGVzcyBmaXJtd2FyZSBsb2FkaW5nIHByb2Nlc3MgZm9yIHRoaXMgc3BlY2lmaWMgZHJpdmVyLiBJJiMzOTttIGV4cGVjdGluZyBzb21lIHN0YW5kYXJkIGZpcm13YXJlIGludGVyYWN0aW9uIGNvZGUsIHBvdGVudGlhbGx5IGludm9sdmluZyB0aGluZ3MgbGlrZSByZXF1ZXN0aW5nIGZpcm13YXJlIGJsb2JzLCBtZW1vcnkgbWFwcGluZywgd3JpdGluZyB0byBzcGVjaWZpYyByZWdpc3RlcnMsIGFuZCBzb21lIGVycm9yIGhhbmRsaW5nIHRvIGVuc3VyZSByb2J1c3RuZXNzLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgZm9yIGFueSB1bnVzdWFsIGFwcHJvYWNoZXMgdGhleSYjMzk7dmUgdGFrZW4gb3IgYW55IGN1c3RvbSBvcHRpbWl6YXRpb25zIHRoZXkmIzM5O3ZlIGltcGxlbWVudGVkLiBNeSBnb2FsIGlzIHRvIHF1aWNrbHkgZ3Jhc3AgaXRzIGNvcmUgcHVycG9zZSBhbmQgcG90ZW50aWFsIHBvaW50cyBvZiBpbnRlcmVzdCBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLCBlc3BlY2lhbGx5IHJlZ2FyZGluZyBhbnkgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyBvciBwZXJmb3JtYW5jZSBib3R0bGVuZWNrcy4gSSBhbHNvIGhhdmUgdG8ga2VlcCBpbiBtaW5kLCBpcyB0aGUgZmlsZSByZWxhdGVkIHRvIGEgc3BlY2lmaWMgaGFyZHdhcmUgb3IgYSBtb3JlIGdlbmVyaWMgaW1wbGVtZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyOTc1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDcwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzI5NzU6XHRcdHJldHVybiBza2I7XG4yOTc2Olx0fVxuMjk3NzpcdFxuMjk3ODpcdHN0YXRpYyBpbnQgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4yOTc5Olx0XHRcdFx0XHRcdHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4yOTgwOlx0XHRcdFx0XHRcdGVudW0gcnR3ODlfZndfcGt0X29mbGRfdHlwZSB0eXBlLFxuMjk4MTpcdFx0XHRcdFx0XHR1OCAqaWQpXG4yOTgyOlx0e1xuMjk4MzpcdFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiA9IHJ0d3ZpZl9saW5rX3RvX3ZpZihydHd2aWZfbGluayk7XG4yOTg0Olx0XHRpbnQgbGlua19pZCA9IGllZWU4MDIxMV92aWZfaXNfbWxkKHZpZikgPyBydHd2aWZfbGluay1cdTAwM2VsaW5rX2lkIDogLTE7XG4yOTg1Olx0XHRzdHJ1Y3QgcnR3ODlfcGt0b2ZsZF9pbmZvICppbmZvO1xuMjk4NjpcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbjI5ODc6XHRcdGludCByZXQ7XG4yOTg4Olx0XG4yOTg5Olx0XHRpbmZvID0ga3phbGxvY19vYmooKmluZm8pO1xuMjk5MDpcdFx0aWYgKCFpbmZvKVxuMjk5MTpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbjI5OTI6XHRcbjI5OTM6XHRcdHN3aXRjaCAodHlwZSkge1xuMjk5NDpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX1BTX1BPTEw6XG4yOTk1Olx0XHRcdHNrYiA9IGllZWU4MDIxMV9wc3BvbGxfZ2V0KHJ0d2Rldi1cdTAwM2VodywgdmlmKTtcbjI5OTY6XHRcdFx0YnJlYWs7XG4yOTk3Olx0XHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFJPQkVfUlNQOlxuMjk5ODpcdFx0XHRza2IgPSBpZWVlODAyMTFfcHJvYmVyZXNwX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZik7XG4yOTk5Olx0XHRcdGJyZWFrO1xuMzAwMDpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQTpcbjMwMDE6XHRcdFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZiwgbGlua19pZCwgZmFsc2UpO1xuMzAwMjpcdFx0XHRicmVhaztcbjMwMDM6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9RT1NfTlVMTDpcbjMwMDQ6XHRcdFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZiwgbGlua19pZCwgdHJ1ZSk7XG4zMDA1Olx0XHRcdGJyZWFrO1xuMzAwNjpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX0VBUE9MX0tFWTpcbjMwMDc6XHRcdFx0c2tiID0gcnR3ODlfZWFwb2xfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAwODpcdFx0XHRicmVhaztcbjMwMDk6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9TQV9RVUVSWTpcbjMwMTA6XHRcdFx0c2tiID0gcnR3ODlfc2FfcXVlcnlfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAxMTpcdFx0XHRicmVhaztcbjMwMTI6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9BUlBfUlNQOlxuMzAxMzpcdFx0XHRza2IgPSBydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAxNDpcdFx0XHRicmVhaztcbjMwMTU6XHRcdGRlZmF1bHQ6XG4zMDE2Olx0XHRcdHJldCA9IC1FSU5WQUw7XG4zMDE3Olx0XHRcdGdvdG8gZXJyO1xuMzAxODpcdFx0fVxuMzAxOTpcdFxuMzAyMDpcdFx0aWYgKCFza2IpIHtcbjMwMjE6XHRcdFx0cmV0ID0gLUVOT01FTTtcbjMwMjI6XHRcdFx0Z290byBlcnI7XG4zMDIzOlx0XHR9XG4zMDI0Olx0XG4zMDI1Olx0XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkKHJ0d2RldiwgXHUwMDI2aW5mby1cdTAwM2VpZCwgc2tiKTtcbjMwMjY6XHRcdGtmcmVlX3NrYihza2IpO1xuMzAyNzpcdFxuMzAyODpcdFx0aWYgKHJldClcbjMwMjk6XHRcdFx0Z290byBlcnI7XG4zMDMwOlx0XG4zMDMxOlx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNmluZm8tXHUwMDNlbGlzdCwgXHUwMDI2cnR3dmlmX2xpbmstXHUwMDNlZ2VuZXJhbF9wa3RfbGlzdCk7XG4zMDMyOlx0XHQqaWQgPSBpbmZvLVx1MDAzZWlkO1xuMzAzMzpcdFx0cmV0dXJuIDA7XG4zMDM0Olx0XG4zMDM1Olx0ZXJyOlxuMzAzNjpcdFx0a2ZyZWUoaW5mbyk7XG4zMDM3Olx0XHRyZXR1cm4gcmV0O1xuMzAzODpcdH1cbjMwMzk6XHRcbjMwNDA6XHR2b2lkIHJ0dzg5X2Z3X3JlbGVhc2VfZ2VuZXJhbF9wa3RfbGlzdF92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuMzA0MTpcdFx0XHRcdFx0XHQgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuMzA0MjpcdFx0XHRcdFx0XHQgICBib29sIG5vdGlmeV9mdylcbjMwNDM6XHR7XG4zMDQ0Olx0XHRzdHJ1Y3QgbGlzdF9oZWFkICpwa3RfbGlzdCA9IFx1MDAyNnJ0d3ZpZl9saW5rLVx1MDAzZWdlbmVyYWxfcGt0X2xpc3Q7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE3NzcKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA0MzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUmVjZW50IFJUVzg5IERyaXZlciBGaXgqKgoKT2theSwgc28gdGhpcyBwYXRjaCBmb3IgYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGlzIGludGVyZXN0aW5nLiBUaGUga2V5IGNoYW5nZSBpcyBlbnN1cmluZyB0aGUgcmV0dXJuIGNvZGUgYWNjdXJhdGVseSByZWZsZWN0cyBmYWlsdXJlcyBmcm9tIGBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkYCBpdHNlbGYsIHJhdGhlciB0aGFuIGFsd2F5cyBkZWZhdWx0aW5nIHRvIGAtRU5PTUVNYC4gUHJldmlvdXNseSwgaWYgdGhhdCBmdW5jdGlvbiByZXR1cm5lZCwgc2F5LCBgLUVCVVNZYCBvciBgLUVJTlZBTGAsIHdlJiMzOTtkIGxvc2UgdGhhdCBjcnVjaWFsIGVycm9yIGluZm9ybWF0aW9uLCBhbmQgaXQgd291bGQgbWlzbGVhZCB0aGUgY2FsbGVyLiBHb29kIGNhdGNoLgoKTm93LCBhIGJyb2FkZXIgcXVlc3Rpb24gYXJpc2VzOiBpcyB0aGUgUlRXODkgVVNCIGRyaXZlciBmdXp6ZWQgb3IgZnV6emFibGUgd2l0aGluIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3Igc3l6a2FsbGVyPyBJdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyB0aGVzZSBjaGFuZ2VzIHdpbGwgaW1wYWN0IGZ1enplciBjb3ZlcmFnZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIG5ldyBjb2RlIHBhdGggY2FuIGFjdHVhbGx5IGJlIHJlYWNoZWQgdGhyb3VnaCBmdXp6aW5nLiBMZXQmIzM5O3Mgc2VlLi4uIHRoZSBpbnN0cnVjdGlvbnMgc2F5IHRvIGRpc3JlZ2FyZCBwYXRjaGVzIHRoYXQgZGVhbCB3aXRoOiBjb2RlIHBhdGhzIGltcG9zc2libGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycywgYW5kIHRlYXItZG93biBjYWxsYmFja3MuIFRoYXQgbmFycm93cyBpdCBkb3duLgoKV2FpdCBhIHNlY29uZC4gTGV0JiMzOTtzIGFuYWx5emUgd2hldGhlciBSVFc4OSBhY3R1YWxseSBmdW5jdGlvbnMgZGlmZmVyZW50bHkgb3ZlciBVU0IgdnMuIFBDSS4gSWYgaXQmIzM5O3MgdGhlIFVTQiBkcml2ZXIsIGNhbiBpdCBiZSBwcm9iZWQgYW5kIGZ1enplZCB0aHJvdWdoIGEgVVNCIGVtdWxhdGlvbiBzZXR1cD8gVGhpbmsgb2YgcmF3IFVTQiBnYWRnZXQgbW9kZSwgc2ltaWxhciB0byB3aGF0IHN5emthbGxlciB1c2VzLiBXaGF0IG5lZWRzIHRvIGhhcHBlbiBkdXJpbmcgdGhlIGBydHc4OV91c2JgIHByb2JlIHJvdXRpbmU/IERvZXMgaXQgbmVlZCBmaXJtd2FyZSB0byBiZSBsb2FkZWQgb3IgYSBkZXZpY2UgdG8gY29tbXVuaWNhdGUgYmVmb3JlIGV4ZWN1dGlvbiBjYW4gZXZlbiBvY2N1cj8gSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBjb2RlLiBUaW1lIHRvIGNoZWNrIGBydHc4OV91c2IuY2AgYW5kIHBvdGVudGlhbGx5IGFsc28gYHJ0dzg5L2NvcmUuY2Agb3IgZXZlbiBgcnR3ODkvbWFjODAyMTFgIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIHNldHVwIGFuZCBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZS4gVGhhdCYjMzk7cyB0aGUgYmVzdCB3YXkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBjaGFuZ2UgaXMgaW1wb3J0YW50IHRvIGZ1enplcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg5X2Z3X2gyY18mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyNDY3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jPTEyPXJ0dzg5X2NhbV9nZXRfc2VjX2tleV9jbWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jOjIyOlx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGNtZF9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jYW0uYy0yMy1cdGlmICghc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmM9MjE1PXN0YXRpYyBpbnQgX19ydHc4OV9jYW1fZGV0YWNoX3NlY19jYW0oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjM4LVx0XHRcdFx0ICBcJiMzNDtmYWlsZWQgdG8gdXBkYXRlIGRjdGwgY2FtIGRlbCBrZXk6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jYW0uYzoyMzk6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19jYW0ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jLTI0MC1cdFx0XHRcdCAgICAgICBSVFc4OV9ST0xFX0lORk9fQ0hBTkdFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jPTI0OD1zdGF0aWMgaW50IF9fcnR3ODlfY2FtX2F0dGFjaF9zZWNfY2FtKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jLTI3OS1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmM6MjgwOlx0cmV0ID0gcnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluaywgTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjgxLVx0XHRcdCAgICAgICBSVFc4OV9ST0xFX0lORk9fQ0hBTkdFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz03NDk9c3RhdGljIGludCBfX21jY19md19yZXFfdHNmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTY0ICp0c2ZfcmVmLCB1NjQgKnRzZl9hdXgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtNzYwLVx0cmVxLm1hY2lkX3kgPSBhdXgtXHUwMDNlcnR3dmlmX2xpbmstXHUwMDNlbWFjX2lkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6NzYxOlx0cmV0ID0gcnR3ODlfZndfaDJjX21jY19yZXFfdHNmKHJ0d2RldiwgXHUwMDI2cmVxLCBcdTAwMjZycHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtNzYyLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTc3ND1zdGF0aWMgaW50IF9fbXJjX2Z3X3JlcV90c2Yoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1NjQgKnRzZl9yZWYsIHU2NCAqdHNmX2F1eClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy03OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzo3OTE6XHRyZXQgPSBydHc4OV9md19oMmNfbXJjX3JlcV90c2YocnR3ZGV2LCBcdTAwMjZhcmcsIFx1MDAyNnJwdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy03OTItXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MTg2OD1zdGF0aWMgaW50IF9fbWNjX2Z3X2FkZF9yb2xlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X21jY19yb2xlICpyb2xlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTE4OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoxOTAwOlx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9tY2MocnR3ZGV2LCBcdTAwMjZyZXEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMTkwMS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0xOTA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MTkwNzpcdHJldCA9IHJ0dzg5X2Z3X2gyY19tY2NfbWFjaWRfYml0bWFwKHJ0d2RldiwgbWNjLVx1MDAzZWdyb3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMTkwOC1cdFx0XHRcdFx0ICAgIHJvbGUtXHUwMDNlcnR3dmlmX2xpbmstXHUwMDNlbWFjX2lkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTE5NTA9c3RhdGljIGludCBfX21jY19md19hZGRfYnRfcm9sZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMTk2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjE5NjE6XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX21jYyhydHdkZXYsIFx1MDAyNnJlcSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0xOTYyLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTE5ODU9c3RhdGljIGludCBfX21jY19md19zdGFydChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgcmVwbGFjZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMDQ2LVx0aWYgKHN5bmMtXHUwMDNlZW5hYmxlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMDQ3Olx0XHRyZXQgPSBydHc4OV9md19oMmNfbWNjX3N5bmMocnR3ZGV2LCByZXEuZ3JvdXAsIHN5bmMtXHUwMDNlbWFjaWRfc3JjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjA0OC1cdFx0XHRcdFx0ICAgIHN5bmMtXHUwMDNlbWFjaWRfdGd0LCBzeW5jLVx1MDAzZW9mZnNldCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjA1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIwNjA6XHRyZXQgPSBydHc4OV9md19oMmNfc3RhcnRfbWNjKHJ0d2RldiwgXHUwMDI2cmVxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIwNjEtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjA5NT1zdGF0aWMgaW50IF9fbXJjX2Z3X3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCByZXBsYWNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIxNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMTUwOlx0cmV0ID0gcnR3ODlfZndfaDJjX21yY19hZGQocnR3ZGV2LCBcdTAwMjZhZGRfYXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIxNTEtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjE2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIxNzA6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfc3luYyhydHdkZXYsIFx1MDAyNnN5bmNfYXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIxNzEtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMTgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjE4MTpcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfc3RhcnQocnR3ZGV2LCBcdTAwMjZzdGFydF9hcmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjE4Mi1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz0yMTkxPXN0YXRpYyBpbnQgX19tY2NfZndfc2V0X2R1cmF0aW9uX25vX2J0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBzeW5jX2NoYW5nZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjIxMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIyMTE6XHRyZXQgPSBydHc4OV9md19oMmNfbWNjX3NldF9kdXJhdGlvbihydHdkZXYsIFx1MDAyNnJlcSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMjEyLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMjIxOlx0cmV0ID0gcnR3ODlfZndfaDJjX21jY19zeW5jKHJ0d2RldiwgbWNjLVx1MDAzZWdyb3VwLCBzeW5jLVx1MDAzZW1hY2lkX3NyYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyMjItXHRcdFx0XHQgICAgc3luYy1cdTAwM2VtYWNpZF90Z3QsIHN5bmMtXHUwMDNlb2Zmc2V0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz0yMjMyPXN0YXRpYyBpbnQgX19tcmNfZndfc2V0X2R1cmF0aW9uX25vX2J0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBzeW5jX2NoYW5nZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjI2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIyNjY6XHRyZXQgPSBydHc4OV9md19oMmNfbXJjX3VwZF9kdXJhdGlvbihydHdkZXYsIFx1MDAyNmR1cl9hcmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjI2Ny1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMjc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjI3NjpcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfc3luYyhydHdkZXYsIFx1MDAyNnN5bmNfYXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyNzctXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjMzND1zdGF0aWMgdm9pZCBydHc4OV9tY2Nfc3RhcnRfYmVhY29uX25vYShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjM0My1cdGlmIChyZWYtXHUwMDNlaXNfZ28pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMzQ0Olx0XHRydHc4OV9md19oMmNfdHNmMzJfdG9nZ2xlKHJ0d2RldiwgcmVmLVx1MDAzZXJ0d3ZpZl9saW5rLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNDUtXHRlbHNlIGlmIChhdXgtXHUwMDNlaXNfZ28pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMzQ2Olx0XHRydHc4OV9md19oMmNfdHNmMzJfdG9nZ2xlKHJ0d2RldiwgYXV4LVx1MDAzZXJ0d3ZpZl9saW5rLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNDctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjM1MT1zdGF0aWMgdm9pZCBydHc4OV9tY2Nfc3RvcF9iZWFjb25fbm9hKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMzYwLVx0aWYgKHJlZi1cdTAwM2Vpc19nbylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIzNjE6XHRcdHJ0dzg5X2Z3X2gyY190c2YzMl90b2dnbGUocnR3ZGV2LCByZWYtXHUwMDNlcnR3dmlmX2xpbmssIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNjItXHRlbHNlIGlmIChhdXgtXHUwMDNlaXNfZ28pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMzYzOlx0XHRydHc4OV9md19oMmNfdHNmMzJfdG9nZ2xlKHJ0d2RldiwgYXV4LVx1MDAzZXJ0d3ZpZl9saW5rLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMzY0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTIzODA9c3RhdGljIGludCBydHc4OV9tY2Nfc3RhcnQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI0MTEtXHRpZiAocnR3ODlfbWNjX2lnbm9yZV9iY24ocnR3ZGV2LCByZWYpIHx8IGF1eC1cdTAwM2VpZ25vcmVfYmNuKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDEyOlx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIGF1eC1cdTAwM2VydHd2aWZfbGluaywgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjQxMy1cdH0gZWxzZSBpZiAocnR3ODlfbWNjX2lnbm9yZV9iY24ocnR3ZGV2LCBhdXgpIHx8IHJlZi1cdTAwM2VpZ25vcmVfYmNuKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDE0Olx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIHJlZi1cdTAwM2VydHd2aWZfbGluaywgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjQxNS1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDE2Olx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIHJlZi1cdTAwM2VydHd2aWZfbGluaywgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDE3Olx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIGF1eC1cdTAwM2VydHd2aWZfbGluaywgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNDE4LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTI0Nzg9c3RhdGljIHZvaWQgcnR3ODlfbWNjX3N0b3Aoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1MDktXHRpZiAocnR3ODlfY29uY3VycmVudF92aWFfbXJjKHJ0d2RldikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI1MTA6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfZGVsKHJ0d2RldiwgbWNjLVx1MDAzZWdyb3VwLCBzZWwuc2xvdF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjUxMS1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTE0LVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI1MTU6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19zdG9wX21jYyhydHdkZXYsIG1jYy1cdTAwM2Vncm91cCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1MTYtXHRcdFx0XHRcdCAgICBzZWwubWFjX2lkLCB0cnVlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjUyMTpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX2RlbF9tY2NfZ3JvdXAocnR3ZGV2LCBtY2MtXHUwMDNlZ3JvdXAsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjUyMi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTI5LVx0cnR3ODlfbWNjX3N0b3BfYmVhY29uX25vYShydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjUzMDpcdHJ0dzg5X2Z3X2gyY19tY2NfZGlnKHJ0d2RldiwgUlRXODlfQ0hBTkNUWF8wLCAwLCAwLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTMxLVx0cnR3ODlfcGh5X2RpZ19yZXN1bWUocnR3ZGV2LCB0cnVlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz0yNTM2PXN0YXRpYyBpbnQgcnR3ODlfbWNjX3VwZGF0ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjU1OC1cdGlmIChvbGRfcmVmX2lnbm9yZV9iY24gIT0gcmVmLVx1MDAzZWlnbm9yZV9iY24pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNTU5Olx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIHJlZi1cdTAwM2VydHd2aWZfbGluaywgIXJlZi1cdTAwM2VpZ25vcmVfYmNuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1NjAtXHRlbHNlIGlmIChvbGRfYXV4X2lnbm9yZV9iY24gIT0gYXV4LVx1MDAzZWlnbm9yZV9iY24pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNTYxOlx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIGF1eC1cdTAwM2VydHd2aWZfbGluaywgIWF1eC1cdTAwM2VpZ25vcmVfYmNuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1NjItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9Mjc3MD1zdGF0aWMgaW50IF9fbWNjX2Z3X3VwZF9tYWNpZF9iaXRtYXAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI3NzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNzc2Olx0cmV0ID0gcnR3ODlfZndfaDJjX21jY19tYWNpZF9iaXRtYXAocnR3ZGV2LCBtY2MtXHUwMDNlZ3JvdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNzc3LVx0XHRcdFx0XHQgICAgdXBkLVx1MDAzZXJ0d3ZpZl9saW5rLVx1MDAzZW1hY19pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz0yNzg4PXN0YXRpYyBpbnQgX19tcmNfZndfdXBkX21hY2lkX2JpdG1hcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjgwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI4MDk6XHRcdFx0cmV0ID0gcnR3ODlfZndfaDJjX21yY191cGRfYml0bWFwKHJ0d2RldiwgXHUwMDI2YXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI4MTAtXHRcdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yODE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjgyMDpcdFx0XHRyZXQgPSBydHc4OV9md19oMmNfbXJjX3VwZF9iaXRtYXAocnR3ZGV2LCBcdTAwMjZhcmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjgyMS1cdFx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jPTg3Nz1zdGF0aWMgaW50IF9zZW5kX2Z3X2NtZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IGgyY19jbGFzcywgdTggaDJjX2Z1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtOTA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6OTA2Olx0cmV0ID0gcnR3ODlfZndfaDJjX3Jhd193aXRoX2hkcihydHdkZXYsIGgyY19jbGFzcywgaDJjX2Z1bmMsIHBhcmFtLCBsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy05MDctXHRcdFx0XHRcdGZhbHNlLCB0cnVlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYz0yNzcyPXN0YXRpYyB2b2lkIF9md19zZXRfZHJ2X2luZm8oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCB0eXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3ODItXHRcdGlmICh2ZXItXHUwMDNlZmN4aW5pdCA9PSA3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc4MzpcdFx0XHRydHc4OV9md19oMmNfY3hkcnZfaW5pdF92NyhydHdkZXYsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc4NC1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc4NTpcdFx0XHRydHc4OV9md19oMmNfY3hkcnZfaW5pdChydHdkZXYsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc4Ni1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc4OC1cdFx0aWYgKHZlci1cdTAwM2Vmd2xyb2xlID09IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyNzg5Olx0XHRcdHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlKHJ0d2RldiwgdHlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yNzkwLVx0XHRlbHNlIGlmICh2ZXItXHUwMDNlZndscm9sZSA9PSAxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5MTpcdFx0XHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MShydHdkZXYsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc5Mi1cdFx0ZWxzZSBpZiAodmVyLVx1MDAzZWZ3bHJvbGUgPT0gMilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjI3OTM6XHRcdFx0cnR3ODlfZndfaDJjX2N4ZHJ2X3JvbGVfdjIocnR3ZGV2LCB0eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTQtXHRcdGVsc2UgaWYgKHZlci1cdTAwM2Vmd2xyb2xlID09IDcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyNzk1Olx0XHRcdHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlX3Y3KHJ0d2RldiwgdHlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yNzk2LVx0XHRlbHNlIGlmICh2ZXItXHUwMDNlZndscm9sZSA9PSA4KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5NzpcdFx0XHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92OChydHdkZXYsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc5OC1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjgwMy1cdFx0aWYgKHZlci1cdTAwM2VmY3hjdHJsID09IDcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODA0Olx0XHRcdHJ0dzg5X2Z3X2gyY19jeGRydl9jdHJsX3Y3KHJ0d2RldiwgdHlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODA1LVx0XHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODA2Olx0XHRcdHJ0dzg5X2Z3X2gyY19jeGRydl9jdHJsKHJ0d2RldiwgdHlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODA3LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODIxLVx0XHRkbS1cdTAwM2V0cnhfaW5mby5uaG0gPSB3bC1cdTAwM2VuaG0ucHdyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6MjgyMjpcdFx0cnR3ODlfZndfaDJjX2N4ZHJ2X3RyeChydHdkZXYsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjgyMy1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjgyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjI4Mjg6XHRcdHJ0dzg5X2Z3X2gyY19jeGRydl9yZmsocnR3ZGV2LCB0eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI4MjktXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI4NDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODQyOlx0XHRydHc4OV9md19oMmNfY3hkcnZfb3NpX2luZm8ocnR3ZGV2LCB0eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI4NDMtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTI1MDU9c3RhdGljIHZvaWQgcnR3ODlfY2FuY2VsXzZnaHpfcHJvYmVfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lwaHlfd29yayAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0yNTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6MjUyMTpcdFx0cnR3ODlfZndfaDJjX2RlbF9wa3Rfb2ZmbG9hZChydHdkZXYsIGluZm8tXHUwMDNlaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtMjUyMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz0yNjAwPXN0YXRpYyB2b2lkIHJ0dzg5X2Jjbl9jZmdfdGJ0dF9vZmZzZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTI2MjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzoyNjI0Olx0cnR3ODlfZndfaDJjX3RidHRfdHVuaW5nKHJ0d2RldiwgcnR3dmlmX2xpbmssIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0yNjI1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz0zMDMxPXN0YXRpYyB2b2lkIHJ0dzg5X3ZpZl9yeF9zdGF0c19pdGVyKHZvaWQgKmRhdGEsIHU4ICptYWMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtMzA4Ny1cdFx0XHRydHc4OV92aWZfc3luY19iY25fdHNmKHJ0d3ZpZl9saW5rLCBoZHIsIHNrYi1cdTAwM2VsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6MzA4ODpcdFx0XHRydHc4OV9md19oMmNfcnNzaV9vZmZsb2FkKHJ0d2RldiwgcGh5X3BwZHUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtMzA4OS1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTUyMTU9c3RhdGljIGJvb2wgcnR3ODlfdHJhZmZpY19zdGF0c190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTIyOS1cdFx0cnR3ODlfdmlmX2Zvcl9lYWNoX2xpbmsocnR3dmlmLCBydHd2aWZfbGluaywgbGlua19pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjUyMzA6XHRcdFx0cnR3ODlfZndfaDJjX3RwX29mZmxvYWQocnR3ZGV2LCBydHd2aWZfbGluayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01MjMxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU2NTY9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfYWRkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NzAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTcwMTpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX3JvbGVfbWFpbnRhaW4ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NzAyLVx0XHRcdFx0XHRcdCBSVFc4OV9ST0xFX0NSRUFURSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTcyMD1pbnQgcnR3ODlfY29yZV9zdGFfbGlua19kaXNhc3NvYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTcyOC1cdGlmICh2aWYtXHUwMDNldHlwZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NzI5Olx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIHJ0d3ZpZl9saW5rLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NzMwLVx0XHRydHc4OV9jb3JlX2Jjbl90cmFja19yZXNldChydHdkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU3Mzk9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfZGlzY29ubmVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTc2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU3NjY6XHRyZXQgPSBydHc4OV9md19oMmNfam9pbl9pbmZvKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU3NjctXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTc3Mi1cdC8qIHVwZGF0ZSBjYW0gYWlkIG1hY19pZCBuZXRfdHlwZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTc3MzpcdHJldCA9IHJ0dzg5X2Z3X2gyY19jYW0ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01Nzc0LVx0XHRcdCAgICAgICBSVFc4OV9ST0xFX0NPTl9ESVNDT05OKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01Nzk5PWludCBydHc4OV9jb3JlX3N0YV9saW5rX2Fzc29jKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTg0MTpcdHJldCA9IHJ0dzg5X2Z3X2gyY19qb2luX2luZm8ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU4NDItXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg0Ny1cdC8qIHVwZGF0ZSBjYW0gYWlkIG1hY19pZCBuZXRfdHlwZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTg0ODpcdHJldCA9IHJ0dzg5X2Z3X2gyY19jYW0ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODQ5LVx0XHRcdCAgICAgICBSVFc4OV9ST0xFX0NPTl9ESVNDT05OKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTg3NjpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLVx1MDAzZW1hY19pZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODc3LVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4ODI6XHRcdHJ0dzg5X2Z3X2gyY19zZXRfYmNuX2ZsdHJfY2ZnKHJ0d2RldiwgcnR3dmlmX2xpbmssIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg4My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01ODk0PWludCBydHc4OV9jb3JlX3N0YV9saW5rX3JlbW92ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTkxMC1cdH0gZWxzZSBpZiAodmlmLVx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfQVAgfHwgc3RhLVx1MDAzZXRkbHMpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU5MTE6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19yb2xlX21haW50YWluKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTkxMi1cdFx0XHRcdFx0XHQgUlRXODlfUk9MRV9SRU1PVkUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTY1NjU9aW50IHJ0dzg5X2NvcmVfc3RhcnQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY2MjUtXHRydHc4OV9idGNfbnRmeV9yYWRpb19zdGF0ZShydHdkZXYsIEJUQ19SRkNUUkxfV0xfT04pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NjYyNjpcdHJ0dzg5X2Z3X2gyY19md19sb2cocnR3ZGV2LCBydHdkZXYtXHUwMDNlZncubG9nLmVuYWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo2NjI3Olx0cnR3ODlfZndfaDJjX2luaXRfYmFfY2FtKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy02NjI4LVx0cnR3ODlfdGFzX2Z3X3RpbWVyX2VuYWJsZShydHdkZXYsIHRydWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTY5Njk9dm9pZCBydHc4OV9jb3JlX3NjYW5fc3RhcnQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY5ODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo2OTg1Olx0cnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBOVUxMLCBtYWNfYWRkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY5ODYtXHRcdFx0IFJUVzg5X1JPTEVfSU5GT19DSEFOR0UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTY5ODk9dm9pZCBydHc4OV9jb3JlX3NjYW5fY29tcGxldGUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTcwMDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo3MDA2Olx0cnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBOVUxMLCBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNzAwNy1cdFx0XHQgUlRXODlfUk9MRV9JTkZPX0NIQU5HRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NzExOD1pbnQgcnR3ODlfY29yZV9tbHNyX3N3aXRjaChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWYgKnJ0d3ZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03MTY5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NzE3MDpcdHJ0dzg5X2Z3X2gyY190eF9oaXN0b3J5KHJ0d2RldiwgdGFyZ2V0LVx1MDAzZW1hY19pZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03MTcxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYz0zNTQ5PXN0YXRpYyBzc2l6ZV90IHJ0dzg5X2RlYnVnX3ByaXZfc2VuZF9oMmNfc2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtMzU2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzozNTYxOlx0cmV0ID0gcnR3ODlfZndfaDJjX3JhdyhydHdkZXYsIGgyYywgaDJjX2xlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtMzU2Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9Mzc4MD1ydHc4OV9kZWJ1Z19wcml2X2Z3X2NyYXNoX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM3OTgtXHRcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jOjM3OTk6XHRcdHNpbSA9IHJ0dzg5X2Z3X2gyY190cmlnZ2VyX2NwdV9leGNlcHRpb247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtMzgwMC1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jPTM5MTg9c3RhdGljIHNzaXplX3QgcnR3ODlfZGVidWdfcHJpdl9md19sb2dfbWFudWFsX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM5MzItXHRcdHJ0dzg5X2Z3X2xvZ19wcmVwYXJlKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6MzkzMzpcdHJ0dzg5X2Z3X2gyY19md19sb2cocnR3ZGV2LCBmd19sb2dfbWFudWFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy0zOTM0LW91dDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NDUyMT1ydHc4OV9kZWJ1Z19wcml2X2JiX2luZm9fc2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNDUzMi1cdGVsc2UgaWYgKHNzY2FuZihidWYsIFwmIzM0O21hY19pZCAleFwmIzM0OywgXHUwMDI2dmFsKSA9PSAxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jOjQ1MzM6XHRcdHJ0dzg5X2Z3X2gyY190eF9oaXN0b3J5KHJ0d2RldiwgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy00NTM0LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz03MT1zdGF0aWMgaW50IF9fcGFyc2Vfc2VjdXJpdHlfc2VjdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjc3OnN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqcnR3ODlfZndfaDJjX2FsbG9jX3NrYihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUzMiBsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNzgtXHRcdFx0XHRcdCAgICAgIGJvb2wgaGVhZGVyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5NjpzdHJ1Y3Qgc2tfYnVmZiAqcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUzMiBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk4Olx0cmV0dXJuIHJ0dzg5X2Z3X2gyY19hbGxvY19za2IocnR3ZGV2LCBsZW4sIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk5LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xMDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAxOnN0cnVjdCBza19idWZmICpydHc4OV9md19oMmNfYWxsb2Nfc2tiX25vX2hkcihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUzMiBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxMDM6XHRyZXR1cm4gcnR3ODlfZndfaDJjX2FsbG9jX3NrYihydHdkZXYsIGxlbiwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwNC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTE3MDE9c3RhdGljIGludCBfX3J0dzg5X2Z3X2Rvd25sb2FkX2hkcihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTE3MTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTcxMzpcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTE3MTQtXHRpZiAoIXNrYikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0xNzgyPXN0YXRpYyBpbnQgX19ydHc4OV9md19kb3dubG9hZF9tYWluKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTgxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxODE3Olx0XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX25vX2hkcihydHdkZXYsIHBrdF9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTE4MTgtXHRcdGlmICghc2tiKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTIyMjA9dm9pZCBydHc4OV9md19sb2dfZHVtcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4ICpidWYsIHUzMiBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIyNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjI2MTppbnQgcnR3ODlfZndfaDJjX2NhbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjI2Mi1cdFx0ICAgICBzdHJ1Y3QgcnR3ODlfc3RhX2xpbmsgKnJ0d3N0YV9saW5rLCBjb25zdCB1OCAqc2Nhbl9tYWNfYWRkcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjI3OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyMjc5Olx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjI4MC1cdGlmICghc2tiKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjMxNzppbnQgcnR3ODlfZndfaDJjX2RjdGxfc2VjX2NhbV92MShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjMxOC1cdFx0XHRcdCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjIzMjY6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzI3LVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM1My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM1NDpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19kY3RsX3NlY19jYW1fdjEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM1NjppbnQgcnR3ODlfZndfaDJjX2RjdGxfc2VjX2NhbV92MihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM1Ny1cdFx0XHRcdCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjIzNjU6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzY2LVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM5Mi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM5MzpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19kY3RsX3NlY19jYW1fdjIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzOTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM5NTppbnQgcnR3ODlfZndfaDJjX2RjdGxfc2VjX2NhbV92MyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM5Ni1cdFx0XHRcdCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI0MDQ6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDA1LVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjQzMS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQzMjpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19kY3RsX3NlY19jYW1fdjMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQzNDppbnQgcnR3ODlfZndfaDJjX2RlZmF1bHRfZG1hY190YmxfdjIoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0MzUtXHRcdFx0XHQgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQ0NDpcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0NDUtXHRpZiAoIXNrYikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDg2LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNDg3OkVYUE9SVF9TWU1CT0wocnR3ODlfZndfaDJjX2RlZmF1bHRfZG1hY190YmxfdjIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQ4OTppbnQgcnR3ODlfZndfaDJjX2RlZmF1bHRfZG1hY190YmxfdjMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0OTAtXHRcdFx0XHQgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQ5OTpcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI1MDAtXHRpZiAoIXNrYikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNTQyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNTQzOkVYUE9SVF9TWU1CT0wocnR3ODlfZndfaDJjX2RlZmF1bHRfZG1hY190YmxfdjMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI1NDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjU0NTppbnQgcnR3ODlfZndfaDJjX2JhX2NhbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjU0Ni1cdFx0XHRzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI1NzM6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNTc0LVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjYyMi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjYyMzpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19iYV9jYW0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjYyNTpzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19pbml0X2JhX2NhbV92MF9leHQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2MjYtXHRcdFx0XHRcdCAgIHU4IGVudHJ5X2lkeCwgdTggdWlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI2MzM6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjM0LVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjY2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNjY2OnZvaWQgcnR3ODlfZndfaDJjX2luaXRfZHluYW1pY19iYV9jYW1fdjBfZXh0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjY3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjY3My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGNoaXAtXHUwMDNlYmFjYW1fZHluYW1pY19udW07IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjY3NDpcdFx0cnR3ODlfZndfaDJjX2luaXRfYmFfY2FtX3YwX2V4dChydHdkZXYsIGVudHJ5X2lkeCwgdWlkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjc1LVx0XHRlbnRyeV9pZHgmIzQzOyYjNDM7O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI2ODA6aW50IHJ0dzg5X2Z3X2gyY19iYV9jYW1fdjEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2ODEtXHRcdFx0ICAgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjcwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNzA5Olx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjcxMC1cdGlmICghc2tiKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NTYtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI3NTc6RVhQT1JUX1NZTUJPTChydHc4OV9md19oMmNfYmFfY2FtX3YxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNzU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI3NTk6aW50IHJ0dzg5X2Z3X2gyY19pbml0X2JhX2NhbV91c2VycyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHVzZXJzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NjAtXHRcdFx0XHQgICB1OCBvZmZzZXQsIHU4IG1hY19pZHgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6Mjc2NzpcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NjgtXHRpZiAoIXNrYikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNzk4LSNkZWZpbmUgSDJDX0xPR19DRkdfTEVOIDEyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6Mjc5OTppbnQgcnR3ODlfZndfaDJjX2Z3X2xvZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI4MDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yODA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI4MTA6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgSDJDX0xPR19DRkdfTEVOKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yODExLVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MjkyOD1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnJ0dzg5X2FycF9yZXNwb25zZV9nZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI5Nzg6c3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc5LVx0XHRcdFx0XHRzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwMjU6XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkKHJ0d2RldiwgXHUwMDI2aW5mby1cdTAwM2VpZCwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDI2LVx0a2ZyZWVfc2tiKHNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTMwNDA9dm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3RfdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA0OC1cdFx0aWYgKG5vdGlmeV9mdylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDQ5Olx0XHRcdHJ0dzg5X2Z3X2gyY19kZWxfcGt0X29mZmxvYWQocnR3ZGV2LCBpbmZvLVx1MDAzZWlkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDUwLVx0XHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTMwNTc9dm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIG5vdGlmeV9mdylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA3MC0jZGVmaW5lIEgyQ19HRU5FUkFMX1BLVF9JRF9VTkQgMHhmZlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwNzE6aW50IHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA3Mi1cdFx0XHQgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssIHU4IG1hY2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODA6XHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4MS1cdFx0XHRcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9QU19QT0xMLCBcdTAwMjZwa3RfaWRfcHNfcG9sbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzA4MjpcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDgzLVx0XHRcdFx0ICAgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQSwgXHUwMDI2cGt0X2lkX251bGwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODQ6XHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4NS1cdFx0XHRcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9RT1NfTlVMTCwgXHUwMDI2cGt0X2lkX3Fvc19udWxsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODc6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgSDJDX0dFTkVSQUxfUEtUX0xFTik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4OC1cdGlmICghc2tiKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMxMTktI2RlZmluZSBIMkNfTFBTX1BBUk1fTEVOIDhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMTIwOmludCBydHc4OV9md19oMmNfbHBzX3Bhcm0oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMxMjEtXHRcdFx0ICBzdHJ1Y3QgcnR3ODlfbHBzX3Bhcm0gKmxwc19wYXJhbSlcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzgwMTgKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA1ODIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBGZWFzaWJpbGl0eSBvZiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEkgbmVlZCB0byBrbm93IHdoZXJlIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBpcyBjYWxsZWQuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgaW52b2tlZCBieSBgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0YCAod2hpY2ggaXMgaXRzZWxmIGNhbGxlZCBmcm9tIGBydHc4OV9jb3JlX3N0YV9saW5rX2Fzc29jYCksIGBydHc4OV9md19oMmNfa2VlcF9hbGl2ZWAsIGBydHc4OV9md19oMmNfYXJwX29mZmxvYWRgLCBhbmQgYHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGRgLiBUaGlzIGdpdmVzIG1lIHNvbWUgY29udGV4dCwgYnV0IG5vdyB0aGUgY3JpdGljYWwgcXVlc3Rpb246IGlzIHRoaXMgZnVuY3Rpb24sIGFuZCBieSBleHRlbnNpb24sIHRoZSBgcnR3ODlgIGRyaXZlciBhcyBhIHdob2xlLCBhbWVuYWJsZSB0byBmdXp6aW5nIHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSBhbmQgc3l6a2FsbGVyPwoKQmVmb3JlIEkganVtcCB0byBjb25jbHVzaW9ucywgSSBuZWVkIHRvIGNvbnN1bHQgdGhlIGZ1enppbmcgZ3VpZGVsaW5lcy4gTGV0IG1lIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCB3YXN0aW5nIG15IHRpbWUgb24gc29tZXRoaW5nIHRoYXQgaXMgZXhwbGljaXRseSBleGNsdWRlZC4gVGhlIGd1aWRlbGluZXMgc3BlY2lmaWNhbGx5IGNhbGwgb3V0IG1vZGlmaWNhdGlvbnMgdG8gZG9jdW1lbnRhdGlvbiwgS2NvbmZpZyBmaWxlcywgZGVjb3JhdGl2ZSBsb2dnaW5nLCBjaGFuZ2VzIHRvIG5vbi1mdW5jdGlvbmFsIGNvbnN0YW50cywgdW5yZWFjaGFibGUgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGFuZCBjZXJ0YWluIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMgKFBDSWUgc3dpdGNoLCBTbWFydE5JQywgR1BVLCBkcml2ZXJzJiMzOTsgYC5yZW1vdmVgLCBgLnNodXRkb3duYCwgb3IgYHBjaV91bnJlZ2lzdGVyX2RyaXZlcmAgdGVhcmRvd24gY2FsbGJhY2tzKS4gTm9uZSBvZiB0aGF0ICppbW1lZGlhdGVseSoganVtcHMgb3V0IGFzIGEgY29uY2VybiBoZXJlLCBhc3N1bWluZyB0aGUgY2FsbHNpdGVzIGFyZSByZWFjaGFibGUgd2l0aGluIGEgZnV6emVkIGVudmlyb25tZW50LgoKTm93LCB0aGUgbWFpbiBxdWVzdGlvbjogY2FuIGBydHc4OWAgZXZlbiBiZSBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBjb250ZXh0PyBJIGtub3cgc29tZSBkcml2ZXJzIHByZXNlbnQgaW1tZWRpYXRlIGNoYWxsZW5nZXMuIFNwZWNpZmljYWxseSwgVVNCIHdpcmVsZXNzIGRyaXZlcnMgYXJlIG9mdGVuIGZ1enphYmxlIGluIExpbnV4LCBwYXJ0aWN1bGFybHkgd2l0aCBzeXprYWxsZXImIzM5O3MgVVNCIGVtdWxhdGlvbiBjYXBhYmlsaXRpZXMuIFRoaXMgaXMgZ29vZCBuZXdzLCBhcyBzeXprYWxsZXIgYWN0aXZlbHkgZnV6emVzIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGRyaXZlcnMgdXNpbmcgdGhlIGR1bW15X2hjZC9yYXdfZ2FkZ2V0IG1ldGhvZHMuCgpUaGUga2V5IHRoZW4gYmVjb21lcywgaXMgYHJ0dzg5YCBhIFVTQiBkcml2ZXI/IEkgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBvcHRpb25zIGZvciBgUlRXODlfVVNCYCBhbmQgcmVsYXRlZCBjb25maWd1cmF0aW9ucyBsaWtlIGBSVFc4OV84ODUyQVVgLCBgUlRXODlfODg1MkJVYCwgYFJUVzg5Xzg4NTJDVWAsIGBSVFc4OV84OTIyQVVgLCBgUlRXODlfODg1MUJVYC4gVGhvc2Ugd291bGQgcHJvdmlkZSB0aGUgbW9zdCBkaXJlY3QgaW5mb3JtYXRpb24uIEFsc28sIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgYHJ0dzg5YCBldmVuIGhhcyBhIGB1c2IuY2AgZmlsZSBpbiB0aGUgZHJpdmVyIHRyZWUuIEkgc2hvdWxkIGxvb2sgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNgIHRvIGNvbmZpcm0gbXkgc3VzcGljaW9uLiBJZiBpdCYjMzk7cyBhIFVTQiBkcml2ZXIsIHRoZSBsaWtlbGlob29kIG9mIHN1Y2Nlc3NmdWwgZnV6emluZyBpcyBzaWduaWZpY2FudGx5IGhpZ2hlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA4MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gICAyOlx0LyogQ29weXJpZ2h0KGMpIDIwMjUgIFJlYWx0ZWsgQ29ycG9yYXRpb25cbiAgIDM6XHQgKi9cbiAgIDQ6XHRcbiAgIDU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC91c2IuaFx1MDAzZVxuICAgNjpcdCNpbmNsdWRlIFwmIzM0O2RlYnVnLmhcJiMzNDtcbiAgIDc6XHQjaW5jbHVkZSBcJiMzNDttYWMuaFwmIzM0O1xuICAgODpcdCNpbmNsdWRlIFwmIzM0O3JlZy5oXCYjMzQ7XG4gICA5Olx0I2luY2x1ZGUgXCYjMzQ7dHhyeC5oXCYjMzQ7XG4gIDEwOlx0I2luY2x1ZGUgXCYjMzQ7dXNiLmhcJiMzNDtcbiAgMTE6XHRcbiAgMTI6XHRzdGF0aWMgdm9pZCBydHc4OV91c2JfcmVhZF9wb3J0X2NvbXBsZXRlKHN0cnVjdCB1cmIgKnVyYik7XG4gIDEzOlx0XG4gIDE0Olx0c3RhdGljIHZvaWQgX19ydHc4OV91c2JfdmVuZG9ycmVxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTMyIGFkZHIsXG4gIDE1Olx0XHRcdFx0XHQgIHZvaWQgKmRhdGEsIHUxNiBsZW4sIHU4IHJlcXR5cGUsIGJvb2wgd2FybilcbiAgMTY6XHR7XG4gIDE3Olx0XHRzdHJ1Y3QgcnR3ODlfdXNiICpydHd1c2IgPSBydHc4OV91c2JfcHJpdihydHdkZXYpO1xuICAxODpcdFx0c3RydWN0IHVzYl9kZXZpY2UgKnVkZXYgPSBydHd1c2ItXHUwMDNldWRldjtcbiAgMTk6XHRcdHVuc2lnbmVkIGludCBwaXBlO1xuICAyMDpcdFx0dTE2IHZhbHVlLCBpbmRleDtcbiAgMjE6XHRcdGludCBhdHRlbXB0LCByZXQ7XG4gIDIyOlx0XG4gIDIzOlx0XHRpZiAodGVzdF9iaXQoUlRXODlfRkxBR19VTlBMVUdHRUQsIHJ0d2Rldi1cdTAwM2VmbGFncykpXG4gIDI0Olx0XHRcdHJldHVybjtcbiAgMjU6XHRcbiAgMjY6XHRcdHZhbHVlID0gdTMyX2dldF9iaXRzKGFkZHIsIEdFTk1BU0soMTUsIDApKTtcbiAgMjc6XHRcdGluZGV4ID0gdTMyX2dldF9iaXRzKGFkZHIsIEdFTk1BU0soMjMsIDE2KSk7XG4gIDI4Olx0XG4gIDI5Olx0XHRmb3IgKGF0dGVtcHQgPSAwOyBhdHRlbXB0IFx1MDAzYyAxMDsgYXR0ZW1wdCYjNDM7JiM0MzspIHtcbiAgMzA6XHRcdFx0KnJ0d3VzYi1cdTAwM2V2ZW5kb3JfcmVxX2J1ZiA9IDA7XG4gIDMxOlx0XG4gIDMyOlx0XHRcdGlmIChyZXF0eXBlID09IFJUVzg5X1VTQl9WRU5RVF9SRUFEKSB7XG4gIDMzOlx0XHRcdFx0cGlwZSA9IHVzYl9yY3ZjdHJscGlwZSh1ZGV2LCAwKTtcbiAgMzQ6XHRcdFx0fSBlbHNlIHsgLyogUlRXODlfVVNCX1ZFTlFUX1dSSVRFICovXG4gIDM1Olx0XHRcdFx0cGlwZSA9IHVzYl9zbmRjdHJscGlwZSh1ZGV2LCAwKTtcbiAgMzY6XHRcbiAgMzc6XHRcdFx0XHRtZW1jcHkocnR3dXNiLVx1MDAzZXZlbmRvcl9yZXFfYnVmLCBkYXRhLCBsZW4pO1xuICAzODpcdFx0XHR9XG4gIDM5Olx0XG4gIDQwOlx0XHRcdHJldCA9IHVzYl9jb250cm9sX21zZyh1ZGV2LCBwaXBlLCBSVFc4OV9VU0JfVkVOUVQsIHJlcXR5cGUsXG4gIDQxOlx0XHRcdFx0XHQgICAgICB2YWx1ZSwgaW5kZXgsIHJ0d3VzYi1cdTAwM2V2ZW5kb3JfcmVxX2J1ZixcbiAgNDI6XHRcdFx0XHRcdCAgICAgIGxlbiwgNTAwKTtcbiAgNDM6XHRcbiAgNDQ6XHRcdFx0aWYgKHJldCA9PSBsZW4pIHsgLyogU3VjY2VzcyAqL1xuICA0NTpcdFx0XHRcdGF0b21pY19zZXQoXHUwMDI2cnR3dXNiLVx1MDAzZWNvbnRpbnVhbF9pb19lcnJvciwgMCk7XG4gIDQ2Olx0XG4gIDQ3Olx0XHRcdFx0aWYgKHJlcXR5cGUgPT0gUlRXODlfVVNCX1ZFTlFUX1JFQUQpXG4gIDQ4Olx0XHRcdFx0XHRtZW1jcHkoZGF0YSwgcnR3dXNiLVx1MDAzZXZlbmRvcl9yZXFfYnVmLCBsZW4pO1xuICA0OTpcdFxuICA1MDpcdFx0XHRcdGJyZWFrO1xuICA1MTpcdFx0XHR9XG4gIDUyOlx0XG4gIDUzOlx0XHRcdGlmIChyZXQgPT0gLUVTSFVURE9XTiB8fCByZXQgPT0gLUVOT0RFVilcbiAgNTQ6XHRcdFx0XHRzZXRfYml0KFJUVzg5X0ZMQUdfVU5QTFVHR0VELCBydHdkZXYtXHUwMDNlZmxhZ3MpO1xuICA1NTpcdFx0XHRlbHNlIGlmIChyZXQgXHUwMDNjIDAgXHUwMDI2XHUwMDI2IHdhcm4pXG4gIDU2Olx0XHRcdFx0cnR3ODlfd2FybihydHdkZXYsXG4gIDU3Olx0XHRcdFx0XHQgICBcJiMzNDt1c2IgJXMldSAweCV4IGZhaWwgcmV0PSVkIHZhbHVlPTB4JXggYXR0ZW1wdD0lZFxcblwmIzM0OyxcbiAgNTg6XHRcdFx0XHRcdCAgIHN0cl9yZWFkX3dyaXRlKHJlcXR5cGUgPT0gUlRXODlfVVNCX1ZFTlFUX1JFQUQpLFxuICA1OTpcdFx0XHRcdFx0ICAgbGVuICogOCwgYWRkciwgcmV0LFxuICA2MDpcdFx0XHRcdFx0ICAgbGUzMl90b19jcHVwKHJ0d3VzYi1cdTAwM2V2ZW5kb3JfcmVxX2J1ZiksXG4gIDYxOlx0XHRcdFx0XHQgICBhdHRlbXB0KTtcbiAgNjI6XHRcdFx0ZWxzZSBpZiAocmV0IFx1MDAzZSAwIFx1MDAyNlx1MDAyNiByZXF0eXBlID09IFJUVzg5X1VTQl9WRU5RVF9SRUFEKVxuICA2MzpcdFx0XHRcdG1lbWNweShkYXRhLCBydHd1c2ItXHUwMDNldmVuZG9yX3JlcV9idWYsIGxlbik7XG4gIDY0Olx0XG4gIDY1Olx0XHRcdGlmIChhdG9taWNfaW5jX3JldHVybihcdTAwMjZydHd1c2ItXHUwMDNlY29udGludWFsX2lvX2Vycm9yKSBcdTAwM2UgNCkge1xuICA2NjpcdFx0XHRcdHNldF9iaXQoUlRXODlfRkxBR19VTlBMVUdHRUQsIHJ0d2Rldi1cdTAwM2VmbGFncyk7XG4gIDY3Olx0XHRcdFx0YnJlYWs7XG4gIDY4Olx0XHRcdH1cbiAgNjk6XHRcdH1cbiAgNzA6XHR9XG4gIDcxOlx0XG4gIDcyOlx0c3RhdGljIHZvaWQgcnR3ODlfdXNiX3ZlbmRvcnJlcShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUzMiBhZGRyLFxuICA3MzpcdFx0XHRcdFx0dm9pZCAqZGF0YSwgdTE2IGxlbiwgdTggcmVxdHlwZSlcbiAgNzQ6XHR7XG4gIDc1Olx0XHRfX3J0dzg5X3VzYl92ZW5kb3JyZXEocnR3ZGV2LCBhZGRyLCBkYXRhLCBsZW4sIHJlcXR5cGUsIHRydWUpO1xuICA3NjpcdH1cbiAgNzc6XHRcbiAgNzg6XHRzdGF0aWMgdTMyIHJ0dzg5X3VzYl9yZWFkX2NtYWMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1MzIgYWRkcilcbiAgNzk6XHR7XG4gIDgwOlx0XHR1MzIgYWRkcjMyLCB2YWwzMiwgc2hpZnQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNTcxCgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMTU0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJUVzg5IERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBSVFc4OSBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYGZ3LmNgIGZpbGUuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgYWJvdXQgUlRXODkmIzM5O3MgVVNCIHN1cHBvcnQsIGFuZCBob3cgd2UgY291bGQgcG90ZW50aWFsbHkgZW11bGF0ZSB3aXJlbGVzcyBVU0IgYWRhcHRlcnMgdXNpbmcgVVNCIGdhZGdldHMsIGJ1dCB0aGF0JiMzOTtzIG5vdCB0aGUgZm9jdXMgaGVyZS4gVGhlIHBhdGNoIGl0c2VsZiBpcyB3aGF0IGludGVyZXN0cyBtZS4gTGV0JiMzOTtzIGRpZyBpbi4KClRoZSBkaWZmIGludHJvZHVjZXMgYSBzbWFsbCBidXQgY3J1Y2lhbCBjaGFuZ2UgdG8gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgLiBJdCBzZWVtcyBsaWtlIGVycm9yIGhhbmRsaW5nIGlzIGJlaW5nIGltcHJvdmVkLiBTcGVjaWZpY2FsbHksIHRoZSBwYXRjaCBhZGRzIGV4cGxpY2l0IGVycm9yIHJldHVybnMgZm9yIGNhc2VzIHdoZXJlIHRoZSBgc3dpdGNoYCBzdGF0ZW1lbnQgaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGhpdHMgdGhlIGBkZWZhdWx0YCBjYXNlIGFuZCB3aGVuIGBza2JgIGlzIE5VTEwuIEJlZm9yZSwgdGhlc2UgY2FzZXMgd291bGQgaGF2ZSByZXN1bHRlZCBpbiBhbiBgLUVOT01FTWAgcmV0dXJuLCB3aGljaCB3YXNuJiMzOTt0IGZ1bGx5IGFjY3VyYXRlIGluIHRoZSBmaXJzdCBjYXNlLiBOb3csIGAtRUlOVkFMYCBpcyByZXR1cm5lZCBmb3IgaW52YWxpZCBwYWNrZXQgdHlwZXMgYW5kIGAtRU5PTUVNYCBmb3IgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZXMsIG1ha2luZyBkZWJ1Z2dpbmcgZWFzaWVyLgoKTmV4dCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSwgc28gSSYjMzk7bSBjaGVja2luZyB0aGUgY2FsbGVycyBvZiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAgYXMgd2VsbCBhcyBmdW5jdGlvbnMgdGhhdCBjYWxsIGl0LiBUaGUgcGxhbiBpcyB0byBzZWUgaG93IHRoaXMgbW9kaWZpZWQgZXJyb3IgaGFuZGxpbmcgcmlwcGxlcyB0aHJvdWdoIHRoZSBkcml2ZXIuIEkmIzM5O3ZlIGZvdW5kIHRoYXQgYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAsIGBydHc4OV9md19oMmNfa2VlcF9hbGl2ZWAsIGBydHc4OV9md19oMmNfYXJwX29mZmxvYWRgIGFuZCBgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZGAgYXJlIGFsbCBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uIE5vdywgSSBuZWVkIHRvIGNoZWNrIHdoZXJlIHRob3NlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGZsb3cgYW5kIGVuc3VyZSBhbnkgcG90ZW50aWFsIGlzc3VlcyBmcm9tIHRoZSB1cGRhdGVkIGVycm9yIGNvZGVzIGFyZSBjYXVnaHQgYW5kIGhhbmRsZWQgYXBwcm9wcmlhdGVseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODlfZndfaDJjXyhrZWVwX2FsaXZlfGFycF9vZmZsb2FkfHdvd19ndGtfb2ZsZHxnZW5lcmFsX3BrdCkmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTc5OT1pbnQgcnR3ODlfY29yZV9zdGFfbGlua19hc3NvYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4NzY6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluay1cdTAwM2VtYWNfaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg3Ny1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0zMDU3PXZvaWQgcnR3ODlfZndfcmVsZWFzZV9nZW5lcmFsX3BrdF9saXN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBub3RpZnlfZncpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwNzAtI2RlZmluZSBIMkNfR0VORVJBTF9QS1RfSURfVU5EIDB4ZmZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDcxOmludCBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwNzItXHRcdFx0ICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLCB1OCBtYWNpZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9OTU2ND1pbnQgcnR3ODlfZndfaDJjX3BrdF9kcm9wKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTYyNi0jZGVmaW5lIEgyQ19LRUVQX0FMSVZFX0xFTiA0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6OTYyNzppbnQgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk2MjgtXHRcdFx0ICAgIGJvb2wgZW5hYmxlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05Njc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk2NzU6aW50IHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTY3Ni1cdFx0XHQgICAgIGJvb2wgZW5hYmxlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0xMDA0MD1FWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY193b3dfY2FtX3VwZGF0ZV92MSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAwNDI6aW50IHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDQzLVx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oPTU0NTE9dm9pZCBydHc4OV9md19mcmVlX2FsbF9lYXJseV9oMmMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaDo1NDUyOmludCBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oLTU0NTMtXHRcdFx0ICAgICB1OCBtYWNpZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oPTU1Mjg9aW50IHJ0dzg5X2Z3X2gyY19jZmdfcG5vKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC01NTI5LVx0XHRcdCBib29sIGVuYWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3Lmg6NTUzMDppbnQgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oLTU1MzEtXHRcdFx0ICAgIGJvb2wgZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaDo1NTMyOmludCBydHc4OV9md19oMmNfYXJwX29mZmxvYWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oLTU1MzMtXHRcdFx0ICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLCBib29sIGVuYWJsZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oPTU1NDI9aW50IHJ0dzg5X2Z3X2gyY193b3dfY2FtX3VwZGF0ZV92MShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmgtNTU0My1cdFx0XHRcdCAgIHN0cnVjdCBydHc4OV93b3dfY2FtX2luZm8gKmNhbV9pbmZvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaDo1NTQ0OmludCBydHc4OV9md19oMmNfd293X2d0a19vZmxkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC01NTQ1LVx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYz0xMjYwPXN0YXRpYyBpbnQgcnR3ODlfd293X3N3YXBfZncoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIHdvdylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTEzMzMtXHRpZiAoaXNfY29ubikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYzoxMzM0Olx0XHRyZXQgPSBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmstXHUwMDNlbWFjX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTMzNS1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM9MTU1OD1zdGF0aWMgaW50IHJ0dzg5X3dvd19md19zdGFydChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNTc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYzoxNTgwOlx0XHRyZXQgPSBydHc4OV9md19oMmNfa2VlcF9hbGl2ZShydHdkZXYsIHJ0d3ZpZl9saW5rLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU4MS1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTU5MjpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZChydHdkZXYsIHJ0d3ZpZl9saW5rLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU5My1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTU5ODpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkKHJ0d2RldiwgcnR3dmlmX2xpbmssIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNTk5LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM9MTYyNj1zdGF0aWMgaW50IHJ0dzg5X3dvd19md19zdG9wKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jOjE2NDk6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlKHJ0d2RldiwgcnR3dmlmX2xpbmssIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTY1MC1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTY2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTY2MTpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZChydHdkZXYsIHJ0d3ZpZl9saW5rLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NjItXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jOjE2Njc6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZChydHdkZXYsIHJ0d3ZpZl9saW5rLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NjgtXHRcdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1MDM5CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMzQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgcnR3ODkgRmlybXdhcmUgSDJDIFBhY2tldCBIYW5kbGluZyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSYjMzk7bSBmb2N1c2luZyBvbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAsIHdoaWNoIEkgc2VlIGlzIGEgc3RhdGljIGhlbHBlciBmdW5jdGlvbiByZXNpZGluZyB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY2AuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHVuZGVyc3RhbmRpbmcgaXRzIHVzYWdlIOKAkyB3aGF0IG90aGVyIGZ1bmN0aW9ucyAqZGlyZWN0bHkqIGNhbGwgaXQ/IExvb2tpbmcgYXQgdGhlIGNvZGUsIGl0JiMzOTtzIGNhbGxlZCBieSBgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0YCwgYHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlYCwgYHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZGAsIGFuZCBgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZGAuIFRoaXMgZ2l2ZXMgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIHdpdGhpbiB0aGUgZHJpdmVyJiMzOTtzIEgyQyAoSG9zdCB0byBDb250cm9sbGVyKSBwYWNrZXQgbWVjaGFuaXNtLgoKTmV4dCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24uIEkgaGF2ZSB0byBtYWtlIHN1cmUgdGhlIGRyaXZlciBjYW4gZXZlbiBiZSBjb21waWxlZCwgYW5kIEkgd2FudCB0byBrbm93IHdoaWNoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgcmVxdWlyZWQgb3IgZW5hYmxlZC4gQ2hlY2tpbmcgdGhlIGBLY29uZmlnYCBmaWxlIGluIHRoYXQgZGlyZWN0b3J5IGlzIGtleS4gRnJvbSBhIHF1aWNrIGdsYW5jZSwgSSBzZWUgYENPTkZJR19SVFc4OWAgYXMgdGhlIHJvb3QsIGZvbGxvd2VkIGJ5IGBDT05GSUdfUlRXODlfQ09SRWAgKHdoaWNoIGlzIHR5cGljYWxseSBzZWxlY3RlZCBieSB0aGUgZGV2aWNlIGRyaXZlcnMpLCBhbmQgdGhlbiBlaXRoZXIgYENPTkZJR19SVFc4OV9VU0JgIG9yIGBDT05GSUdfUlRXODlfUENJYCBkZXBlbmRpbmcgb24gdGhlIGludGVyZmFjZS4gRnVydGhlciBkb3duIHRoZSBjb25maWd1cmF0aW9uIHRyZWUsIEkgc2VlIGRldmljZS1zcGVjaWZpYyBvcHRpb25zIHN1Y2ggYXMgYENPTkZJR19SVFc4OV84ODUyQVVgLCBgQ09ORklHX1JUVzg5Xzg4NTJBRWAsIGBDT05GSUdfUlRXODlfODg1MkJFYCwgZXRjLiBJdCBzZWVtcyBsaWtlIHRoZSB2YXJpb3VzIGNoaXBzZXRzIG9yIGhhcmR3YXJlIHJldmlzaW9ucyBuZWVkIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIHRvIGJlIHN1cHBvcnRlZC4KCkJlZm9yZSBnb2luZyBkZWVwZXIgaW50byB0aGUgc3BlY2lmaWMgb3B0aW9ucywgbGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZyBmaWxlIHRvIGNvbmZpcm0gd2hldGhlciB0aGUgZGV2aWNlLXNwZWNpZmljIG9wdGlvbnMgc3VjaCBhcyBgUlRXODlfODg1MkFVYCwgYFJUVzg5Xzg4NTFCVWAsIGBSVFc4OV84ODUyQlVgLCBgUlRXODlfODg1MkNVYCBvciBgUlRXODlfODkyMkFVYCBhcmUgYWxzbyBjb3JyZWN0bHkgZGVmaW5lZC4gSXQmIzM5O3MgY3J1Y2lhbCB0byBjb25maXJtIHRob3NlIGRlcGVuZGVuY2llcyBiZWZvcmUgYXNzdW1pbmcgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb25zLiBPbmNlIEkgY29uZmlybSB0aGVtLCBJIHdpbGwgaGF2ZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVyJiMzOTtzIGJ1aWxkIHByb2Nlc3MgYW5kIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjptZW51Y29uZmlnIFJUVzg5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExYXggd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz0xMT1pZiBSVFc4OVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEzOmNvbmZpZyBSVFc4OV9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzpjb25maWcgUlRXODlfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTgtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIwOmNvbmZpZyBSVFc4OV9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMS1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjM6Y29uZmlnIFJUVzg5Xzg4NTFCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjQtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI2OmNvbmZpZyBSVFc4OV84ODUyQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI3LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyOTpjb25maWcgUlRXODlfODg1MkJfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzAtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OV84ODUyQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMzLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzozNTpjb25maWcgUlRXODlfODg1MkJUXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzYtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjM4OmNvbmZpZyBSVFc4OV84ODUyQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM5LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0MTpjb25maWcgUlRXODlfODkyMkFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00Mi1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDQ6Y29uZmlnIFJUVzg5Xzg4NTFCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQ1LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTU6Y29uZmlnIFJUVzg5Xzg4NTFCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU2LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NjY6Y29uZmlnIFJUVzg5Xzg4NTJBRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTY3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Nzc6Y29uZmlnIFJUVzg5Xzg4NTJBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTc4LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODg6Y29uZmlnIFJUVzg5Xzg4NTJCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTg5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctOTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTAwOmNvbmZpZyBSVFc4OV84ODUyQlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDEtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTEyOmNvbmZpZyBSVFc4OV84ODUyQlRFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTEzLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQkUtVlQgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEyNDpjb25maWcgUlRXODlfODg1MkNFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTI1LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQ0UgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDZFKSBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEzNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMzU6Y29uZmlnIFJUVzg5Xzg4NTJDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEzNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTQ2OmNvbmZpZyBSVFc4OV84OTIyQUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNDctXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg5MjJBRS84OTIyQUUtVlMgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDcpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE2MDpjb25maWcgUlRXODlfODkyMkFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTYxLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4OTIyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDcpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3Mjpjb25maWcgUlRXODlfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNzMtXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3NTpjb25maWcgUlRXODlfREVCVUdNU0dcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNzYtXHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODkgZGVidWcgbWVzc2FnZSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxODQ6Y29uZmlnIFJUVzg5X0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODUtXHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODkgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4MjUzCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgUmVhbHRlayBLY29uZmlnIGZvciBSVFc4OSBEZXBlbmRlbmNpZXMqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhpcyBgUlRXODlgIG1vZHVsZS4gV2hlcmUgZG8gSSBzdGFydD8gVGhlIGJlc3QgcGxhY2UgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIGlzIGFsd2F5cyB0aGUgYEtjb25maWdgIGZpbGUsIHBhcnRpY3VsYXJseSB0aGUgb25lIGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRla2AgZGlyZWN0b3J5LiBUaGF0JiMzOTtzIHVzdWFsbHkgdGhlIGF1dGhvcml0YXRpdmUgc291cmNlIGZvciB0aGVzZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlcnMuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBmaWxlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL0tjb25maWdgIHRvIHNlZSBleGFjdGx5IHdoYXQgb3RoZXIgb3B0aW9ucyBvciBmZWF0dXJlcyBuZWVkIHRvIGJlIGVuYWJsZWQgb3IgYXJlIHJlcXVpcmVkIGZvciBgUlRXODlgIHRvIGZ1bmN0aW9uIGNvcnJlY3RseSB3aXRoaW4gdGhlIGtlcm5lbCBidWlsZC4gVGhpcyBLY29uZmlnIGZpbGUgd2lsbCBiZSB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGZ1bGwgc2NvcGUgb2Ygd2hhdCBJJiMzOTttIHdvcmtpbmcgd2l0aCBhbmQgd2hhdCBvdGhlciBjb21wb25lbnRzIG1pZ2h0IG5lZWQgYXR0ZW50aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzb3VyY2UuKnJ0dzg5L0tjb25maWcmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL0tjb25maWc9MTg9c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9LY29uZmlnOjE5OnNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvS2NvbmZpZy0yMC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDg1OTcKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhvdWdodHM6CgoqKkV4YW1pbmluZyB0aGUgUlRXODkgS2NvbmZpZyBGaWxlKioKCk9rYXksIHRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciBjb25maWd1cmF0aW9uLiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IGJ5IHJldmlld2luZyB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IGxpbmVzIDEgdGhyb3VnaCAyMC4gSSB3YW50IHRvIHF1aWNrbHkgcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvZmZlcmVkIGJ5IHRoaXMgZHJpdmVyLiBXaGF0IGFyZSB0aGUgZXNzZW50aWFsIGZlYXR1cmUgZmxhZ3M/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBkZXBlbmRlbmNpZXMgb3IgY29uZGl0aW9uYWwgc2V0dGluZ3MgSSBzaG91bGQga2VlcCBpbiBtaW5kIGFzIEkgc3RhcnQgdG8gY29uZmlndXJlIHRoaXMgbW9kdWxlIGZvciBhIHBhcnRpY3VsYXIgdXNlIGNhc2U/IEkmIzM5O20gaG9waW5nIHRvIGdldCBhIHF1aWNrIG92ZXJ2aWV3IG9mIHRoZSBrZXkga25vYnMgYW5kIGxldmVycyBiZWZvcmUgZ2V0dGluZyBib2dnZWQgZG93biBpbiB0aGUgbW9yZSBncmFudWxhciBkZXRhaWxzIGZ1cnRoZXIgZG93biBpbiB0aGUgZmlsZS4gRXNzZW50aWFsbHksIEkmIzM5O20gc2V0dGluZyB0aGUgc3RhZ2UgZm9yIGEgbW9yZSBmb2N1c2VkIGFuYWx5c2lzIGxhdGVyIG9uLiBMZXQmIzM5O3Mgc2VlIHdoYXQgdGhlc2UgaW5pdGlhbCBsaW5lcyByZXZlYWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcbiAgIDI6XHRtZW51Y29uZmlnIFJUVzg5XG4gICAzOlx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDgwMi4xMWF4IHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgIDU6XHRcdGhlbHBcbiAgIDY6XHRcdCAgVGhpcyBtb2R1bGUgYWRkcyBzdXBwb3J0IGZvciBtYWM4MDIxMS1iYXNlZCB3aXJlbGVzcyBkcml2ZXJzIHRoYXRcbiAgIDc6XHRcdCAgZW5hYmxlcyBSZWFsdGVrIElFRUUgODAyLjExYXggd2lyZWxlc3MgY2hpcHNldHMuXG4gICA4Olx0XG4gICA5Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgcnR3ODkuXG4gIDEwOlx0XG4gIDExOlx0aWYgUlRXODlcbiAgMTI6XHRcbiAgMTM6XHRjb25maWcgUlRXODlfQ09SRVxuICAxNDpcdFx0dHJpc3RhdGVcbiAgMTU6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBSVFc4OV9QQ0lcbiAgMTg6XHRcdHRyaXN0YXRlXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIFJUVzg5X1VTQlxuICAyMTpcdFx0dHJpc3RhdGVcbiAgMjI6XHRcbiAgMjM6XHRjb25maWcgUlRXODlfODg1MUJcbiAgMjQ6XHRcdHRyaXN0YXRlXG4gIDI1Olx0XG4gIDI2Olx0Y29uZmlnIFJUVzg5Xzg4NTJBXG4gIDI3Olx0XHR0cmlzdGF0ZVxuICAyODpcdFxuICAyOTpcdGNvbmZpZyBSVFc4OV84ODUyQl9DT01NT05cbiAgMzA6XHRcdHRyaXN0YXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5MjMxCgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogNzc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBSZWFsdGVrIFJUVzg5IEZpcm13YXJlIEgyQyBQYWNrZXQgSGFuZGxpbmcqKgoKT2theSwgc28gaGVyZSYjMzk7cyB3aGF0IEkmIzM5O3ZlIGdvdCBzbyBmYXIuIEkmIzM5O20gbG9va2luZyBhdCB0aGUgZGVwZW5kZW5jaWVzIGZvciB0aGlzIFJUVzg5IGRyaXZlci4gYFJUVzg5YCByZWxpZXMgb24gYE1BQzgwMjExYCwgd2hpY2ggaXMgc3RhbmRhcmQuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBzZWVpbmcgYSBidW5jaCBvZiBkZXZpY2Utc3BlY2lmaWMgb3B0aW9ucyBsaWtlIGBSVFc4OV84ODUyQVVgLCBgUlRXODlfODg1MkFFYCwgYW5kIHNvIG9uLCBhbmQgdGhlc2UgYXJlIHRpZWQgdG8gZWl0aGVyIFVTQiBvciBQQ0kgaW50ZXJmYWNlcy4gV2hlbiBvbmUgb2YgdGhlc2UgZGV2aWNlLXNwZWNpZmljIG9wdGlvbnMsIGxpa2UgYFJUVzg5Xzg4NTJBVWAsIGlzIGVuYWJsZWQsIGl0IHB1bGxzIGluIGBSVFc4OV9DT1JFYCwgYFJUVzg5X1VTQmAsIGFuZCBgUlRXODlfODg1MkFgLiBUaGF0IGdpdmVzIG1lIGEgZ29vZCBpZGVhIG9mIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4KCk5leHQsIEkgemVyb2VkIGluIG9uIHRoZSBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAgZnVuY3Rpb24uIFRoaXMgaXMgYSBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgSDJDIHBhY2tldCBoYW5kbGluZywgYW5kIEkmIzM5O3ZlIGlkZW50aWZpZWQgc2V2ZXJhbCBub24tc3RhdGljIGNhbGxlcnMgb3IgZW50cnlwb2ludHM6IGBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RgLCBgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmVgLCBgcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkYCwgYW5kIGBydHc4OV9md19oMmNfd293X2d0a19vZmxkYC4gU28sIHRob3NlIGFyZSB0aGUgbWFpbiBmdW5jdGlvbnMgdGhhdCBjYWxsIGludG8gdGhlIGhlbHBlci4KCkRpZ2dpbmcgZGVlcGVyLCBJIGxvb2tlZCBmb3Igb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMuIEkmIzM5O3ZlIGZvdW5kIHRoYXQgYHJ0dzg5X2NvcmVfc3RhX2xpbmtfYXNzb2NgIGNhbGxzIGBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RgLiBBbHNvLCBgcnR3ODlfd293X2Z3X3N0YXJ0YCBhbmQgYHJ0dzg5X3dvd19md19zdG9wYCBib3RoIGNhbGwgYHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlYCwgYHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGRgLCBhbmQgYHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZGAuIGBydHc4OV93b3dfc3dhcF9md2AgY2FsbHMgYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAgYXMgd2VsbC4gU2VlbXMgbGlrZSB0aGVzZSBXb1cgKFdha2Utb24tV2lyZWxlc3MpIGZ1bmN0aW9uYWxpdGllcyBhcmUga2V5IHBsYXllcnMgaGVyZSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuCgpOb3csIHRoZSByZWFsbHkgaW50ZXJlc3RpbmcgcGFydDogSSYjMzk7bSBjbGFzc2lmeWluZyB0aGlzIGFzIGEgZnVuY3Rpb25hbCBsb2dpYyBtb2RpZmljYXRpb24gYmVjYXVzZSB0aGUgZXJyb3IgaGFuZGxpbmcgaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGFuZCBpdHMgY2FsbGVycyBpcyBjaGFuZ2luZy4gUHJldmlvdXNseSwgYW55IGVycm9yIGp1c3QgcmV0dXJuZWQgYC1FTk9NRU1gLiBOb3csIHRoZSBwYXRjaCAqcHJlc2VydmVzKiB0aGUgZXJyb3IgcmV0dXJuIGNvZGUgKGByZXRgKSBmcm9tIGEgbmVzdGVkIGNhbGwgdG8gYHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWRgLiBJZiB0aGF0IG5lc3RlZCBjYWxsIHJldHVybnMgYW55dGhpbmcgb3RoZXIgdGhhbiAtRU5PTUVNIChlLmcuIC1FQlVTWSwgLUVJTlZBTCksIHRoZW4gdGhhdCBlcnJvciBpcyByZXNwZWN0ZWQsIGJ1dCAtRU5PTUVNIGlzIHN0aWxsIHJldHVybmVkIGlmIG5vIFNLQi4gVGhpcyBpcyBpbXBvcnRhbnQgdG8gbm90ZSBzaW5jZSBpdCBjaGFuZ2VzIGhvdyBwb3RlbnRpYWwgaXNzdWVzIGFyZSBwcm9wYWdhdGVkIHVwIHRoZSBzdGFjaywgYW5kIGl0JiMzOTtzIHNvbWV0aGluZyBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIGZvciBmdXp6aW5nLiBBbHNvLCBpdCYjMzk7cyBnb29kIHRvIGtub3cgdGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBVU0IgZW52aXJvbm1lbnRzIGxpa2UgdGhvc2UgdXNlZCBieSBzeXprYWxsZXIuCgpGaW5hbGx5LCBqdXN0IHRvIGJlIHN1cmUsIEkmIzM5O3ZlIGNoZWNrZWQgdGhlIHJlbGV2YW50IGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuICBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCB0aGUgY3JpdGljYWwgY29uZmlncyAoYFJUVzg5YCwgYFJUVzg5X0NPUkVgLCBgUlRXODlfUENJYCwgYFJUVzg5X1VTQmAsIGBSVFc4OV84ODUyQVVgLCBgUlRXODlfODg1MkFFYCwgYW5kIGBNQUM4MDIxMWApIGFyZSBhbGwgcHJlc2VudC4gTGV0JiMzOTtzIHNlZSBpZiBgUlRXODlfQ09SRWAgaGFzIG90aGVyIGlmZGVmcywgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY2Agc3BlY2lmaWNhbGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0OyNpZmRlZnwjaWYgSVNfRU5BQkxFRCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwOTEyCgkJCQkJCQlvdXRwdXQ6IDI1NAoJCQkJCQkJdGhvdWdodHM6IDMwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgUlRXODkgRmlybXdhcmUgQnVpbGQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBgZncuY2AgaXMgZGVmaW5pdGVseSBiZWluZyBjb21waWxlZCBpbnRvIGBydHc4OV9jb3JlLm9gLCBidXQgb25seSB3aGVuIGBDT05GSUdfUlRXODlfQ09SRWAgaXMgYWN0aXZlLiAgVGhhdCBtYWtlcyBzZW5zZS4gTm93LCBsZXQmIzM5O3MgdHJhY2Ugd2hlcmUgYENPTkZJR19SVFc4OV9DT1JFYCBpcyBiZWluZyBzZWxlY3RlZC4gUmlnaHQsIGl0JiMzOTtzIGJlaW5nIGJyb3VnaHQgaW4gdGhyb3VnaCBhIGJ1bmNoIG9mIHNwZWNpZmljIGRldmljZSBjb25maWd1cmF0aW9ucyBsaWtlIGBDT05GSUdfUlRXODlfODg1MkFVYCwgYENPTkZJR19SVFc4OV84ODUyQUVgLCBhbmQgc28gb24uIFRoYXQgbWVhbnMgdGhlIHNwZWNpZmljIGNoaXBzZXRzIGFyZSBkaWN0YXRpbmcgdGhlIGluY2x1c2lvbi4gR290IGl0LiBBbmQgdGhhdCBwYXJlbnQgY29uZmlndXJhdGlvbiwgYENPTkZJR19SVFc4OWAsIGRlcGVuZHMgb24gYENPTkZJR19NQUM4MDIxMWAuIE9rYXksIHNvIGBNQUM4MDIxMWAgaXMgZnVuZGFtZW50YWwuCgpOb3csIGxldCYjMzk7cyBxdWlja2x5IHJldmlldyB0aGUgY3JpdGljYWwgc3ltYm9scyBhbmQgY29uZmlndXJhdGlvbnMgdG8gY29uZmlybSBldmVyeXRoaW5nIGlzIGFzIGV4cGVjdGVkLiBMb29raW5nIGF0IGBGb2N1c1N5bWJvbHNgLCBJIHNlZSBgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0YCwgYHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlYCwgYHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZGAsIGFuZCBgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZGAgYXJlIHJlbGV2YW50LgoKQW5kIGZvciBlbmFibGVkIGNvbmZpZ3MsIHdlIGhhdmU6IGBSVFc4OWAsIGBSVFc4OV9DT1JFYCwgYFJUVzg5X1VTQmAsIGBSVFc4OV84ODUyQVVgLCBhbmQgZmluYWxseSBgTUFDODAyMTFgLiBBbGwgb2YgdGhlc2UgYWxpZ24gd2l0aCB0aGUgaW5pdGlhbCBkZXBlbmRlbmN5IGFuYWx5c2lzLCBzbyB0aGluZ3Mgc2VlbSB0byBiZSBpbiBvcmRlci4KCldpdGggdGhhdCBjb25maXJtYXRpb24sIGl0JiMzOTtzIHRpbWUgdG8gc2V0IHVwIHRoZSBjYWxsIHRvIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtSVFc4OSYjMzQ7LAogICAgJiMzNDtSVFc4OV9DT1JFJiMzNDssCiAgICAmIzM0O1JUVzg5X1VTQiYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUyQVUmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4OV9md19oMmNfZ2VuZXJhbF9wa3QmIzM0OywKICAgICYjMzQ7cnR3ODlfZndfaDJjX2tlZXBfYWxpdmUmIzM0OywKICAgICYjMzQ7cnR3ODlfZndfaDJjX2FycF9vZmZsb2FkJiMzNDssCiAgICAmIzM0O3J0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgY29kZSBwcm9wYWdhdGlvbiBpbiBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0IGluIHRoZSBSZWFsdGVrIHJ0dzg5IGRyaXZlciwgZW5zdXJpbmcgcHJvcGVyIGVycm9yIHJldHVybiB2YWx1ZXMgKHN1Y2ggYXMgLUVJTlZBTCBvbiBpbnZhbGlkIHBhY2tldCB0eXBlcyBvciBwcm9wYWdhdGlvbiBvZiBlcnJvcnMgZnJvbSBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkKSBpbnN0ZWFkIG9mIHVuY29uZGl0aW9uYWxseSByZXR1cm5pbmcgLUVOT01FTS4gVGhlIHJ0dzg5IGRyaXZlciBzdXBwb3J0cyBVU0IgZGV2aWNlcyB3aGljaCBjYW4gYmUgZW11bGF0ZWQgYW5kIGZ1enplZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIFVTQiBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5JiMzNDssCiAgICAmIzM0O1JUVzg5X0NPUkUmIzM0OywKICAgICYjMzQ7UlRXODlfVVNCJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJBVSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdCYjMzQ7LAogICAgJiMzNDtydHc4OV9md19oMmNfa2VlcF9hbGl2ZSYjMzQ7LAogICAgJiMzNDtydHc4OV9md19oMmNfYXJwX29mZmxvYWQmIzM0OywKICAgICYjMzQ7cnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBjb2RlIHByb3BhZ2F0aW9uIGluIHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QgaW4gdGhlIFJlYWx0ZWsgcnR3ODkgZHJpdmVyLCBlbnN1cmluZyBwcm9wZXIgZXJyb3IgcmV0dXJuIHZhbHVlcyAoc3VjaCBhcyAtRUlOVkFMIG9uIGludmFsaWQgcGFja2V0IHR5cGVzIG9yIHByb3BhZ2F0aW9uIG9mIGVycm9ycyBmcm9tIHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQpIGluc3RlYWQgb2YgdW5jb25kaXRpb25hbGx5IHJldHVybmluZyAtRU5PTUVNLiBUaGUgcnR3ODkgZHJpdmVyIHN1cHBvcnRzIFVTQiBkZXZpY2VzIHdoaWNoIGNhbiBiZSBlbXVsYXRlZCBhbmQgZnV6emVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MTA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzoxMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvcnJlY3RzIGVycm9yIGhhbmRsaW5nIGFuZCByZXR1cm4gY29kZSBwcm9wYWdhdGlvbiBpbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCgpYC4gU3BlY2lmaWNhbGx5LCBpdCBhc3NpZ25zIGFwcHJvcHJpYXRlIGVycm9yIGNvZGVzIChgLUVJTlZBTGAgb24gdW5rbm93biBwYWNrZXQgdHlwZSBhbmQgYC1FTk9NRU1gIG9uIHBhY2tldCBhbGxvY2F0aW9uIGZhaWx1cmUpIGFuZCByZXR1cm5zIGByZXRgIGluc3RlYWQgb2YgaGFyZGNvZGluZyBgLUVOT01FTWAuIEFsbCB2YXJpYWJsZXMgYXJlIGZ1bGx5IGluaXRpYWxpemVkLCBhbmQgdGhlcmUgYXJlIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLCBpbmZvLWxlYWtzIHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgYnVmZmVyIHVzYWdlcyBpbnZvbHZlZC4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHJlcXVpcmVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeQplcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZApkZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpCmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLgoKQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46Ci0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZQogIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTgogIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVAKICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLgotIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLAogIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy4KClJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sCkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuCkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFkKc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3MKdGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi4KCkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0CnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLAphIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXMKdGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmcKdW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sCmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSwKY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuCgpTZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6CjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiCiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzCiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuCjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMKICAgb3Igc3RydWN0IGZpZWxkcy4KMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcwogICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLgo0LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2VzcwogICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuCgpTZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjoKLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlcgogIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodAogIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS4KLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZAogIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC4KLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuCgpVc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlCmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzMDhhNDRiYTJiNWQxY2QyYjdmOGY2ZmNlOGE3YjUxZDdhODhiOTBmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBTZXAgMSAyMzowOTowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYwppbmRleCBkNmE1OTRiNzVhYjIwLi5hYjJkMGIwY2IxZTU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jCkBAIC0zMDEzLDExICYjNDM7MzAxMywxNCBAQCBzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LAogCQlza2IgPSBydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspOwogCQlicmVhazsKIAlkZWZhdWx0OgomIzQzOwkJcmV0ID0gLUVJTlZBTDsKIAkJZ290byBlcnI7CiAJfQogCi0JaWYgKCFza2IpCiYjNDM7CWlmICghc2tiKSB7CiYjNDM7CQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIGVycjsKJiM0MzsJfQogCiAJcmV0ID0gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZChydHdkZXYsICZhbXA7aW5mby0mZ3Q7aWQsIHNrYik7CiAJa2ZyZWVfc2tiKHNrYik7CkBAIC0zMDMxLDcgJiM0MzszMDM0LDcgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwKIAogZXJyOgogCWtmcmVlKGluZm8pOwotCXJldHVybiAtRU5PTUVNOwomIzQzOwlyZXR1cm4gcmV0OwogfQogCiB2b2lkIHJ0dzg5X2Z3X3JlbGVhc2VfZ2VuZXJhbF9wa3RfbGlzdF92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8zPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI5MQoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDYxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRpdmluZyBpbnRvIHRoZSBSZWFsdGVrIFdpcmVsZXNzIEZpcm13YXJlKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBoYXBwZW5pbmcgd2l0aCB0aGlzIFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBydHc4OWAgY29kZS4gTXkgZmlyc3QgbW92ZSB3aWxsIGJlIHRvIHplcm8gaW4gb24gdGhlIGRpZmYgYW5kIHJlYWQgdGhlIGNvbnRleHQgYXJvdW5kIHRoZSBjaGFuZ2VzIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgLiBUaGF0JiMzOTtsbCBnaXZlIG1lIHRoZSBicm9hZCBzdHJva2VzIOKAkyB0aGUgKndoeSogYmVoaW5kIHRoZSBjaGFuZ2UuIAoKVGhlbiwgSSYjMzk7bGwgZHJpbGwgZG93biBmdXJ0aGVyLiBJJiMzOTttIGdvaW5nIHRvIGxldmVyYWdlIGByZWFkLWZpbGVgIHRvIGdldCBhIGRpcmVjdCBsb29rIGF0IHRoZSBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAgZnVuY3Rpb24uIEkgd2FudCB0byBzZWUgZXhhY3RseSBob3cgaXQgZnVuY3Rpb25zLCB1bmRlcnN0YW5kIHRoZSBkYXRhIGl0IGhhbmRsZXMsIGFuZCBlbnN1cmUgaXQgYWxpZ25zIHdpdGggdGhlIGNoYW5nZXMgSSYjMzk7dmUgc2VlbiBpbiB0aGUgZGlmZi4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBtZWF0IG9mIHRoZSBhbmFseXNpcyBiZWdpbnMgZm9yIG1lLCBhcyBJIG5lZWQgdG8gY29tcHJlaGVuZCBldmVyeSBkZXRhaWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjk4MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA3MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyOTgwOlx0XHRcdFx0XHRcdGVudW0gcnR3ODlfZndfcGt0X29mbGRfdHlwZSB0eXBlLFxuMjk4MTpcdFx0XHRcdFx0XHR1OCAqaWQpXG4yOTgyOlx0e1xuMjk4MzpcdFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiA9IHJ0d3ZpZl9saW5rX3RvX3ZpZihydHd2aWZfbGluayk7XG4yOTg0Olx0XHRpbnQgbGlua19pZCA9IGllZWU4MDIxMV92aWZfaXNfbWxkKHZpZikgPyBydHd2aWZfbGluay1cdTAwM2VsaW5rX2lkIDogLTE7XG4yOTg1Olx0XHRzdHJ1Y3QgcnR3ODlfcGt0b2ZsZF9pbmZvICppbmZvO1xuMjk4NjpcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbjI5ODc6XHRcdGludCByZXQ7XG4yOTg4Olx0XG4yOTg5Olx0XHRpbmZvID0ga3phbGxvY19vYmooKmluZm8pO1xuMjk5MDpcdFx0aWYgKCFpbmZvKVxuMjk5MTpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbjI5OTI6XHRcbjI5OTM6XHRcdHN3aXRjaCAodHlwZSkge1xuMjk5NDpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX1BTX1BPTEw6XG4yOTk1Olx0XHRcdHNrYiA9IGllZWU4MDIxMV9wc3BvbGxfZ2V0KHJ0d2Rldi1cdTAwM2VodywgdmlmKTtcbjI5OTY6XHRcdFx0YnJlYWs7XG4yOTk3Olx0XHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFJPQkVfUlNQOlxuMjk5ODpcdFx0XHRza2IgPSBpZWVlODAyMTFfcHJvYmVyZXNwX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZik7XG4yOTk5Olx0XHRcdGJyZWFrO1xuMzAwMDpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQTpcbjMwMDE6XHRcdFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZiwgbGlua19pZCwgZmFsc2UpO1xuMzAwMjpcdFx0XHRicmVhaztcbjMwMDM6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9RT1NfTlVMTDpcbjMwMDQ6XHRcdFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZiwgbGlua19pZCwgdHJ1ZSk7XG4zMDA1Olx0XHRcdGJyZWFrO1xuMzAwNjpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX0VBUE9MX0tFWTpcbjMwMDc6XHRcdFx0c2tiID0gcnR3ODlfZWFwb2xfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAwODpcdFx0XHRicmVhaztcbjMwMDk6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9TQV9RVUVSWTpcbjMwMTA6XHRcdFx0c2tiID0gcnR3ODlfc2FfcXVlcnlfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAxMTpcdFx0XHRicmVhaztcbjMwMTI6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9BUlBfUlNQOlxuMzAxMzpcdFx0XHRza2IgPSBydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAxNDpcdFx0XHRicmVhaztcbjMwMTU6XHRcdGRlZmF1bHQ6XG4zMDE2Olx0XHRcdHJldCA9IC1FSU5WQUw7XG4zMDE3Olx0XHRcdGdvdG8gZXJyO1xuMzAxODpcdFx0fVxuMzAxOTpcdFxuMzAyMDpcdFx0aWYgKCFza2IpIHtcbjMwMjE6XHRcdFx0cmV0ID0gLUVOT01FTTtcbjMwMjI6XHRcdFx0Z290byBlcnI7XG4zMDIzOlx0XHR9XG4zMDI0Olx0XG4zMDI1Olx0XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkKHJ0d2RldiwgXHUwMDI2aW5mby1cdTAwM2VpZCwgc2tiKTtcbjMwMjY6XHRcdGtmcmVlX3NrYihza2IpO1xuMzAyNzpcdFxuMzAyODpcdFx0aWYgKHJldClcbjMwMjk6XHRcdFx0Z290byBlcnI7XG4zMDMwOlx0XG4zMDMxOlx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNmluZm8tXHUwMDNlbGlzdCwgXHUwMDI2cnR3dmlmX2xpbmstXHUwMDNlZ2VuZXJhbF9wa3RfbGlzdCk7XG4zMDMyOlx0XHQqaWQgPSBpbmZvLVx1MDAzZWlkO1xuMzAzMzpcdFx0cmV0dXJuIDA7XG4zMDM0Olx0XG4zMDM1Olx0ZXJyOlxuMzAzNjpcdFx0a2ZyZWUoaW5mbyk7XG4zMDM3Olx0XHRyZXR1cm4gcmV0O1xuMzAzODpcdH1cbjMwMzk6XHRcbjMwNDA6XHR2b2lkIHJ0dzg5X2Z3X3JlbGVhc2VfZ2VuZXJhbF9wa3RfbGlzdF92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuMzA0MTpcdFx0XHRcdFx0XHQgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuMzA0MjpcdFx0XHRcdFx0XHQgICBib29sIG5vdGlmeV9mdylcbjMwNDM6XHR7XG4zMDQ0Olx0XHRzdHJ1Y3QgbGlzdF9oZWFkICpwa3RfbGlzdCA9IFx1MDAyNnJ0d3ZpZl9saW5rLVx1MDAzZWdlbmVyYWxfcGt0X2xpc3Q7XG4zMDQ1Olx0XHRzdHJ1Y3QgcnR3ODlfcGt0b2ZsZF9pbmZvICppbmZvLCAqdG1wO1xuMzA0NjpcdFxuMzA0NzpcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGluZm8sIHRtcCwgcGt0X2xpc3QsIGxpc3QpIHtcbjMwNDg6XHRcdFx0aWYgKG5vdGlmeV9mdylcbjMwNDk6XHRcdFx0XHRydHc4OV9md19oMmNfZGVsX3BrdF9vZmZsb2FkKHJ0d2RldiwgaW5mby1cdTAwM2VpZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NDkKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA0ODYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBCdWcgRml4IGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgY29yZSBpc3N1ZSBpbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAgd2FzIGluIHRoZSBlcnJvciBoYW5kbGluZy4gQmVmb3JlIHRoZSBwYXRjaCwgdGhlIGZ1bmN0aW9uJiMzOTtzIGBlcnI6YCBsYWJlbCBjb25zaXN0ZW50bHkgcmV0dXJuZWQgYC1FTk9NRU1gLiBUaGUgcHJvYmxlbSB3YXMgdGhhdCB0aGUgcmV0dXJuIHZhbHVlIGByZXRgIHdhc24mIzM5O3QgYWx3YXlzIHByb3Blcmx5IGluaXRpYWxpemVkIGJlZm9yZSBoaXR0aW5nIHRoYXQgYGVycjpgIGxhYmVsLiBTcGVjaWZpY2FsbHksIGlmIGBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkYCBmYWlsZWQsIG9yIGlmIHRoZSBgZGVmYXVsdGAgY2FzZSB3YXMgaGl0LCB0aGUgY29kZSB3b3VsZCBqdW1wIHRvIGBlcnI6YCB3aXRob3V0IHNldHRpbmcgYHJldGAsIGJ1dCBgZXJyOmAgd291bGQgKnN0aWxsKiByZXR1cm4gYC1FTk9NRU1gLCBlZmZlY3RpdmVseSBtYXNraW5nIHRoZSBvcmlnaW5hbCBlcnJvciBjb2RlLiBBbmQsIGl0IHNlZW1zLCBpbiBgZGVmYXVsdDpgLCBgZ290byBlcnI7YCB3YXMgdXNlZCAqYmVmb3JlKiBpbml0aWFsaXppbmcgYHJldGAuIExpa2V3aXNlIGZvciB0aGUgYCFza2JgIHBhdGguIFRoaXMgbWVhbnQgcG90ZW50aWFsbHkgbG9zaW5nIHZhbHVhYmxlIGVycm9yIGluZm9ybWF0aW9uLgoKVGhlIHBhdGNoIGZpeGVzIHRoaXMgYnkgZW5zdXJpbmcgYHJldGAgaXMgaW5pdGlhbGl6ZWQgKmJlZm9yZSogYGVycjpgLiBOb3csIGBlcnI6YCByZXR1cm5zIHRoZSBjb3JyZWN0IGByZXRgIHZhbHVlLiBTcGVjaWZpY2FsbHksIGl0IGluaXRpYWxpemVzIGByZXQgPSAtRUlOVkFMO2AgZm9yIHRoZSBgZGVmYXVsdDpgIGNhc2UsIGFuZCBgcmV0ID0gLUVOT01FTTtgIGlmIHRoZSBgc2tiYCBpcyBOVUxMLiBJZiB0aGUgYHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWRgIGNhbGwgZmFpbHMsIHRoZSBwcm9wZXIgYHJldGAgdmFsdWUgaXMgdXNlZC4KCk5vdywgbGV0JiMzOTtzIGFzc2VzcyB0aGUgaW1wbGljYXRpb25zLiBEb2VzIHRoaXMgaW50cm9kdWNlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByaXNrcyBvciBLTVNBTiBjb25jZXJucz8gTm8sIGl0IGRvZXNuJiMzOTt0IGFwcGVhciB0by4gVGhlIGBpbmZvYCBzdHJ1Y3R1cmUgaXMgYWxsb2NhdGVkIHZpYSBga3phbGxvY19vYmpgLCBzbyBpdCYjMzk7cyB6ZXJvZWQsIGFuZCBpdCYjMzk7cyBwcm9wZXJseSBmcmVlZCBpZiBhbGxvY2F0aW9uIGZhaWxzLiBUaGUgdmFyaWFibGUgYHJldGAgaXMganVzdCBhbiBpbnRlZ2VyIHRoYXQmIzM5O3MgcmV0dXJuZWQgYXMgYW4gZXJyb3IgY29kZS4gSW1wb3J0YW50bHksIGFsbCBwYXRocyBsZWFkaW5nIHRvIGBlcnI6YCBub3cgZ3VhcmFudGVlIHRoYXQgYHJldGAgaXMgaW5pdGlhbGl6ZWQsIGFzIGJlZm9yZS4gTm8gdXNlci1zcGFjZSBkYXRhIHN0cnVjdHVyZXMgYXJlIGNvcGllZCwgc28gdGhlcmUmIzM5O3Mgbm8gcmlzayBvZiBtZW1vcnkgbGVha3MgdmlhIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBjYWxsZXJzIG9mIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCB0byBtYWtlIGNlcnRhaW4gZXZlcnl0aGluZyBpcyBjbGVhbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8zPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MjkyOD1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnJ0dzg5X2FycF9yZXNwb25zZV9nZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI5Nzg6c3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc5LVx0XHRcdFx0XHRzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0zMDcxPWludCBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODA6XHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4MS1cdFx0XHRcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9QU19QT0xMLCBcdTAwMjZwa3RfaWRfcHNfcG9sbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzA4MjpcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDgzLVx0XHRcdFx0ICAgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQSwgXHUwMDI2cGt0X2lkX251bGwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODQ6XHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4NS1cdFx0XHRcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9RT1NfTlVMTCwgXHUwMDI2cGt0X2lkX3Fvc19udWxsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9OTYyNz1pbnQgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjM0LVx0aWYgKGVuYWJsZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk2MzU6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjM2LVx0XHRcdFx0XHRcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfQVJQX1JTUCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9OTY3NT1pbnQgcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTY4NC1cdGlmIChlbmFibGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5Njg1Olx0XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTY4Ni1cdFx0XHRcdFx0XHQgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX0FSUF9SU1AsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTEwMDQyPWludCBydHc4OV9md19oMmNfd293X2d0a19vZmxkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAwNzE6XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzItXHRcdFx0XHRcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfRUFQT0xfS0VZLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xMDA3Ny1cdGlmIChndGtfaW5mby1cdTAwM2VpZ3RrX2tleWlkKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAwNzg6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xMDA3OS1cdFx0XHRcdFx0XHQgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX1NBX1FVRVJZLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTY2CgkJCQkJCQlvdXRwdXQ6IDEzOQoJCQkJCQkJdGhvdWdodHM6IDExOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBDb2RlIENoYW5nZSoqCgpPa2F5LCB0aGlzIGlzIHByZXR0eSBjbGVhbi4gVGhlIGNvcmUgb2YgaXQgaXMgYSBzdHJhaWdodGZvcndhcmQgZml4IGZvciBlcnJvciBoYW5kbGluZyB3aXRoaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgLiBJdCBzZWVtcyB0aGUgb3JpZ2luYWwgY29kZSB3YXMgbWFza2luZyB0aGUgYWN0dWFsIGVycm9yIGFuZCBhbHdheXMgcmV0dXJuaW5nIGAtRU5PTUVNYCBpbiBjZXJ0YWluIGZhaWx1cmUgc2NlbmFyaW9zLiBUaGlzIGNoYW5nZSBjb3JyZWN0cyB0aGF0IGJ5IGVuc3VyaW5nIHRoZSBmdW5jdGlvbiByZXBvcnRzIHRoZSAqcmVhbCogZXJyb3IgY29kZSAoYHJldGApIGZyb20gdGhlIG9wZXJhdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCBleHBsaWNpdGx5IHNldHMgYHJldGAgdG8gYC1FSU5WQUxgIGZvciB1bmV4cGVjdGVkIGNvbmRpdGlvbnMgd2l0aGluIHRoZSBgZGVmYXVsdDpgIGNhc2UsIGFuZCBgLUVOT01FTWAgd2hlbiB0aGUgYWxsb2NhdGlvbiBvZiB0aGUgYHNrYmAgZmFpbHMuCgpUaGVyZSBhcmUgbm8gb2J2aW91cyB2dWxuZXJhYmlsaXRpZXMgaGVyZTsgSSYjMzk7bSBub3Qgc2VlaW5nIGFueSByaXNrcyBhcm91bmQgdW5pbml0aWFsaXplZCBtZW1vcnksIHN1cGVyZmx1b3VzIHVzZXItc3BhY2UgY29waWVzLCBvciBkYXRhIGxlYWtzIGR1ZSB0byBwYWRkaW5nLiBJIHRoaW5rIHRoaXMgY2FuIGJlIGNhdGVnb3JpemVkIGFzIGEgZm9jdXNlZCwgc2FmZSBidWcgZml4LiBCYXNlZCBvbiB0aGF0LCBLTVNBTiBpc24mIzM5O3QgbmVjZXNzYXJ5LgoKTGV0JiMzOTtzIHByb2NlZWQgdG8gYHNldC1yZXN1bHRzYCBhbmQgYXJ0aWN1bGF0ZSB0aGlzIGNvbmNpc2UgcmF0aW9uYWxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBjb3JyZWN0cyBlcnJvciBoYW5kbGluZyBhbmQgcmV0dXJuIGNvZGUgcHJvcGFnYXRpb24gaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QoKWAuIFNwZWNpZmljYWxseSwgaXQgYXNzaWducyBhcHByb3ByaWF0ZSBlcnJvciBjb2RlcyAoYC1FSU5WQUxgIG9uIHVua25vd24gcGFja2V0IHR5cGUgYW5kIGAtRU5PTUVNYCBvbiBwYWNrZXQgYWxsb2NhdGlvbiBmYWlsdXJlKSBhbmQgcmV0dXJucyBgcmV0YCBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgYC1FTk9NRU1gLiBBbGwgdmFyaWFibGVzIGFyZSBmdWxseSBpbml0aWFsaXplZCwgYW5kIHRoZXJlIGFyZSBubyB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcywgaW5mby1sZWFrcyB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIGJ1ZmZlciB1c2FnZXMgaW52b2x2ZWQuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvcnJlY3RzIGVycm9yIGhhbmRsaW5nIGFuZCByZXR1cm4gY29kZSBwcm9wYWdhdGlvbiBpbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCgpYC4gU3BlY2lmaWNhbGx5LCBpdCBhc3NpZ25zIGFwcHJvcHJpYXRlIGVycm9yIGNvZGVzIChgLUVJTlZBTGAgb24gdW5rbm93biBwYWNrZXQgdHlwZSBhbmQgYC1FTk9NRU1gIG9uIHBhY2tldCBhbGxvY2F0aW9uIGZhaWx1cmUpIGFuZCByZXR1cm5zIGByZXRgIGluc3RlYWQgb2YgaGFyZGNvZGluZyBgLUVOT01FTWAuIEFsbCB2YXJpYWJsZXMgYXJlIGZ1bGx5IGluaXRpYWxpemVkLCBhbmQgdGhlcmUgYXJlIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLCBpbmZvLWxlYWtzIHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgYnVmZmVyIHVzYWdlcyBpbnZvbHZlZC4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHJlcXVpcmVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzowOToxMS4yNjQ4MjE2NjFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDc2MjI0MTk4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OVwiLFxuICAgIFwiUlRXODlfQ09SRVwiLFxuICAgIFwiUlRXODlfVVNCXCIsXG4gICAgXCJSVFc4OV84ODUyQVVcIixcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0XCIsXG4gICAgXCJydHc4OV9md19oMmNfa2VlcF9hbGl2ZVwiLFxuICAgIFwicnR3ODlfZndfaDJjX2FycF9vZmZsb2FkXCIsXG4gICAgXCJydHc4OV9md19oMmNfd293X2d0a19vZmxkXCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjb3JyZWN0cyBlcnJvciBoYW5kbGluZyBhbmQgcmV0dXJuIGNvZGUgcHJvcGFnYXRpb24gaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QoKWAuIFNwZWNpZmljYWxseSwgaXQgYXNzaWducyBhcHByb3ByaWF0ZSBlcnJvciBjb2RlcyAoYC1FSU5WQUxgIG9uIHVua25vd24gcGFja2V0IHR5cGUgYW5kIGAtRU5PTUVNYCBvbiBwYWNrZXQgYWxsb2NhdGlvbiBmYWlsdXJlKSBhbmQgcmV0dXJucyBgcmV0YCBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgYC1FTk9NRU1gLiBBbGwgdmFyaWFibGVzIGFyZSBmdWxseSBpbml0aWFsaXplZCwgYW5kIHRoZXJlIGFyZSBubyB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcywgaW5mby1sZWFrcyB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIGJ1ZmZlciB1c2FnZXMgaW52b2x2ZWQuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBjb2RlIHByb3BhZ2F0aW9uIGluIHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QgaW4gdGhlIFJlYWx0ZWsgcnR3ODkgZHJpdmVyLCBlbnN1cmluZyBwcm9wZXIgZXJyb3IgcmV0dXJuIHZhbHVlcyAoc3VjaCBhcyAtRUlOVkFMIG9uIGludmFsaWQgcGFja2V0IHR5cGVzIG9yIHByb3BhZ2F0aW9uIG9mIGVycm9ycyBmcm9tIHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQpIGluc3RlYWQgb2YgdW5jb25kaXRpb25hbGx5IHJldHVybmluZyAtRU5PTUVNLiBUaGUgcnR3ODkgZHJpdmVyIHN1cHBvcnRzIFVTQiBkZXZpY2VzIHdoaWNoIGNhbiBiZSBlbXVsYXRlZCBhbmQgZnV6emVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgVVNCIGVtdWxhdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MTEuMjY0ODI4MDQxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTA2NTE0MjQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzA4YTQ0YmEyYjVkMWNkMmI3ZjhmNmZjZThhN2I1MWQ3YTg4YjkwZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIFNlcCAxIDIzOjA5OjA5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xcbmluZGV4IGQ2YTU5NGI3NWFiMjAuLmFiMmQwYjBjYjFlNTkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXFxuQEAgLTMwMTMsMTEgKzMwMTMsMTQgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4gXFx0XFx0c2tiID0gcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChydHdkZXYsIHJ0d3ZpZl9saW5rKTtcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGRlZmF1bHQ6XFxuK1xcdFxcdHJldCA9IC1FSU5WQUw7XFxuIFxcdFxcdGdvdG8gZXJyO1xcbiBcXHR9XFxuIFxcbi1cXHRpZiAoIXNrYilcXG4rXFx0aWYgKCFza2IpIHtcXG4rXFx0XFx0cmV0ID0gLUVOT01FTTtcXG4gXFx0XFx0Z290byBlcnI7XFxuK1xcdH1cXG4gXFxuIFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQocnR3ZGV2LCBcXHUwMDI2aW5mby1cXHUwMDNlaWQsIHNrYik7XFxuIFxcdGtmcmVlX3NrYihza2IpO1xcbkBAIC0zMDMxLDcgKzMwMzQsNyBAQCBzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbiBcXG4gZXJyOlxcbiBcXHRrZnJlZShpbmZvKTtcXG4tXFx0cmV0dXJuIC1FTk9NRU07XFxuK1xcdHJldHVybiByZXQ7XFxuIH1cXG4gXFxuIHZvaWQgcnR3ODlfZndfcmVsZWFzZV9nZW5lcmFsX3BrdF9saXN0X3ZpZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjA5OjEyLjc3MTg0MzQ5NFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6NjIwODAzMjI0MDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRXODlcIixcbiAgICBcIlJUVzg5X0NPUkVcIixcbiAgICBcIlJUVzg5X1VTQlwiLFxuICAgIFwiUlRXODlfODg1MkFVXCIsXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdFwiLFxuICAgIFwicnR3ODlfZndfaDJjX2tlZXBfYWxpdmVcIixcbiAgICBcInJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZFwiLFxuICAgIFwicnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGNvZGUgcHJvcGFnYXRpb24gaW4gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCBpbiB0aGUgUmVhbHRlayBydHc4OSBkcml2ZXIsIGVuc3VyaW5nIHByb3BlciBlcnJvciByZXR1cm4gdmFsdWVzIChzdWNoIGFzIC1FSU5WQUwgb24gaW52YWxpZCBwYWNrZXQgdHlwZXMgb3IgcHJvcGFnYXRpb24gb2YgZXJyb3JzIGZyb20gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZCkgaW5zdGVhZCBvZiB1bmNvbmRpdGlvbmFsbHkgcmV0dXJuaW5nIC1FTk9NRU0uIFRoZSBydHc4OSBkcml2ZXIgc3VwcG9ydHMgVVNCIGRldmljZXMgd2hpY2ggY2FuIGJlIGVtdWxhdGVkIGFuZCBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzMDhhNDRiYTJiNWQxY2QyYjdmOGY2ZmNlOGE3YjUxZDdhODhiOTBmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBTZXAgMSAyMzowOTowOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuaW5kZXggZDZhNTk0Yjc1YWIyMC4uYWIyZDBiMGNiMWU1OSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXG5AQCAtMzAxMywxMSArMzAxMywxNCBAQCBzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuIFx0XHRza2IgPSBydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4rXHRcdHJldCA9IC1FSU5WQUw7XG4gXHRcdGdvdG8gZXJyO1xuIFx0fVxuIFxuLVx0aWYgKCFza2IpXG4rXHRpZiAoIXNrYikge1xuK1x0XHRyZXQgPSAtRU5PTUVNO1xuIFx0XHRnb3RvIGVycjtcbitcdH1cbiBcbiBcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQocnR3ZGV2LCBcdTAwMjZpbmZvLVx1MDAzZWlkLCBza2IpO1xuIFx0a2ZyZWVfc2tiKHNrYik7XG5AQCAtMzAzMSw3ICszMDM0LDcgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcbiBlcnI6XG4gXHRrZnJlZShpbmZvKTtcbi1cdHJldHVybiAtRU5PTUVNO1xuK1x0cmV0dXJuIHJldDtcbiB9XG4gXG4gdm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3RfdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjA5OjEyLjc3MTg0NDg4NFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ2MjM1Nzk3NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgV2lyZWxlc3MgRHJpdmVyIFBhdGNoKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc2NvcGUgb2YgdGhpcyBwYXRjaC4gVGhlIGluaXRpYWwgY2x1ZSBpcyB0aGF0IGl0J3MgaGl0dGluZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jYCwgc3BlY2lmaWNhbGx5IHRoZSBmdW5jdGlvbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAuIFRoYXQgcG9pbnRzIG1lIGRpcmVjdGx5IHRvIGEgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIg4oCTIGEgY29tbW9uIHRhcmdldCBmb3IgdnVsbmVyYWJpbGl0aWVzLlxuXG5NeSBpbW1lZGlhdGUgdGhvdWdodHMgYXJlIGFib3V0IHRoZSBwb3RlbnRpYWwgZm9yIGZ1enppbmcuIElzIHRoaXMgYSBkcml2ZXIgdGhhdCdzIGVhc2lseSB0ZXN0YWJsZSB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgb3IgZG9lcyBpdCBkZXBlbmQgb24gc3BlY2lmaWMgUmVhbHRlayBoYXJkd2FyZT8gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgaXQncyBzb21ldGhpbmcgSSBjYW4gZWFzaWx5IHNldCB1cCBpbiBteSBsYWIuIFRvIGRldGVybWluZSB0aGF0LCBJJ2xsIG5lZWQgdG8ga25vdyBhIGJpdCBtb3JlIGFib3V0IHRoZSBkcml2ZXIgaXRzZWxmLiBNeSBuZXh0IHN0ZXAgaXMgdG8gcXVpY2tseSBzZWFyY2ggdGhyb3VnaCB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgZHJpdmVyIGRpcmVjdG9yaWVzIHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlIGBydHc4OWAgY29tcG9uZW50LiBUaGlzIHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIGl0cyBkZXBlbmRlbmNpZXMgYW5kIGlmIGl0J3MgYSBnb29kIGNhbmRpZGF0ZSBmb3IgdnVsbmVyYWJpbGl0eSBhc3Nlc3NtZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk0LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MTcuMzk1NDI2NDEzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk1MjY3NzE3MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJSVFc4OVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgOTMwMDIgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI6bWVudWNvbmZpZyBSVFc4OVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDgwMi4xMWF4IHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExOmlmIFJUVzg5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMzpjb25maWcgUlRXODlfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzpjb25maWcgUlRXODlfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE4LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMDpjb25maWcgUlRXODlfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIxLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMzpjb25maWcgUlRXODlfODg1MUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjQtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI2OmNvbmZpZyBSVFc4OV84ODUyQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Mjk6Y29uZmlnIFJUVzg5Xzg4NTJCX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zMC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MzI6Y29uZmlnIFJUVzg5Xzg4NTJCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMzLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzozNTpjb25maWcgUlRXODlfODg1MkJUXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM2LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzozODpjb25maWcgUlRXODlfODg1MkNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzktXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQxOmNvbmZpZyBSVFc4OV84OTIyQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00Mi1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDQ6Y29uZmlnIFJUVzg5Xzg4NTFCRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00NS1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUxQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQ2LVxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQ3OlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQ4OlxcdHNlbGVjdCBSVFc4OV9QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDk6XFx0c2VsZWN0IFJUVzg5Xzg4NTFCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTUwLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTU6Y29uZmlnIFJUVzg5Xzg4NTFCVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01Ni1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU4OlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU5OlxcdHNlbGVjdCBSVFc4OV9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NjA6XFx0c2VsZWN0IFJUVzg5Xzg4NTFCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTYxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NjY6Y29uZmlnIFJUVzg5Xzg4NTJBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02Ny1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTY4LVxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjY5OlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjcwOlxcdHNlbGVjdCBSVFc4OV9QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NzE6XFx0c2VsZWN0IFJUVzg5Xzg4NTJBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTcyLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy03Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Nzc6Y29uZmlnIFJUVzg5Xzg4NTJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy03OC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTc5LVxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjgwOlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjgxOlxcdHNlbGVjdCBSVFc4OV9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODI6XFx0c2VsZWN0IFJUVzg5Xzg4NTJBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTgzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy04Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODg6Y29uZmlnIFJUVzg5Xzg4NTJCRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy04OS1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTkwLVxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjkxOlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjkyOlxcdHNlbGVjdCBSVFc4OV9QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6OTM6XFx0c2VsZWN0IFJUVzg5Xzg4NTJCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjk0OlxcdHNlbGVjdCBSVFc4OV84ODUyQl9DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctOTUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMDA6Y29uZmlnIFJUVzg5Xzg4NTJCVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDItXFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTAzOlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwNDpcXHRzZWxlY3QgUlRXODlfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwNTpcXHRzZWxlY3QgUlRXODlfODg1MkJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTA2OlxcdHNlbGVjdCBSVFc4OV84ODUyQl9DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTA3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExMjpjb25maWcgUlRXODlfODg1MkJURVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTMtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkJFLVZUIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTQtXFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTE1OlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExNjpcXHRzZWxlY3QgUlRXODlfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExNzpcXHRzZWxlY3QgUlRXODlfODg1MkJUXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExODpcXHRzZWxlY3QgUlRXODlfODg1MkJfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTExOS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjQ6Y29uZmlnIFJUVzg5Xzg4NTJDRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMjUtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTI2LVxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEyNzpcXHRzZWxlY3QgUlRXODlfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjg6XFx0c2VsZWN0IFJUVzg5X1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjk6XFx0c2VsZWN0IFJUVzg5Xzg4NTJDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEzMC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMzU6Y29uZmlnIFJUVzg5Xzg4NTJDVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzYtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTM3LVxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEzODpcXHRzZWxlY3QgUlRXODlfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMzk6XFx0c2VsZWN0IFJUVzg5X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNDA6XFx0c2VsZWN0IFJUVzg5Xzg4NTJDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE0MS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNDY6Y29uZmlnIFJUVzg5Xzg5MjJBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNDctXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODkyMkFFLzg5MjJBRS1WUyBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNykgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ4LVxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE0OTpcXHRzZWxlY3QgUlRXODlfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNTA6XFx0c2VsZWN0IFJUVzg5X1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNTE6XFx0c2VsZWN0IFJUVzg5Xzg5MjJBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE1Mi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNjA6Y29uZmlnIFJUVzg5Xzg5MjJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNjEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODkyMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNjItXFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTYzOlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE2NDpcXHRzZWxlY3QgUlRXODlfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE2NTpcXHRzZWxlY3QgUlRXODlfODkyMkFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTY2LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3Mjpjb25maWcgUlRXODlfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTczLVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzU6Y29uZmlnIFJUVzg5X0RFQlVHTVNHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3Ni1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg5IGRlYnVnIG1lc3NhZ2Ugc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTc3OlxcdGRlcGVuZHMgb24gUlRXODlfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzg6XFx0c2VsZWN0IFJUVzg5X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3OS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxODQ6Y29uZmlnIFJUVzg5X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTg1LVxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODkgZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxODY6XFx0ZGVwZW5kcyBvbiBSVFc4OV9DT1JFIFxcdTAwMjZcXHUwMDI2IENGRzgwMjExX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTg3OlxcdHNlbGVjdCBSVFc4OV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfUlRXODlfQ09SRSkgKz0gcnR3ODlfY29yZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00LXJ0dzg5X2NvcmUteSArPSBjb3JlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZT0yMz1ydHc4OV9jb3JlLSQoQ09ORklHX1BNKSArPSB3b3cub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToyNTpvYmotJChDT05GSUdfUlRXODlfODg1MUIpICs9IHJ0dzg5Xzg4NTFiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTI2LXJ0dzg5Xzg4NTFiLW9ianMgOj0gcnR3ODg1MWIubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MzE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTFCRSkgKz0gcnR3ODlfODg1MWJlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTMyLXJ0dzg5Xzg4NTFiZS1vYmpzIDo9IHJ0dzg4NTFiZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19SVFc4OV84ODUxQlUpICs9IHJ0dzg5Xzg4NTFidS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zNS1ydHc4OV84ODUxYnUtb2JqcyA6PSBydHc4ODUxYnUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozNzpvYmotJChDT05GSUdfUlRXODlfODg1MkEpICs9IHJ0dzg5Xzg4NTJhLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTM4LXJ0dzg5Xzg4NTJhLW9ianMgOj0gcnR3ODg1MmEubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDM6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJBRSkgKz0gcnR3ODlfODg1MmFlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQ0LXJ0dzg5Xzg4NTJhZS1vYmpzIDo9IHJ0dzg4NTJhZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjQ2Om9iai0kKENPTkZJR19SVFc4OV84ODUyQVUpICs9IHJ0dzg5Xzg4NTJhdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00Ny1ydHc4OV84ODUyYXUtb2JqcyA6PSBydHc4ODUyYXUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo0OTpvYmotJChDT05GSUdfUlRXODlfODg1MkJfQ09NTU9OKSArPSBydHc4OV84ODUyYl9jb21tb24ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNTAtcnR3ODlfODg1MmJfY29tbW9uLW9ianMgOj0gcnR3ODg1MmJfY29tbW9uLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NTI6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCKSArPSBydHc4OV84ODUyYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01My1ydHc4OV84ODUyYi1vYmpzIDo9IHJ0dzg4NTJiLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjU4Om9iai0kKENPTkZJR19SVFc4OV84ODUyQkUpICs9IHJ0dzg5Xzg4NTJiZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01OS1ydHc4OV84ODUyYmUtb2JqcyA6PSBydHc4ODUyYmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2MTpvYmotJChDT05GSUdfUlRXODlfODg1MkJVKSArPSBydHc4OV84ODUyYnUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjItcnR3ODlfODg1MmJ1LW9ianMgOj0gcnR3ODg1MmJ1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NjQ6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCVCkgKz0gcnR3ODlfODg1MmJ0Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTY1LXJ0dzg5Xzg4NTJidC1vYmpzIDo9IHJ0dzg4NTJidC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2OTpvYmotJChDT05GSUdfUlRXODlfODg1MkJURSkgKz0gcnR3ODlfODg1MmJ0ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS03MC1ydHc4OV84ODUyYnRlLW9ianMgOj0gcnR3ODg1MmJ0ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjcyOm9iai0kKENPTkZJR19SVFc4OV84ODUyQykgKz0gcnR3ODlfODg1MmMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzMtcnR3ODlfODg1MmMtb2JqcyA6PSBydHc4ODUyYy5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo3ODpvYmotJChDT05GSUdfUlRXODlfODg1MkNFKSArPSBydHc4OV84ODUyY2Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzktcnR3ODlfODg1MmNlLW9ianMgOj0gcnR3ODg1MmNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJDVSkgKz0gcnR3ODlfODg1MmN1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgyLXJ0dzg5Xzg4NTJjdS1vYmpzIDo9IHJ0dzg4NTJjdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS04My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjg0Om9iai0kKENPTkZJR19SVFc4OV84OTIyQSkgKz0gcnR3ODlfODkyMmEub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtODUtcnR3ODlfODkyMmEtb2JqcyA6PSBydHc4OTIyYS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4ODpvYmotJChDT05GSUdfUlRXODlfODkyMkFFKSArPSBydHc4OV84OTIyYWUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtODktcnR3ODlfODkyMmFlLW9ianMgOj0gcnR3ODkyMmFlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTE6b2JqLSQoQ09ORklHX1JUVzg5Xzg5MjJBVSkgKz0gcnR3ODlfODkyMmF1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTkyLXJ0dzg5Xzg5MjJhdS1vYmpzIDo9IHJ0dzg5MjJhdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjk0OnJ0dzg5X2NvcmUtJChDT05GSUdfUlRXODlfREVCVUcpICs9IGRlYnVnLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTY6b2JqLSQoQ09ORklHX1JUVzg5X1BDSSkgKz0gcnR3ODlfcGNpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTk3LXJ0dzg5X3BjaS15IDo9IHBjaS5vIHBjaV9iZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjk5Om9iai0kKENPTkZJR19SVFc4OV9VU0IpICs9IHJ0dzg5X3VzYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0xMDAtcnR3ODlfdXNiLXkgOj0gdXNiLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTE1PXN0YXRpYyB1MzIgcnR3ODlfYWNwaV90cmF2ZXJzYWxfb2JqZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyLVxcdFxcdGlmICh1bmxpa2VseShvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggPT0gMCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMzpcXHRcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM0LVxcdFxcdFxcdFxcdCAgICBcXFwiJXM6IGludmFsaWQgYnVmZmVyIHR5cGVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ0LVxcdFxcdGlmICh1bmxpa2VseShvYmotXFx1MDAzZXBhY2thZ2UuY291bnQgPT0gMCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NTpcXHRcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ2LVxcdFxcdFxcdFxcdCAgICBcXFwiJXM6IGludmFsaWQgcGFja2FnZSB0eXBlXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MS1cXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogdW5oYW5kbGVkIHR5cGU6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTYzLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTgwPXJ0dzg5X2FjcGlfZXZhbHVhdGVfbWV0aG9kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgY29uc3QgY2hhciAqbWV0aG9kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtOTAtXFx0aWYgKCFyb290KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6OTE6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05Mi1cXHRcXHRcXHQgICAgXFxcImFjcGkgKCVzKTogZmFpbGVkIHRvIGdldCByb290XFxcXG5cXFwiLCBtZXRob2QpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtOTctXFx0aWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6OTg6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05OS1cXHRcXHRcXHQgICAgXFxcImFjcGkgKCVzKTogZmFpbGVkIHRvIGdldCBoYW5kbGVcXFxcblxcXCIsIG1ldGhvZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMDQtXFx0aWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTA1OlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTA2LVxcdFxcdFxcdCAgICBcXFwiYWNwaSAoJXMpOiBmYWlsZWQgdG8gZXZhbHVhdGUgb2JqZWN0XFxcXG5cXFwiLCBtZXRob2QpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTEyLVxcdGlmICh1bmxpa2VseShsZW4gPT0gMCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxMTM6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMTQtXFx0XFx0XFx0ICAgIFxcXCJhY3BpICglcyk6IGZhaWxlZCB0byB0cmF2ZXJzYWwgb2JqIGxlblxcXFxuXFxcIiwgbWV0aG9kKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTEzMT1pbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3ZhbHVlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEzNC1cXHRpZiAob2JqLVxcdTAwM2V0eXBlICE9IEFDUElfVFlQRV9JTlRFR0VSKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTM1OlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTM2LVxcdFxcdFxcdCAgICBcXFwiYWNwaTogZXhwZWN0IGludGVnZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MTUyPWludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHooc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTYwLVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE2MTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2Mi1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTY3LVxcdGlmIChsZW4gXFx1MDAzYyBzaXplb2YoKnB0cikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNjg6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2OS1cXHRcXHRcXHQgICAgX19mdW5jX18sIGxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzQtXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfNmdoel9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE3NTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzYtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xODAtXFx0aWYgKGxlbiBcXHUwMDNjIGV4cGVjdF9sZW4pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxODE6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBleHBlY3QgJXUgYnV0IGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTgyLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgZXhwZWN0X2xlbiwgbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE4OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxOTA6XFx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcInBvbGljeV82Z2h6OiBcXFwiLCAqcG9saWN5XzZnaHosXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTkxLVxcdFxcdCAgICAgICBleHBlY3RfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTIwND1pbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV82Z2h6X3NwKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxMS1cXHRpZiAob2JqLVxcdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyMTI6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMTMtXFx0XFx0XFx0ICAgIFxcXCJhY3BpOiBleHBlY3QgYnVmZmVyIGJ1dCB0eXBlOiAlZFxcXFxuXFxcIiwgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxOC1cXHRpZiAoYnVmX2xlbiBcXHUwMDNjIHNpemVvZigqcHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIxOTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjIwLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjUtXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfNmdoel9zcF9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIyNjpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjctXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjM0OlxcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCJwb2xpY3lfNmdoel9zcDogXFxcIiwgKnBvbGljeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzUtXFx0XFx0ICAgICAgIHNpemVvZigqcHRyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yNDg9aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel92bHAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjU1LVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI1NjpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1Ny1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjYyLVxcdGlmIChidWZfbGVuIFxcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjYzOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNjQtXFx0XFx0XFx0ICAgIF9fZnVuY19fLCBidWZfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2OS1cXHRpZiAoIWNoa19hY3BpX3BvbGljeV82Z2h6X3ZscF9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI3MDpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzEtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mjc4OlxcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCJwb2xpY3lfNmdoel92bHA6IFxcXCIsICpwb2xpY3ksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjc5LVxcdFxcdCAgICAgICBzaXplb2YoKnB0cikpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MjkxPXN0YXRpYyBpbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV90YXMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjk4LVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI5OTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMwMC1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzA1LVxcdGlmIChidWZfbGVuIFxcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzA2OlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMDctXFx0XFx0XFx0ICAgIF9fZnVuY19fLCBidWZfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMxMi1cXHRpZiAoIWNoa19hY3BpX3BvbGljeV90YXNfc2lnKHB0cikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMTM6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBiYWQgc2lnbmF0dXJlXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzE0LVxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMyMTpcXHRydHc4OV9oZXhfZHVtcChydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwicG9saWN5X3RhczogXFxcIiwgKnBvbGljeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMjItXFx0XFx0ICAgICAgIHNpemVvZigqcHRyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0zMzY9aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfcmVnX3J1bGVzKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM0My1cXHRpZiAob2JqLVxcdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNDQ6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNDUtXFx0XFx0XFx0ICAgIFxcXCJhY3BpOiBleHBlY3QgYnVmZmVyIGJ1dCB0eXBlOiAlZFxcXFxuXFxcIiwgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM1MC1cXHRpZiAoYnVmX2xlbiBcXHUwMDNjIHNpemVvZigqcHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM1MTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzUyLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTctXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfcmVnX3J1bGVzX3NpZyhwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzU4OlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogYmFkIHNpZ25hdHVyZVxcXFxuXFxcIiwgX19mdW5jX18pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM1OS1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNjY6XFx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcInBvbGljeV9yZWdfcnVsZXM6IFxcXCIsICpwb2xpY3ksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzY3LVxcdFxcdCAgICAgICBzaXplb2YoKnB0cikpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzcxPWludCBydHc4OV9hY3BpX2V2YWx1YXRlX2RzbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODAtXFx0aWYgKCFvYmopIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozODE6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODItXFx0XFx0XFx0ICAgIFxcXCJhY3BpIGRzbSBmYWlsIHRvIGV2YWx1YXRlIGZ1bmM6ICVkXFxcXG5cXFwiLCBmdW5jKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM4NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozODY6XFx0aWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ182R19CUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODctXFx0XFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV82Z2h6KHJ0d2Rldiwgb2JqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM4OC1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIFxcdTAwMjZyZXMtXFx1MDAzZXUucG9saWN5XzZnaHopO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM4OTpcXHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfNkdIWl9TUF9TVVApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzkwLVxcdFxcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel9zcChydHdkZXYsIG9iaixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx1MDAyNnJlcy1cXHUwMDNldS5wb2xpY3lfNmdoel9zcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzkyOlxcdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ182R0haX1ZMUF9TVVApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzkzLVxcdFxcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel92bHAocnR3ZGV2LCBvYmosXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk0LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBcXHUwMDI2cmVzLVxcdTAwM2V1LnBvbGljeV82Z2h6X3ZscCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mzk1OlxcdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ19UQVNfRU4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk2LVxcdFxcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfdGFzKHJ0d2Rldiwgb2JqLCBcXHUwMDI2cmVzLVxcdTAwM2V1LnBvbGljeV90YXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM5NzpcXHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfUkVHX1JVTEVTX0VOKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5OC1cXHRcXHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3JlZ19ydWxlcyhydHdkZXYsIG9iaixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTQwNz1pbnQgcnR3ODlfYWNwaV9ldmFsdWF0ZV9ydGFnKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQxOS1cXHRpZiAoYnVmX2xlbiAhPSBzaXplb2YoKnJlcykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MjA6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQyMS1cXHRcXHRcXHQgICAgX19mdW5jX18sIGJ1Zl9sZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQyODpcXHRydHc4OV9oZXhfZHVtcChydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiYW50ZW5uYV9nYWluOiBcXFwiLCByZXMsIHNpemVvZigqcmVzKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDI5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NDM1PWVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBydHc4OV9hY3BpX3Nhcl9nZXRfc3ViYmFuZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzktXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NDA6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NDEtXFx0XFx0XFx0ICAgIFxcXCJjZW50ZXIgZnJlcSAldSB0byBBQ1BJIFNBUiBzdWJiYW5kIGlzIHVuaGFuZGxlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ0NC1cXHRjYXNlIDI0MTIgLi4uIDI0ODQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDQ1OlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl8yR0haX1NVQkJBTkQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDQ2LVxcdGNhc2UgNTE4MCAuLi4gNTI0MDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NDc6XFx0XFx0cmV0dXJuIFJUVzg5X0FDUElfU0FSXzVHSFpfU1VCQkFORF8xO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ0OC1cXHRjYXNlIDUyNTAgLi4uIDUzMjA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDQ5OlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfMjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NTAtXFx0Y2FzZSA1NTAwIC4uLiA1NzIwOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ1MTpcXHRcXHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNUdIWl9TVUJCQU5EXzJFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ1Mi1cXHRjYXNlIDU3NDUgLi4uIDU4ODU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDUzOlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfM180O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ1NC1cXHRjYXNlIDU5NTUgLi4uIDYxNTU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDU1OlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfNV9MO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ1Ni1cXHRjYXNlIDYxNzUgLi4uIDY0MTU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDU3OlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfNV9IO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ1OC1cXHRjYXNlIDY0MzUgLi4uIDY1MTU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDU5OlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfNjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjAtXFx0Y2FzZSA2NTM1IC4uLiA2Njk1OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ2MTpcXHRcXHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzdfTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjItXFx0Y2FzZSA2NzE1IC4uLiA2ODU1OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ2MzpcXHRcXHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzdfSDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDY1OlxcdC8qIGZyZXEgNjg3NSAoY2ggMTg1LCAyME1Ieikgc3BhbnMgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzdfSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ2NjpcXHQgKiBhbmQgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzgsIHNvIGRpcmVjdGx5IGRlc2NyaWJlIGl0IHdpdGhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjctXFx0ICogc3RydWN0IHJ0dzg5XzZnaHpfc3Bhbi5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ3MC1cXHRjYXNlIDY4OTUgLi4uIDcxMTU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDcxOlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfODtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NzItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NDc1PWVudW0gcnR3ODlfYmFuZCBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kX3RvX2JhbmQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDc5LVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDgwOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDgxLVxcdFxcdFxcdCAgICBcXFwiQUNQSSBTQVIgc3ViYmFuZCAldSB0byBiYW5kIGlzIHVuaGFuZGxlZFxcXFxuXFxcIiwgc3ViYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDgyLVxcdFxcdGZhbGx0aHJvdWdoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4MzpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzJHSFpfU1VCQkFORDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0ODQ6XFx0XFx0cmV0dXJuIFJUVzg5X0JBTkRfMkc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDg1OlxcdGNhc2UgUlRXODlfQUNQSV9TQVJfNUdIWl9TVUJCQU5EXzE6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDg2OlxcdFxcdHJldHVybiBSVFc4OV9CQU5EXzVHO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4NzpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzVHSFpfU1VCQkFORF8yOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4ODpcXHRcXHRyZXR1cm4gUlRXODlfQkFORF81RztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0ODk6XFx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfMkU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDkwOlxcdFxcdHJldHVybiBSVFc4OV9CQU5EXzVHO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5MTpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzVHSFpfU1VCQkFORF8zXzQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDkyOlxcdFxcdHJldHVybiBSVFc4OV9CQU5EXzVHO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5MzpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF81X0w6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDk0OlxcdFxcdHJldHVybiBSVFc4OV9CQU5EXzZHO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5NTpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF81X0g6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDk2OlxcdFxcdHJldHVybiBSVFc4OV9CQU5EXzZHO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5NzpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF82OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5ODpcXHRcXHRyZXR1cm4gUlRXODlfQkFORF82RztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0OTk6XFx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfN19MOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUwMDpcXHRcXHRyZXR1cm4gUlRXODlfQkFORF82RztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MDE6XFx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfN19IOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUwMjpcXHRcXHRyZXR1cm4gUlRXODlfQkFORF82RztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MDM6XFx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfODpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MDQ6XFx0XFx0cmV0dXJuIFJUVzg5X0JBTkRfNkc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTA1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTUzMD1zdGF0aWMgczE2IHJ0dzg5X2FjcGlfc2FyX25vcm1hbGl6ZV9ocF92YWwodTggdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTUzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MzY6XFx0QlVJTERfQlVHX09OKGZjdCBcXHUwMDNlIFRYUFdSX0ZBQ1RPUl9PRl9SVFc4OV9BQ1BJX1NBUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUzODpcXHRyZXMgPSAoYmlhcyBcXHUwMDNjXFx1MDAzYyBUWFBXUl9GQUNUT1JfT0ZfUlRXODlfQUNQSV9TQVIpICtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1Mzk6XFx0ICAgICAgKHYgXFx1MDAzY1xcdTAwM2MgKFRYUFdSX0ZBQ1RPUl9PRl9SVFc4OV9BQ1BJX1NBUiAtIGZjdCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU0MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NDE6XFx0cmV0dXJuIG1pbl90KHMzMiwgcmVzLCBNQVhfVkFMX09GX1JUVzg5X0FDUElfU0FSKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NDItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NTQ0PXN0YXRpYyBzMTYgcnR3ODlfYWNwaV9zYXJfbm9ybWFsaXplX3J0X3ZhbCh1OCB2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU0OTpcXHRCVUlMRF9CVUdfT04oZmN0IFxcdTAwM2UgVFhQV1JfRkFDVE9SX09GX1JUVzg5X0FDUElfU0FSKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTUxOlxcdHJlcyA9IHYgXFx1MDAzY1xcdTAwM2MgKFRYUFdSX0ZBQ1RPUl9PRl9SVFc4OV9BQ1BJX1NBUiAtIGZjdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU1MzpcXHRyZXR1cm4gbWluX3QoczMyLCByZXMsIE1BWF9WQUxfT0ZfUlRXODlfQUNQSV9TQVIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU1NC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz01NTc9dm9pZCBydHc4OV9hY3BpX3Nhcl9sb2FkX3N0ZF9sZWdhY3koc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2NjpcXHRmb3IgKHN1YmJhbmQgPSAwOyBzdWJiYW5kIFxcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1NVQkJBTkQ7IHN1YmJhbmQrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2NzpcXHRcXHRmb3IgKHBhdGggPSAwOyBwYXRoIFxcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1JGX1BBVEg7IHBhdGgrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU2OC1cXHRcXHRcXHR1OCBhbnRpZHggPSByZWMtXFx1MDAzZXJmcGF0aF90b19hbnRpZHgocGF0aCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU3MDpcXHRcXHRcXHRpZiAoc3ViYmFuZCBcXHUwMDNjIFJUVzg5X0FDUElfU0FSX1NVQkJBTkRfTlJfTEVHQUNZKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU3MS1cXHRcXHRcXHRcXHRlbnQtXFx1MDAzZXZbc3ViYmFuZF1bcGF0aF0gPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTczLVxcdFxcdFxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NzQ6XFx0XFx0XFx0XFx0ZW50LVxcdTAwM2V2W3N1YmJhbmRdW3BhdGhdID0gTUFYX1ZBTF9PRl9SVFc4OV9BQ1BJX1NBUjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NzUtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NTgwPXZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zdGRfaGFzXzZnaHooc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4OTpcXHRCVUlMRF9CVUdfT04oUlRXODlfQUNQSV9TQVJfU1VCQkFORF9OUl9IQVNfNkdIWiAhPSBOVU1fT0ZfUlRXODlfQUNQSV9TQVJfU1VCQkFORCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU5MTpcXHRmb3IgKHN1YmJhbmQgPSAwOyBzdWJiYW5kIFxcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1NVQkJBTkQ7IHN1YmJhbmQrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU5MjpcXHRcXHRmb3IgKHBhdGggPSAwOyBwYXRoIFxcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1JGX1BBVEg7IHBhdGgrKykge1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzowOToxOC4zNDgxMTExNDdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMjE0OTExMjk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVTQiBXaXJlbGVzcyBBZGFwdGVyIEVtdWxhdGlvbiBhbmQgRnV6emluZyBTdHJhdGVneSoqXG5cbk9rYXksIHNvIEkgc2VlIHRoZXNlIFJUVzg5IG1vZGVscyBoYXZlIFVTQiBpbnRlcmZhY2VzIOKAkyBgUlRXODlfODg1MUJVYCwgYFJUVzg5Xzg4NTJBVWAsIGBSVFc4OV84ODUyQlVgLCBgUlRXODlfODg1MkNVYCwgYW5kIGBSVFc4OV84OTIyQVVgLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHdoZXRoZXIgd2UgY2FuIGVmZmVjdGl2ZWx5IGVtdWxhdGUgdGhlc2UgVVNCIHdpcmVsZXNzIGFkYXB0ZXJzLCBwYXJ0aWN1bGFybHkgbGV2ZXJhZ2luZyBVU0IgUmF3IEdhZGdldCBhbmQgc3l6a2FsbGVyJ3MgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiBzeXprYWxsZXIgY2FuIGhhbmRsZSB0aGlzIHR5cGUgb2YgZGV2aWNlLlxuXG5SaWdodCwgdGltZSB0byBjaGVjayBob3cgc3l6a2FsbGVyIGFwcHJvYWNoZXMgVVNCIGRyaXZlciBmdXp6aW5nLiAgSSByZWNhbGwgaXQgaGFzIGBzeXpfdXNiX2Nvbm5lY3RgLCBgc3l6X3VzYl9jb250cm9sX2lvYCwgYW5kIHN1cHBvcnRzIHJhdy1nYWRnZXQgYW5kIGR1bW15X2hjZCBlbXVsYXRpb24uIFRoaXMgaXMgcHJvbWlzaW5nOyBzeXprYWxsZXIncyBhYmlsaXR5IHRvIGVtdWxhdGUgKmFueSogVVNCIGRldmljZSwgcHJvYmUgZHJpdmVycywgZnV6eiB0aGVtLCBzZW5kIHBhY2tldHMsIGhhbmRsZSBmaXJtd2FyZSBsb2FkaW5nIOKAkyB0aGF0J3MgcHJlY2lzZWx5IHdoYXQgSSBuZWVkLlxuXG5Ob3csIEkgd2FudCB0byBjb25maXJtIHNvbWV0aGluZyBjcml0aWNhbDogQ2FuIHdlIHRyaWdnZXIgdGhlIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBmdW5jdGlvbiBpbiB0aGUgZHJpdmVyPyBJdCdzIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIGl0cyBjYWxsIHBhdGggYW5kIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIEkgbmVlZCB0byBrbm93IGhvdyBpdCdzIGJlaW5nIGNhbGxlZC5cblxuTGV0J3MgZG8gYSBxdWljayBgZ3JlcGAgZm9yIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCB3aXRoaW4gdGhlIGNvZGViYXNlIHRvIG1hcCBvdXQgaXRzIHVzYWdlLiBJIG5lZWQgdG8gc2VlIHRoZSBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODM0OSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzowOToyMS41NjMwMjQ5NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjQzMjAxMTQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTI5Mjg9c3RhdGljIHN0cnVjdCBza19idWZmICpydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyOTc4OnN0YXRpYyBpbnQgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI5NzktXFx0XFx0XFx0XFx0XFx0c3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0zMDcxPWludCBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODA6XFx0cnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDgxLVxcdFxcdFxcdFxcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9QU19QT0xMLCBcXHUwMDI2cGt0X2lkX3BzX3BvbGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDgyOlxcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4My1cXHRcXHRcXHRcXHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfTlVMTF9EQVRBLCBcXHUwMDI2cGt0X2lkX251bGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDg0OlxcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4NS1cXHRcXHRcXHRcXHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfUU9TX05VTEwsIFxcdTAwMjZwa3RfaWRfcW9zX251bGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTk2Mjc9aW50IHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjM0LVxcdGlmIChlbmFibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6OTYzNTpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk2MzYtXFx0XFx0XFx0XFx0XFx0XFx0ICAgUlRXODlfUEtUX09GTERfVFlQRV9BUlBfUlNQLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTk2NzU9aW50IHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTY4NC1cXHRpZiAoZW5hYmxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk2ODU6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05Njg2LVxcdFxcdFxcdFxcdFxcdFxcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfQVJQX1JTUCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0xMDA0Mj1pbnQgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjEwMDcxOlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzItXFx0XFx0XFx0XFx0XFx0ICAgUlRXODlfUEtUX09GTERfVFlQRV9FQVBPTF9LRVksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzctXFx0aWYgKGd0a19pbmZvLVxcdTAwM2VpZ3RrX2tleWlkKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjEwMDc4OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzktXFx0XFx0XFx0XFx0XFx0XFx0ICAgUlRXODlfUEtUX09GTERfVFlQRV9TQV9RVUVSWSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MjMuODA2MjMyMTJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNjc5MzYwMTcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSSdtIGdvaW5nIHRvIHB1bGwgdXAgdGhhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jYCBmaWxlIGFuZCBzdGFydCBleGFtaW5pbmcgaXQuIE15IGltbWVkaWF0ZSBmb2N1cyB3aWxsIGJlIG9uIHRoZSBmdW5jdGlvbiBpdHNlbGYsIGFuZCwgb2YgY291cnNlLCB0aGUgc3Vycm91bmRpbmcgY29kZSBjb250ZXh0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGZpdHMgaW50byB0aGUgYmlnZ2VyIHBpY3R1cmUgb2YgdGhlIFJlYWx0ZWsgd2lyZWxlc3MgZmlybXdhcmUgbG9hZGluZyBwcm9jZXNzIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlci4gSSdtIGV4cGVjdGluZyBzb21lIHN0YW5kYXJkIGZpcm13YXJlIGludGVyYWN0aW9uIGNvZGUsIHBvdGVudGlhbGx5IGludm9sdmluZyB0aGluZ3MgbGlrZSByZXF1ZXN0aW5nIGZpcm13YXJlIGJsb2JzLCBtZW1vcnkgbWFwcGluZywgd3JpdGluZyB0byBzcGVjaWZpYyByZWdpc3RlcnMsIGFuZCBzb21lIGVycm9yIGhhbmRsaW5nIHRvIGVuc3VyZSByb2J1c3RuZXNzLiBJJ2xsIG5lZWQgdG8gbG9vayBmb3IgYW55IHVudXN1YWwgYXBwcm9hY2hlcyB0aGV5J3ZlIHRha2VuIG9yIGFueSBjdXN0b20gb3B0aW1pemF0aW9ucyB0aGV5J3ZlIGltcGxlbWVudGVkLiBNeSBnb2FsIGlzIHRvIHF1aWNrbHkgZ3Jhc3AgaXRzIGNvcmUgcHVycG9zZSBhbmQgcG90ZW50aWFsIHBvaW50cyBvZiBpbnRlcmVzdCBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLCBlc3BlY2lhbGx5IHJlZ2FyZGluZyBhbnkgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyBvciBwZXJmb3JtYW5jZSBib3R0bGVuZWNrcy4gSSBhbHNvIGhhdmUgdG8ga2VlcCBpbiBtaW5kLCBpcyB0aGUgZmlsZSByZWxhdGVkIHRvIGEgc3BlY2lmaWMgaGFyZHdhcmUgb3IgYSBtb3JlIGdlbmVyaWMgaW1wbGVtZW50YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMjc4LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MjYuNDg1NTk1MjQzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQwNjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyOTc1LFxuICBcIkxpbmVDb3VudFwiOiA3MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyOTc1OlxcdFxcdHJldHVybiBza2I7XFxuMjk3NjpcXHR9XFxuMjk3NzpcXHRcXG4yOTc4OlxcdHN0YXRpYyBpbnQgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuMjk3OTpcXHRcXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbjI5ODA6XFx0XFx0XFx0XFx0XFx0XFx0ZW51bSBydHc4OV9md19wa3Rfb2ZsZF90eXBlIHR5cGUsXFxuMjk4MTpcXHRcXHRcXHRcXHRcXHRcXHR1OCAqaWQpXFxuMjk4MjpcXHR7XFxuMjk4MzpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmID0gcnR3dmlmX2xpbmtfdG9fdmlmKHJ0d3ZpZl9saW5rKTtcXG4yOTg0OlxcdFxcdGludCBsaW5rX2lkID0gaWVlZTgwMjExX3ZpZl9pc19tbGQodmlmKSA/IHJ0d3ZpZl9saW5rLVxcdTAwM2VsaW5rX2lkIDogLTE7XFxuMjk4NTpcXHRcXHRzdHJ1Y3QgcnR3ODlfcGt0b2ZsZF9pbmZvICppbmZvO1xcbjI5ODY6XFx0XFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4yOTg3OlxcdFxcdGludCByZXQ7XFxuMjk4ODpcXHRcXG4yOTg5OlxcdFxcdGluZm8gPSBremFsbG9jX29iaigqaW5mbyk7XFxuMjk5MDpcXHRcXHRpZiAoIWluZm8pXFxuMjk5MTpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4yOTkyOlxcdFxcbjI5OTM6XFx0XFx0c3dpdGNoICh0eXBlKSB7XFxuMjk5NDpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFNfUE9MTDpcXG4yOTk1OlxcdFxcdFxcdHNrYiA9IGllZWU4MDIxMV9wc3BvbGxfZ2V0KHJ0d2Rldi1cXHUwMDNlaHcsIHZpZik7XFxuMjk5NjpcXHRcXHRcXHRicmVhaztcXG4yOTk3OlxcdFxcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9QUk9CRV9SU1A6XFxuMjk5ODpcXHRcXHRcXHRza2IgPSBpZWVlODAyMTFfcHJvYmVyZXNwX2dldChydHdkZXYtXFx1MDAzZWh3LCB2aWYpO1xcbjI5OTk6XFx0XFx0XFx0YnJlYWs7XFxuMzAwMDpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfTlVMTF9EQVRBOlxcbjMwMDE6XFx0XFx0XFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXFx1MDAzZWh3LCB2aWYsIGxpbmtfaWQsIGZhbHNlKTtcXG4zMDAyOlxcdFxcdFxcdGJyZWFrO1xcbjMwMDM6XFx0XFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX1FPU19OVUxMOlxcbjMwMDQ6XFx0XFx0XFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXFx1MDAzZWh3LCB2aWYsIGxpbmtfaWQsIHRydWUpO1xcbjMwMDU6XFx0XFx0XFx0YnJlYWs7XFxuMzAwNjpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfRUFQT0xfS0VZOlxcbjMwMDc6XFx0XFx0XFx0c2tiID0gcnR3ODlfZWFwb2xfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xcbjMwMDg6XFx0XFx0XFx0YnJlYWs7XFxuMzAwOTpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfU0FfUVVFUlk6XFxuMzAxMDpcXHRcXHRcXHRza2IgPSBydHc4OV9zYV9xdWVyeV9nZXQocnR3ZGV2LCBydHd2aWZfbGluayk7XFxuMzAxMTpcXHRcXHRcXHRicmVhaztcXG4zMDEyOlxcdFxcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9BUlBfUlNQOlxcbjMwMTM6XFx0XFx0XFx0c2tiID0gcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChydHdkZXYsIHJ0d3ZpZl9saW5rKTtcXG4zMDE0OlxcdFxcdFxcdGJyZWFrO1xcbjMwMTU6XFx0XFx0ZGVmYXVsdDpcXG4zMDE2OlxcdFxcdFxcdHJldCA9IC1FSU5WQUw7XFxuMzAxNzpcXHRcXHRcXHRnb3RvIGVycjtcXG4zMDE4OlxcdFxcdH1cXG4zMDE5OlxcdFxcbjMwMjA6XFx0XFx0aWYgKCFza2IpIHtcXG4zMDIxOlxcdFxcdFxcdHJldCA9IC1FTk9NRU07XFxuMzAyMjpcXHRcXHRcXHRnb3RvIGVycjtcXG4zMDIzOlxcdFxcdH1cXG4zMDI0OlxcdFxcbjMwMjU6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZChydHdkZXYsIFxcdTAwMjZpbmZvLVxcdTAwM2VpZCwgc2tiKTtcXG4zMDI2OlxcdFxcdGtmcmVlX3NrYihza2IpO1xcbjMwMjc6XFx0XFxuMzAyODpcXHRcXHRpZiAocmV0KVxcbjMwMjk6XFx0XFx0XFx0Z290byBlcnI7XFxuMzAzMDpcXHRcXG4zMDMxOlxcdFxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmluZm8tXFx1MDAzZWxpc3QsIFxcdTAwMjZydHd2aWZfbGluay1cXHUwMDNlZ2VuZXJhbF9wa3RfbGlzdCk7XFxuMzAzMjpcXHRcXHQqaWQgPSBpbmZvLVxcdTAwM2VpZDtcXG4zMDMzOlxcdFxcdHJldHVybiAwO1xcbjMwMzQ6XFx0XFxuMzAzNTpcXHRlcnI6XFxuMzAzNjpcXHRcXHRrZnJlZShpbmZvKTtcXG4zMDM3OlxcdFxcdHJldHVybiByZXQ7XFxuMzAzODpcXHR9XFxuMzAzOTpcXHRcXG4zMDQwOlxcdHZvaWQgcnR3ODlfZndfcmVsZWFzZV9nZW5lcmFsX3BrdF9saXN0X3ZpZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuMzA0MTpcXHRcXHRcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbjMwNDI6XFx0XFx0XFx0XFx0XFx0XFx0ICAgYm9vbCBub3RpZnlfZncpXFxuMzA0MzpcXHR7XFxuMzA0NDpcXHRcXHRzdHJ1Y3QgbGlzdF9oZWFkICpwa3RfbGlzdCA9IFxcdTAwMjZydHd2aWZfbGluay1cXHUwMDNlZ2VuZXJhbF9wa3RfbGlzdDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MjYuNDg1OTM3MzYzWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDE1MjIzMDgwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSZWNlbnQgUlRXODkgRHJpdmVyIEZpeCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggZm9yIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBpcyBpbnRlcmVzdGluZy4gVGhlIGtleSBjaGFuZ2UgaXMgZW5zdXJpbmcgdGhlIHJldHVybiBjb2RlIGFjY3VyYXRlbHkgcmVmbGVjdHMgZmFpbHVyZXMgZnJvbSBgcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZGAgaXRzZWxmLCByYXRoZXIgdGhhbiBhbHdheXMgZGVmYXVsdGluZyB0byBgLUVOT01FTWAuIFByZXZpb3VzbHksIGlmIHRoYXQgZnVuY3Rpb24gcmV0dXJuZWQsIHNheSwgYC1FQlVTWWAgb3IgYC1FSU5WQUxgLCB3ZSdkIGxvc2UgdGhhdCBjcnVjaWFsIGVycm9yIGluZm9ybWF0aW9uLCBhbmQgaXQgd291bGQgbWlzbGVhZCB0aGUgY2FsbGVyLiBHb29kIGNhdGNoLlxuXG5Ob3csIGEgYnJvYWRlciBxdWVzdGlvbiBhcmlzZXM6IGlzIHRoZSBSVFc4OSBVU0IgZHJpdmVyIGZ1enplZCBvciBmdXp6YWJsZSB3aXRoaW4gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBzeXprYWxsZXI/IEl0IGlzIGFsd2F5cyBpbXBvcnRhbnQgdG8gY29uc2lkZXIgaG93IHRoZXNlIGNoYW5nZXMgd2lsbCBpbXBhY3QgZnV6emVyIGNvdmVyYWdlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgbmV3IGNvZGUgcGF0aCBjYW4gYWN0dWFsbHkgYmUgcmVhY2hlZCB0aHJvdWdoIGZ1enppbmcuIExldCdzIHNlZS4uLiB0aGUgaW5zdHJ1Y3Rpb25zIHNheSB0byBkaXNyZWdhcmQgcGF0Y2hlcyB0aGF0IGRlYWwgd2l0aDogY29kZSBwYXRocyBpbXBvc3NpYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcnMsIGFuZCB0ZWFyLWRvd24gY2FsbGJhY2tzLiBUaGF0IG5hcnJvd3MgaXQgZG93bi5cblxuV2FpdCBhIHNlY29uZC4gTGV0J3MgYW5hbHl6ZSB3aGV0aGVyIFJUVzg5IGFjdHVhbGx5IGZ1bmN0aW9ucyBkaWZmZXJlbnRseSBvdmVyIFVTQiB2cy4gUENJLiBJZiBpdCdzIHRoZSBVU0IgZHJpdmVyLCBjYW4gaXQgYmUgcHJvYmVkIGFuZCBmdXp6ZWQgdGhyb3VnaCBhIFVTQiBlbXVsYXRpb24gc2V0dXA/IFRoaW5rIG9mIHJhdyBVU0IgZ2FkZ2V0IG1vZGUsIHNpbWlsYXIgdG8gd2hhdCBzeXprYWxsZXIgdXNlcy4gV2hhdCBuZWVkcyB0byBoYXBwZW4gZHVyaW5nIHRoZSBgcnR3ODlfdXNiYCBwcm9iZSByb3V0aW5lPyBEb2VzIGl0IG5lZWQgZmlybXdhcmUgdG8gYmUgbG9hZGVkIG9yIGEgZGV2aWNlIHRvIGNvbW11bmljYXRlIGJlZm9yZSBleGVjdXRpb24gY2FuIGV2ZW4gb2NjdXI/IEkgbmVlZCB0byBkaWcgaW50byB0aGUgY29kZS4gVGltZSB0byBjaGVjayBgcnR3ODlfdXNiLmNgIGFuZCBwb3RlbnRpYWxseSBhbHNvIGBydHc4OS9jb3JlLmNgIG9yIGV2ZW4gYHJ0dzg5L21hYzgwMjExYCB0byBmdWxseSB1bmRlcnN0YW5kIHRoZSBzZXR1cCBhbmQgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIFRoYXQncyB0aGUgYmVzdCB3YXkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBjaGFuZ2UgaXMgaW1wb3J0YW50IHRvIGZ1enplcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNzc3LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MzAuNjM4MTcyNDFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkxMTc2Mjc4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg5X2Z3X2gyY19cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDI0NjcgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmM9MTI9cnR3ODlfY2FtX2dldF9zZWNfa2V5X2NtZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jLTIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmM6MjI6XFx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGNtZF9sZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjMtXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jPTIxNT1zdGF0aWMgaW50IF9fcnR3ODlfY2FtX2RldGFjaF9zZWNfY2FtKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjM4LVxcdFxcdFxcdFxcdCAgXFxcImZhaWxlZCB0byB1cGRhdGUgZGN0bCBjYW0gZGVsIGtleTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jYW0uYzoyMzk6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluaywgTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jLTI0MC1cXHRcXHRcXHRcXHQgICAgICAgUlRXODlfUk9MRV9JTkZPX0NIQU5HRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jPTI0OD1zdGF0aWMgaW50IF9fcnR3ODlfY2FtX2F0dGFjaF9zZWNfY2FtKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjc5LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jOjI4MDpcXHRyZXQgPSBydHc4OV9md19oMmNfY2FtKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLCBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjgxLVxcdFxcdFxcdCAgICAgICBSVFc4OV9ST0xFX0lORk9fQ0hBTkdFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTc0OT1zdGF0aWMgaW50IF9fbWNjX2Z3X3JlcV90c2Yoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1NjQgKnRzZl9yZWYsIHU2NCAqdHNmX2F1eClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTc2MC1cXHRyZXEubWFjaWRfeSA9IGF1eC1cXHUwMDNlcnR3dmlmX2xpbmstXFx1MDAzZW1hY19pZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzo3NjE6XFx0cmV0ID0gcnR3ODlfZndfaDJjX21jY19yZXFfdHNmKHJ0d2RldiwgXFx1MDAyNnJlcSwgXFx1MDAyNnJwdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtNzYyLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTc3ND1zdGF0aWMgaW50IF9fbXJjX2Z3X3JlcV90c2Yoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1NjQgKnRzZl9yZWYsIHU2NCAqdHNmX2F1eClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTc5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzo3OTE6XFx0cmV0ID0gcnR3ODlfZndfaDJjX21yY19yZXFfdHNmKHJ0d2RldiwgXFx1MDAyNmFyZywgXFx1MDAyNnJwdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtNzkyLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTE4Njg9c3RhdGljIGludCBfX21jY19md19hZGRfcm9sZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV9tY2Nfcm9sZSAqcm9sZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTE4OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MTkwMDpcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX21jYyhydHdkZXYsIFxcdTAwMjZyZXEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTE5MDEtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMTkwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoxOTA3OlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tY2NfbWFjaWRfYml0bWFwKHJ0d2RldiwgbWNjLVxcdTAwM2Vncm91cCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0xOTA4LVxcdFxcdFxcdFxcdFxcdCAgICByb2xlLVxcdTAwM2VydHd2aWZfbGluay1cXHUwMDNlbWFjX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MTk1MD1zdGF0aWMgaW50IF9fbWNjX2Z3X2FkZF9idF9yb2xlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTE5NjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MTk2MTpcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX21jYyhydHdkZXYsIFxcdTAwMjZyZXEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTE5NjItXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MTk4NT1zdGF0aWMgaW50IF9fbWNjX2Z3X3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCByZXBsYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjA0Ni1cXHRpZiAoc3luYy1cXHUwMDNlZW5hYmxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjA0NzpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfbWNjX3N5bmMocnR3ZGV2LCByZXEuZ3JvdXAsIHN5bmMtXFx1MDAzZW1hY2lkX3NyYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMDQ4LVxcdFxcdFxcdFxcdFxcdCAgICBzeW5jLVxcdTAwM2VtYWNpZF90Z3QsIHN5bmMtXFx1MDAzZW9mZnNldCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMDU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIwNjA6XFx0cmV0ID0gcnR3ODlfZndfaDJjX3N0YXJ0X21jYyhydHdkZXYsIFxcdTAwMjZyZXEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIwNjEtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjA5NT1zdGF0aWMgaW50IF9fbXJjX2Z3X3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCByZXBsYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjE0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMTUwOlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfYWRkKHJ0d2RldiwgXFx1MDAyNmFkZF9hcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIxNTEtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjE2OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMTcwOlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfc3luYyhydHdkZXYsIFxcdTAwMjZzeW5jX2FyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjE3MS1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIxODE6XFx0cmV0ID0gcnR3ODlfZndfaDJjX21yY19zdGFydChydHdkZXYsIFxcdTAwMjZzdGFydF9hcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIxODItXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjE5MT1zdGF0aWMgaW50IF9fbWNjX2Z3X3NldF9kdXJhdGlvbl9ub19idChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgc3luY19jaGFuZ2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjIxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMjExOlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tY2Nfc2V0X2R1cmF0aW9uKHJ0d2RldiwgXFx1MDAyNnJlcSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjIxMi1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMjIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIyMjE6XFx0cmV0ID0gcnR3ODlfZndfaDJjX21jY19zeW5jKHJ0d2RldiwgbWNjLVxcdTAwM2Vncm91cCwgc3luYy1cXHUwMDNlbWFjaWRfc3JjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyMjItXFx0XFx0XFx0XFx0ICAgIHN5bmMtXFx1MDAzZW1hY2lkX3RndCwgc3luYy1cXHUwMDNlb2Zmc2V0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTIyMzI9c3RhdGljIGludCBfX21yY19md19zZXRfZHVyYXRpb25fbm9fYnQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIHN5bmNfY2hhbmdlZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyNjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjI2NjpcXHRyZXQgPSBydHc4OV9md19oMmNfbXJjX3VwZF9kdXJhdGlvbihydHdkZXYsIFxcdTAwMjZkdXJfYXJnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMjY3LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjI3NjpcXHRyZXQgPSBydHc4OV9md19oMmNfbXJjX3N5bmMocnR3ZGV2LCBcXHUwMDI2c3luY19hcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyNzctXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjMzND1zdGF0aWMgdm9pZCBydHc4OV9tY2Nfc3RhcnRfYmVhY29uX25vYShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMzQzLVxcdGlmIChyZWYtXFx1MDAzZWlzX2dvKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIzNDQ6XFx0XFx0cnR3ODlfZndfaDJjX3RzZjMyX3RvZ2dsZShydHdkZXYsIHJlZi1cXHUwMDNlcnR3dmlmX2xpbmssIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNDUtXFx0ZWxzZSBpZiAoYXV4LVxcdTAwM2Vpc19nbylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMzQ2OlxcdFxcdHJ0dzg5X2Z3X2gyY190c2YzMl90b2dnbGUocnR3ZGV2LCBhdXgtXFx1MDAzZXJ0d3ZpZl9saW5rLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMzQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjM1MT1zdGF0aWMgdm9pZCBydHc4OV9tY2Nfc3RvcF9iZWFjb25fbm9hKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNjAtXFx0aWYgKHJlZi1cXHUwMDNlaXNfZ28pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjM2MTpcXHRcXHRydHc4OV9md19oMmNfdHNmMzJfdG9nZ2xlKHJ0d2RldiwgcmVmLVxcdTAwM2VydHd2aWZfbGluaywgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNjItXFx0ZWxzZSBpZiAoYXV4LVxcdTAwM2Vpc19nbylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMzYzOlxcdFxcdHJ0dzg5X2Z3X2gyY190c2YzMl90b2dnbGUocnR3ZGV2LCBhdXgtXFx1MDAzZXJ0d3ZpZl9saW5rLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjM2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTIzODA9c3RhdGljIGludCBydHc4OV9tY2Nfc3RhcnQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjQxMS1cXHRpZiAocnR3ODlfbWNjX2lnbm9yZV9iY24ocnR3ZGV2LCByZWYpIHx8IGF1eC1cXHUwMDNlaWdub3JlX2Jjbikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI0MTI6XFx0XFx0cnR3ODlfZndfaDJjX3NldF9iY25fZmx0cl9jZmcocnR3ZGV2LCBhdXgtXFx1MDAzZXJ0d3ZpZl9saW5rLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjQxMy1cXHR9IGVsc2UgaWYgKHJ0dzg5X21jY19pZ25vcmVfYmNuKHJ0d2RldiwgYXV4KSB8fCByZWYtXFx1MDAzZWlnbm9yZV9iY24pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDE0OlxcdFxcdHJ0dzg5X2Z3X2gyY19zZXRfYmNuX2ZsdHJfY2ZnKHJ0d2RldiwgcmVmLVxcdTAwM2VydHd2aWZfbGluaywgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI0MTUtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDE2OlxcdFxcdHJ0dzg5X2Z3X2gyY19zZXRfYmNuX2ZsdHJfY2ZnKHJ0d2RldiwgcmVmLVxcdTAwM2VydHd2aWZfbGluaywgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjQxNzpcXHRcXHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIGF1eC1cXHUwMDNlcnR3dmlmX2xpbmssIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI0MTgtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjQ3OD1zdGF0aWMgdm9pZCBydHc4OV9tY2Nfc3RvcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTA5LVxcdGlmIChydHc4OV9jb25jdXJyZW50X3ZpYV9tcmMocnR3ZGV2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI1MTA6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX21yY19kZWwocnR3ZGV2LCBtY2MtXFx1MDAzZWdyb3VwLCBzZWwuc2xvdF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1MTEtXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1MTQtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNTE1OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19zdG9wX21jYyhydHdkZXYsIG1jYy1cXHUwMDNlZ3JvdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjUxNi1cXHRcXHRcXHRcXHRcXHQgICAgc2VsLm1hY19pZCwgdHJ1ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI1MjE6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2RlbF9tY2NfZ3JvdXAocnR3ZGV2LCBtY2MtXFx1MDAzZWdyb3VwLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTIyLVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTI5LVxcdHJ0dzg5X21jY19zdG9wX2JlYWNvbl9ub2EocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNTMwOlxcdHJ0dzg5X2Z3X2gyY19tY2NfZGlnKHJ0d2RldiwgUlRXODlfQ0hBTkNUWF8wLCAwLCAwLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjUzMS1cXHRydHc4OV9waHlfZGlnX3Jlc3VtZShydHdkZXYsIHRydWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjUzNj1zdGF0aWMgaW50IHJ0dzg5X21jY191cGRhdGUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjU1OC1cXHRpZiAob2xkX3JlZl9pZ25vcmVfYmNuICE9IHJlZi1cXHUwMDNlaWdub3JlX2JjbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNTU5OlxcdFxcdHJ0dzg5X2Z3X2gyY19zZXRfYmNuX2ZsdHJfY2ZnKHJ0d2RldiwgcmVmLVxcdTAwM2VydHd2aWZfbGluaywgIXJlZi1cXHUwMDNlaWdub3JlX2Jjbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjU2MC1cXHRlbHNlIGlmIChvbGRfYXV4X2lnbm9yZV9iY24gIT0gYXV4LVxcdTAwM2VpZ25vcmVfYmNuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI1NjE6XFx0XFx0cnR3ODlfZndfaDJjX3NldF9iY25fZmx0cl9jZmcocnR3ZGV2LCBhdXgtXFx1MDAzZXJ0d3ZpZl9saW5rLCAhYXV4LVxcdTAwM2VpZ25vcmVfYmNuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTYyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9Mjc3MD1zdGF0aWMgaW50IF9fbWNjX2Z3X3VwZF9tYWNpZF9iaXRtYXAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjc3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNzc2OlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tY2NfbWFjaWRfYml0bWFwKHJ0d2RldiwgbWNjLVxcdTAwM2Vncm91cCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNzc3LVxcdFxcdFxcdFxcdFxcdCAgICB1cGQtXFx1MDAzZXJ0d3ZpZl9saW5rLVxcdTAwM2VtYWNfaWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz0yNzg4PXN0YXRpYyBpbnQgX19tcmNfZndfdXBkX21hY2lkX2JpdG1hcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yODA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI4MDk6XFx0XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX21yY191cGRfYml0bWFwKHJ0d2RldiwgXFx1MDAyNmFyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjgxMC1cXHRcXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjgxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyODIwOlxcdFxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfdXBkX2JpdG1hcChydHdkZXYsIFxcdTAwMjZhcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI4MjEtXFx0XFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jPTg3Nz1zdGF0aWMgaW50IF9zZW5kX2Z3X2NtZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IGgyY19jbGFzcywgdTggaDJjX2Z1bmMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy05MDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6OTA2OlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19yYXdfd2l0aF9oZHIocnR3ZGV2LCBoMmNfY2xhc3MsIGgyY19mdW5jLCBwYXJhbSwgbGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTkwNy1cXHRcXHRcXHRcXHRcXHRmYWxzZSwgdHJ1ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYz0yNzcyPXN0YXRpYyB2b2lkIF9md19zZXRfZHJ2X2luZm8oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCB0eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc4Mi1cXHRcXHRpZiAodmVyLVxcdTAwM2VmY3hpbml0ID09IDcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc4MzpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfaW5pdF92NyhydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3ODQtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjI3ODU6XFx0XFx0XFx0cnR3ODlfZndfaDJjX2N4ZHJ2X2luaXQocnR3ZGV2LCB0eXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yNzg2LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc4OC1cXHRcXHRpZiAodmVyLVxcdTAwM2Vmd2xyb2xlID09IDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc4OTpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfcm9sZShydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTAtXFx0XFx0ZWxzZSBpZiAodmVyLVxcdTAwM2Vmd2xyb2xlID09IDEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5MTpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MShydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTItXFx0XFx0ZWxzZSBpZiAodmVyLVxcdTAwM2Vmd2xyb2xlID09IDIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5MzpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MihydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTQtXFx0XFx0ZWxzZSBpZiAodmVyLVxcdTAwM2Vmd2xyb2xlID09IDcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5NTpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92NyhydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTYtXFx0XFx0ZWxzZSBpZiAodmVyLVxcdTAwM2Vmd2xyb2xlID09IDgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5NzpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92OChydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTgtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODAzLVxcdFxcdGlmICh2ZXItXFx1MDAzZWZjeGN0cmwgPT0gNylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODA0OlxcdFxcdFxcdHJ0dzg5X2Z3X2gyY19jeGRydl9jdHJsX3Y3KHJ0d2RldiwgdHlwZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjgwNS1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6MjgwNjpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfY3RybChydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI4MDctXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODIxLVxcdFxcdGRtLVxcdTAwM2V0cnhfaW5mby5uaG0gPSB3bC1cXHUwMDNlbmhtLnB3cjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODIyOlxcdFxcdHJ0dzg5X2Z3X2gyY19jeGRydl90cngocnR3ZGV2LCB0eXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODIzLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjgyNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODI4OlxcdFxcdHJ0dzg5X2Z3X2gyY19jeGRydl9yZmsocnR3ZGV2LCB0eXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODI5LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjg0MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODQyOlxcdFxcdHJ0dzg5X2Z3X2gyY19jeGRydl9vc2lfaW5mbyhydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI4NDMtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz0yNTA1PXN0YXRpYyB2b2lkIHJ0dzg5X2NhbmNlbF82Z2h6X3Byb2JlX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0yNTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjI1MjE6XFx0XFx0cnR3ODlfZndfaDJjX2RlbF9wa3Rfb2ZmbG9hZChydHdkZXYsIGluZm8tXFx1MDAzZWlkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0yNTIyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9MjYwMD1zdGF0aWMgdm9pZCBydHc4OV9iY25fY2ZnX3RidHRfb2Zmc2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTI2MjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6MjYyNDpcXHRydHc4OV9md19oMmNfdGJ0dF90dW5pbmcocnR3ZGV2LCBydHd2aWZfbGluaywgb2Zmc2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0yNjI1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTMwMzE9c3RhdGljIHZvaWQgcnR3ODlfdmlmX3J4X3N0YXRzX2l0ZXIodm9pZCAqZGF0YSwgdTggKm1hYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTMwODctXFx0XFx0XFx0cnR3ODlfdmlmX3N5bmNfYmNuX3RzZihydHd2aWZfbGluaywgaGRyLCBza2ItXFx1MDAzZWxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6MzA4ODpcXHRcXHRcXHRydHc4OV9md19oMmNfcnNzaV9vZmZsb2FkKHJ0d2RldiwgcGh5X3BwZHUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTMwODktXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTIxNT1zdGF0aWMgYm9vbCBydHc4OV90cmFmZmljX3N0YXRzX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTUyMjktXFx0XFx0cnR3ODlfdmlmX2Zvcl9lYWNoX2xpbmsocnR3dmlmLCBydHd2aWZfbGluaywgbGlua19pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1MjMwOlxcdFxcdFxcdHJ0dzg5X2Z3X2gyY190cF9vZmZsb2FkKHJ0d2RldiwgcnR3dmlmX2xpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTUyMzEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTY1Nj1pbnQgcnR3ODlfY29yZV9zdGFfbGlua19hZGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTcwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NzAxOlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19yb2xlX21haW50YWluKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU3MDItXFx0XFx0XFx0XFx0XFx0XFx0IFJUVzg5X1JPTEVfQ1JFQVRFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU3MjA9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfZGlzYXNzb2Moc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTcyOC1cXHRpZiAodmlmLVxcdTAwM2V0eXBlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJT04pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NzI5OlxcdFxcdHJ0dzg5X2Z3X2gyY19zZXRfYmNuX2ZsdHJfY2ZnKHJ0d2RldiwgcnR3dmlmX2xpbmssIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NzMwLVxcdFxcdHJ0dzg5X2NvcmVfYmNuX3RyYWNrX3Jlc2V0KHJ0d2Rldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01NzM5PWludCBydHc4OV9jb3JlX3N0YV9saW5rX2Rpc2Nvbm5lY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTc2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NzY2OlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19qb2luX2luZm8ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU3NjctXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTc3Mi1cXHQvKiB1cGRhdGUgY2FtIGFpZCBtYWNfaWQgbmV0X3R5cGUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NzczOlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19jYW0ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTc3NC1cXHRcXHRcXHQgICAgICAgUlRXODlfUk9MRV9DT05fRElTQ09OTik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01Nzk5PWludCBydHc4OV9jb3JlX3N0YV9saW5rX2Fzc29jKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU4NDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTg0MTpcXHRyZXQgPSBydHc4OV9md19oMmNfam9pbl9pbmZvKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg0Mi1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODQ3LVxcdC8qIHVwZGF0ZSBjYW0gYWlkIG1hY19pZCBuZXRfdHlwZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4NDg6XFx0cmV0ID0gcnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluaywgTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODQ5LVxcdFxcdFxcdCAgICAgICBSVFc4OV9ST0xFX0NPTl9ESVNDT05OKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU4NzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTg3NjpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmstXFx1MDAzZW1hY19pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg3Ny1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4ODI6XFx0XFx0cnR3ODlfZndfaDJjX3NldF9iY25fZmx0cl9jZmcocnR3ZGV2LCBydHd2aWZfbGluaywgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg4My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU4OTQ9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfcmVtb3ZlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU5MTAtXFx0fSBlbHNlIGlmICh2aWYtXFx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfQVAgfHwgc3RhLVxcdTAwM2V0ZGxzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTkxMTpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfcm9sZV9tYWludGFpbihydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01OTEyLVxcdFxcdFxcdFxcdFxcdFxcdCBSVFc4OV9ST0xFX1JFTU9WRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz02NTY1PWludCBydHc4OV9jb3JlX3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY2MjUtXFx0cnR3ODlfYnRjX250ZnlfcmFkaW9fc3RhdGUocnR3ZGV2LCBCVENfUkZDVFJMX1dMX09OKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo2NjI2OlxcdHJ0dzg5X2Z3X2gyY19md19sb2cocnR3ZGV2LCBydHdkZXYtXFx1MDAzZWZ3LmxvZy5lbmFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjY2Mjc6XFx0cnR3ODlfZndfaDJjX2luaXRfYmFfY2FtKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNjYyOC1cXHRydHc4OV90YXNfZndfdGltZXJfZW5hYmxlKHJ0d2RldiwgdHJ1ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz02OTY5PXZvaWQgcnR3ODlfY29yZV9zY2FuX3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY5ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6Njk4NTpcXHRydHc4OV9md19oMmNfY2FtKHJ0d2RldiwgcnR3dmlmX2xpbmssIE5VTEwsIG1hY19hZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY5ODYtXFx0XFx0XFx0IFJUVzg5X1JPTEVfSU5GT19DSEFOR0UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9Njk4OT12b2lkIHJ0dzg5X2NvcmVfc2Nhbl9jb21wbGV0ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03MDA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjcwMDY6XFx0cnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBOVUxMLCBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTcwMDctXFx0XFx0XFx0IFJUVzg5X1JPTEVfSU5GT19DSEFOR0UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NzExOD1pbnQgcnR3ODlfY29yZV9tbHNyX3N3aXRjaChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWYgKnJ0d3ZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTcxNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NzE3MDpcXHRydHc4OV9md19oMmNfdHhfaGlzdG9yeShydHdkZXYsIHRhcmdldC1cXHUwMDNlbWFjX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03MTcxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jPTM1NDk9c3RhdGljIHNzaXplX3QgcnR3ODlfZGVidWdfcHJpdl9zZW5kX2gyY19zZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM1NjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jOjM1NjE6XFx0cmV0ID0gcnR3ODlfZndfaDJjX3JhdyhydHdkZXYsIGgyYywgaDJjX2xlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM1NjItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9Mzc4MD1ydHc4OV9kZWJ1Z19wcml2X2Z3X2NyYXNoX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtMzc5OC1cXHRcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jOjM3OTk6XFx0XFx0c2ltID0gcnR3ODlfZndfaDJjX3RyaWdnZXJfY3B1X2V4Y2VwdGlvbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtMzgwMC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYz0zOTE4PXN0YXRpYyBzc2l6ZV90IHJ0dzg5X2RlYnVnX3ByaXZfZndfbG9nX21hbnVhbF9zZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM5MzItXFx0XFx0cnR3ODlfZndfbG9nX3ByZXBhcmUocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6MzkzMzpcXHRydHc4OV9md19oMmNfZndfbG9nKHJ0d2RldiwgZndfbG9nX21hbnVhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM5MzQtb3V0Olxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jPTQ1MjE9cnR3ODlfZGVidWdfcHJpdl9iYl9pbmZvX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNDUzMi1cXHRlbHNlIGlmIChzc2NhbmYoYnVmLCBcXFwibWFjX2lkICV4XFxcIiwgXFx1MDAyNnZhbCkgPT0gMSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6NDUzMzpcXHRcXHRydHc4OV9md19oMmNfdHhfaGlzdG9yeShydHdkZXYsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTQ1MzQtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTcxPXN0YXRpYyBpbnQgX19wYXJzZV9zZWN1cml0eV9zZWN0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy03Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6Nzc6c3RhdGljIHN0cnVjdCBza19idWZmICpydHc4OV9md19oMmNfYWxsb2Nfc2tiKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTMyIGxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNzgtXFx0XFx0XFx0XFx0XFx0ICAgICAgYm9vbCBoZWFkZXIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk2OnN0cnVjdCBza19idWZmICpydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTMyIGxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5ODpcXHRyZXR1cm4gcnR3ODlfZndfaDJjX2FsbG9jX3NrYihydHdkZXYsIGxlbiwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk5LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxMDE6c3RydWN0IHNrX2J1ZmYgKnJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfbm9faGRyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTMyIGxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAzOlxcdHJldHVybiBydHc4OV9md19oMmNfYWxsb2Nfc2tiKHJ0d2RldiwgbGVuLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwNC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MTcwMT1zdGF0aWMgaW50IF9fcnR3ODlfZndfZG93bmxvYWRfaGRyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xNzEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxNzEzOlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xNzE0LVxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MTc4Mj1zdGF0aWMgaW50IF9fcnR3ODlfZndfZG93bmxvYWRfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTgxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTgxNzpcXHRcXHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX25vX2hkcihydHdkZXYsIHBrdF9sZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xODE4LVxcdFxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MjIyMD12b2lkIHJ0dzg5X2Z3X2xvZ19kdW1wKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggKmJ1ZiwgdTMyIGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMjYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyMjYxOmludCBydHc4OV9md19oMmNfY2FtKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjI2Mi1cXHRcXHQgICAgIHN0cnVjdCBydHc4OV9zdGFfbGluayAqcnR3c3RhX2xpbmssIGNvbnN0IHU4ICpzY2FuX21hY19hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIyNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjIyNzk6XFx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIyODAtXFx0aWYgKCFza2IpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyMzE3OmludCBydHc4OV9md19oMmNfZGN0bF9zZWNfY2FtX3YxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjMxOC1cXHRcXHRcXHRcXHQgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyMzI2OlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzI3LVxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM1My19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjIzNTQ6RVhQT1JUX1NZTUJPTChydHc4OV9md19oMmNfZGN0bF9zZWNfY2FtX3YxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM1NjppbnQgcnR3ODlfZndfaDJjX2RjdGxfc2VjX2NhbV92MihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzNTctXFx0XFx0XFx0XFx0IHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM2NTpcXHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM2Ni1cXHRpZiAoIXNrYikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzOTItfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyMzkzOkVYUE9SVF9TWU1CT0wocnR3ODlfZndfaDJjX2RjdGxfc2VjX2NhbV92Mik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjIzOTU6aW50IHJ0dzg5X2Z3X2gyY19kY3RsX3NlY19jYW1fdjMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzk2LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI0MDQ6XFx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0MDUtXFx0aWYgKCFza2IpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDMxLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQzMjpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19kY3RsX3NlY19jYW1fdjMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNDM0OmludCBydHc4OV9md19oMmNfZGVmYXVsdF9kbWFjX3RibF92MihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0MzUtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI0NDQ6XFx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0NDUtXFx0aWYgKCFza2IpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDg2LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQ4NzpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19kZWZhdWx0X2RtYWNfdGJsX3YyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjQ4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQ4OTppbnQgcnR3ODlfZndfaDJjX2RlZmF1bHRfZG1hY190YmxfdjMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDkwLVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNDk5OlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNTAwLVxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjU0Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI1NDM6RVhQT1JUX1NZTUJPTChydHc4OV9md19oMmNfZGVmYXVsdF9kbWFjX3RibF92Myk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI1NDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI1NDU6aW50IHJ0dzg5X2Z3X2gyY19iYV9jYW0oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNTQ2LVxcdFxcdFxcdHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjU3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjU3MzpcXHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjU3NC1cXHRpZiAoIXNrYikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2MjItfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNjIzOkVYUE9SVF9TWU1CT0wocnR3ODlfZndfaDJjX2JhX2NhbSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2MjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI2MjU6c3RhdGljIGludCBydHc4OV9md19oMmNfaW5pdF9iYV9jYW1fdjBfZXh0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjYyNi1cXHRcXHRcXHRcXHRcXHQgICB1OCBlbnRyeV9pZHgsIHU4IHVpZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNjMzOlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjM0LVxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjY2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjY2Njp2b2lkIHJ0dzg5X2Z3X2gyY19pbml0X2R5bmFtaWNfYmFfY2FtX3YwX2V4dChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2Njcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2NzMtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGNoaXAtXFx1MDAzZWJhY2FtX2R5bmFtaWNfbnVtOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjY3NDpcXHRcXHRydHc4OV9md19oMmNfaW5pdF9iYV9jYW1fdjBfZXh0KHJ0d2RldiwgZW50cnlfaWR4LCB1aWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjc1LVxcdFxcdGVudHJ5X2lkeCsrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2NzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI2ODA6aW50IHJ0dzg5X2Z3X2gyY19iYV9jYW1fdjEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjgxLVxcdFxcdFxcdCAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjcwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjcwOTpcXHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjcxMC1cXHRpZiAoIXNrYikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NTYtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNzU3OkVYUE9SVF9TWU1CT0wocnR3ODlfZndfaDJjX2JhX2NhbV92MSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI3NTk6aW50IHJ0dzg5X2Z3X2gyY19pbml0X2JhX2NhbV91c2VycyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHVzZXJzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNzYwLVxcdFxcdFxcdFxcdCAgIHU4IG9mZnNldCwgdTggbWFjX2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNzY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNzY3OlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNzY4LVxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjc5OC0jZGVmaW5lIEgyQ19MT0dfQ0ZHX0xFTiAxMlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNzk5OmludCBydHc4OV9md19oMmNfZndfbG9nKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI4MDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI4MDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI4MTA6XFx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIEgyQ19MT0dfQ0ZHX0xFTik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI4MTEtXFx0aWYgKCFza2IpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0yOTI4PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjk3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6Mjk3ODpzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc5LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzAyNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzAyNTpcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkKHJ0d2RldiwgXFx1MDAyNmluZm8tXFx1MDAzZWlkLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDI2LVxcdGtmcmVlX3NrYihza2IpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTMwNDA9dm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3RfdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDQ4LVxcdFxcdGlmIChub3RpZnlfZncpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwNDk6XFx0XFx0XFx0cnR3ODlfZndfaDJjX2RlbF9wa3Rfb2ZmbG9hZChydHdkZXYsIGluZm8tXFx1MDAzZWlkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA1MC1cXHRcXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MzA1Nz12b2lkIHJ0dzg5X2Z3X3JlbGVhc2VfZ2VuZXJhbF9wa3RfbGlzdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgbm90aWZ5X2Z3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwNzAtI2RlZmluZSBIMkNfR0VORVJBTF9QS1RfSURfVU5EIDB4ZmZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzA3MTppbnQgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA3Mi1cXHRcXHRcXHQgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssIHU4IG1hY2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODA6XFx0cnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDgxLVxcdFxcdFxcdFxcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9QU19QT0xMLCBcXHUwMDI2cGt0X2lkX3BzX3BvbGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDgyOlxcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4My1cXHRcXHRcXHRcXHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfTlVMTF9EQVRBLCBcXHUwMDI2cGt0X2lkX251bGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDg0OlxcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4NS1cXHRcXHRcXHRcXHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfUU9TX05VTEwsIFxcdTAwMjZwa3RfaWRfcW9zX251bGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDg3OlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBIMkNfR0VORVJBTF9QS1RfTEVOKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4OC1cXHRpZiAoIXNrYikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMxMTktI2RlZmluZSBIMkNfTFBTX1BBUk1fTEVOIDhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzEyMDppbnQgcnR3ODlfZndfaDJjX2xwc19wYXJtKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzEyMS1cXHRcXHRcXHQgIHN0cnVjdCBydHc4OV9scHNfcGFybSAqbHBzX3BhcmFtKVxcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjA5OjMwLjcyOTM1NTM5OFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0ODA1Mzg1Njg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRmVhc2liaWxpdHkgb2YgYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBuZWVkIHRvIGtub3cgd2hlcmUgYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGlzIGNhbGxlZC4gSXQgbG9va3MgbGlrZSBpdCdzIGludm9rZWQgYnkgYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAgKHdoaWNoIGlzIGl0c2VsZiBjYWxsZWQgZnJvbSBgcnR3ODlfY29yZV9zdGFfbGlua19hc3NvY2ApLCBgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmVgLCBgcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkYCwgYW5kIGBydHc4OV9md19oMmNfd293X2d0a19vZmxkYC4gVGhpcyBnaXZlcyBtZSBzb21lIGNvbnRleHQsIGJ1dCBub3cgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uOiBpcyB0aGlzIGZ1bmN0aW9uLCBhbmQgYnkgZXh0ZW5zaW9uLCB0aGUgYHJ0dzg5YCBkcml2ZXIgYXMgYSB3aG9sZSwgYW1lbmFibGUgdG8gZnV6emluZyB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgYW5kIHN5emthbGxlcj9cblxuQmVmb3JlIEkganVtcCB0byBjb25jbHVzaW9ucywgSSBuZWVkIHRvIGNvbnN1bHQgdGhlIGZ1enppbmcgZ3VpZGVsaW5lcy4gTGV0IG1lIG1ha2Ugc3VyZSBJJ20gbm90IHdhc3RpbmcgbXkgdGltZSBvbiBzb21ldGhpbmcgdGhhdCBpcyBleHBsaWNpdGx5IGV4Y2x1ZGVkLiBUaGUgZ3VpZGVsaW5lcyBzcGVjaWZpY2FsbHkgY2FsbCBvdXQgbW9kaWZpY2F0aW9ucyB0byBkb2N1bWVudGF0aW9uLCBLY29uZmlnIGZpbGVzLCBkZWNvcmF0aXZlIGxvZ2dpbmcsIGNoYW5nZXMgdG8gbm9uLWZ1bmN0aW9uYWwgY29uc3RhbnRzLCB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgYW5kIGNlcnRhaW4gaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyAoUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBHUFUsIGRyaXZlcnMnIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIHRlYXJkb3duIGNhbGxiYWNrcykuIE5vbmUgb2YgdGhhdCAqaW1tZWRpYXRlbHkqIGp1bXBzIG91dCBhcyBhIGNvbmNlcm4gaGVyZSwgYXNzdW1pbmcgdGhlIGNhbGxzaXRlcyBhcmUgcmVhY2hhYmxlIHdpdGhpbiBhIGZ1enplZCBlbnZpcm9ubWVudC5cblxuTm93LCB0aGUgbWFpbiBxdWVzdGlvbjogY2FuIGBydHc4OWAgZXZlbiBiZSBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBjb250ZXh0PyBJIGtub3cgc29tZSBkcml2ZXJzIHByZXNlbnQgaW1tZWRpYXRlIGNoYWxsZW5nZXMuIFNwZWNpZmljYWxseSwgVVNCIHdpcmVsZXNzIGRyaXZlcnMgYXJlIG9mdGVuIGZ1enphYmxlIGluIExpbnV4LCBwYXJ0aWN1bGFybHkgd2l0aCBzeXprYWxsZXIncyBVU0IgZW11bGF0aW9uIGNhcGFiaWxpdGllcy4gVGhpcyBpcyBnb29kIG5ld3MsIGFzIHN5emthbGxlciBhY3RpdmVseSBmdXp6ZXMgVVNCIHdpcmVsZXNzIG5ldHdvcmsgZHJpdmVycyB1c2luZyB0aGUgZHVtbXlfaGNkL3Jhd19nYWRnZXQgbWV0aG9kcy5cblxuVGhlIGtleSB0aGVuIGJlY29tZXMsIGlzIGBydHc4OWAgYSBVU0IgZHJpdmVyPyBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgb3B0aW9ucyBmb3IgYFJUVzg5X1VTQmAgYW5kIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgbGlrZSBgUlRXODlfODg1MkFVYCwgYFJUVzg5Xzg4NTJCVWAsIGBSVFc4OV84ODUyQ1VgLCBgUlRXODlfODkyMkFVYCwgYFJUVzg5Xzg4NTFCVWAuIFRob3NlIHdvdWxkIHByb3ZpZGUgdGhlIG1vc3QgZGlyZWN0IGluZm9ybWF0aW9uLiBBbHNvLCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGBydHc4OWAgZXZlbiBoYXMgYSBgdXNiLmNgIGZpbGUgaW4gdGhlIGRyaXZlciB0cmVlLiBJIHNob3VsZCBsb29rIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jYCB0byBjb25maXJtIG15IHN1c3BpY2lvbi4gSWYgaXQncyBhIFVTQiBkcml2ZXIsIHRoZSBsaWtlbGlob29kIG9mIHN1Y2Nlc3NmdWwgZnV6emluZyBpcyBzaWduaWZpY2FudGx5IGhpZ2hlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgwMTgsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1ODIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MzUuNTM0NzQ1NzkzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1MDY2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDgwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXFxuICAgMjpcXHQvKiBDb3B5cmlnaHQoYykgMjAyNSAgUmVhbHRlayBDb3Jwb3JhdGlvblxcbiAgIDM6XFx0ICovXFxuICAgNDpcXHRcXG4gICA1OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC91c2IuaFxcdTAwM2VcXG4gICA2OlxcdCNpbmNsdWRlIFxcXCJkZWJ1Zy5oXFxcIlxcbiAgIDc6XFx0I2luY2x1ZGUgXFxcIm1hYy5oXFxcIlxcbiAgIDg6XFx0I2luY2x1ZGUgXFxcInJlZy5oXFxcIlxcbiAgIDk6XFx0I2luY2x1ZGUgXFxcInR4cnguaFxcXCJcXG4gIDEwOlxcdCNpbmNsdWRlIFxcXCJ1c2IuaFxcXCJcXG4gIDExOlxcdFxcbiAgMTI6XFx0c3RhdGljIHZvaWQgcnR3ODlfdXNiX3JlYWRfcG9ydF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpO1xcbiAgMTM6XFx0XFxuICAxNDpcXHRzdGF0aWMgdm9pZCBfX3J0dzg5X3VzYl92ZW5kb3JyZXEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1MzIgYWRkcixcXG4gIDE1OlxcdFxcdFxcdFxcdFxcdCAgdm9pZCAqZGF0YSwgdTE2IGxlbiwgdTggcmVxdHlwZSwgYm9vbCB3YXJuKVxcbiAgMTY6XFx0e1xcbiAgMTc6XFx0XFx0c3RydWN0IHJ0dzg5X3VzYiAqcnR3dXNiID0gcnR3ODlfdXNiX3ByaXYocnR3ZGV2KTtcXG4gIDE4OlxcdFxcdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gcnR3dXNiLVxcdTAwM2V1ZGV2O1xcbiAgMTk6XFx0XFx0dW5zaWduZWQgaW50IHBpcGU7XFxuICAyMDpcXHRcXHR1MTYgdmFsdWUsIGluZGV4O1xcbiAgMjE6XFx0XFx0aW50IGF0dGVtcHQsIHJldDtcXG4gIDIyOlxcdFxcbiAgMjM6XFx0XFx0aWYgKHRlc3RfYml0KFJUVzg5X0ZMQUdfVU5QTFVHR0VELCBydHdkZXYtXFx1MDAzZWZsYWdzKSlcXG4gIDI0OlxcdFxcdFxcdHJldHVybjtcXG4gIDI1OlxcdFxcbiAgMjY6XFx0XFx0dmFsdWUgPSB1MzJfZ2V0X2JpdHMoYWRkciwgR0VOTUFTSygxNSwgMCkpO1xcbiAgMjc6XFx0XFx0aW5kZXggPSB1MzJfZ2V0X2JpdHMoYWRkciwgR0VOTUFTSygyMywgMTYpKTtcXG4gIDI4OlxcdFxcbiAgMjk6XFx0XFx0Zm9yIChhdHRlbXB0ID0gMDsgYXR0ZW1wdCBcXHUwMDNjIDEwOyBhdHRlbXB0KyspIHtcXG4gIDMwOlxcdFxcdFxcdCpydHd1c2ItXFx1MDAzZXZlbmRvcl9yZXFfYnVmID0gMDtcXG4gIDMxOlxcdFxcbiAgMzI6XFx0XFx0XFx0aWYgKHJlcXR5cGUgPT0gUlRXODlfVVNCX1ZFTlFUX1JFQUQpIHtcXG4gIDMzOlxcdFxcdFxcdFxcdHBpcGUgPSB1c2JfcmN2Y3RybHBpcGUodWRldiwgMCk7XFxuICAzNDpcXHRcXHRcXHR9IGVsc2UgeyAvKiBSVFc4OV9VU0JfVkVOUVRfV1JJVEUgKi9cXG4gIDM1OlxcdFxcdFxcdFxcdHBpcGUgPSB1c2Jfc25kY3RybHBpcGUodWRldiwgMCk7XFxuICAzNjpcXHRcXG4gIDM3OlxcdFxcdFxcdFxcdG1lbWNweShydHd1c2ItXFx1MDAzZXZlbmRvcl9yZXFfYnVmLCBkYXRhLCBsZW4pO1xcbiAgMzg6XFx0XFx0XFx0fVxcbiAgMzk6XFx0XFxuICA0MDpcXHRcXHRcXHRyZXQgPSB1c2JfY29udHJvbF9tc2codWRldiwgcGlwZSwgUlRXODlfVVNCX1ZFTlFULCByZXF0eXBlLFxcbiAgNDE6XFx0XFx0XFx0XFx0XFx0ICAgICAgdmFsdWUsIGluZGV4LCBydHd1c2ItXFx1MDAzZXZlbmRvcl9yZXFfYnVmLFxcbiAgNDI6XFx0XFx0XFx0XFx0XFx0ICAgICAgbGVuLCA1MDApO1xcbiAgNDM6XFx0XFxuICA0NDpcXHRcXHRcXHRpZiAocmV0ID09IGxlbikgeyAvKiBTdWNjZXNzICovXFxuICA0NTpcXHRcXHRcXHRcXHRhdG9taWNfc2V0KFxcdTAwMjZydHd1c2ItXFx1MDAzZWNvbnRpbnVhbF9pb19lcnJvciwgMCk7XFxuICA0NjpcXHRcXG4gIDQ3OlxcdFxcdFxcdFxcdGlmIChyZXF0eXBlID09IFJUVzg5X1VTQl9WRU5RVF9SRUFEKVxcbiAgNDg6XFx0XFx0XFx0XFx0XFx0bWVtY3B5KGRhdGEsIHJ0d3VzYi1cXHUwMDNldmVuZG9yX3JlcV9idWYsIGxlbik7XFxuICA0OTpcXHRcXG4gIDUwOlxcdFxcdFxcdFxcdGJyZWFrO1xcbiAgNTE6XFx0XFx0XFx0fVxcbiAgNTI6XFx0XFxuICA1MzpcXHRcXHRcXHRpZiAocmV0ID09IC1FU0hVVERPV04gfHwgcmV0ID09IC1FTk9ERVYpXFxuICA1NDpcXHRcXHRcXHRcXHRzZXRfYml0KFJUVzg5X0ZMQUdfVU5QTFVHR0VELCBydHdkZXYtXFx1MDAzZWZsYWdzKTtcXG4gIDU1OlxcdFxcdFxcdGVsc2UgaWYgKHJldCBcXHUwMDNjIDAgXFx1MDAyNlxcdTAwMjYgd2FybilcXG4gIDU2OlxcdFxcdFxcdFxcdHJ0dzg5X3dhcm4ocnR3ZGV2LFxcbiAgNTc6XFx0XFx0XFx0XFx0XFx0ICAgXFxcInVzYiAlcyV1IDB4JXggZmFpbCByZXQ9JWQgdmFsdWU9MHgleCBhdHRlbXB0PSVkXFxcXG5cXFwiLFxcbiAgNTg6XFx0XFx0XFx0XFx0XFx0ICAgc3RyX3JlYWRfd3JpdGUocmVxdHlwZSA9PSBSVFc4OV9VU0JfVkVOUVRfUkVBRCksXFxuICA1OTpcXHRcXHRcXHRcXHRcXHQgICBsZW4gKiA4LCBhZGRyLCByZXQsXFxuICA2MDpcXHRcXHRcXHRcXHRcXHQgICBsZTMyX3RvX2NwdXAocnR3dXNiLVxcdTAwM2V2ZW5kb3JfcmVxX2J1ZiksXFxuICA2MTpcXHRcXHRcXHRcXHRcXHQgICBhdHRlbXB0KTtcXG4gIDYyOlxcdFxcdFxcdGVsc2UgaWYgKHJldCBcXHUwMDNlIDAgXFx1MDAyNlxcdTAwMjYgcmVxdHlwZSA9PSBSVFc4OV9VU0JfVkVOUVRfUkVBRClcXG4gIDYzOlxcdFxcdFxcdFxcdG1lbWNweShkYXRhLCBydHd1c2ItXFx1MDAzZXZlbmRvcl9yZXFfYnVmLCBsZW4pO1xcbiAgNjQ6XFx0XFxuICA2NTpcXHRcXHRcXHRpZiAoYXRvbWljX2luY19yZXR1cm4oXFx1MDAyNnJ0d3VzYi1cXHUwMDNlY29udGludWFsX2lvX2Vycm9yKSBcXHUwMDNlIDQpIHtcXG4gIDY2OlxcdFxcdFxcdFxcdHNldF9iaXQoUlRXODlfRkxBR19VTlBMVUdHRUQsIHJ0d2Rldi1cXHUwMDNlZmxhZ3MpO1xcbiAgNjc6XFx0XFx0XFx0XFx0YnJlYWs7XFxuICA2ODpcXHRcXHRcXHR9XFxuICA2OTpcXHRcXHR9XFxuICA3MDpcXHR9XFxuICA3MTpcXHRcXG4gIDcyOlxcdHN0YXRpYyB2b2lkIHJ0dzg5X3VzYl92ZW5kb3JyZXEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1MzIgYWRkcixcXG4gIDczOlxcdFxcdFxcdFxcdFxcdHZvaWQgKmRhdGEsIHUxNiBsZW4sIHU4IHJlcXR5cGUpXFxuICA3NDpcXHR7XFxuICA3NTpcXHRcXHRfX3J0dzg5X3VzYl92ZW5kb3JyZXEocnR3ZGV2LCBhZGRyLCBkYXRhLCBsZW4sIHJlcXR5cGUsIHRydWUpO1xcbiAgNzY6XFx0fVxcbiAgNzc6XFx0XFxuICA3ODpcXHRzdGF0aWMgdTMyIHJ0dzg5X3VzYl9yZWFkX2NtYWMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1MzIgYWRkcilcXG4gIDc5OlxcdHtcXG4gIDgwOlxcdFxcdHUzMiBhZGRyMzIsIHZhbDMyLCBzaGlmdDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MzUuNTM0ODk4NjMzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjYyMzE4NjAyOTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSVFc4OSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIFJUVzg5IGRyaXZlciwgc3BlY2lmaWNhbGx5IHRoZSBgZncuY2AgZmlsZS4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyBhYm91dCBSVFc4OSdzIFVTQiBzdXBwb3J0LCBhbmQgaG93IHdlIGNvdWxkIHBvdGVudGlhbGx5IGVtdWxhdGUgd2lyZWxlc3MgVVNCIGFkYXB0ZXJzIHVzaW5nIFVTQiBnYWRnZXRzLCBidXQgdGhhdCdzIG5vdCB0aGUgZm9jdXMgaGVyZS4gVGhlIHBhdGNoIGl0c2VsZiBpcyB3aGF0IGludGVyZXN0cyBtZS4gTGV0J3MgZGlnIGluLlxuXG5UaGUgZGlmZiBpbnRyb2R1Y2VzIGEgc21hbGwgYnV0IGNydWNpYWwgY2hhbmdlIHRvIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YC4gSXQgc2VlbXMgbGlrZSBlcnJvciBoYW5kbGluZyBpcyBiZWluZyBpbXByb3ZlZC4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggYWRkcyBleHBsaWNpdCBlcnJvciByZXR1cm5zIGZvciBjYXNlcyB3aGVyZSB0aGUgYHN3aXRjaGAgc3RhdGVtZW50IGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBoaXRzIHRoZSBgZGVmYXVsdGAgY2FzZSBhbmQgd2hlbiBgc2tiYCBpcyBOVUxMLiBCZWZvcmUsIHRoZXNlIGNhc2VzIHdvdWxkIGhhdmUgcmVzdWx0ZWQgaW4gYW4gYC1FTk9NRU1gIHJldHVybiwgd2hpY2ggd2Fzbid0IGZ1bGx5IGFjY3VyYXRlIGluIHRoZSBmaXJzdCBjYXNlLiBOb3csIGAtRUlOVkFMYCBpcyByZXR1cm5lZCBmb3IgaW52YWxpZCBwYWNrZXQgdHlwZXMgYW5kIGAtRU5PTUVNYCBmb3IgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZXMsIG1ha2luZyBkZWJ1Z2dpbmcgZWFzaWVyLlxuXG5OZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgY2hhbmdlLCBzbyBJJ20gY2hlY2tpbmcgdGhlIGNhbGxlcnMgb2YgYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGFzIHdlbGwgYXMgZnVuY3Rpb25zIHRoYXQgY2FsbCBpdC4gVGhlIHBsYW4gaXMgdG8gc2VlIGhvdyB0aGlzIG1vZGlmaWVkIGVycm9yIGhhbmRsaW5nIHJpcHBsZXMgdGhyb3VnaCB0aGUgZHJpdmVyLiBJJ3ZlIGZvdW5kIHRoYXQgYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAsIGBydHc4OV9md19oMmNfa2VlcF9hbGl2ZWAsIGBydHc4OV9md19oMmNfYXJwX29mZmxvYWRgIGFuZCBgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZGAgYXJlIGFsbCBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uIE5vdywgSSBuZWVkIHRvIGNoZWNrIHdoZXJlIHRob3NlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGZsb3cgYW5kIGVuc3VyZSBhbnkgcG90ZW50aWFsIGlzc3VlcyBmcm9tIHRoZSB1cGRhdGVkIGVycm9yIGNvZGVzIGFyZSBjYXVnaHQgYW5kIGhhbmRsZWQgYXBwcm9wcmlhdGVseS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA1NzEsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTQxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6NDEuNzY2NzYyNDI0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTI4NzAxMTU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg5X2Z3X2gyY18oa2VlcF9hbGl2ZXxhcnBfb2ZmbG9hZHx3b3dfZ3RrX29mbGR8Z2VuZXJhbF9wa3QpXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU3OTk9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfYXNzb2Moc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1ODc2OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluay1cXHUwMDNlbWFjX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODc3LVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0zMDU3PXZvaWQgcnR3ODlfZndfcmVsZWFzZV9nZW5lcmFsX3BrdF9saXN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBub3RpZnlfZncpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA3MC0jZGVmaW5lIEgyQ19HRU5FUkFMX1BLVF9JRF9VTkQgMHhmZlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDcxOmludCBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDcyLVxcdFxcdFxcdCAgICAgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluaywgdTggbWFjaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9OTU2ND1pbnQgcnR3ODlfZndfaDJjX3BrdF9kcm9wKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjI2LSNkZWZpbmUgSDJDX0tFRVBfQUxJVkVfTEVOIDRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6OTYyNzppbnQgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjI4LVxcdFxcdFxcdCAgICBib29sIGVuYWJsZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05Njc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5Njc1OmludCBydHc4OV9md19oMmNfYXJwX29mZmxvYWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05Njc2LVxcdFxcdFxcdCAgICAgYm9vbCBlbmFibGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MTAwNDA9RVhQT1JUX1NZTUJPTChydHc4OV9md19oMmNfd293X2NhbV91cGRhdGVfdjEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xMDA0MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAwNDI6aW50IHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xMDA0My1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oPTU0NTE9dm9pZCBydHc4OV9md19mcmVlX2FsbF9lYXJseV9oMmMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3Lmg6NTQ1MjppbnQgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmgtNTQ1My1cXHRcXHRcXHQgICAgIHU4IG1hY2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaD01NTI4PWludCBydHc4OV9md19oMmNfY2ZnX3BubyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oLTU1MjktXFx0XFx0XFx0IGJvb2wgZW5hYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3Lmg6NTUzMDppbnQgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC01NTMxLVxcdFxcdFxcdCAgICBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oOjU1MzI6aW50IHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oLTU1MzMtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLCBib29sIGVuYWJsZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3Lmg9NTU0Mj1pbnQgcnR3ODlfZndfaDJjX3dvd19jYW1fdXBkYXRlX3YxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmgtNTU0My1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3ODlfd293X2NhbV9pbmZvICpjYW1faW5mbyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oOjU1NDQ6aW50IHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC01NTQ1LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jPTEyNjA9c3RhdGljIGludCBydHc4OV93b3dfc3dhcF9mdyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgd293KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xMzMzLVxcdGlmIChpc19jb25uKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYzoxMzM0OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluay1cXHUwMDNlbWFjX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTEzMzUtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYz0xNTU4PXN0YXRpYyBpbnQgcnR3ODlfd293X2Z3X3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jOjE1ODA6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUocnR3ZGV2LCBydHd2aWZfbGluaywgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNTgxLVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jOjE1OTI6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZChydHdkZXYsIHJ0d3ZpZl9saW5rLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE1OTMtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNTk3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTU5ODpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfYXJwX29mZmxvYWQocnR3ZGV2LCBydHd2aWZfbGluaywgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNTk5LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jPTE2MjY9c3RhdGljIGludCBydHc4OV93b3dfZndfc3RvcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYzoxNjQ5OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlKHJ0d2RldiwgcnR3dmlmX2xpbmssIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NTAtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNjYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTY2MTpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfd293X2d0a19vZmxkKHJ0d2RldiwgcnR3dmlmX2xpbmssIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NjItXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNjY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTY2NzpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfYXJwX29mZmxvYWQocnR3ZGV2LCBydHd2aWZfbGluaywgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTY2OC1cXHRcXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzowOTo0NC4yOTU0NjgwM1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1MjAyNjg3NzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgcnR3ODkgRmlybXdhcmUgSDJDIFBhY2tldCBIYW5kbGluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEknbSBmb2N1c2luZyBvbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAsIHdoaWNoIEkgc2VlIGlzIGEgc3RhdGljIGhlbHBlciBmdW5jdGlvbiByZXNpZGluZyB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY2AuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHVuZGVyc3RhbmRpbmcgaXRzIHVzYWdlIOKAkyB3aGF0IG90aGVyIGZ1bmN0aW9ucyAqZGlyZWN0bHkqIGNhbGwgaXQ/IExvb2tpbmcgYXQgdGhlIGNvZGUsIGl0J3MgY2FsbGVkIGJ5IGBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RgLCBgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmVgLCBgcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkYCwgYW5kIGBydHc4OV9md19oMmNfd293X2d0a19vZmxkYC4gVGhpcyBnaXZlcyBtZSBhIGdvb2Qgb3ZlcnZpZXcgb2YgaG93IGl0J3MgaW50ZWdyYXRlZCB3aXRoaW4gdGhlIGRyaXZlcidzIEgyQyAoSG9zdCB0byBDb250cm9sbGVyKSBwYWNrZXQgbWVjaGFuaXNtLlxuXG5OZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYnVpbGQgY29uZmlndXJhdGlvbi4gSSBoYXZlIHRvIG1ha2Ugc3VyZSB0aGUgZHJpdmVyIGNhbiBldmVuIGJlIGNvbXBpbGVkLCBhbmQgSSB3YW50IHRvIGtub3cgd2hpY2ggY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSByZXF1aXJlZCBvciBlbmFibGVkLiBDaGVja2luZyB0aGUgYEtjb25maWdgIGZpbGUgaW4gdGhhdCBkaXJlY3RvcnkgaXMga2V5LiBGcm9tIGEgcXVpY2sgZ2xhbmNlLCBJIHNlZSBgQ09ORklHX1JUVzg5YCBhcyB0aGUgcm9vdCwgZm9sbG93ZWQgYnkgYENPTkZJR19SVFc4OV9DT1JFYCAod2hpY2ggaXMgdHlwaWNhbGx5IHNlbGVjdGVkIGJ5IHRoZSBkZXZpY2UgZHJpdmVycyksIGFuZCB0aGVuIGVpdGhlciBgQ09ORklHX1JUVzg5X1VTQmAgb3IgYENPTkZJR19SVFc4OV9QQ0lgIGRlcGVuZGluZyBvbiB0aGUgaW50ZXJmYWNlLiBGdXJ0aGVyIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gdHJlZSwgSSBzZWUgZGV2aWNlLXNwZWNpZmljIG9wdGlvbnMgc3VjaCBhcyBgQ09ORklHX1JUVzg5Xzg4NTJBVWAsIGBDT05GSUdfUlRXODlfODg1MkFFYCwgYENPTkZJR19SVFc4OV84ODUyQkVgLCBldGMuIEl0IHNlZW1zIGxpa2UgdGhlIHZhcmlvdXMgY2hpcHNldHMgb3IgaGFyZHdhcmUgcmV2aXNpb25zIG5lZWQgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgdG8gYmUgc3VwcG9ydGVkLlxuXG5CZWZvcmUgZ29pbmcgZGVlcGVyIGludG8gdGhlIHNwZWNpZmljIG9wdGlvbnMsIGxldCBtZSBkb3VibGUtY2hlY2sgdGhlIEtjb25maWcgZmlsZSB0byBjb25maXJtIHdoZXRoZXIgdGhlIGRldmljZS1zcGVjaWZpYyBvcHRpb25zIHN1Y2ggYXMgYFJUVzg5Xzg4NTJBVWAsIGBSVFc4OV84ODUxQlVgLCBgUlRXODlfODg1MkJVYCwgYFJUVzg5Xzg4NTJDVWAgb3IgYFJUVzg5Xzg5MjJBVWAgYXJlIGFsc28gY29ycmVjdGx5IGRlZmluZWQuIEl0J3MgY3J1Y2lhbCB0byBjb25maXJtIHRob3NlIGRlcGVuZGVuY2llcyBiZWZvcmUgYXNzdW1pbmcgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb25zLiBPbmNlIEkgY29uZmlybSB0aGVtLCBJIHdpbGwgaGF2ZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVyJ3MgYnVpbGQgcHJvY2VzcyBhbmQgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1MDM5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjA5OjQ5LjQ5ODE1ODEwOVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODY5NDE1MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFJUVzg5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjptZW51Y29uZmlnIFJUVzg5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODAyLjExYXggd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz0xMT1pZiBSVFc4OVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM6Y29uZmlnIFJUVzg5X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTc6Y29uZmlnIFJUVzg5X1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xOC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjA6Y29uZmlnIFJUVzg5X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjM6Y29uZmlnIFJUVzg5Xzg4NTFCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI0LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyNjpjb25maWcgUlRXODlfODg1MkFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjctXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI5OmNvbmZpZyBSVFc4OV84ODUyQl9DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzAtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OV84ODUyQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zMy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MzU6Y29uZmlnIFJUVzg5Xzg4NTJCVFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNi1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Mzg6Y29uZmlnIFJUVzg5Xzg4NTJDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM5LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0MTpjb25maWcgUlRXODlfODkyMkFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDItXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQ0OmNvbmZpZyBSVFc4OV84ODUxQkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDUtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MUJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1NTpjb25maWcgUlRXODlfODg1MUJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU2LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NjY6Y29uZmlnIFJUVzg5Xzg4NTJBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02Ny1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjc3OmNvbmZpZyBSVFc4OV84ODUyQVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo4ODpjb25maWcgUlRXODlfODg1MkJFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTg5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy05OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTAwOmNvbmZpZyBSVFc4OV84ODUyQlVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAxLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExMjpjb25maWcgUlRXODlfODg1MkJURVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTMtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkJFLVZUIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTI0OmNvbmZpZyBSVFc4OV84ODUyQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTI1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNkUpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMzU6Y29uZmlnIFJUVzg5Xzg4NTJDVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzYtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE0Njpjb25maWcgUlRXODlfODkyMkFFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE0Ny1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4OTIyQUUvODkyMkFFLVZTIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTYwOmNvbmZpZyBSVFc4OV84OTIyQVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTYxLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg5MjJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNykgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3Mjpjb25maWcgUlRXODlfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTczLVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzU6Y29uZmlnIFJUVzg5X0RFQlVHTVNHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3Ni1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg5IGRlYnVnIG1lc3NhZ2Ugc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE4NDpjb25maWcgUlRXODlfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODUtXFx0Ym9vbCBcXFwiUmVhbHRlayBydHc4OSBkZWJ1Z2ZzIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjA5OjQ5LjU4NTEwODk0OFoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2MTA1Njk0NjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBSZWFsdGVrIEtjb25maWcgZm9yIFJUVzg5IERlcGVuZGVuY2llcyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgYFJUVzg5YCBtb2R1bGUuIFdoZXJlIGRvIEkgc3RhcnQ/IFRoZSBiZXN0IHBsYWNlIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYnVpbGQgY29uZmlndXJhdGlvbiBpcyBhbHdheXMgdGhlIGBLY29uZmlnYCBmaWxlLCBwYXJ0aWN1bGFybHkgdGhlIG9uZSBpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWtgIGRpcmVjdG9yeS4gVGhhdCdzIHVzdWFsbHkgdGhlIGF1dGhvcml0YXRpdmUgc291cmNlIGZvciB0aGVzZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlcnMuIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIGZpbGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvS2NvbmZpZ2AgdG8gc2VlIGV4YWN0bHkgd2hhdCBvdGhlciBvcHRpb25zIG9yIGZlYXR1cmVzIG5lZWQgdG8gYmUgZW5hYmxlZCBvciBhcmUgcmVxdWlyZWQgZm9yIGBSVFc4OWAgdG8gZnVuY3Rpb24gY29ycmVjdGx5IHdpdGhpbiB0aGUga2VybmVsIGJ1aWxkLiBUaGlzIEtjb25maWcgZmlsZSB3aWxsIGJlIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgZnVsbCBzY29wZSBvZiB3aGF0IEknbSB3b3JraW5nIHdpdGggYW5kIHdoYXQgb3RoZXIgY29tcG9uZW50cyBtaWdodCBuZWVkIGF0dGVudGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDgyNTMsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzowOTo1NS42OTA4MDU3MloiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg2NzQ5NTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNvdXJjZS4qcnR3ODkvS2NvbmZpZ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL0tjb25maWc9MTg9c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9LY29uZmlnOjE5OnNvdXJjZSBcXFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvS2NvbmZpZy0yMC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6NTUuODc3NTYwNDA3WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI4NDAzODk5NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhvdWdodHM6XG5cbioqRXhhbWluaW5nIHRoZSBSVFc4OSBLY29uZmlnIEZpbGUqKlxuXG5Pa2F5LCB0aW1lIHRvIGRpdmUgaW50byB0aGUgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIgY29uZmlndXJhdGlvbi4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHJldmlld2luZyB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IGxpbmVzIDEgdGhyb3VnaCAyMC4gSSB3YW50IHRvIHF1aWNrbHkgcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvZmZlcmVkIGJ5IHRoaXMgZHJpdmVyLiBXaGF0IGFyZSB0aGUgZXNzZW50aWFsIGZlYXR1cmUgZmxhZ3M/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBkZXBlbmRlbmNpZXMgb3IgY29uZGl0aW9uYWwgc2V0dGluZ3MgSSBzaG91bGQga2VlcCBpbiBtaW5kIGFzIEkgc3RhcnQgdG8gY29uZmlndXJlIHRoaXMgbW9kdWxlIGZvciBhIHBhcnRpY3VsYXIgdXNlIGNhc2U/IEknbSBob3BpbmcgdG8gZ2V0IGEgcXVpY2sgb3ZlcnZpZXcgb2YgdGhlIGtleSBrbm9icyBhbmQgbGV2ZXJzIGJlZm9yZSBnZXR0aW5nIGJvZ2dlZCBkb3duIGluIHRoZSBtb3JlIGdyYW51bGFyIGRldGFpbHMgZnVydGhlciBkb3duIGluIHRoZSBmaWxlLiBFc3NlbnRpYWxseSwgSSdtIHNldHRpbmcgdGhlIHN0YWdlIGZvciBhIG1vcmUgZm9jdXNlZCBhbmFseXNpcyBsYXRlciBvbi4gTGV0J3Mgc2VlIHdoYXQgdGhlc2UgaW5pdGlhbCBsaW5lcyByZXZlYWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NTk3LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6NTguNzE3OTU0MTA3WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNDAxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxcbiAgIDI6XFx0bWVudWNvbmZpZyBSVFc4OVxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODAyLjExYXggd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFxcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gICA1OlxcdFxcdGhlbHBcXG4gICA2OlxcdFxcdCAgVGhpcyBtb2R1bGUgYWRkcyBzdXBwb3J0IGZvciBtYWM4MDIxMS1iYXNlZCB3aXJlbGVzcyBkcml2ZXJzIHRoYXRcXG4gICA3OlxcdFxcdCAgZW5hYmxlcyBSZWFsdGVrIElFRUUgODAyLjExYXggd2lyZWxlc3MgY2hpcHNldHMuXFxuICAgODpcXHRcXG4gICA5OlxcdFxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkIHJ0dzg5LlxcbiAgMTA6XFx0XFxuICAxMTpcXHRpZiBSVFc4OVxcbiAgMTI6XFx0XFxuICAxMzpcXHRjb25maWcgUlRXODlfQ09SRVxcbiAgMTQ6XFx0XFx0dHJpc3RhdGVcXG4gIDE1OlxcdFxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbiAgMTY6XFx0XFxuICAxNzpcXHRjb25maWcgUlRXODlfUENJXFxuICAxODpcXHRcXHR0cmlzdGF0ZVxcbiAgMTk6XFx0XFxuICAyMDpcXHRjb25maWcgUlRXODlfVVNCXFxuICAyMTpcXHRcXHR0cmlzdGF0ZVxcbiAgMjI6XFx0XFxuICAyMzpcXHRjb25maWcgUlRXODlfODg1MUJcXG4gIDI0OlxcdFxcdHRyaXN0YXRlXFxuICAyNTpcXHRcXG4gIDI2OlxcdGNvbmZpZyBSVFc4OV84ODUyQVxcbiAgMjc6XFx0XFx0dHJpc3RhdGVcXG4gIDI4OlxcdFxcbiAgMjk6XFx0Y29uZmlnIFJUVzg5Xzg4NTJCX0NPTU1PTlxcbiAgMzA6XFx0XFx0dHJpc3RhdGVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6NTguNzE4MDU5OTc3WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEwODU0OTA2MzA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBSZWFsdGVrIFJUVzg5IEZpcm13YXJlIEgyQyBQYWNrZXQgSGFuZGxpbmcqKlxuXG5Pa2F5LCBzbyBoZXJlJ3Mgd2hhdCBJJ3ZlIGdvdCBzbyBmYXIuIEknbSBsb29raW5nIGF0IHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgUlRXODkgZHJpdmVyLiBgUlRXODlgIHJlbGllcyBvbiBgTUFDODAyMTFgLCB3aGljaCBpcyBzdGFuZGFyZC4gU3BlY2lmaWNhbGx5LCBJJ20gc2VlaW5nIGEgYnVuY2ggb2YgZGV2aWNlLXNwZWNpZmljIG9wdGlvbnMgbGlrZSBgUlRXODlfODg1MkFVYCwgYFJUVzg5Xzg4NTJBRWAsIGFuZCBzbyBvbiwgYW5kIHRoZXNlIGFyZSB0aWVkIHRvIGVpdGhlciBVU0Igb3IgUENJIGludGVyZmFjZXMuIFdoZW4gb25lIG9mIHRoZXNlIGRldmljZS1zcGVjaWZpYyBvcHRpb25zLCBsaWtlIGBSVFc4OV84ODUyQVVgLCBpcyBlbmFibGVkLCBpdCBwdWxscyBpbiBgUlRXODlfQ09SRWAsIGBSVFc4OV9VU0JgLCBhbmQgYFJUVzg5Xzg4NTJBYC4gVGhhdCBnaXZlcyBtZSBhIGdvb2QgaWRlYSBvZiB0aGUgYnVpbGQgY29uZmlndXJhdGlvbiBsYW5kc2NhcGUuXG5cbk5leHQsIEkgemVyb2VkIGluIG9uIHRoZSBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAgZnVuY3Rpb24uIFRoaXMgaXMgYSBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgSDJDIHBhY2tldCBoYW5kbGluZywgYW5kIEkndmUgaWRlbnRpZmllZCBzZXZlcmFsIG5vbi1zdGF0aWMgY2FsbGVycyBvciBlbnRyeXBvaW50czogYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAsIGBydHc4OV9md19oMmNfa2VlcF9hbGl2ZWAsIGBydHc4OV9md19oMmNfYXJwX29mZmxvYWRgLCBhbmQgYHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGRgLiBTbywgdGhvc2UgYXJlIHRoZSBtYWluIGZ1bmN0aW9ucyB0aGF0IGNhbGwgaW50byB0aGUgaGVscGVyLlxuXG5EaWdnaW5nIGRlZXBlciwgSSBsb29rZWQgZm9yIG90aGVyIHJlbGF0ZWQgZnVuY3Rpb25zLiBJJ3ZlIGZvdW5kIHRoYXQgYHJ0dzg5X2NvcmVfc3RhX2xpbmtfYXNzb2NgIGNhbGxzIGBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RgLiBBbHNvLCBgcnR3ODlfd293X2Z3X3N0YXJ0YCBhbmQgYHJ0dzg5X3dvd19md19zdG9wYCBib3RoIGNhbGwgYHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlYCwgYHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGRgLCBhbmQgYHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZGAuIGBydHc4OV93b3dfc3dhcF9md2AgY2FsbHMgYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAgYXMgd2VsbC4gU2VlbXMgbGlrZSB0aGVzZSBXb1cgKFdha2Utb24tV2lyZWxlc3MpIGZ1bmN0aW9uYWxpdGllcyBhcmUga2V5IHBsYXllcnMgaGVyZSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuXG5cbk5vdywgdGhlIHJlYWxseSBpbnRlcmVzdGluZyBwYXJ0OiBJJ20gY2xhc3NpZnlpbmcgdGhpcyBhcyBhIGZ1bmN0aW9uYWwgbG9naWMgbW9kaWZpY2F0aW9uIGJlY2F1c2UgdGhlIGVycm9yIGhhbmRsaW5nIGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBhbmQgaXRzIGNhbGxlcnMgaXMgY2hhbmdpbmcuIFByZXZpb3VzbHksIGFueSBlcnJvciBqdXN0IHJldHVybmVkIGAtRU5PTUVNYC4gTm93LCB0aGUgcGF0Y2ggKnByZXNlcnZlcyogdGhlIGVycm9yIHJldHVybiBjb2RlIChgcmV0YCkgZnJvbSBhIG5lc3RlZCBjYWxsIHRvIGBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkYC4gSWYgdGhhdCBuZXN0ZWQgY2FsbCByZXR1cm5zIGFueXRoaW5nIG90aGVyIHRoYW4gLUVOT01FTSAoZS5nLiAtRUJVU1ksIC1FSU5WQUwpLCB0aGVuIHRoYXQgZXJyb3IgaXMgcmVzcGVjdGVkLCBidXQgLUVOT01FTSBpcyBzdGlsbCByZXR1cm5lZCBpZiBubyBTS0IuIFRoaXMgaXMgaW1wb3J0YW50IHRvIG5vdGUgc2luY2UgaXQgY2hhbmdlcyBob3cgcG90ZW50aWFsIGlzc3VlcyBhcmUgcHJvcGFnYXRlZCB1cCB0aGUgc3RhY2ssIGFuZCBpdCdzIHNvbWV0aGluZyBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIGZvciBmdXp6aW5nLiBBbHNvLCBpdCdzIGdvb2QgdG8ga25vdyB0aGlzIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIFVTQiBlbnZpcm9ubWVudHMgbGlrZSB0aG9zZSB1c2VkIGJ5IHN5emthbGxlci5cblxuRmluYWxseSwganVzdCB0byBiZSBzdXJlLCBJJ3ZlIGNoZWNrZWQgdGhlIHJlbGV2YW50IGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuICBJJ3ZlIGNvbmZpcm1lZCB0aGF0IHRoZSBjcml0aWNhbCBjb25maWdzIChgUlRXODlgLCBgUlRXODlfQ09SRWAsIGBSVFc4OV9QQ0lgLCBgUlRXODlfVVNCYCwgYFJUVzg5Xzg4NTJBVWAsIGBSVFc4OV84ODUyQUVgLCBhbmQgYE1BQzgwMjExYCkgYXJlIGFsbCBwcmVzZW50LiBMZXQncyBzZWUgaWYgYFJUVzg5X0NPUkVgIGhhcyBvdGhlciBpZmRlZnMsIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgIHNwZWNpZmljYWxseS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDkyMzEsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NzksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzoxMDowOS41NzI5NjgzODVaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2NDI5MDQ5OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiI2lmZGVmfCNpZiBJU19FTkFCTEVEXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MTA6MTAuMjM3MjY5MjM0WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ1MTA1MDIwMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFJUVzg5IEZpcm13YXJlIEJ1aWxkIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBgZncuY2AgaXMgZGVmaW5pdGVseSBiZWluZyBjb21waWxlZCBpbnRvIGBydHc4OV9jb3JlLm9gLCBidXQgb25seSB3aGVuIGBDT05GSUdfUlRXODlfQ09SRWAgaXMgYWN0aXZlLiAgVGhhdCBtYWtlcyBzZW5zZS4gTm93LCBsZXQncyB0cmFjZSB3aGVyZSBgQ09ORklHX1JUVzg5X0NPUkVgIGlzIGJlaW5nIHNlbGVjdGVkLiBSaWdodCwgaXQncyBiZWluZyBicm91Z2h0IGluIHRocm91Z2ggYSBidW5jaCBvZiBzcGVjaWZpYyBkZXZpY2UgY29uZmlndXJhdGlvbnMgbGlrZSBgQ09ORklHX1JUVzg5Xzg4NTJBVWAsIGBDT05GSUdfUlRXODlfODg1MkFFYCwgYW5kIHNvIG9uLiBUaGF0IG1lYW5zIHRoZSBzcGVjaWZpYyBjaGlwc2V0cyBhcmUgZGljdGF0aW5nIHRoZSBpbmNsdXNpb24uIEdvdCBpdC4gQW5kIHRoYXQgcGFyZW50IGNvbmZpZ3VyYXRpb24sIGBDT05GSUdfUlRXODlgLCBkZXBlbmRzIG9uIGBDT05GSUdfTUFDODAyMTFgLiBPa2F5LCBzbyBgTUFDODAyMTFgIGlzIGZ1bmRhbWVudGFsLlxuXG5Ob3csIGxldCdzIHF1aWNrbHkgcmV2aWV3IHRoZSBjcml0aWNhbCBzeW1ib2xzIGFuZCBjb25maWd1cmF0aW9ucyB0byBjb25maXJtIGV2ZXJ5dGhpbmcgaXMgYXMgZXhwZWN0ZWQuIExvb2tpbmcgYXQgYEZvY3VzU3ltYm9sc2AsIEkgc2VlIGBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RgLCBgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmVgLCBgcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkYCwgYW5kIGBydHc4OV9md19oMmNfd293X2d0a19vZmxkYCBhcmUgcmVsZXZhbnQuXG5cbkFuZCBmb3IgZW5hYmxlZCBjb25maWdzLCB3ZSBoYXZlOiBgUlRXODlgLCBgUlRXODlfQ09SRWAsIGBSVFc4OV9VU0JgLCBgUlRXODlfODg1MkFVYCwgYW5kIGZpbmFsbHkgYE1BQzgwMjExYC4gQWxsIG9mIHRoZXNlIGFsaWduIHdpdGggdGhlIGluaXRpYWwgZGVwZW5kZW5jeSBhbmFseXNpcywgc28gdGhpbmdzIHNlZW0gdG8gYmUgaW4gb3JkZXIuXG5cbldpdGggdGhhdCBjb25maXJtYXRpb24sIGl0J3MgdGltZSB0byBzZXQgdXAgdGhlIGNhbGwgdG8gYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA5MTIsIk91dHB1dFRva2VucyI6MjU0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjE0Ljc0Nzc3NDEyNFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNDM4NzM2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRXODlcIixcbiAgICBcIlJUVzg5X0NPUkVcIixcbiAgICBcIlJUVzg5X1VTQlwiLFxuICAgIFwiUlRXODlfODg1MkFVXCIsXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdFwiLFxuICAgIFwicnR3ODlfZndfaDJjX2tlZXBfYWxpdmVcIixcbiAgICBcInJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZFwiLFxuICAgIFwicnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGNvZGUgcHJvcGFnYXRpb24gaW4gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCBpbiB0aGUgUmVhbHRlayBydHc4OSBkcml2ZXIsIGVuc3VyaW5nIHByb3BlciBlcnJvciByZXR1cm4gdmFsdWVzIChzdWNoIGFzIC1FSU5WQUwgb24gaW52YWxpZCBwYWNrZXQgdHlwZXMgb3IgcHJvcGFnYXRpb24gb2YgZXJyb3JzIGZyb20gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZCkgaW5zdGVhZCBvZiB1bmNvbmRpdGlvbmFsbHkgcmV0dXJuaW5nIC1FTk9NRU0uIFRoZSBydHc4OSBkcml2ZXIgc3VwcG9ydHMgVVNCIGRldmljZXMgd2hpY2ggY2FuIGJlIGVtdWxhdGVkIGFuZCBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg5XCIsXG4gICAgXCJSVFc4OV9DT1JFXCIsXG4gICAgXCJSVFc4OV9VU0JcIixcbiAgICBcIlJUVzg5Xzg4NTJBVVwiLFxuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RcIixcbiAgICBcInJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlXCIsXG4gICAgXCJydHc4OV9md19oMmNfYXJwX29mZmxvYWRcIixcbiAgICBcInJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBjb2RlIHByb3BhZ2F0aW9uIGluIHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QgaW4gdGhlIFJlYWx0ZWsgcnR3ODkgZHJpdmVyLCBlbnN1cmluZyBwcm9wZXIgZXJyb3IgcmV0dXJuIHZhbHVlcyAoc3VjaCBhcyAtRUlOVkFMIG9uIGludmFsaWQgcGFja2V0IHR5cGVzIG9yIHByb3BhZ2F0aW9uIG9mIGVycm9ycyBmcm9tIHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQpIGluc3RlYWQgb2YgdW5jb25kaXRpb25hbGx5IHJldHVybmluZyAtRU5PTUVNLiBUaGUgcnR3ODkgZHJpdmVyIHN1cHBvcnRzIFVTQiBkZXZpY2VzIHdoaWNoIGNhbiBiZSBlbXVsYXRlZCBhbmQgZnV6emVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgVVNCIGVtdWxhdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MTA6MTQuODUyMTcwNDgyWiIsIlNlcSI6MjUsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzE3NDg4MTM1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjE0Ljg1Mjg4MzY3MloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjE3MTc0MTYyMzA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjb3JyZWN0cyBlcnJvciBoYW5kbGluZyBhbmQgcmV0dXJuIGNvZGUgcHJvcGFnYXRpb24gaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QoKWAuIFNwZWNpZmljYWxseSwgaXQgYXNzaWducyBhcHByb3ByaWF0ZSBlcnJvciBjb2RlcyAoYC1FSU5WQUxgIG9uIHVua25vd24gcGFja2V0IHR5cGUgYW5kIGAtRU5PTUVNYCBvbiBwYWNrZXQgYWxsb2NhdGlvbiBmYWlsdXJlKSBhbmQgcmV0dXJucyBgcmV0YCBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgYC1FTk9NRU1gLiBBbGwgdmFyaWFibGVzIGFyZSBmdWxseSBpbml0aWFsaXplZCwgYW5kIHRoZXJlIGFyZSBubyB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcywgaW5mby1sZWFrcyB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIGJ1ZmZlciB1c2FnZXMgaW52b2x2ZWQuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzMDhhNDRiYTJiNWQxY2QyYjdmOGY2ZmNlOGE3YjUxZDdhODhiOTBmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBTZXAgMSAyMzowOTowOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuaW5kZXggZDZhNTk0Yjc1YWIyMC4uYWIyZDBiMGNiMWU1OSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXG5AQCAtMzAxMywxMSArMzAxMywxNCBAQCBzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuIFx0XHRza2IgPSBydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4rXHRcdHJldCA9IC1FSU5WQUw7XG4gXHRcdGdvdG8gZXJyO1xuIFx0fVxuIFxuLVx0aWYgKCFza2IpXG4rXHRpZiAoIXNrYikge1xuK1x0XHRyZXQgPSAtRU5PTUVNO1xuIFx0XHRnb3RvIGVycjtcbitcdH1cbiBcbiBcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQocnR3ZGV2LCBcdTAwMjZpbmZvLVx1MDAzZWlkLCBza2IpO1xuIFx0a2ZyZWVfc2tiKHNrYik7XG5AQCAtMzAzMSw3ICszMDM0LDcgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcbiBlcnI6XG4gXHRrZnJlZShpbmZvKTtcbi1cdHJldHVybiAtRU5PTUVNO1xuK1x0cmV0dXJuIHJldDtcbiB9XG4gXG4gdm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3RfdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjE0Ljg1Mjg4NTAyMloiLCJTZXEiOjI3LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2NTMwNzU2NjE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRpdmluZyBpbnRvIHRoZSBSZWFsdGVrIFdpcmVsZXNzIEZpcm13YXJlKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyBoYXBwZW5pbmcgd2l0aCB0aGlzIFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBydHc4OWAgY29kZS4gTXkgZmlyc3QgbW92ZSB3aWxsIGJlIHRvIHplcm8gaW4gb24gdGhlIGRpZmYgYW5kIHJlYWQgdGhlIGNvbnRleHQgYXJvdW5kIHRoZSBjaGFuZ2VzIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgLiBUaGF0J2xsIGdpdmUgbWUgdGhlIGJyb2FkIHN0cm9rZXMg4oCTIHRoZSAqd2h5KiBiZWhpbmQgdGhlIGNoYW5nZS4gXG5cblRoZW4sIEknbGwgZHJpbGwgZG93biBmdXJ0aGVyLiBJJ20gZ29pbmcgdG8gbGV2ZXJhZ2UgYHJlYWQtZmlsZWAgdG8gZ2V0IGEgZGlyZWN0IGxvb2sgYXQgdGhlIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBmdW5jdGlvbi4gSSB3YW50IHRvIHNlZSBleGFjdGx5IGhvdyBpdCBmdW5jdGlvbnMsIHVuZGVyc3RhbmQgdGhlIGRhdGEgaXQgaGFuZGxlcywgYW5kIGVuc3VyZSBpdCBhbGlnbnMgd2l0aCB0aGUgY2hhbmdlcyBJJ3ZlIHNlZW4gaW4gdGhlIGRpZmYuIFRoaXMgaXMgd2hlcmUgdGhlIHJlYWwgbWVhdCBvZiB0aGUgYW5hbHlzaXMgYmVnaW5zIGZvciBtZSwgYXMgSSBuZWVkIHRvIGNvbXByZWhlbmQgZXZlcnkgZGV0YWlsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjkxLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzoxMDoyMS4zODM2NDM3NjZaIiwiU2VxIjoyOCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTUxODUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyOTgwLFxuICBcIkxpbmVDb3VudFwiOiA3MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyOTgwOlxcdFxcdFxcdFxcdFxcdFxcdGVudW0gcnR3ODlfZndfcGt0X29mbGRfdHlwZSB0eXBlLFxcbjI5ODE6XFx0XFx0XFx0XFx0XFx0XFx0dTggKmlkKVxcbjI5ODI6XFx0e1xcbjI5ODM6XFx0XFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiA9IHJ0d3ZpZl9saW5rX3RvX3ZpZihydHd2aWZfbGluayk7XFxuMjk4NDpcXHRcXHRpbnQgbGlua19pZCA9IGllZWU4MDIxMV92aWZfaXNfbWxkKHZpZikgPyBydHd2aWZfbGluay1cXHUwMDNlbGlua19pZCA6IC0xO1xcbjI5ODU6XFx0XFx0c3RydWN0IHJ0dzg5X3BrdG9mbGRfaW5mbyAqaW5mbztcXG4yOTg2OlxcdFxcdHN0cnVjdCBza19idWZmICpza2I7XFxuMjk4NzpcXHRcXHRpbnQgcmV0O1xcbjI5ODg6XFx0XFxuMjk4OTpcXHRcXHRpbmZvID0ga3phbGxvY19vYmooKmluZm8pO1xcbjI5OTA6XFx0XFx0aWYgKCFpbmZvKVxcbjI5OTE6XFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuMjk5MjpcXHRcXG4yOTkzOlxcdFxcdHN3aXRjaCAodHlwZSkge1xcbjI5OTQ6XFx0XFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX1BTX1BPTEw6XFxuMjk5NTpcXHRcXHRcXHRza2IgPSBpZWVlODAyMTFfcHNwb2xsX2dldChydHdkZXYtXFx1MDAzZWh3LCB2aWYpO1xcbjI5OTY6XFx0XFx0XFx0YnJlYWs7XFxuMjk5NzpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFJPQkVfUlNQOlxcbjI5OTg6XFx0XFx0XFx0c2tiID0gaWVlZTgwMjExX3Byb2JlcmVzcF9nZXQocnR3ZGV2LVxcdTAwM2VodywgdmlmKTtcXG4yOTk5OlxcdFxcdFxcdGJyZWFrO1xcbjMwMDA6XFx0XFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQTpcXG4zMDAxOlxcdFxcdFxcdHNrYiA9IGllZWU4MDIxMV9udWxsZnVuY19nZXQocnR3ZGV2LVxcdTAwM2VodywgdmlmLCBsaW5rX2lkLCBmYWxzZSk7XFxuMzAwMjpcXHRcXHRcXHRicmVhaztcXG4zMDAzOlxcdFxcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9RT1NfTlVMTDpcXG4zMDA0OlxcdFxcdFxcdHNrYiA9IGllZWU4MDIxMV9udWxsZnVuY19nZXQocnR3ZGV2LVxcdTAwM2VodywgdmlmLCBsaW5rX2lkLCB0cnVlKTtcXG4zMDA1OlxcdFxcdFxcdGJyZWFrO1xcbjMwMDY6XFx0XFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX0VBUE9MX0tFWTpcXG4zMDA3OlxcdFxcdFxcdHNrYiA9IHJ0dzg5X2VhcG9sX2dldChydHdkZXYsIHJ0d3ZpZl9saW5rKTtcXG4zMDA4OlxcdFxcdFxcdGJyZWFrO1xcbjMwMDk6XFx0XFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX1NBX1FVRVJZOlxcbjMwMTA6XFx0XFx0XFx0c2tiID0gcnR3ODlfc2FfcXVlcnlfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xcbjMwMTE6XFx0XFx0XFx0YnJlYWs7XFxuMzAxMjpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfQVJQX1JTUDpcXG4zMDEzOlxcdFxcdFxcdHNrYiA9IHJ0dzg5X2FycF9yZXNwb25zZV9nZXQocnR3ZGV2LCBydHd2aWZfbGluayk7XFxuMzAxNDpcXHRcXHRcXHRicmVhaztcXG4zMDE1OlxcdFxcdGRlZmF1bHQ6XFxuMzAxNjpcXHRcXHRcXHRyZXQgPSAtRUlOVkFMO1xcbjMwMTc6XFx0XFx0XFx0Z290byBlcnI7XFxuMzAxODpcXHRcXHR9XFxuMzAxOTpcXHRcXG4zMDIwOlxcdFxcdGlmICghc2tiKSB7XFxuMzAyMTpcXHRcXHRcXHRyZXQgPSAtRU5PTUVNO1xcbjMwMjI6XFx0XFx0XFx0Z290byBlcnI7XFxuMzAyMzpcXHRcXHR9XFxuMzAyNDpcXHRcXG4zMDI1OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQocnR3ZGV2LCBcXHUwMDI2aW5mby1cXHUwMDNlaWQsIHNrYik7XFxuMzAyNjpcXHRcXHRrZnJlZV9za2Ioc2tiKTtcXG4zMDI3OlxcdFxcbjMwMjg6XFx0XFx0aWYgKHJldClcXG4zMDI5OlxcdFxcdFxcdGdvdG8gZXJyO1xcbjMwMzA6XFx0XFxuMzAzMTpcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZpbmZvLVxcdTAwM2VsaXN0LCBcXHUwMDI2cnR3dmlmX2xpbmstXFx1MDAzZWdlbmVyYWxfcGt0X2xpc3QpO1xcbjMwMzI6XFx0XFx0KmlkID0gaW5mby1cXHUwMDNlaWQ7XFxuMzAzMzpcXHRcXHRyZXR1cm4gMDtcXG4zMDM0OlxcdFxcbjMwMzU6XFx0ZXJyOlxcbjMwMzY6XFx0XFx0a2ZyZWUoaW5mbyk7XFxuMzAzNzpcXHRcXHRyZXR1cm4gcmV0O1xcbjMwMzg6XFx0fVxcbjMwMzk6XFx0XFxuMzA0MDpcXHR2b2lkIHJ0dzg5X2Z3X3JlbGVhc2VfZ2VuZXJhbF9wa3RfbGlzdF92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbjMwNDE6XFx0XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4zMDQyOlxcdFxcdFxcdFxcdFxcdFxcdCAgIGJvb2wgbm90aWZ5X2Z3KVxcbjMwNDM6XFx0e1xcbjMwNDQ6XFx0XFx0c3RydWN0IGxpc3RfaGVhZCAqcGt0X2xpc3QgPSBcXHUwMDI2cnR3dmlmX2xpbmstXFx1MDAzZWdlbmVyYWxfcGt0X2xpc3Q7XFxuMzA0NTpcXHRcXHRzdHJ1Y3QgcnR3ODlfcGt0b2ZsZF9pbmZvICppbmZvLCAqdG1wO1xcbjMwNDY6XFx0XFxuMzA0NzpcXHRcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoaW5mbywgdG1wLCBwa3RfbGlzdCwgbGlzdCkge1xcbjMwNDg6XFx0XFx0XFx0aWYgKG5vdGlmeV9mdylcXG4zMDQ5OlxcdFxcdFxcdFxcdHJ0dzg5X2Z3X2gyY19kZWxfcGt0X29mZmxvYWQocnR3ZGV2LCBpbmZvLVxcdTAwM2VpZCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjIxLjM4NDE5NzY4NloiLCJTZXEiOjI5LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0NzU4NDEzNTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQnVnIEZpeCBpbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoZSBjb3JlIGlzc3VlIGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCB3YXMgaW4gdGhlIGVycm9yIGhhbmRsaW5nLiBCZWZvcmUgdGhlIHBhdGNoLCB0aGUgZnVuY3Rpb24ncyBgZXJyOmAgbGFiZWwgY29uc2lzdGVudGx5IHJldHVybmVkIGAtRU5PTUVNYC4gVGhlIHByb2JsZW0gd2FzIHRoYXQgdGhlIHJldHVybiB2YWx1ZSBgcmV0YCB3YXNuJ3QgYWx3YXlzIHByb3Blcmx5IGluaXRpYWxpemVkIGJlZm9yZSBoaXR0aW5nIHRoYXQgYGVycjpgIGxhYmVsLiBTcGVjaWZpY2FsbHksIGlmIGBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkYCBmYWlsZWQsIG9yIGlmIHRoZSBgZGVmYXVsdGAgY2FzZSB3YXMgaGl0LCB0aGUgY29kZSB3b3VsZCBqdW1wIHRvIGBlcnI6YCB3aXRob3V0IHNldHRpbmcgYHJldGAsIGJ1dCBgZXJyOmAgd291bGQgKnN0aWxsKiByZXR1cm4gYC1FTk9NRU1gLCBlZmZlY3RpdmVseSBtYXNraW5nIHRoZSBvcmlnaW5hbCBlcnJvciBjb2RlLiBBbmQsIGl0IHNlZW1zLCBpbiBgZGVmYXVsdDpgLCBgZ290byBlcnI7YCB3YXMgdXNlZCAqYmVmb3JlKiBpbml0aWFsaXppbmcgYHJldGAuIExpa2V3aXNlIGZvciB0aGUgYCFza2JgIHBhdGguIFRoaXMgbWVhbnQgcG90ZW50aWFsbHkgbG9zaW5nIHZhbHVhYmxlIGVycm9yIGluZm9ybWF0aW9uLlxuXG5UaGUgcGF0Y2ggZml4ZXMgdGhpcyBieSBlbnN1cmluZyBgcmV0YCBpcyBpbml0aWFsaXplZCAqYmVmb3JlKiBgZXJyOmAuIE5vdywgYGVycjpgIHJldHVybnMgdGhlIGNvcnJlY3QgYHJldGAgdmFsdWUuIFNwZWNpZmljYWxseSwgaXQgaW5pdGlhbGl6ZXMgYHJldCA9IC1FSU5WQUw7YCBmb3IgdGhlIGBkZWZhdWx0OmAgY2FzZSwgYW5kIGByZXQgPSAtRU5PTUVNO2AgaWYgdGhlIGBza2JgIGlzIE5VTEwuIElmIHRoZSBgcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZGAgY2FsbCBmYWlscywgdGhlIHByb3BlciBgcmV0YCB2YWx1ZSBpcyB1c2VkLlxuXG5Ob3csIGxldCdzIGFzc2VzcyB0aGUgaW1wbGljYXRpb25zLiBEb2VzIHRoaXMgaW50cm9kdWNlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByaXNrcyBvciBLTVNBTiBjb25jZXJucz8gTm8sIGl0IGRvZXNuJ3QgYXBwZWFyIHRvLiBUaGUgYGluZm9gIHN0cnVjdHVyZSBpcyBhbGxvY2F0ZWQgdmlhIGBremFsbG9jX29iamAsIHNvIGl0J3MgemVyb2VkLCBhbmQgaXQncyBwcm9wZXJseSBmcmVlZCBpZiBhbGxvY2F0aW9uIGZhaWxzLiBUaGUgdmFyaWFibGUgYHJldGAgaXMganVzdCBhbiBpbnRlZ2VyIHRoYXQncyByZXR1cm5lZCBhcyBhbiBlcnJvciBjb2RlLiBJbXBvcnRhbnRseSwgYWxsIHBhdGhzIGxlYWRpbmcgdG8gYGVycjpgIG5vdyBndWFyYW50ZWUgdGhhdCBgcmV0YCBpcyBpbml0aWFsaXplZCwgYXMgYmVmb3JlLiBObyB1c2VyLXNwYWNlIGRhdGEgc3RydWN0dXJlcyBhcmUgY29waWVkLCBzbyB0aGVyZSdzIG5vIHJpc2sgb2YgbWVtb3J5IGxlYWtzIHZpYSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBjYWxsZXJzIG9mIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCB0byBtYWtlIGNlcnRhaW4gZXZlcnl0aGluZyBpcyBjbGVhbi5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg0OSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4NiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjI2LjE0MjYxNTIwMloiLCJTZXEiOjMwLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgyMzExODAwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0yOTI4PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjk3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6Mjk3ODpzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc5LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MzA3MT1pbnQgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDgwOlxcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4MS1cXHRcXHRcXHRcXHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFNfUE9MTCwgXFx1MDAyNnBrdF9pZF9wc19wb2xsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzA4MjpcXHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwODMtXFx0XFx0XFx0XFx0ICAgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQSwgXFx1MDAyNnBrdF9pZF9udWxsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzA4NDpcXHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwODUtXFx0XFx0XFx0XFx0ICAgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX1FPU19OVUxMLCBcXHUwMDI2cGt0X2lkX3Fvc19udWxsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz05NjI3PWludCBydHc4OV9md19oMmNfa2VlcF9hbGl2ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTYzNC1cXHRpZiAoZW5hYmxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk2MzU6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjM2LVxcdFxcdFxcdFxcdFxcdFxcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfQVJQX1JTUCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz05Njc1PWludCBydHc4OV9md19oMmNfYXJwX29mZmxvYWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk2ODQtXFx0aWYgKGVuYWJsZSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5Njg1OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTY4Ni1cXHRcXHRcXHRcXHRcXHRcXHQgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX0FSUF9SU1AsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MTAwNDI9aW50IHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxMDA3MTpcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDcyLVxcdFxcdFxcdFxcdFxcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfRUFQT0xfS0VZLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDc3LVxcdGlmIChndGtfaW5mby1cXHUwMDNlaWd0a19rZXlpZCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxMDA3ODpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDc5LVxcdFxcdFxcdFxcdFxcdFxcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfU0FfUVVFUlksXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjI4Ljk2NTc0Mjg1M1oiLCJTZXEiOjMxLCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMDYxMjc2ODA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIENvZGUgQ2hhbmdlKipcblxuT2theSwgdGhpcyBpcyBwcmV0dHkgY2xlYW4uIFRoZSBjb3JlIG9mIGl0IGlzIGEgc3RyYWlnaHRmb3J3YXJkIGZpeCBmb3IgZXJyb3IgaGFuZGxpbmcgd2l0aGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YC4gSXQgc2VlbXMgdGhlIG9yaWdpbmFsIGNvZGUgd2FzIG1hc2tpbmcgdGhlIGFjdHVhbCBlcnJvciBhbmQgYWx3YXlzIHJldHVybmluZyBgLUVOT01FTWAgaW4gY2VydGFpbiBmYWlsdXJlIHNjZW5hcmlvcy4gVGhpcyBjaGFuZ2UgY29ycmVjdHMgdGhhdCBieSBlbnN1cmluZyB0aGUgZnVuY3Rpb24gcmVwb3J0cyB0aGUgKnJlYWwqIGVycm9yIGNvZGUgKGByZXRgKSBmcm9tIHRoZSBvcGVyYXRpb24uIFNwZWNpZmljYWxseSwgaXQgZXhwbGljaXRseSBzZXRzIGByZXRgIHRvIGAtRUlOVkFMYCBmb3IgdW5leHBlY3RlZCBjb25kaXRpb25zIHdpdGhpbiB0aGUgYGRlZmF1bHQ6YCBjYXNlLCBhbmQgYC1FTk9NRU1gIHdoZW4gdGhlIGFsbG9jYXRpb24gb2YgdGhlIGBza2JgIGZhaWxzLlxuXG5UaGVyZSBhcmUgbm8gb2J2aW91cyB2dWxuZXJhYmlsaXRpZXMgaGVyZTsgSSdtIG5vdCBzZWVpbmcgYW55IHJpc2tzIGFyb3VuZCB1bmluaXRpYWxpemVkIG1lbW9yeSwgc3VwZXJmbHVvdXMgdXNlci1zcGFjZSBjb3BpZXMsIG9yIGRhdGEgbGVha3MgZHVlIHRvIHBhZGRpbmcuIEkgdGhpbmsgdGhpcyBjYW4gYmUgY2F0ZWdvcml6ZWQgYXMgYSBmb2N1c2VkLCBzYWZlIGJ1ZyBmaXguIEJhc2VkIG9uIHRoYXQsIEtNU0FOIGlzbid0IG5lY2Vzc2FyeS5cblxuTGV0J3MgcHJvY2VlZCB0byBgc2V0LXJlc3VsdHNgIGFuZCBhcnRpY3VsYXRlIHRoaXMgY29uY2lzZSByYXRpb25hbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYxNjYsIk91dHB1dFRva2VucyI6MTM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjMyLjAyNzAyMjU3OVoiLCJTZXEiOjMyLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNjY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY29ycmVjdHMgZXJyb3IgaGFuZGxpbmcgYW5kIHJldHVybiBjb2RlIHByb3BhZ2F0aW9uIGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KClgLiBTcGVjaWZpY2FsbHksIGl0IGFzc2lnbnMgYXBwcm9wcmlhdGUgZXJyb3IgY29kZXMgKGAtRUlOVkFMYCBvbiB1bmtub3duIHBhY2tldCB0eXBlIGFuZCBgLUVOT01FTWAgb24gcGFja2V0IGFsbG9jYXRpb24gZmFpbHVyZSkgYW5kIHJldHVybnMgYHJldGAgaW5zdGVhZCBvZiBoYXJkY29kaW5nIGAtRU5PTUVNYC4gQWxsIHZhcmlhYmxlcyBhcmUgZnVsbHkgaW5pdGlhbGl6ZWQsIGFuZCB0aGVyZSBhcmUgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMsIGluZm8tbGVha3MgdG8gdXNlciBzcGFjZSwgb3IgdW5pbml0aWFsaXplZCBidWZmZXIgdXNhZ2VzIGludm9sdmVkLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY29ycmVjdHMgZXJyb3IgaGFuZGxpbmcgYW5kIHJldHVybiBjb2RlIHByb3BhZ2F0aW9uIGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KClgLiBTcGVjaWZpY2FsbHksIGl0IGFzc2lnbnMgYXBwcm9wcmlhdGUgZXJyb3IgY29kZXMgKGAtRUlOVkFMYCBvbiB1bmtub3duIHBhY2tldCB0eXBlIGFuZCBgLUVOT01FTWAgb24gcGFja2V0IGFsbG9jYXRpb24gZmFpbHVyZSkgYW5kIHJldHVybnMgYHJldGAgaW5zdGVhZCBvZiBoYXJkY29kaW5nIGAtRU5PTUVNYC4gQWxsIHZhcmlhYmxlcyBhcmUgZnVsbHkgaW5pdGlhbGl6ZWQsIGFuZCB0aGVyZSBhcmUgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMsIGluZm8tbGVha3MgdG8gdXNlciBzcGFjZSwgb3IgdW5pbml0aWFsaXplZCBidWZmZXIgdXNhZ2VzIGludm9sdmVkLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowscrnm[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-01 22:24:24 +0000 UTC FinishedAt: 2026-09-01 23:10:33 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "6c322f5cf7476ded7a9a20f7be72462065a03c68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89", "RTW89_CORE", "RTW89_USB", "RTW89_8852AU", "MAC80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "6c322f5cf7476ded7a9a20f7be72462065a03c68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89", "RTW89_CORE", "RTW89_USB", "RTW89_8852AU", "MAC80211" ], "series_id": "01c2cc0c-e7c7-49c8-a734-7991d6fd25f4" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtw89_fw_h2c_general_pkt", "rtw89_fw_h2c_keep_alive", "rtw89_fw_h2c_arp_offload", "rtw89_fw_h2c_wow_gtk_ofld" ], "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+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5JiMzNDssCiAgICAmIzM0O1JUVzg5X0NPUkUmIzM0OywKICAgICYjMzQ7UlRXODlfVVNCJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJBVSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdCYjMzQ7LAogICAgJiMzNDtydHc4OV9md19oMmNfa2VlcF9hbGl2ZSYjMzQ7LAogICAgJiMzNDtydHc4OV9md19oMmNfYXJwX29mZmxvYWQmIzM0OywKICAgICYjMzQ7cnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZCYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvcnJlY3RzIGVycm9yIGhhbmRsaW5nIGFuZCByZXR1cm4gY29kZSBwcm9wYWdhdGlvbiBpbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCgpYC4gU3BlY2lmaWNhbGx5LCBpdCBhc3NpZ25zIGFwcHJvcHJpYXRlIGVycm9yIGNvZGVzIChgLUVJTlZBTGAgb24gdW5rbm93biBwYWNrZXQgdHlwZSBhbmQgYC1FTk9NRU1gIG9uIHBhY2tldCBhbGxvY2F0aW9uIGZhaWx1cmUpIGFuZCByZXR1cm5zIGByZXRgIGluc3RlYWQgb2YgaGFyZGNvZGluZyBgLUVOT01FTWAuIEFsbCB2YXJpYWJsZXMgYXJlIGZ1bGx5IGluaXRpYWxpemVkLCBhbmQgdGhlcmUgYXJlIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLCBpbmZvLWxlYWtzIHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgYnVmZmVyIHVzYWdlcyBpbnZvbHZlZC4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHJlcXVpcmVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBjb2RlIHByb3BhZ2F0aW9uIGluIHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QgaW4gdGhlIFJlYWx0ZWsgcnR3ODkgZHJpdmVyLCBlbnN1cmluZyBwcm9wZXIgZXJyb3IgcmV0dXJuIHZhbHVlcyAoc3VjaCBhcyAtRUlOVkFMIG9uIGludmFsaWQgcGFja2V0IHR5cGVzIG9yIHByb3BhZ2F0aW9uIG9mIGVycm9ycyBmcm9tIHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQpIGluc3RlYWQgb2YgdW5jb25kaXRpb25hbGx5IHJldHVybmluZyAtRU5PTUVNLiBUaGUgcnR3ODkgZHJpdmVyIHN1cHBvcnRzIFVTQiBkZXZpY2VzIHdoaWNoIGNhbiBiZSBlbXVsYXRlZCBhbmQgZnV6emVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzowOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDMwOGE0NGJhMmI1ZDFjZDJiN2Y4ZjZmY2U4YTdiNTFkN2E4OGI5MGZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIFNlcCAxIDIzOjA5OjA5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuaW5kZXggZDZhNTk0Yjc1YWIyMC4uYWIyZDBiMGNiMWU1OSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXG5AQCAtMzAxMywxMSAmIzQzOzMwMTMsMTQgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcdFx0c2tiID0gcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChydHdkZXYsIHJ0d3ZpZl9saW5rKTtcbiBcdFx0YnJlYWs7XG4gXHRkZWZhdWx0OlxuJiM0MztcdFx0cmV0ID0gLUVJTlZBTDtcbiBcdFx0Z290byBlcnI7XG4gXHR9XG4gXG4tXHRpZiAoIXNrYilcbiYjNDM7XHRpZiAoIXNrYikge1xuJiM0MztcdFx0cmV0ID0gLUVOT01FTTtcbiBcdFx0Z290byBlcnI7XG4mIzQzO1x0fVxuIFxuIFx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZChydHdkZXYsIFx1MDAyNmluZm8tXHUwMDNlaWQsIHNrYik7XG4gXHRrZnJlZV9za2Ioc2tiKTtcbkBAIC0zMDMxLDcgJiM0MzszMDM0LDcgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcbiBlcnI6XG4gXHRrZnJlZShpbmZvKTtcbi1cdHJldHVybiAtRU5PTUVNO1xuJiM0MztcdHJldHVybiByZXQ7XG4gfVxuIFxuIHZvaWQgcnR3ODlfZndfcmVsZWFzZV9nZW5lcmFsX3BrdF9saXN0X3ZpZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRXODkmIzM0OywKICAgICYjMzQ7UlRXODlfQ09SRSYjMzQ7LAogICAgJiMzNDtSVFc4OV9VU0ImIzM0OywKICAgICYjMzQ7UlRXODlfODg1MkFVJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0JiMzNDssCiAgICAmIzM0O3J0dzg5X2Z3X2gyY19rZWVwX2FsaXZlJiMzNDssCiAgICAmIzM0O3J0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZCYjMzQ7LAogICAgJiMzNDtydHc4OV9md19oMmNfd293X2d0a19vZmxkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGNvZGUgcHJvcGFnYXRpb24gaW4gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCBpbiB0aGUgUmVhbHRlayBydHc4OSBkcml2ZXIsIGVuc3VyaW5nIHByb3BlciBlcnJvciByZXR1cm4gdmFsdWVzIChzdWNoIGFzIC1FSU5WQUwgb24gaW52YWxpZCBwYWNrZXQgdHlwZXMgb3IgcHJvcGFnYXRpb24gb2YgZXJyb3JzIGZyb20gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZCkgaW5zdGVhZCBvZiB1bmNvbmRpdGlvbmFsbHkgcmV0dXJuaW5nIC1FTk9NRU0uIFRoZSBydHc4OSBkcml2ZXIgc3VwcG9ydHMgVVNCIGRldmljZXMgd2hpY2ggY2FuIGJlIGVtdWxhdGVkIGFuZCBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMzA4YTQ0YmEyYjVkMWNkMmI3ZjhmNmZjZThhN2I1MWQ3YTg4YjkwZgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgU2VwIDEgMjM6MDk6MDkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMKaW5kZXggZDZhNTk0Yjc1YWIyMC4uYWIyZDBiMGNiMWU1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYwpAQCAtMzAxMywxMSAmIzQzOzMwMTMsMTQgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwKIAkJc2tiID0gcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChydHdkZXYsIHJ0d3ZpZl9saW5rKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKJiM0MzsJCXJldCA9IC1FSU5WQUw7CiAJCWdvdG8gZXJyOwogCX0KIAotCWlmICghc2tiKQomIzQzOwlpZiAoIXNrYikgewomIzQzOwkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBlcnI7CiYjNDM7CX0KIAogCXJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQocnR3ZGV2LCAmYW1wO2luZm8tJmd0O2lkLCBza2IpOwogCWtmcmVlX3NrYihza2IpOwpAQCAtMzAzMSw3ICYjNDM7MzAzNCw3IEBAIHN0YXRpYyBpbnQgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsCiAKIGVycjoKIAlrZnJlZShpbmZvKTsKLQlyZXR1cm4gLUVOT01FTTsKJiM0MzsJcmV0dXJuIHJldDsKIH0KIAogdm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3RfdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI5NAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEwNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBGaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHNjb3BlIG9mIHRoaXMgcGF0Y2guIFRoZSBpbml0aWFsIGNsdWUgaXMgdGhhdCBpdCYjMzk7cyBoaXR0aW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgLCBzcGVjaWZpY2FsbHkgdGhlIGZ1bmN0aW9uIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YC4gVGhhdCBwb2ludHMgbWUgZGlyZWN0bHkgdG8gYSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciDigJMgYSBjb21tb24gdGFyZ2V0IGZvciB2dWxuZXJhYmlsaXRpZXMuCgpNeSBpbW1lZGlhdGUgdGhvdWdodHMgYXJlIGFib3V0IHRoZSBwb3RlbnRpYWwgZm9yIGZ1enppbmcuIElzIHRoaXMgYSBkcml2ZXIgdGhhdCYjMzk7cyBlYXNpbHkgdGVzdGFibGUgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIG9yIGRvZXMgaXQgZGVwZW5kIG9uIHNwZWNpZmljIFJlYWx0ZWsgaGFyZHdhcmU/IEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyBzb21ldGhpbmcgSSBjYW4gZWFzaWx5IHNldCB1cCBpbiBteSBsYWIuIFRvIGRldGVybWluZSB0aGF0LCBJJiMzOTtsbCBuZWVkIHRvIGtub3cgYSBiaXQgbW9yZSBhYm91dCB0aGUgZHJpdmVyIGl0c2VsZi4gTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgc2VhcmNoIHRocm91Z2ggdGhlIEtjb25maWcgZmlsZXMgYW5kIGRyaXZlciBkaXJlY3RvcmllcyB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBgcnR3ODlgIGNvbXBvbmVudC4gVGhpcyB3aWxsIGhlbHAgbWUgdW5kZXJzdGFuZCBpdHMgZGVwZW5kZW5jaWVzIGFuZCBpZiBpdCYjMzk7cyBhIGdvb2QgY2FuZGlkYXRlIGZvciB2dWxuZXJhYmlsaXR5IGFzc2Vzc21lbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UlRXODkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA5MzAwMiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4MDIuMTFheCB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExOmlmIFJUVzg5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM6Y29uZmlnIFJUVzg5X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3OmNvbmZpZyBSVFc4OV9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xOC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjA6Y29uZmlnIFJUVzg5X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMzpjb25maWcgUlRXODlfODg1MUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjY6Y29uZmlnIFJUVzg5Xzg4NTJBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI5OmNvbmZpZyBSVFc4OV84ODUyQl9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zMC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MzI6Y29uZmlnIFJUVzg5Xzg4NTJCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzMtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjM1OmNvbmZpZyBSVFc4OV84ODUyQlRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNi1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Mzg6Y29uZmlnIFJUVzg5Xzg4NTJDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzktXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQxOmNvbmZpZyBSVFc4OV84OTIyQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQyLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0NDpjb25maWcgUlRXODlfODg1MUJFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQ2LVx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0NzpcdHNlbGVjdCBSVFc4OV9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDg6XHRzZWxlY3QgUlRXODlfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDk6XHRzZWxlY3QgUlRXODlfODg1MUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01MC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTU6Y29uZmlnIFJUVzg5Xzg4NTFCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU2LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01Ny1cdGRlcGVuZHMgb24gVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTg6XHRzZWxlY3QgUlRXODlfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU5Olx0c2VsZWN0IFJUVzg5X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjYwOlx0c2VsZWN0IFJUVzg5Xzg4NTFCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNjEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjY2OmNvbmZpZyBSVFc4OV84ODUyQUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02Ny1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MkFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNjgtXHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjY5Olx0c2VsZWN0IFJUVzg5X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo3MDpcdHNlbGVjdCBSVFc4OV9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo3MTpcdHNlbGVjdCBSVFc4OV84ODUyQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTcyLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy03Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo3Nzpjb25maWcgUlRXODlfODg1MkFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTc5LVx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo4MDpcdHNlbGVjdCBSVFc4OV9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODE6XHRzZWxlY3QgUlRXODlfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODI6XHRzZWxlY3QgUlRXODlfODg1MkFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy04My1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODg6Y29uZmlnIFJUVzg5Xzg4NTJCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTg5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy05MC1cdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6OTE6XHRzZWxlY3QgUlRXODlfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjkyOlx0c2VsZWN0IFJUVzg5X1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjkzOlx0c2VsZWN0IFJUVzg5Xzg4NTJCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6OTQ6XHRzZWxlY3QgUlRXODlfODg1MkJfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctOTUtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwMDpjb25maWcgUlRXODlfODg1MkJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAxLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDItXHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwMzpcdHNlbGVjdCBSVFc4OV9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTA0Olx0c2VsZWN0IFJUVzg5X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwNTpcdHNlbGVjdCBSVFc4OV84ODUyQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwNjpcdHNlbGVjdCBSVFc4OV84ODUyQl9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDctXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTExMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMTI6Y29uZmlnIFJUVzg5Xzg4NTJCVEVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJCRS1WVCBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTExNC1cdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTE1Olx0c2VsZWN0IFJUVzg5X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMTY6XHRzZWxlY3QgUlRXODlfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTE3Olx0c2VsZWN0IFJUVzg5Xzg4NTJCVFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExODpcdHNlbGVjdCBSVFc4OV84ODUyQl9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTktXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjQ6Y29uZmlnIFJUVzg5Xzg4NTJDRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyNS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyNi1cdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTI3Olx0c2VsZWN0IFJUVzg5X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjg6XHRzZWxlY3QgUlRXODlfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTI5Olx0c2VsZWN0IFJUVzg5Xzg4NTJDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTMwLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM1OmNvbmZpZyBSVFc4OV84ODUyQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzYtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNkUpIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzctXHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEzODpcdHNlbGVjdCBSVFc4OV9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM5Olx0c2VsZWN0IFJUVzg5X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE0MDpcdHNlbGVjdCBSVFc4OV84ODUyQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE0MS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE0Njpjb25maWcgUlRXODlfODkyMkFFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4OTIyQUUvODkyMkFFLVZTIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ4LVx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNDk6XHRzZWxlY3QgUlRXODlfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE1MDpcdHNlbGVjdCBSVFc4OV9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNTE6XHRzZWxlY3QgUlRXODlfODkyMkFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNTItXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNjA6Y29uZmlnIFJUVzg5Xzg5MjJBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2MS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODkyMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTYyLVx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNjM6XHRzZWxlY3QgUlRXODlfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE2NDpcdHNlbGVjdCBSVFc4OV9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNjU6XHRzZWxlY3QgUlRXODlfODkyMkFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNjYtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzI6Y29uZmlnIFJUVzg5X0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTczLVx0Ym9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzU6Y29uZmlnIFJUVzg5X0RFQlVHTVNHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtSZWFsdGVrIHJ0dzg5IGRlYnVnIG1lc3NhZ2Ugc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3NzpcdGRlcGVuZHMgb24gUlRXODlfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3ODpcdHNlbGVjdCBSVFc4OV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3OS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE4NDpjb25maWcgUlRXODlfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE4NS1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OSBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxODY6XHRkZXBlbmRzIG9uIFJUVzg5X0NPUkUgXHUwMDI2XHUwMDI2IENGRzgwMjExX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxODc6XHRzZWxlY3QgUlRXODlfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODgtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozOm9iai0kKENPTkZJR19SVFc4OV9DT1JFKSAmIzQzOz0gcnR3ODlfY29yZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQtcnR3ODlfY29yZS15ICYjNDM7PSBjb3JlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlPTIzPXJ0dzg5X2NvcmUtJChDT05GSUdfUE0pICYjNDM7PSB3b3cub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTFCKSAmIzQzOz0gcnR3ODlfODg1MWIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yNi1ydHc4OV84ODUxYi1vYmpzIDo9IHJ0dzg4NTFiLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfUlRXODlfODg1MUJFKSAmIzQzOz0gcnR3ODlfODg1MWJlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzItcnR3ODlfODg1MWJlLW9ianMgOj0gcnR3ODg1MWJlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19SVFc4OV84ODUxQlUpICYjNDM7PSBydHc4OV84ODUxYnUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zNS1ydHc4OV84ODUxYnUtb2JqcyA6PSBydHc4ODUxYnUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6Mzc6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJBKSAmIzQzOz0gcnR3ODlfODg1MmEub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zOC1ydHc4OV84ODUyYS1vYmpzIDo9IHJ0dzg4NTJhLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo0MzpvYmotJChDT05GSUdfUlRXODlfODg1MkFFKSAmIzQzOz0gcnR3ODlfODg1MmFlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNDQtcnR3ODlfODg1MmFlLW9ianMgOj0gcnR3ODg1MmFlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjQ2Om9iai0kKENPTkZJR19SVFc4OV84ODUyQVUpICYjNDM7PSBydHc4OV84ODUyYXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00Ny1ydHc4OV84ODUyYXUtb2JqcyA6PSBydHc4ODUyYXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDk6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCX0NPTU1PTikgJiM0Mzs9IHJ0dzg5Xzg4NTJiX2NvbW1vbi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTUwLXJ0dzg5Xzg4NTJiX2NvbW1vbi1vYmpzIDo9IHJ0dzg4NTJiX2NvbW1vbi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo1MjpvYmotJChDT05GSUdfUlRXODlfODg1MkIpICYjNDM7PSBydHc4OV84ODUyYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTUzLXJ0dzg5Xzg4NTJiLW9ianMgOj0gcnR3ODg1MmIubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjU4Om9iai0kKENPTkZJR19SVFc4OV84ODUyQkUpICYjNDM7PSBydHc4OV84ODUyYmUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01OS1ydHc4OV84ODUyYmUtb2JqcyA6PSBydHc4ODUyYmUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS02MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NjE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCVSkgJiM0Mzs9IHJ0dzg5Xzg4NTJidS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTYyLXJ0dzg5Xzg4NTJidS1vYmpzIDo9IHJ0dzg4NTJidS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2NDpvYmotJChDT05GSUdfUlRXODlfODg1MkJUKSAmIzQzOz0gcnR3ODlfODg1MmJ0Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjUtcnR3ODlfODg1MmJ0LW9ianMgOj0gcnR3ODg1MmJ0Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2OTpvYmotJChDT05GSUdfUlRXODlfODg1MkJURSkgJiM0Mzs9IHJ0dzg5Xzg4NTJidGUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS03MC1ydHc4OV84ODUyYnRlLW9ianMgOj0gcnR3ODg1MmJ0ZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo3MjpvYmotJChDT05GSUdfUlRXODlfODg1MkMpICYjNDM7PSBydHc4OV84ODUyYy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTczLXJ0dzg5Xzg4NTJjLW9ianMgOj0gcnR3ODg1MmMubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjc4Om9iai0kKENPTkZJR19SVFc4OV84ODUyQ0UpICYjNDM7PSBydHc4OV84ODUyY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS03OS1ydHc4OV84ODUyY2Utb2JqcyA6PSBydHc4ODUyY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS04MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJDVSkgJiM0Mzs9IHJ0dzg5Xzg4NTJjdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgyLXJ0dzg5Xzg4NTJjdS1vYmpzIDo9IHJ0dzg4NTJjdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4NDpvYmotJChDT05GSUdfUlRXODlfODkyMkEpICYjNDM7PSBydHc4OV84OTIyYS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTg1LXJ0dzg5Xzg5MjJhLW9ianMgOj0gcnR3ODkyMmEubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjg4Om9iai0kKENPTkZJR19SVFc4OV84OTIyQUUpICYjNDM7PSBydHc4OV84OTIyYWUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS04OS1ydHc4OV84OTIyYWUtb2JqcyA6PSBydHc4OTIyYWUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTE6b2JqLSQoQ09ORklHX1JUVzg5Xzg5MjJBVSkgJiM0Mzs9IHJ0dzg5Xzg5MjJhdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTkyLXJ0dzg5Xzg5MjJhdS1vYmpzIDo9IHJ0dzg5MjJhdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo5NDpydHc4OV9jb3JlLSQoQ09ORklHX1JUVzg5X0RFQlVHKSAmIzQzOz0gZGVidWcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTY6b2JqLSQoQ09ORklHX1JUVzg5X1BDSSkgJiM0Mzs9IHJ0dzg5X3BjaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTk3LXJ0dzg5X3BjaS15IDo9IHBjaS5vIHBjaV9iZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo5OTpvYmotJChDT05GSUdfUlRXODlfVVNCKSAmIzQzOz0gcnR3ODlfdXNiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMTAwLXJ0dzg5X3VzYi15IDo9IHVzYi5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MTU9c3RhdGljIHUzMiBydHc4OV9hY3BpX3RyYXZlcnNhbF9vYmplY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyLVx0XHRpZiAodW5saWtlbHkob2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGggPT0gMCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMzOlx0XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNC1cdFx0XHRcdCAgICBcJiMzNDslczogaW52YWxpZCBidWZmZXIgdHlwZVxcblwmIzM0OywgX19mdW5jX18pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ0LVx0XHRpZiAodW5saWtlbHkob2JqLVx1MDAzZXBhY2thZ2UuY291bnQgPT0gMCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ1Olx0XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00Ni1cdFx0XHRcdCAgICBcJiMzNDslczogaW52YWxpZCBwYWNrYWdlIHR5cGVcXG5cJiMzNDssIF9fZnVuY19fKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MS1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MjpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7JXM6IHVuaGFuZGxlZCB0eXBlOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTYzLVx0XHRcdCAgICBfX2Z1bmNfXywgb2JqLVx1MDAzZXR5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTgwPXJ0dzg5X2FjcGlfZXZhbHVhdGVfbWV0aG9kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgY29uc3QgY2hhciAqbWV0aG9kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTkwLVx0aWYgKCFyb290KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo5MTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTkyLVx0XHRcdCAgICBcJiMzNDthY3BpICglcyk6IGZhaWxlZCB0byBnZXQgcm9vdFxcblwmIzM0OywgbWV0aG9kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05Ny1cdGlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6OTg6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05OS1cdFx0XHQgICAgXCYjMzQ7YWNwaSAoJXMpOiBmYWlsZWQgdG8gZ2V0IGhhbmRsZVxcblwmIzM0OywgbWV0aG9kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMDQtXHRpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEwNTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEwNi1cdFx0XHQgICAgXCYjMzQ7YWNwaSAoJXMpOiBmYWlsZWQgdG8gZXZhbHVhdGUgb2JqZWN0XFxuXCYjMzQ7LCBtZXRob2QpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTExMi1cdGlmICh1bmxpa2VseShsZW4gPT0gMCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjExMzpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTExNC1cdFx0XHQgICAgXCYjMzQ7YWNwaSAoJXMpOiBmYWlsZWQgdG8gdHJhdmVyc2FsIG9iaiBsZW5cXG5cJiMzNDssIG1ldGhvZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MTMxPWludCBydHc4OV9hY3BpX2RzbV9nZXRfdmFsdWUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1bmlvbiBhY3BpX29iamVjdCAqb2JqLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEzNC1cdGlmIChvYmotXHUwMDNldHlwZSAhPSBBQ1BJX1RZUEVfSU5URUdFUikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTM1Olx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTM2LVx0XHRcdCAgICBcJiMzNDthY3BpOiBleHBlY3QgaW50ZWdlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0xNTI9aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoeihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTYwLVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE2MTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2Mi1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNjctXHRpZiAobGVuIFx1MDAzYyBzaXplb2YoKnB0cikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE2ODpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7JXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNjktXHRcdFx0ICAgIF9fZnVuY19fLCBsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE3NC1cdGlmICghY2hrX2FjcGlfcG9saWN5XzZnaHpfc2lnKHB0cikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE3NTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7JXM6IGJhZCBzaWduYXR1cmVcXG5cJiMzNDssIF9fZnVuY19fKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE3Ni1cdFx0cmV0dXJuIC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTgwLVx0aWYgKGxlbiBcdTAwM2MgZXhwZWN0X2xlbikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTgxOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDslczogZXhwZWN0ICV1IGJ1dCBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTgyLVx0XHRcdCAgICBfX2Z1bmNfXywgZXhwZWN0X2xlbiwgbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxOTA6XHRydHc4OV9oZXhfZHVtcChydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDtwb2xpY3lfNmdoejogXCYjMzQ7LCAqcG9saWN5XzZnaHosXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xOTEtXHRcdCAgICAgICBleHBlY3RfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yMDQ9aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel9zcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjExLVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIxMjpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxMy1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMTgtXHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyMTk6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjIwLVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjI1LVx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfNmdoel9zcF9zaWcocHRyKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjI2Olx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDslczogYmFkIHNpZ25hdHVyZVxcblwmIzM0OywgX19mdW5jX18pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjI3LVx0XHRyZXR1cm4gLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyMzQ6XHRydHc4OV9oZXhfZHVtcChydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDtwb2xpY3lfNmdoel9zcDogXCYjMzQ7LCAqcG9saWN5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjM1LVx0XHQgICAgICAgc2l6ZW9mKCpwdHIpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yNDg9aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel92bHAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1NS1cdGlmIChvYmotXHUwMDNldHlwZSAhPSBBQ1BJX1RZUEVfQlVGRkVSKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNTY6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNTctXHRcdFx0ICAgIFwmIzM0O2FjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxuXCYjMzQ7LCBvYmotXHUwMDNldHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjYyLVx0aWYgKGJ1Zl9sZW4gXHUwMDNjIHNpemVvZigqcHRyKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjYzOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDslczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2NC1cdFx0XHQgICAgX19mdW5jX18sIGJ1Zl9sZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2OS1cdGlmICghY2hrX2FjcGlfcG9saWN5XzZnaHpfdmxwX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNzA6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzEtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI3ODpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV82Z2h6X3ZscDogXCYjMzQ7LCAqcG9saWN5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjc5LVx0XHQgICAgICAgc2l6ZW9mKCpwdHIpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yOTE9c3RhdGljIGludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3RhcyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjk4LVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI5OTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMwMC1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMDUtXHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMDY6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzA3LVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzEyLVx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfdGFzX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMTM6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMTQtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMyMTpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV90YXM6IFwmIzM0OywgKnBvbGljeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyMi1cdFx0ICAgICAgIHNpemVvZigqcHRyKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzM2PWludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3JlZ19ydWxlcyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQzLVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM0NDpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM0NS1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTAtXHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNTE6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzUyLVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzU3LVx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfcmVnX3J1bGVzX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNTg6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTktXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM2NjpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV9yZWdfcnVsZXM6IFwmIzM0OywgKnBvbGljeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM2Ny1cdFx0ICAgICAgIHNpemVvZigqcHRyKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzcxPWludCBydHc4OV9hY3BpX2V2YWx1YXRlX2RzbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzgwLVx0aWYgKCFvYmopIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM4MTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM4Mi1cdFx0XHQgICAgXCYjMzQ7YWNwaSBkc20gZmFpbCB0byBldmFsdWF0ZSBmdW5jOiAlZFxcblwmIzM0OywgZnVuYyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzg1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mzg2Olx0aWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ182R19CUClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM4Ny1cdFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV82Z2h6KHJ0d2Rldiwgb2JqLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzg4LVx0XHRcdFx0XHRcdCAgICAgXHUwMDI2cmVzLVx1MDAzZXUucG9saWN5XzZnaHopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mzg5Olx0ZWxzZSBpZiAoZnVuYyA9PSBSVFc4OV9BQ1BJX0RTTV9GVU5DXzZHSFpfU1BfU1VQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzkwLVx0XHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfc3AocnR3ZGV2LCBvYmosXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTEtXHRcdFx0XHRcdFx0XHRcdTAwMjZyZXMtXHUwMDNldS5wb2xpY3lfNmdoel9zcCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTI6XHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfNkdIWl9WTFBfU1VQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzkzLVx0XHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfdmxwKHJ0d2Rldiwgb2JqLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk0LVx0XHRcdFx0XHRcdFx0IFx1MDAyNnJlcy1cdTAwM2V1LnBvbGljeV82Z2h6X3ZscCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTU6XHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfVEFTX0VOKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk2LVx0XHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3RhcyhydHdkZXYsIG9iaiwgXHUwMDI2cmVzLVx1MDAzZXUucG9saWN5X3Rhcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTc6XHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfUkVHX1JVTEVTX0VOKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk4LVx0XHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3JlZ19ydWxlcyhydHdkZXYsIG9iaixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz00MDc9aW50IHJ0dzg5X2FjcGlfZXZhbHVhdGVfcnRhZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDE5LVx0aWYgKGJ1Zl9sZW4gIT0gc2l6ZW9mKCpyZXMpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MjA6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDIxLVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDI4Olx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7YW50ZW5uYV9nYWluOiBcJiMzNDssIHJlcywgc2l6ZW9mKCpyZXMpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQyOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz00MzU9ZW51bSBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kIHJ0dzg5X2FjcGlfc2FyX2dldF9zdWJiYW5kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzktXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDQwOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDQxLVx0XHRcdCAgICBcJiMzNDtjZW50ZXIgZnJlcSAldSB0byBBQ1BJIFNBUiBzdWJiYW5kIGlzIHVuaGFuZGxlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NDQtXHRjYXNlIDI0MTIgLi4uIDI0ODQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NDU6XHRcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl8yR0haX1NVQkJBTkQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NDYtXHRjYXNlIDUxODAgLi4uIDUyNDA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NDc6XHRcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfMTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ0OC1cdGNhc2UgNTI1MCAuLi4gNTMyMDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ0OTpcdFx0cmV0dXJuIFJUVzg5X0FDUElfU0FSXzVHSFpfU1VCQkFORF8yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDUwLVx0Y2FzZSA1NTAwIC4uLiA1NzIwOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDUxOlx0XHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNUdIWl9TVUJCQU5EXzJFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDUyLVx0Y2FzZSA1NzQ1IC4uLiA1ODg1OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDUzOlx0XHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNUdIWl9TVUJCQU5EXzNfNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ1NC1cdGNhc2UgNTk1NSAuLi4gNjE1NTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ1NTpcdFx0cmV0dXJuIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF81X0w7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NTYtXHRjYXNlIDYxNzUgLi4uIDY0MTU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NTc6XHRcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfNV9IO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDU4LVx0Y2FzZSA2NDM1IC4uLiA2NTE1OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDU5Olx0XHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjAtXHRjYXNlIDY1MzUgLi4uIDY2OTU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NjE6XHRcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfN19MO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDYyLVx0Y2FzZSA2NzE1IC4uLiA2ODU1OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDYzOlx0XHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzdfSDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ2NTpcdC8qIGZyZXEgNjg3NSAoY2ggMTg1LCAyME1Ieikgc3BhbnMgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzdfSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDY2Olx0ICogYW5kIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF84LCBzbyBkaXJlY3RseSBkZXNjcmliZSBpdCB3aXRoXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjctXHQgKiBzdHJ1Y3QgcnR3ODlfNmdoel9zcGFuLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ3MC1cdGNhc2UgNjg5NSAuLi4gNzExNTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ3MTpcdFx0cmV0dXJuIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF84O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDcyLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTQ3NT1lbnVtIHJ0dzg5X2JhbmQgcnR3ODlfYWNwaV9zYXJfc3ViYmFuZF90b19iYW5kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NzktXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDgwOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDgxLVx0XHRcdCAgICBcJiMzNDtBQ1BJIFNBUiBzdWJiYW5kICV1IHRvIGJhbmQgaXMgdW5oYW5kbGVkXFxuXCYjMzQ7LCBzdWJiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ4Mi1cdFx0ZmFsbHRocm91Z2g7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0ODM6XHRjYXNlIFJUVzg5X0FDUElfU0FSXzJHSFpfU1VCQkFORDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4NDpcdFx0cmV0dXJuIFJUVzg5X0JBTkRfMkc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0ODU6XHRjYXNlIFJUVzg5X0FDUElfU0FSXzVHSFpfU1VCQkFORF8xOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDg2Olx0XHRyZXR1cm4gUlRXODlfQkFORF81RztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4NzpcdGNhc2UgUlRXODlfQUNQSV9TQVJfNUdIWl9TVUJCQU5EXzI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0ODg6XHRcdHJldHVybiBSVFc4OV9CQU5EXzVHO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDg5Olx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfMkU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0OTA6XHRcdHJldHVybiBSVFc4OV9CQU5EXzVHO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDkxOlx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfM180OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDkyOlx0XHRyZXR1cm4gUlRXODlfQkFORF81RztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5MzpcdGNhc2UgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzVfTDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5NDpcdFx0cmV0dXJuIFJUVzg5X0JBTkRfNkc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0OTU6XHRjYXNlIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF81X0g6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0OTY6XHRcdHJldHVybiBSVFc4OV9CQU5EXzZHO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDk3Olx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfNjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5ODpcdFx0cmV0dXJuIFJUVzg5X0JBTkRfNkc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0OTk6XHRjYXNlIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF83X0w6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MDA6XHRcdHJldHVybiBSVFc4OV9CQU5EXzZHO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTAxOlx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfN19IOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTAyOlx0XHRyZXR1cm4gUlRXODlfQkFORF82RztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUwMzpcdGNhc2UgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzg6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MDQ6XHRcdHJldHVybiBSVFc4OV9CQU5EXzZHO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTA1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTUzMD1zdGF0aWMgczE2IHJ0dzg5X2FjcGlfc2FyX25vcm1hbGl6ZV9ocF92YWwodTggdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01MzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MzY6XHRCVUlMRF9CVUdfT04oZmN0IFx1MDAzZSBUWFBXUl9GQUNUT1JfT0ZfUlRXODlfQUNQSV9TQVIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTM4Olx0cmVzID0gKGJpYXMgXHUwMDNjXHUwMDNjIFRYUFdSX0ZBQ1RPUl9PRl9SVFc4OV9BQ1BJX1NBUikgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUzOTpcdCAgICAgICh2IFx1MDAzY1x1MDAzYyAoVFhQV1JfRkFDVE9SX09GX1JUVzg5X0FDUElfU0FSIC0gZmN0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NDE6XHRyZXR1cm4gbWluX3QoczMyLCByZXMsIE1BWF9WQUxfT0ZfUlRXODlfQUNQSV9TQVIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTQyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz01NDQ9c3RhdGljIHMxNiBydHc4OV9hY3BpX3Nhcl9ub3JtYWxpemVfcnRfdmFsKHU4IHYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTQ5Olx0QlVJTERfQlVHX09OKGZjdCBcdTAwM2UgVFhQV1JfRkFDVE9SX09GX1JUVzg5X0FDUElfU0FSKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU1MTpcdHJlcyA9IHYgXHUwMDNjXHUwMDNjIChUWFBXUl9GQUNUT1JfT0ZfUlRXODlfQUNQSV9TQVIgLSBmY3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTUzOlx0cmV0dXJuIG1pbl90KHMzMiwgcmVzLCBNQVhfVkFMX09GX1JUVzg5X0FDUElfU0FSKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU1NC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NTU3PXZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zdGRfbGVnYWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NjY6XHRmb3IgKHN1YmJhbmQgPSAwOyBzdWJiYW5kIFx1MDAzYyBOVU1fT0ZfUlRXODlfQUNQSV9TQVJfU1VCQkFORDsgc3ViYmFuZCYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2NzpcdFx0Zm9yIChwYXRoID0gMDsgcGF0aCBcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1JGX1BBVEg7IHBhdGgmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NjgtXHRcdFx0dTggYW50aWR4ID0gcmVjLVx1MDAzZXJmcGF0aF90b19hbnRpZHgocGF0aCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NzA6XHRcdFx0aWYgKHN1YmJhbmQgXHUwMDNjIFJUVzg5X0FDUElfU0FSX1NVQkJBTkRfTlJfTEVHQUNZKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTcxLVx0XHRcdFx0ZW50LVx1MDAzZXZbc3ViYmFuZF1bcGF0aF0gPVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU3My1cdFx0XHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NzQ6XHRcdFx0XHRlbnQtXHUwMDNldltzdWJiYW5kXVtwYXRoXSA9IE1BWF9WQUxfT0ZfUlRXODlfQUNQSV9TQVI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NzUtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz01ODA9dm9pZCBydHc4OV9hY3BpX3Nhcl9sb2FkX3N0ZF9oYXNfNmdoeihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTg5Olx0QlVJTERfQlVHX09OKFJUVzg5X0FDUElfU0FSX1NVQkJBTkRfTlJfSEFTXzZHSFogIT0gTlVNX09GX1JUVzg5X0FDUElfU0FSX1NVQkJBTkQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTkxOlx0Zm9yIChzdWJiYW5kID0gMDsgc3ViYmFuZCBcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1NVQkJBTkQ7IHN1YmJhbmQmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1OTI6XHRcdGZvciAocGF0aCA9IDA7IHBhdGggXHUwMDNjIE5VTV9PRl9SVFc4OV9BQ1BJX1NBUl9SRl9QQVRIOyBwYXRoJiM0MzsmIzQzOykge1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgzNDkKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAyNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVVNCIFdpcmVsZXNzIEFkYXB0ZXIgRW11bGF0aW9uIGFuZCBGdXp6aW5nIFN0cmF0ZWd5KioKCk9rYXksIHNvIEkgc2VlIHRoZXNlIFJUVzg5IG1vZGVscyBoYXZlIFVTQiBpbnRlcmZhY2VzIOKAkyBgUlRXODlfODg1MUJVYCwgYFJUVzg5Xzg4NTJBVWAsIGBSVFc4OV84ODUyQlVgLCBgUlRXODlfODg1MkNVYCwgYW5kIGBSVFc4OV84OTIyQVVgLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHdoZXRoZXIgd2UgY2FuIGVmZmVjdGl2ZWx5IGVtdWxhdGUgdGhlc2UgVVNCIHdpcmVsZXNzIGFkYXB0ZXJzLCBwYXJ0aWN1bGFybHkgbGV2ZXJhZ2luZyBVU0IgUmF3IEdhZGdldCBhbmQgc3l6a2FsbGVyJiMzOTtzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgc3l6a2FsbGVyIGNhbiBoYW5kbGUgdGhpcyB0eXBlIG9mIGRldmljZS4KClJpZ2h0LCB0aW1lIHRvIGNoZWNrIGhvdyBzeXprYWxsZXIgYXBwcm9hY2hlcyBVU0IgZHJpdmVyIGZ1enppbmcuICBJIHJlY2FsbCBpdCBoYXMgYHN5el91c2JfY29ubmVjdGAsIGBzeXpfdXNiX2NvbnRyb2xfaW9gLCBhbmQgc3VwcG9ydHMgcmF3LWdhZGdldCBhbmQgZHVtbXlfaGNkIGVtdWxhdGlvbi4gVGhpcyBpcyBwcm9taXNpbmc7IHN5emthbGxlciYjMzk7cyBhYmlsaXR5IHRvIGVtdWxhdGUgKmFueSogVVNCIGRldmljZSwgcHJvYmUgZHJpdmVycywgZnV6eiB0aGVtLCBzZW5kIHBhY2tldHMsIGhhbmRsZSBmaXJtd2FyZSBsb2FkaW5nIOKAkyB0aGF0JiMzOTtzIHByZWNpc2VseSB3aGF0IEkgbmVlZC4KCk5vdywgSSB3YW50IHRvIGNvbmZpcm0gc29tZXRoaW5nIGNyaXRpY2FsOiBDYW4gd2UgdHJpZ2dlciB0aGUgYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGZ1bmN0aW9uIGluIHRoZSBkcml2ZXI/IEl0JiMzOTtzIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIGl0cyBjYWxsIHBhdGggYW5kIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIEkgbmVlZCB0byBrbm93IGhvdyBpdCYjMzk7cyBiZWluZyBjYWxsZWQuCgpMZXQmIzM5O3MgZG8gYSBxdWljayBgZ3JlcGAgZm9yIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCB3aXRoaW4gdGhlIGNvZGViYXNlIHRvIG1hcCBvdXQgaXRzIHVzYWdlLiBJIG5lZWQgdG8gc2VlIHRoZSBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTI5Mjg9c3RhdGljIHN0cnVjdCBza19idWZmICpydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjk3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyOTc4OnN0YXRpYyBpbnQgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjk3OS1cdFx0XHRcdFx0c3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MzA3MT1pbnQgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA3OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDgwOlx0cnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwODEtXHRcdFx0XHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFNfUE9MTCwgXHUwMDI2cGt0X2lkX3BzX3BvbGwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODI6XHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4My1cdFx0XHRcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9OVUxMX0RBVEEsIFx1MDAyNnBrdF9pZF9udWxsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDg0Olx0cnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwODUtXHRcdFx0XHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfUU9TX05VTEwsIFx1MDAyNnBrdF9pZF9xb3NfbnVsbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTk2Mjc9aW50IHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTYzNC1cdGlmIChlbmFibGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5NjM1Olx0XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTYzNi1cdFx0XHRcdFx0XHQgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX0FSUF9SU1AsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTk2NzU9aW50IHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk2ODQtXHRpZiAoZW5hYmxlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6OTY4NTpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk2ODYtXHRcdFx0XHRcdFx0ICAgUlRXODlfUEtUX09GTERfVFlQRV9BUlBfUlNQLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0xMDA0Mj1pbnQgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjEwMDcxOlx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDcyLVx0XHRcdFx0XHQgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX0VBUE9MX0tFWSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzctXHRpZiAoZ3RrX2luZm8tXHUwMDNlaWd0a19rZXlpZCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjEwMDc4Olx0XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzktXHRcdFx0XHRcdFx0ICAgUlRXODlfUEtUX09GTERfVFlQRV9TQV9RVUVSWSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI3OAoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEkmIzM5O20gZ29pbmcgdG8gcHVsbCB1cCB0aGF0IGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgIGZpbGUgYW5kIHN0YXJ0IGV4YW1pbmluZyBpdC4gTXkgaW1tZWRpYXRlIGZvY3VzIHdpbGwgYmUgb24gdGhlIGZ1bmN0aW9uIGl0c2VsZiwgYW5kLCBvZiBjb3Vyc2UsIHRoZSBzdXJyb3VuZGluZyBjb2RlIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIHBhcnRpY3VsYXIgZnVuY3Rpb24gZml0cyBpbnRvIHRoZSBiaWdnZXIgcGljdHVyZSBvZiB0aGUgUmVhbHRlayB3aXJlbGVzcyBmaXJtd2FyZSBsb2FkaW5nIHByb2Nlc3MgZm9yIHRoaXMgc3BlY2lmaWMgZHJpdmVyLiBJJiMzOTttIGV4cGVjdGluZyBzb21lIHN0YW5kYXJkIGZpcm13YXJlIGludGVyYWN0aW9uIGNvZGUsIHBvdGVudGlhbGx5IGludm9sdmluZyB0aGluZ3MgbGlrZSByZXF1ZXN0aW5nIGZpcm13YXJlIGJsb2JzLCBtZW1vcnkgbWFwcGluZywgd3JpdGluZyB0byBzcGVjaWZpYyByZWdpc3RlcnMsIGFuZCBzb21lIGVycm9yIGhhbmRsaW5nIHRvIGVuc3VyZSByb2J1c3RuZXNzLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgZm9yIGFueSB1bnVzdWFsIGFwcHJvYWNoZXMgdGhleSYjMzk7dmUgdGFrZW4gb3IgYW55IGN1c3RvbSBvcHRpbWl6YXRpb25zIHRoZXkmIzM5O3ZlIGltcGxlbWVudGVkLiBNeSBnb2FsIGlzIHRvIHF1aWNrbHkgZ3Jhc3AgaXRzIGNvcmUgcHVycG9zZSBhbmQgcG90ZW50aWFsIHBvaW50cyBvZiBpbnRlcmVzdCBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLCBlc3BlY2lhbGx5IHJlZ2FyZGluZyBhbnkgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyBvciBwZXJmb3JtYW5jZSBib3R0bGVuZWNrcy4gSSBhbHNvIGhhdmUgdG8ga2VlcCBpbiBtaW5kLCBpcyB0aGUgZmlsZSByZWxhdGVkIHRvIGEgc3BlY2lmaWMgaGFyZHdhcmUgb3IgYSBtb3JlIGdlbmVyaWMgaW1wbGVtZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyOTc1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDcwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzI5NzU6XHRcdHJldHVybiBza2I7XG4yOTc2Olx0fVxuMjk3NzpcdFxuMjk3ODpcdHN0YXRpYyBpbnQgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4yOTc5Olx0XHRcdFx0XHRcdHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4yOTgwOlx0XHRcdFx0XHRcdGVudW0gcnR3ODlfZndfcGt0X29mbGRfdHlwZSB0eXBlLFxuMjk4MTpcdFx0XHRcdFx0XHR1OCAqaWQpXG4yOTgyOlx0e1xuMjk4MzpcdFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiA9IHJ0d3ZpZl9saW5rX3RvX3ZpZihydHd2aWZfbGluayk7XG4yOTg0Olx0XHRpbnQgbGlua19pZCA9IGllZWU4MDIxMV92aWZfaXNfbWxkKHZpZikgPyBydHd2aWZfbGluay1cdTAwM2VsaW5rX2lkIDogLTE7XG4yOTg1Olx0XHRzdHJ1Y3QgcnR3ODlfcGt0b2ZsZF9pbmZvICppbmZvO1xuMjk4NjpcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbjI5ODc6XHRcdGludCByZXQ7XG4yOTg4Olx0XG4yOTg5Olx0XHRpbmZvID0ga3phbGxvY19vYmooKmluZm8pO1xuMjk5MDpcdFx0aWYgKCFpbmZvKVxuMjk5MTpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbjI5OTI6XHRcbjI5OTM6XHRcdHN3aXRjaCAodHlwZSkge1xuMjk5NDpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX1BTX1BPTEw6XG4yOTk1Olx0XHRcdHNrYiA9IGllZWU4MDIxMV9wc3BvbGxfZ2V0KHJ0d2Rldi1cdTAwM2VodywgdmlmKTtcbjI5OTY6XHRcdFx0YnJlYWs7XG4yOTk3Olx0XHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFJPQkVfUlNQOlxuMjk5ODpcdFx0XHRza2IgPSBpZWVlODAyMTFfcHJvYmVyZXNwX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZik7XG4yOTk5Olx0XHRcdGJyZWFrO1xuMzAwMDpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQTpcbjMwMDE6XHRcdFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZiwgbGlua19pZCwgZmFsc2UpO1xuMzAwMjpcdFx0XHRicmVhaztcbjMwMDM6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9RT1NfTlVMTDpcbjMwMDQ6XHRcdFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZiwgbGlua19pZCwgdHJ1ZSk7XG4zMDA1Olx0XHRcdGJyZWFrO1xuMzAwNjpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX0VBUE9MX0tFWTpcbjMwMDc6XHRcdFx0c2tiID0gcnR3ODlfZWFwb2xfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAwODpcdFx0XHRicmVhaztcbjMwMDk6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9TQV9RVUVSWTpcbjMwMTA6XHRcdFx0c2tiID0gcnR3ODlfc2FfcXVlcnlfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAxMTpcdFx0XHRicmVhaztcbjMwMTI6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9BUlBfUlNQOlxuMzAxMzpcdFx0XHRza2IgPSBydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAxNDpcdFx0XHRicmVhaztcbjMwMTU6XHRcdGRlZmF1bHQ6XG4zMDE2Olx0XHRcdHJldCA9IC1FSU5WQUw7XG4zMDE3Olx0XHRcdGdvdG8gZXJyO1xuMzAxODpcdFx0fVxuMzAxOTpcdFxuMzAyMDpcdFx0aWYgKCFza2IpIHtcbjMwMjE6XHRcdFx0cmV0ID0gLUVOT01FTTtcbjMwMjI6XHRcdFx0Z290byBlcnI7XG4zMDIzOlx0XHR9XG4zMDI0Olx0XG4zMDI1Olx0XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkKHJ0d2RldiwgXHUwMDI2aW5mby1cdTAwM2VpZCwgc2tiKTtcbjMwMjY6XHRcdGtmcmVlX3NrYihza2IpO1xuMzAyNzpcdFxuMzAyODpcdFx0aWYgKHJldClcbjMwMjk6XHRcdFx0Z290byBlcnI7XG4zMDMwOlx0XG4zMDMxOlx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNmluZm8tXHUwMDNlbGlzdCwgXHUwMDI2cnR3dmlmX2xpbmstXHUwMDNlZ2VuZXJhbF9wa3RfbGlzdCk7XG4zMDMyOlx0XHQqaWQgPSBpbmZvLVx1MDAzZWlkO1xuMzAzMzpcdFx0cmV0dXJuIDA7XG4zMDM0Olx0XG4zMDM1Olx0ZXJyOlxuMzAzNjpcdFx0a2ZyZWUoaW5mbyk7XG4zMDM3Olx0XHRyZXR1cm4gcmV0O1xuMzAzODpcdH1cbjMwMzk6XHRcbjMwNDA6XHR2b2lkIHJ0dzg5X2Z3X3JlbGVhc2VfZ2VuZXJhbF9wa3RfbGlzdF92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuMzA0MTpcdFx0XHRcdFx0XHQgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuMzA0MjpcdFx0XHRcdFx0XHQgICBib29sIG5vdGlmeV9mdylcbjMwNDM6XHR7XG4zMDQ0Olx0XHRzdHJ1Y3QgbGlzdF9oZWFkICpwa3RfbGlzdCA9IFx1MDAyNnJ0d3ZpZl9saW5rLVx1MDAzZWdlbmVyYWxfcGt0X2xpc3Q7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE3NzcKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA0MzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUmVjZW50IFJUVzg5IERyaXZlciBGaXgqKgoKT2theSwgc28gdGhpcyBwYXRjaCBmb3IgYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGlzIGludGVyZXN0aW5nLiBUaGUga2V5IGNoYW5nZSBpcyBlbnN1cmluZyB0aGUgcmV0dXJuIGNvZGUgYWNjdXJhdGVseSByZWZsZWN0cyBmYWlsdXJlcyBmcm9tIGBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkYCBpdHNlbGYsIHJhdGhlciB0aGFuIGFsd2F5cyBkZWZhdWx0aW5nIHRvIGAtRU5PTUVNYC4gUHJldmlvdXNseSwgaWYgdGhhdCBmdW5jdGlvbiByZXR1cm5lZCwgc2F5LCBgLUVCVVNZYCBvciBgLUVJTlZBTGAsIHdlJiMzOTtkIGxvc2UgdGhhdCBjcnVjaWFsIGVycm9yIGluZm9ybWF0aW9uLCBhbmQgaXQgd291bGQgbWlzbGVhZCB0aGUgY2FsbGVyLiBHb29kIGNhdGNoLgoKTm93LCBhIGJyb2FkZXIgcXVlc3Rpb24gYXJpc2VzOiBpcyB0aGUgUlRXODkgVVNCIGRyaXZlciBmdXp6ZWQgb3IgZnV6emFibGUgd2l0aGluIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3Igc3l6a2FsbGVyPyBJdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyB0aGVzZSBjaGFuZ2VzIHdpbGwgaW1wYWN0IGZ1enplciBjb3ZlcmFnZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIG5ldyBjb2RlIHBhdGggY2FuIGFjdHVhbGx5IGJlIHJlYWNoZWQgdGhyb3VnaCBmdXp6aW5nLiBMZXQmIzM5O3Mgc2VlLi4uIHRoZSBpbnN0cnVjdGlvbnMgc2F5IHRvIGRpc3JlZ2FyZCBwYXRjaGVzIHRoYXQgZGVhbCB3aXRoOiBjb2RlIHBhdGhzIGltcG9zc2libGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycywgYW5kIHRlYXItZG93biBjYWxsYmFja3MuIFRoYXQgbmFycm93cyBpdCBkb3duLgoKV2FpdCBhIHNlY29uZC4gTGV0JiMzOTtzIGFuYWx5emUgd2hldGhlciBSVFc4OSBhY3R1YWxseSBmdW5jdGlvbnMgZGlmZmVyZW50bHkgb3ZlciBVU0IgdnMuIFBDSS4gSWYgaXQmIzM5O3MgdGhlIFVTQiBkcml2ZXIsIGNhbiBpdCBiZSBwcm9iZWQgYW5kIGZ1enplZCB0aHJvdWdoIGEgVVNCIGVtdWxhdGlvbiBzZXR1cD8gVGhpbmsgb2YgcmF3IFVTQiBnYWRnZXQgbW9kZSwgc2ltaWxhciB0byB3aGF0IHN5emthbGxlciB1c2VzLiBXaGF0IG5lZWRzIHRvIGhhcHBlbiBkdXJpbmcgdGhlIGBydHc4OV91c2JgIHByb2JlIHJvdXRpbmU/IERvZXMgaXQgbmVlZCBmaXJtd2FyZSB0byBiZSBsb2FkZWQgb3IgYSBkZXZpY2UgdG8gY29tbXVuaWNhdGUgYmVmb3JlIGV4ZWN1dGlvbiBjYW4gZXZlbiBvY2N1cj8gSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBjb2RlLiBUaW1lIHRvIGNoZWNrIGBydHc4OV91c2IuY2AgYW5kIHBvdGVudGlhbGx5IGFsc28gYHJ0dzg5L2NvcmUuY2Agb3IgZXZlbiBgcnR3ODkvbWFjODAyMTFgIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIHNldHVwIGFuZCBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZS4gVGhhdCYjMzk7cyB0aGUgYmVzdCB3YXkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBjaGFuZ2UgaXMgaW1wb3J0YW50IHRvIGZ1enplcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg5X2Z3X2gyY18mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyNDY3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jPTEyPXJ0dzg5X2NhbV9nZXRfc2VjX2tleV9jbWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jOjIyOlx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGNtZF9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jYW0uYy0yMy1cdGlmICghc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmM9MjE1PXN0YXRpYyBpbnQgX19ydHc4OV9jYW1fZGV0YWNoX3NlY19jYW0oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjM4LVx0XHRcdFx0ICBcJiMzNDtmYWlsZWQgdG8gdXBkYXRlIGRjdGwgY2FtIGRlbCBrZXk6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jYW0uYzoyMzk6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19jYW0ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jLTI0MC1cdFx0XHRcdCAgICAgICBSVFc4OV9ST0xFX0lORk9fQ0hBTkdFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jPTI0OD1zdGF0aWMgaW50IF9fcnR3ODlfY2FtX2F0dGFjaF9zZWNfY2FtKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jLTI3OS1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmM6MjgwOlx0cmV0ID0gcnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluaywgTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjgxLVx0XHRcdCAgICAgICBSVFc4OV9ST0xFX0lORk9fQ0hBTkdFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz03NDk9c3RhdGljIGludCBfX21jY19md19yZXFfdHNmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTY0ICp0c2ZfcmVmLCB1NjQgKnRzZl9hdXgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtNzYwLVx0cmVxLm1hY2lkX3kgPSBhdXgtXHUwMDNlcnR3dmlmX2xpbmstXHUwMDNlbWFjX2lkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6NzYxOlx0cmV0ID0gcnR3ODlfZndfaDJjX21jY19yZXFfdHNmKHJ0d2RldiwgXHUwMDI2cmVxLCBcdTAwMjZycHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtNzYyLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTc3ND1zdGF0aWMgaW50IF9fbXJjX2Z3X3JlcV90c2Yoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1NjQgKnRzZl9yZWYsIHU2NCAqdHNmX2F1eClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy03OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzo3OTE6XHRyZXQgPSBydHc4OV9md19oMmNfbXJjX3JlcV90c2YocnR3ZGV2LCBcdTAwMjZhcmcsIFx1MDAyNnJwdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy03OTItXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MTg2OD1zdGF0aWMgaW50IF9fbWNjX2Z3X2FkZF9yb2xlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X21jY19yb2xlICpyb2xlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTE4OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoxOTAwOlx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9tY2MocnR3ZGV2LCBcdTAwMjZyZXEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMTkwMS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0xOTA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MTkwNzpcdHJldCA9IHJ0dzg5X2Z3X2gyY19tY2NfbWFjaWRfYml0bWFwKHJ0d2RldiwgbWNjLVx1MDAzZWdyb3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMTkwOC1cdFx0XHRcdFx0ICAgIHJvbGUtXHUwMDNlcnR3dmlmX2xpbmstXHUwMDNlbWFjX2lkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTE5NTA9c3RhdGljIGludCBfX21jY19md19hZGRfYnRfcm9sZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMTk2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjE5NjE6XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX21jYyhydHdkZXYsIFx1MDAyNnJlcSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0xOTYyLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTE5ODU9c3RhdGljIGludCBfX21jY19md19zdGFydChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgcmVwbGFjZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMDQ2LVx0aWYgKHN5bmMtXHUwMDNlZW5hYmxlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMDQ3Olx0XHRyZXQgPSBydHc4OV9md19oMmNfbWNjX3N5bmMocnR3ZGV2LCByZXEuZ3JvdXAsIHN5bmMtXHUwMDNlbWFjaWRfc3JjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjA0OC1cdFx0XHRcdFx0ICAgIHN5bmMtXHUwMDNlbWFjaWRfdGd0LCBzeW5jLVx1MDAzZW9mZnNldCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjA1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIwNjA6XHRyZXQgPSBydHc4OV9md19oMmNfc3RhcnRfbWNjKHJ0d2RldiwgXHUwMDI2cmVxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIwNjEtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjA5NT1zdGF0aWMgaW50IF9fbXJjX2Z3X3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCByZXBsYWNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIxNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMTUwOlx0cmV0ID0gcnR3ODlfZndfaDJjX21yY19hZGQocnR3ZGV2LCBcdTAwMjZhZGRfYXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIxNTEtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjE2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIxNzA6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfc3luYyhydHdkZXYsIFx1MDAyNnN5bmNfYXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIxNzEtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMTgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjE4MTpcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfc3RhcnQocnR3ZGV2LCBcdTAwMjZzdGFydF9hcmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjE4Mi1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz0yMTkxPXN0YXRpYyBpbnQgX19tY2NfZndfc2V0X2R1cmF0aW9uX25vX2J0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBzeW5jX2NoYW5nZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjIxMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIyMTE6XHRyZXQgPSBydHc4OV9md19oMmNfbWNjX3NldF9kdXJhdGlvbihydHdkZXYsIFx1MDAyNnJlcSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMjEyLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMjIxOlx0cmV0ID0gcnR3ODlfZndfaDJjX21jY19zeW5jKHJ0d2RldiwgbWNjLVx1MDAzZWdyb3VwLCBzeW5jLVx1MDAzZW1hY2lkX3NyYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyMjItXHRcdFx0XHQgICAgc3luYy1cdTAwM2VtYWNpZF90Z3QsIHN5bmMtXHUwMDNlb2Zmc2V0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz0yMjMyPXN0YXRpYyBpbnQgX19tcmNfZndfc2V0X2R1cmF0aW9uX25vX2J0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBzeW5jX2NoYW5nZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjI2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIyNjY6XHRyZXQgPSBydHc4OV9md19oMmNfbXJjX3VwZF9kdXJhdGlvbihydHdkZXYsIFx1MDAyNmR1cl9hcmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjI2Ny1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMjc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjI3NjpcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfc3luYyhydHdkZXYsIFx1MDAyNnN5bmNfYXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyNzctXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjMzND1zdGF0aWMgdm9pZCBydHc4OV9tY2Nfc3RhcnRfYmVhY29uX25vYShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjM0My1cdGlmIChyZWYtXHUwMDNlaXNfZ28pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMzQ0Olx0XHRydHc4OV9md19oMmNfdHNmMzJfdG9nZ2xlKHJ0d2RldiwgcmVmLVx1MDAzZXJ0d3ZpZl9saW5rLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNDUtXHRlbHNlIGlmIChhdXgtXHUwMDNlaXNfZ28pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMzQ2Olx0XHRydHc4OV9md19oMmNfdHNmMzJfdG9nZ2xlKHJ0d2RldiwgYXV4LVx1MDAzZXJ0d3ZpZl9saW5rLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNDctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjM1MT1zdGF0aWMgdm9pZCBydHc4OV9tY2Nfc3RvcF9iZWFjb25fbm9hKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMzYwLVx0aWYgKHJlZi1cdTAwM2Vpc19nbylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIzNjE6XHRcdHJ0dzg5X2Z3X2gyY190c2YzMl90b2dnbGUocnR3ZGV2LCByZWYtXHUwMDNlcnR3dmlmX2xpbmssIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNjItXHRlbHNlIGlmIChhdXgtXHUwMDNlaXNfZ28pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMzYzOlx0XHRydHc4OV9md19oMmNfdHNmMzJfdG9nZ2xlKHJ0d2RldiwgYXV4LVx1MDAzZXJ0d3ZpZl9saW5rLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMzY0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTIzODA9c3RhdGljIGludCBydHc4OV9tY2Nfc3RhcnQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI0MTEtXHRpZiAocnR3ODlfbWNjX2lnbm9yZV9iY24ocnR3ZGV2LCByZWYpIHx8IGF1eC1cdTAwM2VpZ25vcmVfYmNuKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDEyOlx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIGF1eC1cdTAwM2VydHd2aWZfbGluaywgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjQxMy1cdH0gZWxzZSBpZiAocnR3ODlfbWNjX2lnbm9yZV9iY24ocnR3ZGV2LCBhdXgpIHx8IHJlZi1cdTAwM2VpZ25vcmVfYmNuKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDE0Olx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIHJlZi1cdTAwM2VydHd2aWZfbGluaywgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjQxNS1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDE2Olx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIHJlZi1cdTAwM2VydHd2aWZfbGluaywgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDE3Olx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIGF1eC1cdTAwM2VydHd2aWZfbGluaywgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNDE4LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTI0Nzg9c3RhdGljIHZvaWQgcnR3ODlfbWNjX3N0b3Aoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1MDktXHRpZiAocnR3ODlfY29uY3VycmVudF92aWFfbXJjKHJ0d2RldikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI1MTA6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfZGVsKHJ0d2RldiwgbWNjLVx1MDAzZWdyb3VwLCBzZWwuc2xvdF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjUxMS1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTE0LVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI1MTU6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19zdG9wX21jYyhydHdkZXYsIG1jYy1cdTAwM2Vncm91cCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1MTYtXHRcdFx0XHRcdCAgICBzZWwubWFjX2lkLCB0cnVlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjUyMTpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX2RlbF9tY2NfZ3JvdXAocnR3ZGV2LCBtY2MtXHUwMDNlZ3JvdXAsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjUyMi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTI5LVx0cnR3ODlfbWNjX3N0b3BfYmVhY29uX25vYShydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjUzMDpcdHJ0dzg5X2Z3X2gyY19tY2NfZGlnKHJ0d2RldiwgUlRXODlfQ0hBTkNUWF8wLCAwLCAwLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTMxLVx0cnR3ODlfcGh5X2RpZ19yZXN1bWUocnR3ZGV2LCB0cnVlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz0yNTM2PXN0YXRpYyBpbnQgcnR3ODlfbWNjX3VwZGF0ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjU1OC1cdGlmIChvbGRfcmVmX2lnbm9yZV9iY24gIT0gcmVmLVx1MDAzZWlnbm9yZV9iY24pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNTU5Olx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIHJlZi1cdTAwM2VydHd2aWZfbGluaywgIXJlZi1cdTAwM2VpZ25vcmVfYmNuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1NjAtXHRlbHNlIGlmIChvbGRfYXV4X2lnbm9yZV9iY24gIT0gYXV4LVx1MDAzZWlnbm9yZV9iY24pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNTYxOlx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIGF1eC1cdTAwM2VydHd2aWZfbGluaywgIWF1eC1cdTAwM2VpZ25vcmVfYmNuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1NjItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9Mjc3MD1zdGF0aWMgaW50IF9fbWNjX2Z3X3VwZF9tYWNpZF9iaXRtYXAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI3NzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNzc2Olx0cmV0ID0gcnR3ODlfZndfaDJjX21jY19tYWNpZF9iaXRtYXAocnR3ZGV2LCBtY2MtXHUwMDNlZ3JvdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNzc3LVx0XHRcdFx0XHQgICAgdXBkLVx1MDAzZXJ0d3ZpZl9saW5rLVx1MDAzZW1hY19pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz0yNzg4PXN0YXRpYyBpbnQgX19tcmNfZndfdXBkX21hY2lkX2JpdG1hcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjgwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI4MDk6XHRcdFx0cmV0ID0gcnR3ODlfZndfaDJjX21yY191cGRfYml0bWFwKHJ0d2RldiwgXHUwMDI2YXJnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI4MTAtXHRcdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yODE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjgyMDpcdFx0XHRyZXQgPSBydHc4OV9md19oMmNfbXJjX3VwZF9iaXRtYXAocnR3ZGV2LCBcdTAwMjZhcmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjgyMS1cdFx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jPTg3Nz1zdGF0aWMgaW50IF9zZW5kX2Z3X2NtZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IGgyY19jbGFzcywgdTggaDJjX2Z1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtOTA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6OTA2Olx0cmV0ID0gcnR3ODlfZndfaDJjX3Jhd193aXRoX2hkcihydHdkZXYsIGgyY19jbGFzcywgaDJjX2Z1bmMsIHBhcmFtLCBsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy05MDctXHRcdFx0XHRcdGZhbHNlLCB0cnVlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYz0yNzcyPXN0YXRpYyB2b2lkIF9md19zZXRfZHJ2X2luZm8oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCB0eXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3ODItXHRcdGlmICh2ZXItXHUwMDNlZmN4aW5pdCA9PSA3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc4MzpcdFx0XHRydHc4OV9md19oMmNfY3hkcnZfaW5pdF92NyhydHdkZXYsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc4NC1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc4NTpcdFx0XHRydHc4OV9md19oMmNfY3hkcnZfaW5pdChydHdkZXYsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc4Ni1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc4OC1cdFx0aWYgKHZlci1cdTAwM2Vmd2xyb2xlID09IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyNzg5Olx0XHRcdHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlKHJ0d2RldiwgdHlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yNzkwLVx0XHRlbHNlIGlmICh2ZXItXHUwMDNlZndscm9sZSA9PSAxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5MTpcdFx0XHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MShydHdkZXYsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc5Mi1cdFx0ZWxzZSBpZiAodmVyLVx1MDAzZWZ3bHJvbGUgPT0gMilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjI3OTM6XHRcdFx0cnR3ODlfZndfaDJjX2N4ZHJ2X3JvbGVfdjIocnR3ZGV2LCB0eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTQtXHRcdGVsc2UgaWYgKHZlci1cdTAwM2Vmd2xyb2xlID09IDcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyNzk1Olx0XHRcdHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlX3Y3KHJ0d2RldiwgdHlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yNzk2LVx0XHRlbHNlIGlmICh2ZXItXHUwMDNlZndscm9sZSA9PSA4KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5NzpcdFx0XHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92OChydHdkZXYsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc5OC1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjgwMy1cdFx0aWYgKHZlci1cdTAwM2VmY3hjdHJsID09IDcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODA0Olx0XHRcdHJ0dzg5X2Z3X2gyY19jeGRydl9jdHJsX3Y3KHJ0d2RldiwgdHlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODA1LVx0XHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODA2Olx0XHRcdHJ0dzg5X2Z3X2gyY19jeGRydl9jdHJsKHJ0d2RldiwgdHlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODA3LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODIxLVx0XHRkbS1cdTAwM2V0cnhfaW5mby5uaG0gPSB3bC1cdTAwM2VuaG0ucHdyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6MjgyMjpcdFx0cnR3ODlfZndfaDJjX2N4ZHJ2X3RyeChydHdkZXYsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjgyMy1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjgyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjI4Mjg6XHRcdHJ0dzg5X2Z3X2gyY19jeGRydl9yZmsocnR3ZGV2LCB0eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI4MjktXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI4NDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODQyOlx0XHRydHc4OV9md19oMmNfY3hkcnZfb3NpX2luZm8ocnR3ZGV2LCB0eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI4NDMtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTI1MDU9c3RhdGljIHZvaWQgcnR3ODlfY2FuY2VsXzZnaHpfcHJvYmVfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lwaHlfd29yayAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0yNTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6MjUyMTpcdFx0cnR3ODlfZndfaDJjX2RlbF9wa3Rfb2ZmbG9hZChydHdkZXYsIGluZm8tXHUwMDNlaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtMjUyMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz0yNjAwPXN0YXRpYyB2b2lkIHJ0dzg5X2Jjbl9jZmdfdGJ0dF9vZmZzZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTI2MjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzoyNjI0Olx0cnR3ODlfZndfaDJjX3RidHRfdHVuaW5nKHJ0d2RldiwgcnR3dmlmX2xpbmssIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0yNjI1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz0zMDMxPXN0YXRpYyB2b2lkIHJ0dzg5X3ZpZl9yeF9zdGF0c19pdGVyKHZvaWQgKmRhdGEsIHU4ICptYWMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtMzA4Ny1cdFx0XHRydHc4OV92aWZfc3luY19iY25fdHNmKHJ0d3ZpZl9saW5rLCBoZHIsIHNrYi1cdTAwM2VsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6MzA4ODpcdFx0XHRydHc4OV9md19oMmNfcnNzaV9vZmZsb2FkKHJ0d2RldiwgcGh5X3BwZHUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtMzA4OS1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTUyMTU9c3RhdGljIGJvb2wgcnR3ODlfdHJhZmZpY19zdGF0c190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTIyOS1cdFx0cnR3ODlfdmlmX2Zvcl9lYWNoX2xpbmsocnR3dmlmLCBydHd2aWZfbGluaywgbGlua19pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjUyMzA6XHRcdFx0cnR3ODlfZndfaDJjX3RwX29mZmxvYWQocnR3ZGV2LCBydHd2aWZfbGluayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01MjMxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU2NTY9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfYWRkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NzAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTcwMTpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX3JvbGVfbWFpbnRhaW4ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NzAyLVx0XHRcdFx0XHRcdCBSVFc4OV9ST0xFX0NSRUFURSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTcyMD1pbnQgcnR3ODlfY29yZV9zdGFfbGlua19kaXNhc3NvYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTcyOC1cdGlmICh2aWYtXHUwMDNldHlwZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NzI5Olx0XHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIHJ0d3ZpZl9saW5rLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NzMwLVx0XHRydHc4OV9jb3JlX2Jjbl90cmFja19yZXNldChydHdkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU3Mzk9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfZGlzY29ubmVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTc2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU3NjY6XHRyZXQgPSBydHc4OV9md19oMmNfam9pbl9pbmZvKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU3NjctXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTc3Mi1cdC8qIHVwZGF0ZSBjYW0gYWlkIG1hY19pZCBuZXRfdHlwZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTc3MzpcdHJldCA9IHJ0dzg5X2Z3X2gyY19jYW0ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01Nzc0LVx0XHRcdCAgICAgICBSVFc4OV9ST0xFX0NPTl9ESVNDT05OKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01Nzk5PWludCBydHc4OV9jb3JlX3N0YV9saW5rX2Fzc29jKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTg0MTpcdHJldCA9IHJ0dzg5X2Z3X2gyY19qb2luX2luZm8ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU4NDItXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg0Ny1cdC8qIHVwZGF0ZSBjYW0gYWlkIG1hY19pZCBuZXRfdHlwZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTg0ODpcdHJldCA9IHJ0dzg5X2Z3X2gyY19jYW0ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODQ5LVx0XHRcdCAgICAgICBSVFc4OV9ST0xFX0NPTl9ESVNDT05OKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTg3NjpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLVx1MDAzZW1hY19pZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODc3LVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4ODI6XHRcdHJ0dzg5X2Z3X2gyY19zZXRfYmNuX2ZsdHJfY2ZnKHJ0d2RldiwgcnR3dmlmX2xpbmssIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg4My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01ODk0PWludCBydHc4OV9jb3JlX3N0YV9saW5rX3JlbW92ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTkxMC1cdH0gZWxzZSBpZiAodmlmLVx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfQVAgfHwgc3RhLVx1MDAzZXRkbHMpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU5MTE6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19yb2xlX21haW50YWluKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTkxMi1cdFx0XHRcdFx0XHQgUlRXODlfUk9MRV9SRU1PVkUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTY1NjU9aW50IHJ0dzg5X2NvcmVfc3RhcnQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY2MjUtXHRydHc4OV9idGNfbnRmeV9yYWRpb19zdGF0ZShydHdkZXYsIEJUQ19SRkNUUkxfV0xfT04pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NjYyNjpcdHJ0dzg5X2Z3X2gyY19md19sb2cocnR3ZGV2LCBydHdkZXYtXHUwMDNlZncubG9nLmVuYWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo2NjI3Olx0cnR3ODlfZndfaDJjX2luaXRfYmFfY2FtKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy02NjI4LVx0cnR3ODlfdGFzX2Z3X3RpbWVyX2VuYWJsZShydHdkZXYsIHRydWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTY5Njk9dm9pZCBydHc4OV9jb3JlX3NjYW5fc3RhcnQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY5ODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo2OTg1Olx0cnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBOVUxMLCBtYWNfYWRkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY5ODYtXHRcdFx0IFJUVzg5X1JPTEVfSU5GT19DSEFOR0UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTY5ODk9dm9pZCBydHc4OV9jb3JlX3NjYW5fY29tcGxldGUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTcwMDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo3MDA2Olx0cnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBOVUxMLCBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNzAwNy1cdFx0XHQgUlRXODlfUk9MRV9JTkZPX0NIQU5HRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NzExOD1pbnQgcnR3ODlfY29yZV9tbHNyX3N3aXRjaChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWYgKnJ0d3ZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03MTY5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NzE3MDpcdHJ0dzg5X2Z3X2gyY190eF9oaXN0b3J5KHJ0d2RldiwgdGFyZ2V0LVx1MDAzZW1hY19pZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03MTcxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYz0zNTQ5PXN0YXRpYyBzc2l6ZV90IHJ0dzg5X2RlYnVnX3ByaXZfc2VuZF9oMmNfc2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtMzU2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzozNTYxOlx0cmV0ID0gcnR3ODlfZndfaDJjX3JhdyhydHdkZXYsIGgyYywgaDJjX2xlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtMzU2Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9Mzc4MD1ydHc4OV9kZWJ1Z19wcml2X2Z3X2NyYXNoX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM3OTgtXHRcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jOjM3OTk6XHRcdHNpbSA9IHJ0dzg5X2Z3X2gyY190cmlnZ2VyX2NwdV9leGNlcHRpb247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtMzgwMC1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jPTM5MTg9c3RhdGljIHNzaXplX3QgcnR3ODlfZGVidWdfcHJpdl9md19sb2dfbWFudWFsX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM5MzItXHRcdHJ0dzg5X2Z3X2xvZ19wcmVwYXJlKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6MzkzMzpcdHJ0dzg5X2Z3X2gyY19md19sb2cocnR3ZGV2LCBmd19sb2dfbWFudWFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy0zOTM0LW91dDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NDUyMT1ydHc4OV9kZWJ1Z19wcml2X2JiX2luZm9fc2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNDUzMi1cdGVsc2UgaWYgKHNzY2FuZihidWYsIFwmIzM0O21hY19pZCAleFwmIzM0OywgXHUwMDI2dmFsKSA9PSAxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jOjQ1MzM6XHRcdHJ0dzg5X2Z3X2gyY190eF9oaXN0b3J5KHJ0d2RldiwgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy00NTM0LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz03MT1zdGF0aWMgaW50IF9fcGFyc2Vfc2VjdXJpdHlfc2VjdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjc3OnN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqcnR3ODlfZndfaDJjX2FsbG9jX3NrYihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUzMiBsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNzgtXHRcdFx0XHRcdCAgICAgIGJvb2wgaGVhZGVyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5NjpzdHJ1Y3Qgc2tfYnVmZiAqcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUzMiBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk4Olx0cmV0dXJuIHJ0dzg5X2Z3X2gyY19hbGxvY19za2IocnR3ZGV2LCBsZW4sIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk5LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xMDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAxOnN0cnVjdCBza19idWZmICpydHc4OV9md19oMmNfYWxsb2Nfc2tiX25vX2hkcihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUzMiBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxMDM6XHRyZXR1cm4gcnR3ODlfZndfaDJjX2FsbG9jX3NrYihydHdkZXYsIGxlbiwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwNC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTE3MDE9c3RhdGljIGludCBfX3J0dzg5X2Z3X2Rvd25sb2FkX2hkcihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTE3MTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTcxMzpcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTE3MTQtXHRpZiAoIXNrYikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0xNzgyPXN0YXRpYyBpbnQgX19ydHc4OV9md19kb3dubG9hZF9tYWluKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTgxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxODE3Olx0XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX25vX2hkcihydHdkZXYsIHBrdF9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTE4MTgtXHRcdGlmICghc2tiKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTIyMjA9dm9pZCBydHc4OV9md19sb2dfZHVtcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4ICpidWYsIHUzMiBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIyNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjI2MTppbnQgcnR3ODlfZndfaDJjX2NhbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjI2Mi1cdFx0ICAgICBzdHJ1Y3QgcnR3ODlfc3RhX2xpbmsgKnJ0d3N0YV9saW5rLCBjb25zdCB1OCAqc2Nhbl9tYWNfYWRkcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjI3OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyMjc5Olx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjI4MC1cdGlmICghc2tiKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjMxNzppbnQgcnR3ODlfZndfaDJjX2RjdGxfc2VjX2NhbV92MShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjMxOC1cdFx0XHRcdCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjIzMjY6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzI3LVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM1My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM1NDpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19kY3RsX3NlY19jYW1fdjEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM1NjppbnQgcnR3ODlfZndfaDJjX2RjdGxfc2VjX2NhbV92MihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM1Ny1cdFx0XHRcdCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjIzNjU6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzY2LVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM5Mi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM5MzpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19kY3RsX3NlY19jYW1fdjIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzOTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM5NTppbnQgcnR3ODlfZndfaDJjX2RjdGxfc2VjX2NhbV92MyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM5Ni1cdFx0XHRcdCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI0MDQ6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDA1LVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjQzMS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQzMjpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19kY3RsX3NlY19jYW1fdjMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQzNDppbnQgcnR3ODlfZndfaDJjX2RlZmF1bHRfZG1hY190YmxfdjIoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0MzUtXHRcdFx0XHQgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQ0NDpcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0NDUtXHRpZiAoIXNrYikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDg2LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNDg3OkVYUE9SVF9TWU1CT0wocnR3ODlfZndfaDJjX2RlZmF1bHRfZG1hY190YmxfdjIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQ4OTppbnQgcnR3ODlfZndfaDJjX2RlZmF1bHRfZG1hY190YmxfdjMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0OTAtXHRcdFx0XHQgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQ5OTpcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI1MDAtXHRpZiAoIXNrYikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNTQyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNTQzOkVYUE9SVF9TWU1CT0wocnR3ODlfZndfaDJjX2RlZmF1bHRfZG1hY190YmxfdjMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI1NDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjU0NTppbnQgcnR3ODlfZndfaDJjX2JhX2NhbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjU0Ni1cdFx0XHRzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI1NzM6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNTc0LVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjYyMi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjYyMzpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19iYV9jYW0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjYyNTpzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19pbml0X2JhX2NhbV92MF9leHQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2MjYtXHRcdFx0XHRcdCAgIHU4IGVudHJ5X2lkeCwgdTggdWlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI2MzM6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjM0LVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjY2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNjY2OnZvaWQgcnR3ODlfZndfaDJjX2luaXRfZHluYW1pY19iYV9jYW1fdjBfZXh0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjY3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjY3My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGNoaXAtXHUwMDNlYmFjYW1fZHluYW1pY19udW07IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjY3NDpcdFx0cnR3ODlfZndfaDJjX2luaXRfYmFfY2FtX3YwX2V4dChydHdkZXYsIGVudHJ5X2lkeCwgdWlkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjc1LVx0XHRlbnRyeV9pZHgmIzQzOyYjNDM7O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI2ODA6aW50IHJ0dzg5X2Z3X2gyY19iYV9jYW1fdjEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2ODEtXHRcdFx0ICAgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjcwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNzA5Olx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjcxMC1cdGlmICghc2tiKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NTYtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI3NTc6RVhQT1JUX1NZTUJPTChydHc4OV9md19oMmNfYmFfY2FtX3YxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNzU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI3NTk6aW50IHJ0dzg5X2Z3X2gyY19pbml0X2JhX2NhbV91c2VycyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHVzZXJzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NjAtXHRcdFx0XHQgICB1OCBvZmZzZXQsIHU4IG1hY19pZHgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6Mjc2NzpcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NjgtXHRpZiAoIXNrYikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNzk4LSNkZWZpbmUgSDJDX0xPR19DRkdfTEVOIDEyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6Mjc5OTppbnQgcnR3ODlfZndfaDJjX2Z3X2xvZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI4MDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yODA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI4MTA6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgSDJDX0xPR19DRkdfTEVOKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yODExLVx0aWYgKCFza2IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MjkyOD1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnJ0dzg5X2FycF9yZXNwb25zZV9nZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI5Nzg6c3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc5LVx0XHRcdFx0XHRzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwMjU6XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkKHJ0d2RldiwgXHUwMDI2aW5mby1cdTAwM2VpZCwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDI2LVx0a2ZyZWVfc2tiKHNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTMwNDA9dm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3RfdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA0OC1cdFx0aWYgKG5vdGlmeV9mdylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDQ5Olx0XHRcdHJ0dzg5X2Z3X2gyY19kZWxfcGt0X29mZmxvYWQocnR3ZGV2LCBpbmZvLVx1MDAzZWlkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDUwLVx0XHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTMwNTc9dm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIG5vdGlmeV9mdylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA3MC0jZGVmaW5lIEgyQ19HRU5FUkFMX1BLVF9JRF9VTkQgMHhmZlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwNzE6aW50IHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA3Mi1cdFx0XHQgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssIHU4IG1hY2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODA6XHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4MS1cdFx0XHRcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9QU19QT0xMLCBcdTAwMjZwa3RfaWRfcHNfcG9sbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzA4MjpcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDgzLVx0XHRcdFx0ICAgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQSwgXHUwMDI2cGt0X2lkX251bGwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODQ6XHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4NS1cdFx0XHRcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9RT1NfTlVMTCwgXHUwMDI2cGt0X2lkX3Fvc19udWxsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODc6XHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgSDJDX0dFTkVSQUxfUEtUX0xFTik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4OC1cdGlmICghc2tiKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMxMTktI2RlZmluZSBIMkNfTFBTX1BBUk1fTEVOIDhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMTIwOmludCBydHc4OV9md19oMmNfbHBzX3Bhcm0oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMxMjEtXHRcdFx0ICBzdHJ1Y3QgcnR3ODlfbHBzX3Bhcm0gKmxwc19wYXJhbSlcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzgwMTgKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA1ODIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBGZWFzaWJpbGl0eSBvZiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEkgbmVlZCB0byBrbm93IHdoZXJlIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBpcyBjYWxsZWQuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgaW52b2tlZCBieSBgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0YCAod2hpY2ggaXMgaXRzZWxmIGNhbGxlZCBmcm9tIGBydHc4OV9jb3JlX3N0YV9saW5rX2Fzc29jYCksIGBydHc4OV9md19oMmNfa2VlcF9hbGl2ZWAsIGBydHc4OV9md19oMmNfYXJwX29mZmxvYWRgLCBhbmQgYHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGRgLiBUaGlzIGdpdmVzIG1lIHNvbWUgY29udGV4dCwgYnV0IG5vdyB0aGUgY3JpdGljYWwgcXVlc3Rpb246IGlzIHRoaXMgZnVuY3Rpb24sIGFuZCBieSBleHRlbnNpb24sIHRoZSBgcnR3ODlgIGRyaXZlciBhcyBhIHdob2xlLCBhbWVuYWJsZSB0byBmdXp6aW5nIHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSBhbmQgc3l6a2FsbGVyPwoKQmVmb3JlIEkganVtcCB0byBjb25jbHVzaW9ucywgSSBuZWVkIHRvIGNvbnN1bHQgdGhlIGZ1enppbmcgZ3VpZGVsaW5lcy4gTGV0IG1lIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCB3YXN0aW5nIG15IHRpbWUgb24gc29tZXRoaW5nIHRoYXQgaXMgZXhwbGljaXRseSBleGNsdWRlZC4gVGhlIGd1aWRlbGluZXMgc3BlY2lmaWNhbGx5IGNhbGwgb3V0IG1vZGlmaWNhdGlvbnMgdG8gZG9jdW1lbnRhdGlvbiwgS2NvbmZpZyBmaWxlcywgZGVjb3JhdGl2ZSBsb2dnaW5nLCBjaGFuZ2VzIHRvIG5vbi1mdW5jdGlvbmFsIGNvbnN0YW50cywgdW5yZWFjaGFibGUgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGFuZCBjZXJ0YWluIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMgKFBDSWUgc3dpdGNoLCBTbWFydE5JQywgR1BVLCBkcml2ZXJzJiMzOTsgYC5yZW1vdmVgLCBgLnNodXRkb3duYCwgb3IgYHBjaV91bnJlZ2lzdGVyX2RyaXZlcmAgdGVhcmRvd24gY2FsbGJhY2tzKS4gTm9uZSBvZiB0aGF0ICppbW1lZGlhdGVseSoganVtcHMgb3V0IGFzIGEgY29uY2VybiBoZXJlLCBhc3N1bWluZyB0aGUgY2FsbHNpdGVzIGFyZSByZWFjaGFibGUgd2l0aGluIGEgZnV6emVkIGVudmlyb25tZW50LgoKTm93LCB0aGUgbWFpbiBxdWVzdGlvbjogY2FuIGBydHc4OWAgZXZlbiBiZSBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBjb250ZXh0PyBJIGtub3cgc29tZSBkcml2ZXJzIHByZXNlbnQgaW1tZWRpYXRlIGNoYWxsZW5nZXMuIFNwZWNpZmljYWxseSwgVVNCIHdpcmVsZXNzIGRyaXZlcnMgYXJlIG9mdGVuIGZ1enphYmxlIGluIExpbnV4LCBwYXJ0aWN1bGFybHkgd2l0aCBzeXprYWxsZXImIzM5O3MgVVNCIGVtdWxhdGlvbiBjYXBhYmlsaXRpZXMuIFRoaXMgaXMgZ29vZCBuZXdzLCBhcyBzeXprYWxsZXIgYWN0aXZlbHkgZnV6emVzIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGRyaXZlcnMgdXNpbmcgdGhlIGR1bW15X2hjZC9yYXdfZ2FkZ2V0IG1ldGhvZHMuCgpUaGUga2V5IHRoZW4gYmVjb21lcywgaXMgYHJ0dzg5YCBhIFVTQiBkcml2ZXI/IEkgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBvcHRpb25zIGZvciBgUlRXODlfVVNCYCBhbmQgcmVsYXRlZCBjb25maWd1cmF0aW9ucyBsaWtlIGBSVFc4OV84ODUyQVVgLCBgUlRXODlfODg1MkJVYCwgYFJUVzg5Xzg4NTJDVWAsIGBSVFc4OV84OTIyQVVgLCBgUlRXODlfODg1MUJVYC4gVGhvc2Ugd291bGQgcHJvdmlkZSB0aGUgbW9zdCBkaXJlY3QgaW5mb3JtYXRpb24uIEFsc28sIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgYHJ0dzg5YCBldmVuIGhhcyBhIGB1c2IuY2AgZmlsZSBpbiB0aGUgZHJpdmVyIHRyZWUuIEkgc2hvdWxkIGxvb2sgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNgIHRvIGNvbmZpcm0gbXkgc3VzcGljaW9uLiBJZiBpdCYjMzk7cyBhIFVTQiBkcml2ZXIsIHRoZSBsaWtlbGlob29kIG9mIHN1Y2Nlc3NmdWwgZnV6emluZyBpcyBzaWduaWZpY2FudGx5IGhpZ2hlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA4MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gICAyOlx0LyogQ29weXJpZ2h0KGMpIDIwMjUgIFJlYWx0ZWsgQ29ycG9yYXRpb25cbiAgIDM6XHQgKi9cbiAgIDQ6XHRcbiAgIDU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC91c2IuaFx1MDAzZVxuICAgNjpcdCNpbmNsdWRlIFwmIzM0O2RlYnVnLmhcJiMzNDtcbiAgIDc6XHQjaW5jbHVkZSBcJiMzNDttYWMuaFwmIzM0O1xuICAgODpcdCNpbmNsdWRlIFwmIzM0O3JlZy5oXCYjMzQ7XG4gICA5Olx0I2luY2x1ZGUgXCYjMzQ7dHhyeC5oXCYjMzQ7XG4gIDEwOlx0I2luY2x1ZGUgXCYjMzQ7dXNiLmhcJiMzNDtcbiAgMTE6XHRcbiAgMTI6XHRzdGF0aWMgdm9pZCBydHc4OV91c2JfcmVhZF9wb3J0X2NvbXBsZXRlKHN0cnVjdCB1cmIgKnVyYik7XG4gIDEzOlx0XG4gIDE0Olx0c3RhdGljIHZvaWQgX19ydHc4OV91c2JfdmVuZG9ycmVxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTMyIGFkZHIsXG4gIDE1Olx0XHRcdFx0XHQgIHZvaWQgKmRhdGEsIHUxNiBsZW4sIHU4IHJlcXR5cGUsIGJvb2wgd2FybilcbiAgMTY6XHR7XG4gIDE3Olx0XHRzdHJ1Y3QgcnR3ODlfdXNiICpydHd1c2IgPSBydHc4OV91c2JfcHJpdihydHdkZXYpO1xuICAxODpcdFx0c3RydWN0IHVzYl9kZXZpY2UgKnVkZXYgPSBydHd1c2ItXHUwMDNldWRldjtcbiAgMTk6XHRcdHVuc2lnbmVkIGludCBwaXBlO1xuICAyMDpcdFx0dTE2IHZhbHVlLCBpbmRleDtcbiAgMjE6XHRcdGludCBhdHRlbXB0LCByZXQ7XG4gIDIyOlx0XG4gIDIzOlx0XHRpZiAodGVzdF9iaXQoUlRXODlfRkxBR19VTlBMVUdHRUQsIHJ0d2Rldi1cdTAwM2VmbGFncykpXG4gIDI0Olx0XHRcdHJldHVybjtcbiAgMjU6XHRcbiAgMjY6XHRcdHZhbHVlID0gdTMyX2dldF9iaXRzKGFkZHIsIEdFTk1BU0soMTUsIDApKTtcbiAgMjc6XHRcdGluZGV4ID0gdTMyX2dldF9iaXRzKGFkZHIsIEdFTk1BU0soMjMsIDE2KSk7XG4gIDI4Olx0XG4gIDI5Olx0XHRmb3IgKGF0dGVtcHQgPSAwOyBhdHRlbXB0IFx1MDAzYyAxMDsgYXR0ZW1wdCYjNDM7JiM0MzspIHtcbiAgMzA6XHRcdFx0KnJ0d3VzYi1cdTAwM2V2ZW5kb3JfcmVxX2J1ZiA9IDA7XG4gIDMxOlx0XG4gIDMyOlx0XHRcdGlmIChyZXF0eXBlID09IFJUVzg5X1VTQl9WRU5RVF9SRUFEKSB7XG4gIDMzOlx0XHRcdFx0cGlwZSA9IHVzYl9yY3ZjdHJscGlwZSh1ZGV2LCAwKTtcbiAgMzQ6XHRcdFx0fSBlbHNlIHsgLyogUlRXODlfVVNCX1ZFTlFUX1dSSVRFICovXG4gIDM1Olx0XHRcdFx0cGlwZSA9IHVzYl9zbmRjdHJscGlwZSh1ZGV2LCAwKTtcbiAgMzY6XHRcbiAgMzc6XHRcdFx0XHRtZW1jcHkocnR3dXNiLVx1MDAzZXZlbmRvcl9yZXFfYnVmLCBkYXRhLCBsZW4pO1xuICAzODpcdFx0XHR9XG4gIDM5Olx0XG4gIDQwOlx0XHRcdHJldCA9IHVzYl9jb250cm9sX21zZyh1ZGV2LCBwaXBlLCBSVFc4OV9VU0JfVkVOUVQsIHJlcXR5cGUsXG4gIDQxOlx0XHRcdFx0XHQgICAgICB2YWx1ZSwgaW5kZXgsIHJ0d3VzYi1cdTAwM2V2ZW5kb3JfcmVxX2J1ZixcbiAgNDI6XHRcdFx0XHRcdCAgICAgIGxlbiwgNTAwKTtcbiAgNDM6XHRcbiAgNDQ6XHRcdFx0aWYgKHJldCA9PSBsZW4pIHsgLyogU3VjY2VzcyAqL1xuICA0NTpcdFx0XHRcdGF0b21pY19zZXQoXHUwMDI2cnR3dXNiLVx1MDAzZWNvbnRpbnVhbF9pb19lcnJvciwgMCk7XG4gIDQ2Olx0XG4gIDQ3Olx0XHRcdFx0aWYgKHJlcXR5cGUgPT0gUlRXODlfVVNCX1ZFTlFUX1JFQUQpXG4gIDQ4Olx0XHRcdFx0XHRtZW1jcHkoZGF0YSwgcnR3dXNiLVx1MDAzZXZlbmRvcl9yZXFfYnVmLCBsZW4pO1xuICA0OTpcdFxuICA1MDpcdFx0XHRcdGJyZWFrO1xuICA1MTpcdFx0XHR9XG4gIDUyOlx0XG4gIDUzOlx0XHRcdGlmIChyZXQgPT0gLUVTSFVURE9XTiB8fCByZXQgPT0gLUVOT0RFVilcbiAgNTQ6XHRcdFx0XHRzZXRfYml0KFJUVzg5X0ZMQUdfVU5QTFVHR0VELCBydHdkZXYtXHUwMDNlZmxhZ3MpO1xuICA1NTpcdFx0XHRlbHNlIGlmIChyZXQgXHUwMDNjIDAgXHUwMDI2XHUwMDI2IHdhcm4pXG4gIDU2Olx0XHRcdFx0cnR3ODlfd2FybihydHdkZXYsXG4gIDU3Olx0XHRcdFx0XHQgICBcJiMzNDt1c2IgJXMldSAweCV4IGZhaWwgcmV0PSVkIHZhbHVlPTB4JXggYXR0ZW1wdD0lZFxcblwmIzM0OyxcbiAgNTg6XHRcdFx0XHRcdCAgIHN0cl9yZWFkX3dyaXRlKHJlcXR5cGUgPT0gUlRXODlfVVNCX1ZFTlFUX1JFQUQpLFxuICA1OTpcdFx0XHRcdFx0ICAgbGVuICogOCwgYWRkciwgcmV0LFxuICA2MDpcdFx0XHRcdFx0ICAgbGUzMl90b19jcHVwKHJ0d3VzYi1cdTAwM2V2ZW5kb3JfcmVxX2J1ZiksXG4gIDYxOlx0XHRcdFx0XHQgICBhdHRlbXB0KTtcbiAgNjI6XHRcdFx0ZWxzZSBpZiAocmV0IFx1MDAzZSAwIFx1MDAyNlx1MDAyNiByZXF0eXBlID09IFJUVzg5X1VTQl9WRU5RVF9SRUFEKVxuICA2MzpcdFx0XHRcdG1lbWNweShkYXRhLCBydHd1c2ItXHUwMDNldmVuZG9yX3JlcV9idWYsIGxlbik7XG4gIDY0Olx0XG4gIDY1Olx0XHRcdGlmIChhdG9taWNfaW5jX3JldHVybihcdTAwMjZydHd1c2ItXHUwMDNlY29udGludWFsX2lvX2Vycm9yKSBcdTAwM2UgNCkge1xuICA2NjpcdFx0XHRcdHNldF9iaXQoUlRXODlfRkxBR19VTlBMVUdHRUQsIHJ0d2Rldi1cdTAwM2VmbGFncyk7XG4gIDY3Olx0XHRcdFx0YnJlYWs7XG4gIDY4Olx0XHRcdH1cbiAgNjk6XHRcdH1cbiAgNzA6XHR9XG4gIDcxOlx0XG4gIDcyOlx0c3RhdGljIHZvaWQgcnR3ODlfdXNiX3ZlbmRvcnJlcShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUzMiBhZGRyLFxuICA3MzpcdFx0XHRcdFx0dm9pZCAqZGF0YSwgdTE2IGxlbiwgdTggcmVxdHlwZSlcbiAgNzQ6XHR7XG4gIDc1Olx0XHRfX3J0dzg5X3VzYl92ZW5kb3JyZXEocnR3ZGV2LCBhZGRyLCBkYXRhLCBsZW4sIHJlcXR5cGUsIHRydWUpO1xuICA3NjpcdH1cbiAgNzc6XHRcbiAgNzg6XHRzdGF0aWMgdTMyIHJ0dzg5X3VzYl9yZWFkX2NtYWMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1MzIgYWRkcilcbiAgNzk6XHR7XG4gIDgwOlx0XHR1MzIgYWRkcjMyLCB2YWwzMiwgc2hpZnQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNTcxCgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMTU0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJUVzg5IERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBSVFc4OSBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYGZ3LmNgIGZpbGUuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgYWJvdXQgUlRXODkmIzM5O3MgVVNCIHN1cHBvcnQsIGFuZCBob3cgd2UgY291bGQgcG90ZW50aWFsbHkgZW11bGF0ZSB3aXJlbGVzcyBVU0IgYWRhcHRlcnMgdXNpbmcgVVNCIGdhZGdldHMsIGJ1dCB0aGF0JiMzOTtzIG5vdCB0aGUgZm9jdXMgaGVyZS4gVGhlIHBhdGNoIGl0c2VsZiBpcyB3aGF0IGludGVyZXN0cyBtZS4gTGV0JiMzOTtzIGRpZyBpbi4KClRoZSBkaWZmIGludHJvZHVjZXMgYSBzbWFsbCBidXQgY3J1Y2lhbCBjaGFuZ2UgdG8gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgLiBJdCBzZWVtcyBsaWtlIGVycm9yIGhhbmRsaW5nIGlzIGJlaW5nIGltcHJvdmVkLiBTcGVjaWZpY2FsbHksIHRoZSBwYXRjaCBhZGRzIGV4cGxpY2l0IGVycm9yIHJldHVybnMgZm9yIGNhc2VzIHdoZXJlIHRoZSBgc3dpdGNoYCBzdGF0ZW1lbnQgaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGhpdHMgdGhlIGBkZWZhdWx0YCBjYXNlIGFuZCB3aGVuIGBza2JgIGlzIE5VTEwuIEJlZm9yZSwgdGhlc2UgY2FzZXMgd291bGQgaGF2ZSByZXN1bHRlZCBpbiBhbiBgLUVOT01FTWAgcmV0dXJuLCB3aGljaCB3YXNuJiMzOTt0IGZ1bGx5IGFjY3VyYXRlIGluIHRoZSBmaXJzdCBjYXNlLiBOb3csIGAtRUlOVkFMYCBpcyByZXR1cm5lZCBmb3IgaW52YWxpZCBwYWNrZXQgdHlwZXMgYW5kIGAtRU5PTUVNYCBmb3IgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZXMsIG1ha2luZyBkZWJ1Z2dpbmcgZWFzaWVyLgoKTmV4dCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSwgc28gSSYjMzk7bSBjaGVja2luZyB0aGUgY2FsbGVycyBvZiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAgYXMgd2VsbCBhcyBmdW5jdGlvbnMgdGhhdCBjYWxsIGl0LiBUaGUgcGxhbiBpcyB0byBzZWUgaG93IHRoaXMgbW9kaWZpZWQgZXJyb3IgaGFuZGxpbmcgcmlwcGxlcyB0aHJvdWdoIHRoZSBkcml2ZXIuIEkmIzM5O3ZlIGZvdW5kIHRoYXQgYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAsIGBydHc4OV9md19oMmNfa2VlcF9hbGl2ZWAsIGBydHc4OV9md19oMmNfYXJwX29mZmxvYWRgIGFuZCBgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZGAgYXJlIGFsbCBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uIE5vdywgSSBuZWVkIHRvIGNoZWNrIHdoZXJlIHRob3NlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGZsb3cgYW5kIGVuc3VyZSBhbnkgcG90ZW50aWFsIGlzc3VlcyBmcm9tIHRoZSB1cGRhdGVkIGVycm9yIGNvZGVzIGFyZSBjYXVnaHQgYW5kIGhhbmRsZWQgYXBwcm9wcmlhdGVseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODlfZndfaDJjXyhrZWVwX2FsaXZlfGFycF9vZmZsb2FkfHdvd19ndGtfb2ZsZHxnZW5lcmFsX3BrdCkmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTc5OT1pbnQgcnR3ODlfY29yZV9zdGFfbGlua19hc3NvYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4NzY6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluay1cdTAwM2VtYWNfaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg3Ny1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0zMDU3PXZvaWQgcnR3ODlfZndfcmVsZWFzZV9nZW5lcmFsX3BrdF9saXN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBub3RpZnlfZncpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwNzAtI2RlZmluZSBIMkNfR0VORVJBTF9QS1RfSURfVU5EIDB4ZmZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDcxOmludCBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwNzItXHRcdFx0ICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLCB1OCBtYWNpZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9OTU2ND1pbnQgcnR3ODlfZndfaDJjX3BrdF9kcm9wKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTYyNi0jZGVmaW5lIEgyQ19LRUVQX0FMSVZFX0xFTiA0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6OTYyNzppbnQgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk2MjgtXHRcdFx0ICAgIGJvb2wgZW5hYmxlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05Njc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk2NzU6aW50IHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTY3Ni1cdFx0XHQgICAgIGJvb2wgZW5hYmxlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0xMDA0MD1FWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY193b3dfY2FtX3VwZGF0ZV92MSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAwNDI6aW50IHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDQzLVx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oPTU0NTE9dm9pZCBydHc4OV9md19mcmVlX2FsbF9lYXJseV9oMmMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaDo1NDUyOmludCBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oLTU0NTMtXHRcdFx0ICAgICB1OCBtYWNpZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oPTU1Mjg9aW50IHJ0dzg5X2Z3X2gyY19jZmdfcG5vKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC01NTI5LVx0XHRcdCBib29sIGVuYWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3Lmg6NTUzMDppbnQgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oLTU1MzEtXHRcdFx0ICAgIGJvb2wgZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaDo1NTMyOmludCBydHc4OV9md19oMmNfYXJwX29mZmxvYWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oLTU1MzMtXHRcdFx0ICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLCBib29sIGVuYWJsZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oPTU1NDI9aW50IHJ0dzg5X2Z3X2gyY193b3dfY2FtX3VwZGF0ZV92MShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmgtNTU0My1cdFx0XHRcdCAgIHN0cnVjdCBydHc4OV93b3dfY2FtX2luZm8gKmNhbV9pbmZvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaDo1NTQ0OmludCBydHc4OV9md19oMmNfd293X2d0a19vZmxkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC01NTQ1LVx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYz0xMjYwPXN0YXRpYyBpbnQgcnR3ODlfd293X3N3YXBfZncoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIHdvdylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTEzMzMtXHRpZiAoaXNfY29ubikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYzoxMzM0Olx0XHRyZXQgPSBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmstXHUwMDNlbWFjX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTMzNS1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM9MTU1OD1zdGF0aWMgaW50IHJ0dzg5X3dvd19md19zdGFydChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNTc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYzoxNTgwOlx0XHRyZXQgPSBydHc4OV9md19oMmNfa2VlcF9hbGl2ZShydHdkZXYsIHJ0d3ZpZl9saW5rLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU4MS1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTU5MjpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZChydHdkZXYsIHJ0d3ZpZl9saW5rLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU5My1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTU5ODpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkKHJ0d2RldiwgcnR3dmlmX2xpbmssIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNTk5LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM9MTYyNj1zdGF0aWMgaW50IHJ0dzg5X3dvd19md19zdG9wKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jOjE2NDk6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlKHJ0d2RldiwgcnR3dmlmX2xpbmssIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTY1MC1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTY2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTY2MTpcdFx0cmV0ID0gcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZChydHdkZXYsIHJ0d3ZpZl9saW5rLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NjItXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jOjE2Njc6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZChydHdkZXYsIHJ0d3ZpZl9saW5rLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NjgtXHRcdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1MDM5CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMzQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgcnR3ODkgRmlybXdhcmUgSDJDIFBhY2tldCBIYW5kbGluZyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSYjMzk7bSBmb2N1c2luZyBvbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAsIHdoaWNoIEkgc2VlIGlzIGEgc3RhdGljIGhlbHBlciBmdW5jdGlvbiByZXNpZGluZyB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY2AuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHVuZGVyc3RhbmRpbmcgaXRzIHVzYWdlIOKAkyB3aGF0IG90aGVyIGZ1bmN0aW9ucyAqZGlyZWN0bHkqIGNhbGwgaXQ/IExvb2tpbmcgYXQgdGhlIGNvZGUsIGl0JiMzOTtzIGNhbGxlZCBieSBgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0YCwgYHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlYCwgYHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZGAsIGFuZCBgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZGAuIFRoaXMgZ2l2ZXMgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIHdpdGhpbiB0aGUgZHJpdmVyJiMzOTtzIEgyQyAoSG9zdCB0byBDb250cm9sbGVyKSBwYWNrZXQgbWVjaGFuaXNtLgoKTmV4dCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24uIEkgaGF2ZSB0byBtYWtlIHN1cmUgdGhlIGRyaXZlciBjYW4gZXZlbiBiZSBjb21waWxlZCwgYW5kIEkgd2FudCB0byBrbm93IHdoaWNoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgcmVxdWlyZWQgb3IgZW5hYmxlZC4gQ2hlY2tpbmcgdGhlIGBLY29uZmlnYCBmaWxlIGluIHRoYXQgZGlyZWN0b3J5IGlzIGtleS4gRnJvbSBhIHF1aWNrIGdsYW5jZSwgSSBzZWUgYENPTkZJR19SVFc4OWAgYXMgdGhlIHJvb3QsIGZvbGxvd2VkIGJ5IGBDT05GSUdfUlRXODlfQ09SRWAgKHdoaWNoIGlzIHR5cGljYWxseSBzZWxlY3RlZCBieSB0aGUgZGV2aWNlIGRyaXZlcnMpLCBhbmQgdGhlbiBlaXRoZXIgYENPTkZJR19SVFc4OV9VU0JgIG9yIGBDT05GSUdfUlRXODlfUENJYCBkZXBlbmRpbmcgb24gdGhlIGludGVyZmFjZS4gRnVydGhlciBkb3duIHRoZSBjb25maWd1cmF0aW9uIHRyZWUsIEkgc2VlIGRldmljZS1zcGVjaWZpYyBvcHRpb25zIHN1Y2ggYXMgYENPTkZJR19SVFc4OV84ODUyQVVgLCBgQ09ORklHX1JUVzg5Xzg4NTJBRWAsIGBDT05GSUdfUlRXODlfODg1MkJFYCwgZXRjLiBJdCBzZWVtcyBsaWtlIHRoZSB2YXJpb3VzIGNoaXBzZXRzIG9yIGhhcmR3YXJlIHJldmlzaW9ucyBuZWVkIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIHRvIGJlIHN1cHBvcnRlZC4KCkJlZm9yZSBnb2luZyBkZWVwZXIgaW50byB0aGUgc3BlY2lmaWMgb3B0aW9ucywgbGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZyBmaWxlIHRvIGNvbmZpcm0gd2hldGhlciB0aGUgZGV2aWNlLXNwZWNpZmljIG9wdGlvbnMgc3VjaCBhcyBgUlRXODlfODg1MkFVYCwgYFJUVzg5Xzg4NTFCVWAsIGBSVFc4OV84ODUyQlVgLCBgUlRXODlfODg1MkNVYCBvciBgUlRXODlfODkyMkFVYCBhcmUgYWxzbyBjb3JyZWN0bHkgZGVmaW5lZC4gSXQmIzM5O3MgY3J1Y2lhbCB0byBjb25maXJtIHRob3NlIGRlcGVuZGVuY2llcyBiZWZvcmUgYXNzdW1pbmcgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb25zLiBPbmNlIEkgY29uZmlybSB0aGVtLCBJIHdpbGwgaGF2ZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVyJiMzOTtzIGJ1aWxkIHByb2Nlc3MgYW5kIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjptZW51Y29uZmlnIFJUVzg5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExYXggd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz0xMT1pZiBSVFc4OVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEzOmNvbmZpZyBSVFc4OV9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzpjb25maWcgUlRXODlfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTgtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIwOmNvbmZpZyBSVFc4OV9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMS1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjM6Y29uZmlnIFJUVzg5Xzg4NTFCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjQtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI2OmNvbmZpZyBSVFc4OV84ODUyQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI3LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyOTpjb25maWcgUlRXODlfODg1MkJfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzAtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OV84ODUyQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMzLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzozNTpjb25maWcgUlRXODlfODg1MkJUXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzYtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjM4OmNvbmZpZyBSVFc4OV84ODUyQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM5LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0MTpjb25maWcgUlRXODlfODkyMkFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00Mi1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDQ6Y29uZmlnIFJUVzg5Xzg4NTFCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQ1LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTU6Y29uZmlnIFJUVzg5Xzg4NTFCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU2LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NjY6Y29uZmlnIFJUVzg5Xzg4NTJBRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTY3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Nzc6Y29uZmlnIFJUVzg5Xzg4NTJBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTc4LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODg6Y29uZmlnIFJUVzg5Xzg4NTJCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTg5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctOTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTAwOmNvbmZpZyBSVFc4OV84ODUyQlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDEtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTEyOmNvbmZpZyBSVFc4OV84ODUyQlRFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTEzLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQkUtVlQgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEyNDpjb25maWcgUlRXODlfODg1MkNFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTI1LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQ0UgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDZFKSBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEzNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMzU6Y29uZmlnIFJUVzg5Xzg4NTJDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEzNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTQ2OmNvbmZpZyBSVFc4OV84OTIyQUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNDctXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg5MjJBRS84OTIyQUUtVlMgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDcpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE2MDpjb25maWcgUlRXODlfODkyMkFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTYxLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4OTIyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDcpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3Mjpjb25maWcgUlRXODlfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNzMtXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3NTpjb25maWcgUlRXODlfREVCVUdNU0dcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNzYtXHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODkgZGVidWcgbWVzc2FnZSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxODQ6Y29uZmlnIFJUVzg5X0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODUtXHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODkgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4MjUzCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgUmVhbHRlayBLY29uZmlnIGZvciBSVFc4OSBEZXBlbmRlbmNpZXMqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhpcyBgUlRXODlgIG1vZHVsZS4gV2hlcmUgZG8gSSBzdGFydD8gVGhlIGJlc3QgcGxhY2UgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIGlzIGFsd2F5cyB0aGUgYEtjb25maWdgIGZpbGUsIHBhcnRpY3VsYXJseSB0aGUgb25lIGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRla2AgZGlyZWN0b3J5LiBUaGF0JiMzOTtzIHVzdWFsbHkgdGhlIGF1dGhvcml0YXRpdmUgc291cmNlIGZvciB0aGVzZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlcnMuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBmaWxlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL0tjb25maWdgIHRvIHNlZSBleGFjdGx5IHdoYXQgb3RoZXIgb3B0aW9ucyBvciBmZWF0dXJlcyBuZWVkIHRvIGJlIGVuYWJsZWQgb3IgYXJlIHJlcXVpcmVkIGZvciBgUlRXODlgIHRvIGZ1bmN0aW9uIGNvcnJlY3RseSB3aXRoaW4gdGhlIGtlcm5lbCBidWlsZC4gVGhpcyBLY29uZmlnIGZpbGUgd2lsbCBiZSB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGZ1bGwgc2NvcGUgb2Ygd2hhdCBJJiMzOTttIHdvcmtpbmcgd2l0aCBhbmQgd2hhdCBvdGhlciBjb21wb25lbnRzIG1pZ2h0IG5lZWQgYXR0ZW50aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzb3VyY2UuKnJ0dzg5L0tjb25maWcmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL0tjb25maWc9MTg9c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9LY29uZmlnOjE5OnNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvS2NvbmZpZy0yMC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDg1OTcKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhvdWdodHM6CgoqKkV4YW1pbmluZyB0aGUgUlRXODkgS2NvbmZpZyBGaWxlKioKCk9rYXksIHRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciBjb25maWd1cmF0aW9uLiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IGJ5IHJldmlld2luZyB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IGxpbmVzIDEgdGhyb3VnaCAyMC4gSSB3YW50IHRvIHF1aWNrbHkgcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvZmZlcmVkIGJ5IHRoaXMgZHJpdmVyLiBXaGF0IGFyZSB0aGUgZXNzZW50aWFsIGZlYXR1cmUgZmxhZ3M/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBkZXBlbmRlbmNpZXMgb3IgY29uZGl0aW9uYWwgc2V0dGluZ3MgSSBzaG91bGQga2VlcCBpbiBtaW5kIGFzIEkgc3RhcnQgdG8gY29uZmlndXJlIHRoaXMgbW9kdWxlIGZvciBhIHBhcnRpY3VsYXIgdXNlIGNhc2U/IEkmIzM5O20gaG9waW5nIHRvIGdldCBhIHF1aWNrIG92ZXJ2aWV3IG9mIHRoZSBrZXkga25vYnMgYW5kIGxldmVycyBiZWZvcmUgZ2V0dGluZyBib2dnZWQgZG93biBpbiB0aGUgbW9yZSBncmFudWxhciBkZXRhaWxzIGZ1cnRoZXIgZG93biBpbiB0aGUgZmlsZS4gRXNzZW50aWFsbHksIEkmIzM5O20gc2V0dGluZyB0aGUgc3RhZ2UgZm9yIGEgbW9yZSBmb2N1c2VkIGFuYWx5c2lzIGxhdGVyIG9uLiBMZXQmIzM5O3Mgc2VlIHdoYXQgdGhlc2UgaW5pdGlhbCBsaW5lcyByZXZlYWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcbiAgIDI6XHRtZW51Y29uZmlnIFJUVzg5XG4gICAzOlx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDgwMi4xMWF4IHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgIDU6XHRcdGhlbHBcbiAgIDY6XHRcdCAgVGhpcyBtb2R1bGUgYWRkcyBzdXBwb3J0IGZvciBtYWM4MDIxMS1iYXNlZCB3aXJlbGVzcyBkcml2ZXJzIHRoYXRcbiAgIDc6XHRcdCAgZW5hYmxlcyBSZWFsdGVrIElFRUUgODAyLjExYXggd2lyZWxlc3MgY2hpcHNldHMuXG4gICA4Olx0XG4gICA5Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgcnR3ODkuXG4gIDEwOlx0XG4gIDExOlx0aWYgUlRXODlcbiAgMTI6XHRcbiAgMTM6XHRjb25maWcgUlRXODlfQ09SRVxuICAxNDpcdFx0dHJpc3RhdGVcbiAgMTU6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBSVFc4OV9QQ0lcbiAgMTg6XHRcdHRyaXN0YXRlXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIFJUVzg5X1VTQlxuICAyMTpcdFx0dHJpc3RhdGVcbiAgMjI6XHRcbiAgMjM6XHRjb25maWcgUlRXODlfODg1MUJcbiAgMjQ6XHRcdHRyaXN0YXRlXG4gIDI1Olx0XG4gIDI2Olx0Y29uZmlnIFJUVzg5Xzg4NTJBXG4gIDI3Olx0XHR0cmlzdGF0ZVxuICAyODpcdFxuICAyOTpcdGNvbmZpZyBSVFc4OV84ODUyQl9DT01NT05cbiAgMzA6XHRcdHRyaXN0YXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5MjMxCgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogNzc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBSZWFsdGVrIFJUVzg5IEZpcm13YXJlIEgyQyBQYWNrZXQgSGFuZGxpbmcqKgoKT2theSwgc28gaGVyZSYjMzk7cyB3aGF0IEkmIzM5O3ZlIGdvdCBzbyBmYXIuIEkmIzM5O20gbG9va2luZyBhdCB0aGUgZGVwZW5kZW5jaWVzIGZvciB0aGlzIFJUVzg5IGRyaXZlci4gYFJUVzg5YCByZWxpZXMgb24gYE1BQzgwMjExYCwgd2hpY2ggaXMgc3RhbmRhcmQuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBzZWVpbmcgYSBidW5jaCBvZiBkZXZpY2Utc3BlY2lmaWMgb3B0aW9ucyBsaWtlIGBSVFc4OV84ODUyQVVgLCBgUlRXODlfODg1MkFFYCwgYW5kIHNvIG9uLCBhbmQgdGhlc2UgYXJlIHRpZWQgdG8gZWl0aGVyIFVTQiBvciBQQ0kgaW50ZXJmYWNlcy4gV2hlbiBvbmUgb2YgdGhlc2UgZGV2aWNlLXNwZWNpZmljIG9wdGlvbnMsIGxpa2UgYFJUVzg5Xzg4NTJBVWAsIGlzIGVuYWJsZWQsIGl0IHB1bGxzIGluIGBSVFc4OV9DT1JFYCwgYFJUVzg5X1VTQmAsIGFuZCBgUlRXODlfODg1MkFgLiBUaGF0IGdpdmVzIG1lIGEgZ29vZCBpZGVhIG9mIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4KCk5leHQsIEkgemVyb2VkIGluIG9uIHRoZSBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAgZnVuY3Rpb24uIFRoaXMgaXMgYSBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgSDJDIHBhY2tldCBoYW5kbGluZywgYW5kIEkmIzM5O3ZlIGlkZW50aWZpZWQgc2V2ZXJhbCBub24tc3RhdGljIGNhbGxlcnMgb3IgZW50cnlwb2ludHM6IGBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RgLCBgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmVgLCBgcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkYCwgYW5kIGBydHc4OV9md19oMmNfd293X2d0a19vZmxkYC4gU28sIHRob3NlIGFyZSB0aGUgbWFpbiBmdW5jdGlvbnMgdGhhdCBjYWxsIGludG8gdGhlIGhlbHBlci4KCkRpZ2dpbmcgZGVlcGVyLCBJIGxvb2tlZCBmb3Igb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMuIEkmIzM5O3ZlIGZvdW5kIHRoYXQgYHJ0dzg5X2NvcmVfc3RhX2xpbmtfYXNzb2NgIGNhbGxzIGBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RgLiBBbHNvLCBgcnR3ODlfd293X2Z3X3N0YXJ0YCBhbmQgYHJ0dzg5X3dvd19md19zdG9wYCBib3RoIGNhbGwgYHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlYCwgYHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGRgLCBhbmQgYHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZGAuIGBydHc4OV93b3dfc3dhcF9md2AgY2FsbHMgYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAgYXMgd2VsbC4gU2VlbXMgbGlrZSB0aGVzZSBXb1cgKFdha2Utb24tV2lyZWxlc3MpIGZ1bmN0aW9uYWxpdGllcyBhcmUga2V5IHBsYXllcnMgaGVyZSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuCgpOb3csIHRoZSByZWFsbHkgaW50ZXJlc3RpbmcgcGFydDogSSYjMzk7bSBjbGFzc2lmeWluZyB0aGlzIGFzIGEgZnVuY3Rpb25hbCBsb2dpYyBtb2RpZmljYXRpb24gYmVjYXVzZSB0aGUgZXJyb3IgaGFuZGxpbmcgaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGFuZCBpdHMgY2FsbGVycyBpcyBjaGFuZ2luZy4gUHJldmlvdXNseSwgYW55IGVycm9yIGp1c3QgcmV0dXJuZWQgYC1FTk9NRU1gLiBOb3csIHRoZSBwYXRjaCAqcHJlc2VydmVzKiB0aGUgZXJyb3IgcmV0dXJuIGNvZGUgKGByZXRgKSBmcm9tIGEgbmVzdGVkIGNhbGwgdG8gYHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWRgLiBJZiB0aGF0IG5lc3RlZCBjYWxsIHJldHVybnMgYW55dGhpbmcgb3RoZXIgdGhhbiAtRU5PTUVNIChlLmcuIC1FQlVTWSwgLUVJTlZBTCksIHRoZW4gdGhhdCBlcnJvciBpcyByZXNwZWN0ZWQsIGJ1dCAtRU5PTUVNIGlzIHN0aWxsIHJldHVybmVkIGlmIG5vIFNLQi4gVGhpcyBpcyBpbXBvcnRhbnQgdG8gbm90ZSBzaW5jZSBpdCBjaGFuZ2VzIGhvdyBwb3RlbnRpYWwgaXNzdWVzIGFyZSBwcm9wYWdhdGVkIHVwIHRoZSBzdGFjaywgYW5kIGl0JiMzOTtzIHNvbWV0aGluZyBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIGZvciBmdXp6aW5nLiBBbHNvLCBpdCYjMzk7cyBnb29kIHRvIGtub3cgdGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBVU0IgZW52aXJvbm1lbnRzIGxpa2UgdGhvc2UgdXNlZCBieSBzeXprYWxsZXIuCgpGaW5hbGx5LCBqdXN0IHRvIGJlIHN1cmUsIEkmIzM5O3ZlIGNoZWNrZWQgdGhlIHJlbGV2YW50IGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuICBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCB0aGUgY3JpdGljYWwgY29uZmlncyAoYFJUVzg5YCwgYFJUVzg5X0NPUkVgLCBgUlRXODlfUENJYCwgYFJUVzg5X1VTQmAsIGBSVFc4OV84ODUyQVVgLCBgUlRXODlfODg1MkFFYCwgYW5kIGBNQUM4MDIxMWApIGFyZSBhbGwgcHJlc2VudC4gTGV0JiMzOTtzIHNlZSBpZiBgUlRXODlfQ09SRWAgaGFzIG90aGVyIGlmZGVmcywgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY2Agc3BlY2lmaWNhbGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0OyNpZmRlZnwjaWYgSVNfRU5BQkxFRCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwOTEyCgkJCQkJCQlvdXRwdXQ6IDI1NAoJCQkJCQkJdGhvdWdodHM6IDMwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgUlRXODkgRmlybXdhcmUgQnVpbGQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBgZncuY2AgaXMgZGVmaW5pdGVseSBiZWluZyBjb21waWxlZCBpbnRvIGBydHc4OV9jb3JlLm9gLCBidXQgb25seSB3aGVuIGBDT05GSUdfUlRXODlfQ09SRWAgaXMgYWN0aXZlLiAgVGhhdCBtYWtlcyBzZW5zZS4gTm93LCBsZXQmIzM5O3MgdHJhY2Ugd2hlcmUgYENPTkZJR19SVFc4OV9DT1JFYCBpcyBiZWluZyBzZWxlY3RlZC4gUmlnaHQsIGl0JiMzOTtzIGJlaW5nIGJyb3VnaHQgaW4gdGhyb3VnaCBhIGJ1bmNoIG9mIHNwZWNpZmljIGRldmljZSBjb25maWd1cmF0aW9ucyBsaWtlIGBDT05GSUdfUlRXODlfODg1MkFVYCwgYENPTkZJR19SVFc4OV84ODUyQUVgLCBhbmQgc28gb24uIFRoYXQgbWVhbnMgdGhlIHNwZWNpZmljIGNoaXBzZXRzIGFyZSBkaWN0YXRpbmcgdGhlIGluY2x1c2lvbi4gR290IGl0LiBBbmQgdGhhdCBwYXJlbnQgY29uZmlndXJhdGlvbiwgYENPTkZJR19SVFc4OWAsIGRlcGVuZHMgb24gYENPTkZJR19NQUM4MDIxMWAuIE9rYXksIHNvIGBNQUM4MDIxMWAgaXMgZnVuZGFtZW50YWwuCgpOb3csIGxldCYjMzk7cyBxdWlja2x5IHJldmlldyB0aGUgY3JpdGljYWwgc3ltYm9scyBhbmQgY29uZmlndXJhdGlvbnMgdG8gY29uZmlybSBldmVyeXRoaW5nIGlzIGFzIGV4cGVjdGVkLiBMb29raW5nIGF0IGBGb2N1c1N5bWJvbHNgLCBJIHNlZSBgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0YCwgYHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlYCwgYHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZGAsIGFuZCBgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZGAgYXJlIHJlbGV2YW50LgoKQW5kIGZvciBlbmFibGVkIGNvbmZpZ3MsIHdlIGhhdmU6IGBSVFc4OWAsIGBSVFc4OV9DT1JFYCwgYFJUVzg5X1VTQmAsIGBSVFc4OV84ODUyQVVgLCBhbmQgZmluYWxseSBgTUFDODAyMTFgLiBBbGwgb2YgdGhlc2UgYWxpZ24gd2l0aCB0aGUgaW5pdGlhbCBkZXBlbmRlbmN5IGFuYWx5c2lzLCBzbyB0aGluZ3Mgc2VlbSB0byBiZSBpbiBvcmRlci4KCldpdGggdGhhdCBjb25maXJtYXRpb24sIGl0JiMzOTtzIHRpbWUgdG8gc2V0IHVwIHRoZSBjYWxsIHRvIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtSVFc4OSYjMzQ7LAogICAgJiMzNDtSVFc4OV9DT1JFJiMzNDssCiAgICAmIzM0O1JUVzg5X1VTQiYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUyQVUmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4OV9md19oMmNfZ2VuZXJhbF9wa3QmIzM0OywKICAgICYjMzQ7cnR3ODlfZndfaDJjX2tlZXBfYWxpdmUmIzM0OywKICAgICYjMzQ7cnR3ODlfZndfaDJjX2FycF9vZmZsb2FkJiMzNDssCiAgICAmIzM0O3J0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgY29kZSBwcm9wYWdhdGlvbiBpbiBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0IGluIHRoZSBSZWFsdGVrIHJ0dzg5IGRyaXZlciwgZW5zdXJpbmcgcHJvcGVyIGVycm9yIHJldHVybiB2YWx1ZXMgKHN1Y2ggYXMgLUVJTlZBTCBvbiBpbnZhbGlkIHBhY2tldCB0eXBlcyBvciBwcm9wYWdhdGlvbiBvZiBlcnJvcnMgZnJvbSBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkKSBpbnN0ZWFkIG9mIHVuY29uZGl0aW9uYWxseSByZXR1cm5pbmcgLUVOT01FTS4gVGhlIHJ0dzg5IGRyaXZlciBzdXBwb3J0cyBVU0IgZGV2aWNlcyB3aGljaCBjYW4gYmUgZW11bGF0ZWQgYW5kIGZ1enplZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIFVTQiBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5JiMzNDssCiAgICAmIzM0O1JUVzg5X0NPUkUmIzM0OywKICAgICYjMzQ7UlRXODlfVVNCJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJBVSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdCYjMzQ7LAogICAgJiMzNDtydHc4OV9md19oMmNfa2VlcF9hbGl2ZSYjMzQ7LAogICAgJiMzNDtydHc4OV9md19oMmNfYXJwX29mZmxvYWQmIzM0OywKICAgICYjMzQ7cnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBjb2RlIHByb3BhZ2F0aW9uIGluIHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QgaW4gdGhlIFJlYWx0ZWsgcnR3ODkgZHJpdmVyLCBlbnN1cmluZyBwcm9wZXIgZXJyb3IgcmV0dXJuIHZhbHVlcyAoc3VjaCBhcyAtRUlOVkFMIG9uIGludmFsaWQgcGFja2V0IHR5cGVzIG9yIHByb3BhZ2F0aW9uIG9mIGVycm9ycyBmcm9tIHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQpIGluc3RlYWQgb2YgdW5jb25kaXRpb25hbGx5IHJldHVybmluZyAtRU5PTUVNLiBUaGUgcnR3ODkgZHJpdmVyIHN1cHBvcnRzIFVTQiBkZXZpY2VzIHdoaWNoIGNhbiBiZSBlbXVsYXRlZCBhbmQgZnV6emVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MTA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzoxMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvcnJlY3RzIGVycm9yIGhhbmRsaW5nIGFuZCByZXR1cm4gY29kZSBwcm9wYWdhdGlvbiBpbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCgpYC4gU3BlY2lmaWNhbGx5LCBpdCBhc3NpZ25zIGFwcHJvcHJpYXRlIGVycm9yIGNvZGVzIChgLUVJTlZBTGAgb24gdW5rbm93biBwYWNrZXQgdHlwZSBhbmQgYC1FTk9NRU1gIG9uIHBhY2tldCBhbGxvY2F0aW9uIGZhaWx1cmUpIGFuZCByZXR1cm5zIGByZXRgIGluc3RlYWQgb2YgaGFyZGNvZGluZyBgLUVOT01FTWAuIEFsbCB2YXJpYWJsZXMgYXJlIGZ1bGx5IGluaXRpYWxpemVkLCBhbmQgdGhlcmUgYXJlIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLCBpbmZvLWxlYWtzIHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgYnVmZmVyIHVzYWdlcyBpbnZvbHZlZC4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHJlcXVpcmVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeQplcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZApkZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpCmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLgoKQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46Ci0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZQogIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTgogIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVAKICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLgotIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLAogIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy4KClJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sCkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuCkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFkKc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3MKdGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi4KCkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0CnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLAphIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXMKdGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmcKdW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sCmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSwKY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuCgpTZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6CjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiCiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzCiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuCjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMKICAgb3Igc3RydWN0IGZpZWxkcy4KMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcwogICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLgo0LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2VzcwogICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuCgpTZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjoKLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlcgogIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodAogIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS4KLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZAogIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC4KLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuCgpVc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlCmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzMDhhNDRiYTJiNWQxY2QyYjdmOGY2ZmNlOGE3YjUxZDdhODhiOTBmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBTZXAgMSAyMzowOTowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYwppbmRleCBkNmE1OTRiNzVhYjIwLi5hYjJkMGIwY2IxZTU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jCkBAIC0zMDEzLDExICYjNDM7MzAxMywxNCBAQCBzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LAogCQlza2IgPSBydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspOwogCQlicmVhazsKIAlkZWZhdWx0OgomIzQzOwkJcmV0ID0gLUVJTlZBTDsKIAkJZ290byBlcnI7CiAJfQogCi0JaWYgKCFza2IpCiYjNDM7CWlmICghc2tiKSB7CiYjNDM7CQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIGVycjsKJiM0MzsJfQogCiAJcmV0ID0gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZChydHdkZXYsICZhbXA7aW5mby0mZ3Q7aWQsIHNrYik7CiAJa2ZyZWVfc2tiKHNrYik7CkBAIC0zMDMxLDcgJiM0MzszMDM0LDcgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwKIAogZXJyOgogCWtmcmVlKGluZm8pOwotCXJldHVybiAtRU5PTUVNOwomIzQzOwlyZXR1cm4gcmV0OwogfQogCiB2b2lkIHJ0dzg5X2Z3X3JlbGVhc2VfZ2VuZXJhbF9wa3RfbGlzdF92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8zPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI5MQoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDYxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRpdmluZyBpbnRvIHRoZSBSZWFsdGVrIFdpcmVsZXNzIEZpcm13YXJlKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBoYXBwZW5pbmcgd2l0aCB0aGlzIFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBydHc4OWAgY29kZS4gTXkgZmlyc3QgbW92ZSB3aWxsIGJlIHRvIHplcm8gaW4gb24gdGhlIGRpZmYgYW5kIHJlYWQgdGhlIGNvbnRleHQgYXJvdW5kIHRoZSBjaGFuZ2VzIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgLiBUaGF0JiMzOTtsbCBnaXZlIG1lIHRoZSBicm9hZCBzdHJva2VzIOKAkyB0aGUgKndoeSogYmVoaW5kIHRoZSBjaGFuZ2UuIAoKVGhlbiwgSSYjMzk7bGwgZHJpbGwgZG93biBmdXJ0aGVyLiBJJiMzOTttIGdvaW5nIHRvIGxldmVyYWdlIGByZWFkLWZpbGVgIHRvIGdldCBhIGRpcmVjdCBsb29rIGF0IHRoZSBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAgZnVuY3Rpb24uIEkgd2FudCB0byBzZWUgZXhhY3RseSBob3cgaXQgZnVuY3Rpb25zLCB1bmRlcnN0YW5kIHRoZSBkYXRhIGl0IGhhbmRsZXMsIGFuZCBlbnN1cmUgaXQgYWxpZ25zIHdpdGggdGhlIGNoYW5nZXMgSSYjMzk7dmUgc2VlbiBpbiB0aGUgZGlmZi4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBtZWF0IG9mIHRoZSBhbmFseXNpcyBiZWdpbnMgZm9yIG1lLCBhcyBJIG5lZWQgdG8gY29tcHJlaGVuZCBldmVyeSBkZXRhaWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjk4MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA3MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyOTgwOlx0XHRcdFx0XHRcdGVudW0gcnR3ODlfZndfcGt0X29mbGRfdHlwZSB0eXBlLFxuMjk4MTpcdFx0XHRcdFx0XHR1OCAqaWQpXG4yOTgyOlx0e1xuMjk4MzpcdFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiA9IHJ0d3ZpZl9saW5rX3RvX3ZpZihydHd2aWZfbGluayk7XG4yOTg0Olx0XHRpbnQgbGlua19pZCA9IGllZWU4MDIxMV92aWZfaXNfbWxkKHZpZikgPyBydHd2aWZfbGluay1cdTAwM2VsaW5rX2lkIDogLTE7XG4yOTg1Olx0XHRzdHJ1Y3QgcnR3ODlfcGt0b2ZsZF9pbmZvICppbmZvO1xuMjk4NjpcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbjI5ODc6XHRcdGludCByZXQ7XG4yOTg4Olx0XG4yOTg5Olx0XHRpbmZvID0ga3phbGxvY19vYmooKmluZm8pO1xuMjk5MDpcdFx0aWYgKCFpbmZvKVxuMjk5MTpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbjI5OTI6XHRcbjI5OTM6XHRcdHN3aXRjaCAodHlwZSkge1xuMjk5NDpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX1BTX1BPTEw6XG4yOTk1Olx0XHRcdHNrYiA9IGllZWU4MDIxMV9wc3BvbGxfZ2V0KHJ0d2Rldi1cdTAwM2VodywgdmlmKTtcbjI5OTY6XHRcdFx0YnJlYWs7XG4yOTk3Olx0XHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFJPQkVfUlNQOlxuMjk5ODpcdFx0XHRza2IgPSBpZWVlODAyMTFfcHJvYmVyZXNwX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZik7XG4yOTk5Olx0XHRcdGJyZWFrO1xuMzAwMDpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQTpcbjMwMDE6XHRcdFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZiwgbGlua19pZCwgZmFsc2UpO1xuMzAwMjpcdFx0XHRicmVhaztcbjMwMDM6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9RT1NfTlVMTDpcbjMwMDQ6XHRcdFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXHUwMDNlaHcsIHZpZiwgbGlua19pZCwgdHJ1ZSk7XG4zMDA1Olx0XHRcdGJyZWFrO1xuMzAwNjpcdFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX0VBUE9MX0tFWTpcbjMwMDc6XHRcdFx0c2tiID0gcnR3ODlfZWFwb2xfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAwODpcdFx0XHRicmVhaztcbjMwMDk6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9TQV9RVUVSWTpcbjMwMTA6XHRcdFx0c2tiID0gcnR3ODlfc2FfcXVlcnlfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAxMTpcdFx0XHRicmVhaztcbjMwMTI6XHRcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9BUlBfUlNQOlxuMzAxMzpcdFx0XHRza2IgPSBydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuMzAxNDpcdFx0XHRicmVhaztcbjMwMTU6XHRcdGRlZmF1bHQ6XG4zMDE2Olx0XHRcdHJldCA9IC1FSU5WQUw7XG4zMDE3Olx0XHRcdGdvdG8gZXJyO1xuMzAxODpcdFx0fVxuMzAxOTpcdFxuMzAyMDpcdFx0aWYgKCFza2IpIHtcbjMwMjE6XHRcdFx0cmV0ID0gLUVOT01FTTtcbjMwMjI6XHRcdFx0Z290byBlcnI7XG4zMDIzOlx0XHR9XG4zMDI0Olx0XG4zMDI1Olx0XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkKHJ0d2RldiwgXHUwMDI2aW5mby1cdTAwM2VpZCwgc2tiKTtcbjMwMjY6XHRcdGtmcmVlX3NrYihza2IpO1xuMzAyNzpcdFxuMzAyODpcdFx0aWYgKHJldClcbjMwMjk6XHRcdFx0Z290byBlcnI7XG4zMDMwOlx0XG4zMDMxOlx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNmluZm8tXHUwMDNlbGlzdCwgXHUwMDI2cnR3dmlmX2xpbmstXHUwMDNlZ2VuZXJhbF9wa3RfbGlzdCk7XG4zMDMyOlx0XHQqaWQgPSBpbmZvLVx1MDAzZWlkO1xuMzAzMzpcdFx0cmV0dXJuIDA7XG4zMDM0Olx0XG4zMDM1Olx0ZXJyOlxuMzAzNjpcdFx0a2ZyZWUoaW5mbyk7XG4zMDM3Olx0XHRyZXR1cm4gcmV0O1xuMzAzODpcdH1cbjMwMzk6XHRcbjMwNDA6XHR2b2lkIHJ0dzg5X2Z3X3JlbGVhc2VfZ2VuZXJhbF9wa3RfbGlzdF92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuMzA0MTpcdFx0XHRcdFx0XHQgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuMzA0MjpcdFx0XHRcdFx0XHQgICBib29sIG5vdGlmeV9mdylcbjMwNDM6XHR7XG4zMDQ0Olx0XHRzdHJ1Y3QgbGlzdF9oZWFkICpwa3RfbGlzdCA9IFx1MDAyNnJ0d3ZpZl9saW5rLVx1MDAzZWdlbmVyYWxfcGt0X2xpc3Q7XG4zMDQ1Olx0XHRzdHJ1Y3QgcnR3ODlfcGt0b2ZsZF9pbmZvICppbmZvLCAqdG1wO1xuMzA0NjpcdFxuMzA0NzpcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGluZm8sIHRtcCwgcGt0X2xpc3QsIGxpc3QpIHtcbjMwNDg6XHRcdFx0aWYgKG5vdGlmeV9mdylcbjMwNDk6XHRcdFx0XHRydHc4OV9md19oMmNfZGVsX3BrdF9vZmZsb2FkKHJ0d2RldiwgaW5mby1cdTAwM2VpZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDIzOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NDkKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA0ODYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBCdWcgRml4IGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgY29yZSBpc3N1ZSBpbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAgd2FzIGluIHRoZSBlcnJvciBoYW5kbGluZy4gQmVmb3JlIHRoZSBwYXRjaCwgdGhlIGZ1bmN0aW9uJiMzOTtzIGBlcnI6YCBsYWJlbCBjb25zaXN0ZW50bHkgcmV0dXJuZWQgYC1FTk9NRU1gLiBUaGUgcHJvYmxlbSB3YXMgdGhhdCB0aGUgcmV0dXJuIHZhbHVlIGByZXRgIHdhc24mIzM5O3QgYWx3YXlzIHByb3Blcmx5IGluaXRpYWxpemVkIGJlZm9yZSBoaXR0aW5nIHRoYXQgYGVycjpgIGxhYmVsLiBTcGVjaWZpY2FsbHksIGlmIGBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkYCBmYWlsZWQsIG9yIGlmIHRoZSBgZGVmYXVsdGAgY2FzZSB3YXMgaGl0LCB0aGUgY29kZSB3b3VsZCBqdW1wIHRvIGBlcnI6YCB3aXRob3V0IHNldHRpbmcgYHJldGAsIGJ1dCBgZXJyOmAgd291bGQgKnN0aWxsKiByZXR1cm4gYC1FTk9NRU1gLCBlZmZlY3RpdmVseSBtYXNraW5nIHRoZSBvcmlnaW5hbCBlcnJvciBjb2RlLiBBbmQsIGl0IHNlZW1zLCBpbiBgZGVmYXVsdDpgLCBgZ290byBlcnI7YCB3YXMgdXNlZCAqYmVmb3JlKiBpbml0aWFsaXppbmcgYHJldGAuIExpa2V3aXNlIGZvciB0aGUgYCFza2JgIHBhdGguIFRoaXMgbWVhbnQgcG90ZW50aWFsbHkgbG9zaW5nIHZhbHVhYmxlIGVycm9yIGluZm9ybWF0aW9uLgoKVGhlIHBhdGNoIGZpeGVzIHRoaXMgYnkgZW5zdXJpbmcgYHJldGAgaXMgaW5pdGlhbGl6ZWQgKmJlZm9yZSogYGVycjpgLiBOb3csIGBlcnI6YCByZXR1cm5zIHRoZSBjb3JyZWN0IGByZXRgIHZhbHVlLiBTcGVjaWZpY2FsbHksIGl0IGluaXRpYWxpemVzIGByZXQgPSAtRUlOVkFMO2AgZm9yIHRoZSBgZGVmYXVsdDpgIGNhc2UsIGFuZCBgcmV0ID0gLUVOT01FTTtgIGlmIHRoZSBgc2tiYCBpcyBOVUxMLiBJZiB0aGUgYHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWRgIGNhbGwgZmFpbHMsIHRoZSBwcm9wZXIgYHJldGAgdmFsdWUgaXMgdXNlZC4KCk5vdywgbGV0JiMzOTtzIGFzc2VzcyB0aGUgaW1wbGljYXRpb25zLiBEb2VzIHRoaXMgaW50cm9kdWNlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByaXNrcyBvciBLTVNBTiBjb25jZXJucz8gTm8sIGl0IGRvZXNuJiMzOTt0IGFwcGVhciB0by4gVGhlIGBpbmZvYCBzdHJ1Y3R1cmUgaXMgYWxsb2NhdGVkIHZpYSBga3phbGxvY19vYmpgLCBzbyBpdCYjMzk7cyB6ZXJvZWQsIGFuZCBpdCYjMzk7cyBwcm9wZXJseSBmcmVlZCBpZiBhbGxvY2F0aW9uIGZhaWxzLiBUaGUgdmFyaWFibGUgYHJldGAgaXMganVzdCBhbiBpbnRlZ2VyIHRoYXQmIzM5O3MgcmV0dXJuZWQgYXMgYW4gZXJyb3IgY29kZS4gSW1wb3J0YW50bHksIGFsbCBwYXRocyBsZWFkaW5nIHRvIGBlcnI6YCBub3cgZ3VhcmFudGVlIHRoYXQgYHJldGAgaXMgaW5pdGlhbGl6ZWQsIGFzIGJlZm9yZS4gTm8gdXNlci1zcGFjZSBkYXRhIHN0cnVjdHVyZXMgYXJlIGNvcGllZCwgc28gdGhlcmUmIzM5O3Mgbm8gcmlzayBvZiBtZW1vcnkgbGVha3MgdmlhIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBjYWxsZXJzIG9mIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCB0byBtYWtlIGNlcnRhaW4gZXZlcnl0aGluZyBpcyBjbGVhbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8zPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDEgMjM6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MjkyOD1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnJ0dzg5X2FycF9yZXNwb25zZV9nZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI5Nzg6c3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc5LVx0XHRcdFx0XHRzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0zMDcxPWludCBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODA6XHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4MS1cdFx0XHRcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9QU19QT0xMLCBcdTAwMjZwa3RfaWRfcHNfcG9sbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzA4MjpcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDgzLVx0XHRcdFx0ICAgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQSwgXHUwMDI2cGt0X2lkX251bGwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODQ6XHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4NS1cdFx0XHRcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9RT1NfTlVMTCwgXHUwMDI2cGt0X2lkX3Fvc19udWxsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9OTYyNz1pbnQgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjM0LVx0aWYgKGVuYWJsZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk2MzU6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjM2LVx0XHRcdFx0XHRcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfQVJQX1JTUCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9OTY3NT1pbnQgcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTY4NC1cdGlmIChlbmFibGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5Njg1Olx0XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTY4Ni1cdFx0XHRcdFx0XHQgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX0FSUF9SU1AsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTEwMDQyPWludCBydHc4OV9md19oMmNfd293X2d0a19vZmxkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAwNzE6XHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzItXHRcdFx0XHRcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfRUFQT0xfS0VZLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xMDA3Ny1cdGlmIChndGtfaW5mby1cdTAwM2VpZ3RrX2tleWlkKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAwNzg6XHRcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xMDA3OS1cdFx0XHRcdFx0XHQgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX1NBX1FVRVJZLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTY2CgkJCQkJCQlvdXRwdXQ6IDEzOQoJCQkJCQkJdGhvdWdodHM6IDExOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBDb2RlIENoYW5nZSoqCgpPa2F5LCB0aGlzIGlzIHByZXR0eSBjbGVhbi4gVGhlIGNvcmUgb2YgaXQgaXMgYSBzdHJhaWdodGZvcndhcmQgZml4IGZvciBlcnJvciBoYW5kbGluZyB3aXRoaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgLiBJdCBzZWVtcyB0aGUgb3JpZ2luYWwgY29kZSB3YXMgbWFza2luZyB0aGUgYWN0dWFsIGVycm9yIGFuZCBhbHdheXMgcmV0dXJuaW5nIGAtRU5PTUVNYCBpbiBjZXJ0YWluIGZhaWx1cmUgc2NlbmFyaW9zLiBUaGlzIGNoYW5nZSBjb3JyZWN0cyB0aGF0IGJ5IGVuc3VyaW5nIHRoZSBmdW5jdGlvbiByZXBvcnRzIHRoZSAqcmVhbCogZXJyb3IgY29kZSAoYHJldGApIGZyb20gdGhlIG9wZXJhdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCBleHBsaWNpdGx5IHNldHMgYHJldGAgdG8gYC1FSU5WQUxgIGZvciB1bmV4cGVjdGVkIGNvbmRpdGlvbnMgd2l0aGluIHRoZSBgZGVmYXVsdDpgIGNhc2UsIGFuZCBgLUVOT01FTWAgd2hlbiB0aGUgYWxsb2NhdGlvbiBvZiB0aGUgYHNrYmAgZmFpbHMuCgpUaGVyZSBhcmUgbm8gb2J2aW91cyB2dWxuZXJhYmlsaXRpZXMgaGVyZTsgSSYjMzk7bSBub3Qgc2VlaW5nIGFueSByaXNrcyBhcm91bmQgdW5pbml0aWFsaXplZCBtZW1vcnksIHN1cGVyZmx1b3VzIHVzZXItc3BhY2UgY29waWVzLCBvciBkYXRhIGxlYWtzIGR1ZSB0byBwYWRkaW5nLiBJIHRoaW5rIHRoaXMgY2FuIGJlIGNhdGVnb3JpemVkIGFzIGEgZm9jdXNlZCwgc2FmZSBidWcgZml4LiBCYXNlZCBvbiB0aGF0LCBLTVNBTiBpc24mIzM5O3QgbmVjZXNzYXJ5LgoKTGV0JiMzOTtzIHByb2NlZWQgdG8gYHNldC1yZXN1bHRzYCBhbmQgYXJ0aWN1bGF0ZSB0aGlzIGNvbmNpc2UgcmF0aW9uYWxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAyMzoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBjb3JyZWN0cyBlcnJvciBoYW5kbGluZyBhbmQgcmV0dXJuIGNvZGUgcHJvcGFnYXRpb24gaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QoKWAuIFNwZWNpZmljYWxseSwgaXQgYXNzaWducyBhcHByb3ByaWF0ZSBlcnJvciBjb2RlcyAoYC1FSU5WQUxgIG9uIHVua25vd24gcGFja2V0IHR5cGUgYW5kIGAtRU5PTUVNYCBvbiBwYWNrZXQgYWxsb2NhdGlvbiBmYWlsdXJlKSBhbmQgcmV0dXJucyBgcmV0YCBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgYC1FTk9NRU1gLiBBbGwgdmFyaWFibGVzIGFyZSBmdWxseSBpbml0aWFsaXplZCwgYW5kIHRoZXJlIGFyZSBubyB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcywgaW5mby1sZWFrcyB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIGJ1ZmZlciB1c2FnZXMgaW52b2x2ZWQuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvcnJlY3RzIGVycm9yIGhhbmRsaW5nIGFuZCByZXR1cm4gY29kZSBwcm9wYWdhdGlvbiBpbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCgpYC4gU3BlY2lmaWNhbGx5LCBpdCBhc3NpZ25zIGFwcHJvcHJpYXRlIGVycm9yIGNvZGVzIChgLUVJTlZBTGAgb24gdW5rbm93biBwYWNrZXQgdHlwZSBhbmQgYC1FTk9NRU1gIG9uIHBhY2tldCBhbGxvY2F0aW9uIGZhaWx1cmUpIGFuZCByZXR1cm5zIGByZXRgIGluc3RlYWQgb2YgaGFyZGNvZGluZyBgLUVOT01FTWAuIEFsbCB2YXJpYWJsZXMgYXJlIGZ1bGx5IGluaXRpYWxpemVkLCBhbmQgdGhlcmUgYXJlIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLCBpbmZvLWxlYWtzIHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgYnVmZmVyIHVzYWdlcyBpbnZvbHZlZC4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHJlcXVpcmVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzowOToxMS4yNjQ4MjE2NjFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDc2MjI0MTk4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OVwiLFxuICAgIFwiUlRXODlfQ09SRVwiLFxuICAgIFwiUlRXODlfVVNCXCIsXG4gICAgXCJSVFc4OV84ODUyQVVcIixcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0XCIsXG4gICAgXCJydHc4OV9md19oMmNfa2VlcF9hbGl2ZVwiLFxuICAgIFwicnR3ODlfZndfaDJjX2FycF9vZmZsb2FkXCIsXG4gICAgXCJydHc4OV9md19oMmNfd293X2d0a19vZmxkXCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjb3JyZWN0cyBlcnJvciBoYW5kbGluZyBhbmQgcmV0dXJuIGNvZGUgcHJvcGFnYXRpb24gaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QoKWAuIFNwZWNpZmljYWxseSwgaXQgYXNzaWducyBhcHByb3ByaWF0ZSBlcnJvciBjb2RlcyAoYC1FSU5WQUxgIG9uIHVua25vd24gcGFja2V0IHR5cGUgYW5kIGAtRU5PTUVNYCBvbiBwYWNrZXQgYWxsb2NhdGlvbiBmYWlsdXJlKSBhbmQgcmV0dXJucyBgcmV0YCBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgYC1FTk9NRU1gLiBBbGwgdmFyaWFibGVzIGFyZSBmdWxseSBpbml0aWFsaXplZCwgYW5kIHRoZXJlIGFyZSBubyB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcywgaW5mby1sZWFrcyB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIGJ1ZmZlciB1c2FnZXMgaW52b2x2ZWQuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBjb2RlIHByb3BhZ2F0aW9uIGluIHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QgaW4gdGhlIFJlYWx0ZWsgcnR3ODkgZHJpdmVyLCBlbnN1cmluZyBwcm9wZXIgZXJyb3IgcmV0dXJuIHZhbHVlcyAoc3VjaCBhcyAtRUlOVkFMIG9uIGludmFsaWQgcGFja2V0IHR5cGVzIG9yIHByb3BhZ2F0aW9uIG9mIGVycm9ycyBmcm9tIHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQpIGluc3RlYWQgb2YgdW5jb25kaXRpb25hbGx5IHJldHVybmluZyAtRU5PTUVNLiBUaGUgcnR3ODkgZHJpdmVyIHN1cHBvcnRzIFVTQiBkZXZpY2VzIHdoaWNoIGNhbiBiZSBlbXVsYXRlZCBhbmQgZnV6emVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgVVNCIGVtdWxhdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MTEuMjY0ODI4MDQxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTA2NTE0MjQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzA4YTQ0YmEyYjVkMWNkMmI3ZjhmNmZjZThhN2I1MWQ3YTg4YjkwZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIFNlcCAxIDIzOjA5OjA5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xcbmluZGV4IGQ2YTU5NGI3NWFiMjAuLmFiMmQwYjBjYjFlNTkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXFxuQEAgLTMwMTMsMTEgKzMwMTMsMTQgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4gXFx0XFx0c2tiID0gcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChydHdkZXYsIHJ0d3ZpZl9saW5rKTtcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGRlZmF1bHQ6XFxuK1xcdFxcdHJldCA9IC1FSU5WQUw7XFxuIFxcdFxcdGdvdG8gZXJyO1xcbiBcXHR9XFxuIFxcbi1cXHRpZiAoIXNrYilcXG4rXFx0aWYgKCFza2IpIHtcXG4rXFx0XFx0cmV0ID0gLUVOT01FTTtcXG4gXFx0XFx0Z290byBlcnI7XFxuK1xcdH1cXG4gXFxuIFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQocnR3ZGV2LCBcXHUwMDI2aW5mby1cXHUwMDNlaWQsIHNrYik7XFxuIFxcdGtmcmVlX3NrYihza2IpO1xcbkBAIC0zMDMxLDcgKzMwMzQsNyBAQCBzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbiBcXG4gZXJyOlxcbiBcXHRrZnJlZShpbmZvKTtcXG4tXFx0cmV0dXJuIC1FTk9NRU07XFxuK1xcdHJldHVybiByZXQ7XFxuIH1cXG4gXFxuIHZvaWQgcnR3ODlfZndfcmVsZWFzZV9nZW5lcmFsX3BrdF9saXN0X3ZpZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjA5OjEyLjc3MTg0MzQ5NFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6NjIwODAzMjI0MDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRXODlcIixcbiAgICBcIlJUVzg5X0NPUkVcIixcbiAgICBcIlJUVzg5X1VTQlwiLFxuICAgIFwiUlRXODlfODg1MkFVXCIsXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdFwiLFxuICAgIFwicnR3ODlfZndfaDJjX2tlZXBfYWxpdmVcIixcbiAgICBcInJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZFwiLFxuICAgIFwicnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGNvZGUgcHJvcGFnYXRpb24gaW4gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCBpbiB0aGUgUmVhbHRlayBydHc4OSBkcml2ZXIsIGVuc3VyaW5nIHByb3BlciBlcnJvciByZXR1cm4gdmFsdWVzIChzdWNoIGFzIC1FSU5WQUwgb24gaW52YWxpZCBwYWNrZXQgdHlwZXMgb3IgcHJvcGFnYXRpb24gb2YgZXJyb3JzIGZyb20gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZCkgaW5zdGVhZCBvZiB1bmNvbmRpdGlvbmFsbHkgcmV0dXJuaW5nIC1FTk9NRU0uIFRoZSBydHc4OSBkcml2ZXIgc3VwcG9ydHMgVVNCIGRldmljZXMgd2hpY2ggY2FuIGJlIGVtdWxhdGVkIGFuZCBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzMDhhNDRiYTJiNWQxY2QyYjdmOGY2ZmNlOGE3YjUxZDdhODhiOTBmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBTZXAgMSAyMzowOTowOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuaW5kZXggZDZhNTk0Yjc1YWIyMC4uYWIyZDBiMGNiMWU1OSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXG5AQCAtMzAxMywxMSArMzAxMywxNCBAQCBzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuIFx0XHRza2IgPSBydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4rXHRcdHJldCA9IC1FSU5WQUw7XG4gXHRcdGdvdG8gZXJyO1xuIFx0fVxuIFxuLVx0aWYgKCFza2IpXG4rXHRpZiAoIXNrYikge1xuK1x0XHRyZXQgPSAtRU5PTUVNO1xuIFx0XHRnb3RvIGVycjtcbitcdH1cbiBcbiBcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQocnR3ZGV2LCBcdTAwMjZpbmZvLVx1MDAzZWlkLCBza2IpO1xuIFx0a2ZyZWVfc2tiKHNrYik7XG5AQCAtMzAzMSw3ICszMDM0LDcgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcbiBlcnI6XG4gXHRrZnJlZShpbmZvKTtcbi1cdHJldHVybiAtRU5PTUVNO1xuK1x0cmV0dXJuIHJldDtcbiB9XG4gXG4gdm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3RfdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjA5OjEyLjc3MTg0NDg4NFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ2MjM1Nzk3NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgV2lyZWxlc3MgRHJpdmVyIFBhdGNoKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc2NvcGUgb2YgdGhpcyBwYXRjaC4gVGhlIGluaXRpYWwgY2x1ZSBpcyB0aGF0IGl0J3MgaGl0dGluZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jYCwgc3BlY2lmaWNhbGx5IHRoZSBmdW5jdGlvbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAuIFRoYXQgcG9pbnRzIG1lIGRpcmVjdGx5IHRvIGEgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIg4oCTIGEgY29tbW9uIHRhcmdldCBmb3IgdnVsbmVyYWJpbGl0aWVzLlxuXG5NeSBpbW1lZGlhdGUgdGhvdWdodHMgYXJlIGFib3V0IHRoZSBwb3RlbnRpYWwgZm9yIGZ1enppbmcuIElzIHRoaXMgYSBkcml2ZXIgdGhhdCdzIGVhc2lseSB0ZXN0YWJsZSB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgb3IgZG9lcyBpdCBkZXBlbmQgb24gc3BlY2lmaWMgUmVhbHRlayBoYXJkd2FyZT8gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgaXQncyBzb21ldGhpbmcgSSBjYW4gZWFzaWx5IHNldCB1cCBpbiBteSBsYWIuIFRvIGRldGVybWluZSB0aGF0LCBJJ2xsIG5lZWQgdG8ga25vdyBhIGJpdCBtb3JlIGFib3V0IHRoZSBkcml2ZXIgaXRzZWxmLiBNeSBuZXh0IHN0ZXAgaXMgdG8gcXVpY2tseSBzZWFyY2ggdGhyb3VnaCB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgZHJpdmVyIGRpcmVjdG9yaWVzIHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlIGBydHc4OWAgY29tcG9uZW50LiBUaGlzIHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIGl0cyBkZXBlbmRlbmNpZXMgYW5kIGlmIGl0J3MgYSBnb29kIGNhbmRpZGF0ZSBmb3IgdnVsbmVyYWJpbGl0eSBhc3Nlc3NtZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk0LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MTcuMzk1NDI2NDEzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk1MjY3NzE3MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJSVFc4OVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgOTMwMDIgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI6bWVudWNvbmZpZyBSVFc4OVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDgwMi4xMWF4IHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExOmlmIFJUVzg5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMzpjb25maWcgUlRXODlfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzpjb25maWcgUlRXODlfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE4LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMDpjb25maWcgUlRXODlfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIxLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMzpjb25maWcgUlRXODlfODg1MUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjQtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI2OmNvbmZpZyBSVFc4OV84ODUyQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Mjk6Y29uZmlnIFJUVzg5Xzg4NTJCX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zMC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MzI6Y29uZmlnIFJUVzg5Xzg4NTJCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMzLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzozNTpjb25maWcgUlRXODlfODg1MkJUXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM2LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzozODpjb25maWcgUlRXODlfODg1MkNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzktXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQxOmNvbmZpZyBSVFc4OV84OTIyQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00Mi1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDQ6Y29uZmlnIFJUVzg5Xzg4NTFCRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00NS1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUxQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQ2LVxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQ3OlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQ4OlxcdHNlbGVjdCBSVFc4OV9QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDk6XFx0c2VsZWN0IFJUVzg5Xzg4NTFCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTUwLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTU6Y29uZmlnIFJUVzg5Xzg4NTFCVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01Ni1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU4OlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU5OlxcdHNlbGVjdCBSVFc4OV9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NjA6XFx0c2VsZWN0IFJUVzg5Xzg4NTFCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTYxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NjY6Y29uZmlnIFJUVzg5Xzg4NTJBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02Ny1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTY4LVxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjY5OlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjcwOlxcdHNlbGVjdCBSVFc4OV9QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NzE6XFx0c2VsZWN0IFJUVzg5Xzg4NTJBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTcyLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy03Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Nzc6Y29uZmlnIFJUVzg5Xzg4NTJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy03OC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTc5LVxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjgwOlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjgxOlxcdHNlbGVjdCBSVFc4OV9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODI6XFx0c2VsZWN0IFJUVzg5Xzg4NTJBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTgzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy04Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODg6Y29uZmlnIFJUVzg5Xzg4NTJCRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy04OS1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTkwLVxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjkxOlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjkyOlxcdHNlbGVjdCBSVFc4OV9QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6OTM6XFx0c2VsZWN0IFJUVzg5Xzg4NTJCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjk0OlxcdHNlbGVjdCBSVFc4OV84ODUyQl9DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctOTUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMDA6Y29uZmlnIFJUVzg5Xzg4NTJCVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDItXFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTAzOlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwNDpcXHRzZWxlY3QgUlRXODlfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwNTpcXHRzZWxlY3QgUlRXODlfODg1MkJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTA2OlxcdHNlbGVjdCBSVFc4OV84ODUyQl9DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTA3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExMjpjb25maWcgUlRXODlfODg1MkJURVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTMtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkJFLVZUIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTQtXFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTE1OlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExNjpcXHRzZWxlY3QgUlRXODlfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExNzpcXHRzZWxlY3QgUlRXODlfODg1MkJUXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExODpcXHRzZWxlY3QgUlRXODlfODg1MkJfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTExOS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjQ6Y29uZmlnIFJUVzg5Xzg4NTJDRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMjUtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTI2LVxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEyNzpcXHRzZWxlY3QgUlRXODlfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjg6XFx0c2VsZWN0IFJUVzg5X1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjk6XFx0c2VsZWN0IFJUVzg5Xzg4NTJDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEzMC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMzU6Y29uZmlnIFJUVzg5Xzg4NTJDVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzYtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTM3LVxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEzODpcXHRzZWxlY3QgUlRXODlfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMzk6XFx0c2VsZWN0IFJUVzg5X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNDA6XFx0c2VsZWN0IFJUVzg5Xzg4NTJDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE0MS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNDY6Y29uZmlnIFJUVzg5Xzg5MjJBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNDctXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODkyMkFFLzg5MjJBRS1WUyBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNykgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ4LVxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE0OTpcXHRzZWxlY3QgUlRXODlfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNTA6XFx0c2VsZWN0IFJUVzg5X1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNTE6XFx0c2VsZWN0IFJUVzg5Xzg5MjJBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE1Mi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNjA6Y29uZmlnIFJUVzg5Xzg5MjJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNjEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODkyMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNjItXFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTYzOlxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE2NDpcXHRzZWxlY3QgUlRXODlfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE2NTpcXHRzZWxlY3QgUlRXODlfODkyMkFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTY2LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3Mjpjb25maWcgUlRXODlfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTczLVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzU6Y29uZmlnIFJUVzg5X0RFQlVHTVNHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3Ni1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg5IGRlYnVnIG1lc3NhZ2Ugc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTc3OlxcdGRlcGVuZHMgb24gUlRXODlfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzg6XFx0c2VsZWN0IFJUVzg5X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3OS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxODQ6Y29uZmlnIFJUVzg5X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTg1LVxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODkgZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxODY6XFx0ZGVwZW5kcyBvbiBSVFc4OV9DT1JFIFxcdTAwMjZcXHUwMDI2IENGRzgwMjExX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTg3OlxcdHNlbGVjdCBSVFc4OV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfUlRXODlfQ09SRSkgKz0gcnR3ODlfY29yZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00LXJ0dzg5X2NvcmUteSArPSBjb3JlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZT0yMz1ydHc4OV9jb3JlLSQoQ09ORklHX1BNKSArPSB3b3cub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToyNTpvYmotJChDT05GSUdfUlRXODlfODg1MUIpICs9IHJ0dzg5Xzg4NTFiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTI2LXJ0dzg5Xzg4NTFiLW9ianMgOj0gcnR3ODg1MWIubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MzE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTFCRSkgKz0gcnR3ODlfODg1MWJlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTMyLXJ0dzg5Xzg4NTFiZS1vYmpzIDo9IHJ0dzg4NTFiZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19SVFc4OV84ODUxQlUpICs9IHJ0dzg5Xzg4NTFidS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zNS1ydHc4OV84ODUxYnUtb2JqcyA6PSBydHc4ODUxYnUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozNzpvYmotJChDT05GSUdfUlRXODlfODg1MkEpICs9IHJ0dzg5Xzg4NTJhLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTM4LXJ0dzg5Xzg4NTJhLW9ianMgOj0gcnR3ODg1MmEubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDM6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJBRSkgKz0gcnR3ODlfODg1MmFlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQ0LXJ0dzg5Xzg4NTJhZS1vYmpzIDo9IHJ0dzg4NTJhZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjQ2Om9iai0kKENPTkZJR19SVFc4OV84ODUyQVUpICs9IHJ0dzg5Xzg4NTJhdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00Ny1ydHc4OV84ODUyYXUtb2JqcyA6PSBydHc4ODUyYXUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo0OTpvYmotJChDT05GSUdfUlRXODlfODg1MkJfQ09NTU9OKSArPSBydHc4OV84ODUyYl9jb21tb24ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNTAtcnR3ODlfODg1MmJfY29tbW9uLW9ianMgOj0gcnR3ODg1MmJfY29tbW9uLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NTI6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCKSArPSBydHc4OV84ODUyYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01My1ydHc4OV84ODUyYi1vYmpzIDo9IHJ0dzg4NTJiLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjU4Om9iai0kKENPTkZJR19SVFc4OV84ODUyQkUpICs9IHJ0dzg5Xzg4NTJiZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01OS1ydHc4OV84ODUyYmUtb2JqcyA6PSBydHc4ODUyYmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2MTpvYmotJChDT05GSUdfUlRXODlfODg1MkJVKSArPSBydHc4OV84ODUyYnUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjItcnR3ODlfODg1MmJ1LW9ianMgOj0gcnR3ODg1MmJ1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NjQ6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCVCkgKz0gcnR3ODlfODg1MmJ0Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTY1LXJ0dzg5Xzg4NTJidC1vYmpzIDo9IHJ0dzg4NTJidC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2OTpvYmotJChDT05GSUdfUlRXODlfODg1MkJURSkgKz0gcnR3ODlfODg1MmJ0ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS03MC1ydHc4OV84ODUyYnRlLW9ianMgOj0gcnR3ODg1MmJ0ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjcyOm9iai0kKENPTkZJR19SVFc4OV84ODUyQykgKz0gcnR3ODlfODg1MmMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzMtcnR3ODlfODg1MmMtb2JqcyA6PSBydHc4ODUyYy5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo3ODpvYmotJChDT05GSUdfUlRXODlfODg1MkNFKSArPSBydHc4OV84ODUyY2Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzktcnR3ODlfODg1MmNlLW9ianMgOj0gcnR3ODg1MmNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJDVSkgKz0gcnR3ODlfODg1MmN1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgyLXJ0dzg5Xzg4NTJjdS1vYmpzIDo9IHJ0dzg4NTJjdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS04My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjg0Om9iai0kKENPTkZJR19SVFc4OV84OTIyQSkgKz0gcnR3ODlfODkyMmEub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtODUtcnR3ODlfODkyMmEtb2JqcyA6PSBydHc4OTIyYS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4ODpvYmotJChDT05GSUdfUlRXODlfODkyMkFFKSArPSBydHc4OV84OTIyYWUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtODktcnR3ODlfODkyMmFlLW9ianMgOj0gcnR3ODkyMmFlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTE6b2JqLSQoQ09ORklHX1JUVzg5Xzg5MjJBVSkgKz0gcnR3ODlfODkyMmF1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTkyLXJ0dzg5Xzg5MjJhdS1vYmpzIDo9IHJ0dzg5MjJhdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjk0OnJ0dzg5X2NvcmUtJChDT05GSUdfUlRXODlfREVCVUcpICs9IGRlYnVnLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTY6b2JqLSQoQ09ORklHX1JUVzg5X1BDSSkgKz0gcnR3ODlfcGNpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTk3LXJ0dzg5X3BjaS15IDo9IHBjaS5vIHBjaV9iZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjk5Om9iai0kKENPTkZJR19SVFc4OV9VU0IpICs9IHJ0dzg5X3VzYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0xMDAtcnR3ODlfdXNiLXkgOj0gdXNiLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTE1PXN0YXRpYyB1MzIgcnR3ODlfYWNwaV90cmF2ZXJzYWxfb2JqZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyLVxcdFxcdGlmICh1bmxpa2VseShvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggPT0gMCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMzpcXHRcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM0LVxcdFxcdFxcdFxcdCAgICBcXFwiJXM6IGludmFsaWQgYnVmZmVyIHR5cGVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ0LVxcdFxcdGlmICh1bmxpa2VseShvYmotXFx1MDAzZXBhY2thZ2UuY291bnQgPT0gMCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NTpcXHRcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ2LVxcdFxcdFxcdFxcdCAgICBcXFwiJXM6IGludmFsaWQgcGFja2FnZSB0eXBlXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MS1cXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogdW5oYW5kbGVkIHR5cGU6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTYzLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTgwPXJ0dzg5X2FjcGlfZXZhbHVhdGVfbWV0aG9kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgY29uc3QgY2hhciAqbWV0aG9kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtOTAtXFx0aWYgKCFyb290KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6OTE6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05Mi1cXHRcXHRcXHQgICAgXFxcImFjcGkgKCVzKTogZmFpbGVkIHRvIGdldCByb290XFxcXG5cXFwiLCBtZXRob2QpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtOTctXFx0aWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6OTg6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05OS1cXHRcXHRcXHQgICAgXFxcImFjcGkgKCVzKTogZmFpbGVkIHRvIGdldCBoYW5kbGVcXFxcblxcXCIsIG1ldGhvZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMDQtXFx0aWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTA1OlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTA2LVxcdFxcdFxcdCAgICBcXFwiYWNwaSAoJXMpOiBmYWlsZWQgdG8gZXZhbHVhdGUgb2JqZWN0XFxcXG5cXFwiLCBtZXRob2QpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTEyLVxcdGlmICh1bmxpa2VseShsZW4gPT0gMCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxMTM6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMTQtXFx0XFx0XFx0ICAgIFxcXCJhY3BpICglcyk6IGZhaWxlZCB0byB0cmF2ZXJzYWwgb2JqIGxlblxcXFxuXFxcIiwgbWV0aG9kKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTEzMT1pbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3ZhbHVlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEzNC1cXHRpZiAob2JqLVxcdTAwM2V0eXBlICE9IEFDUElfVFlQRV9JTlRFR0VSKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTM1OlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTM2LVxcdFxcdFxcdCAgICBcXFwiYWNwaTogZXhwZWN0IGludGVnZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MTUyPWludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHooc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTYwLVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE2MTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2Mi1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTY3LVxcdGlmIChsZW4gXFx1MDAzYyBzaXplb2YoKnB0cikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNjg6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2OS1cXHRcXHRcXHQgICAgX19mdW5jX18sIGxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzQtXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfNmdoel9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE3NTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzYtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xODAtXFx0aWYgKGxlbiBcXHUwMDNjIGV4cGVjdF9sZW4pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxODE6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBleHBlY3QgJXUgYnV0IGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTgyLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgZXhwZWN0X2xlbiwgbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE4OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxOTA6XFx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcInBvbGljeV82Z2h6OiBcXFwiLCAqcG9saWN5XzZnaHosXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTkxLVxcdFxcdCAgICAgICBleHBlY3RfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTIwND1pbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV82Z2h6X3NwKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxMS1cXHRpZiAob2JqLVxcdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyMTI6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMTMtXFx0XFx0XFx0ICAgIFxcXCJhY3BpOiBleHBlY3QgYnVmZmVyIGJ1dCB0eXBlOiAlZFxcXFxuXFxcIiwgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxOC1cXHRpZiAoYnVmX2xlbiBcXHUwMDNjIHNpemVvZigqcHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIxOTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjIwLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjUtXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfNmdoel9zcF9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIyNjpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjctXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjM0OlxcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCJwb2xpY3lfNmdoel9zcDogXFxcIiwgKnBvbGljeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzUtXFx0XFx0ICAgICAgIHNpemVvZigqcHRyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yNDg9aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel92bHAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjU1LVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI1NjpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1Ny1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjYyLVxcdGlmIChidWZfbGVuIFxcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjYzOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNjQtXFx0XFx0XFx0ICAgIF9fZnVuY19fLCBidWZfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2OS1cXHRpZiAoIWNoa19hY3BpX3BvbGljeV82Z2h6X3ZscF9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI3MDpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzEtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mjc4OlxcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCJwb2xpY3lfNmdoel92bHA6IFxcXCIsICpwb2xpY3ksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjc5LVxcdFxcdCAgICAgICBzaXplb2YoKnB0cikpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MjkxPXN0YXRpYyBpbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV90YXMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjk4LVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI5OTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMwMC1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzA1LVxcdGlmIChidWZfbGVuIFxcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzA2OlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMDctXFx0XFx0XFx0ICAgIF9fZnVuY19fLCBidWZfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMxMi1cXHRpZiAoIWNoa19hY3BpX3BvbGljeV90YXNfc2lnKHB0cikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMTM6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBiYWQgc2lnbmF0dXJlXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzE0LVxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMyMTpcXHRydHc4OV9oZXhfZHVtcChydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwicG9saWN5X3RhczogXFxcIiwgKnBvbGljeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMjItXFx0XFx0ICAgICAgIHNpemVvZigqcHRyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0zMzY9aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfcmVnX3J1bGVzKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM0My1cXHRpZiAob2JqLVxcdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNDQ6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNDUtXFx0XFx0XFx0ICAgIFxcXCJhY3BpOiBleHBlY3QgYnVmZmVyIGJ1dCB0eXBlOiAlZFxcXFxuXFxcIiwgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM1MC1cXHRpZiAoYnVmX2xlbiBcXHUwMDNjIHNpemVvZigqcHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM1MTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzUyLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTctXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfcmVnX3J1bGVzX3NpZyhwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzU4OlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogYmFkIHNpZ25hdHVyZVxcXFxuXFxcIiwgX19mdW5jX18pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM1OS1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNjY6XFx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcInBvbGljeV9yZWdfcnVsZXM6IFxcXCIsICpwb2xpY3ksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzY3LVxcdFxcdCAgICAgICBzaXplb2YoKnB0cikpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzcxPWludCBydHc4OV9hY3BpX2V2YWx1YXRlX2RzbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODAtXFx0aWYgKCFvYmopIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozODE6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODItXFx0XFx0XFx0ICAgIFxcXCJhY3BpIGRzbSBmYWlsIHRvIGV2YWx1YXRlIGZ1bmM6ICVkXFxcXG5cXFwiLCBmdW5jKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM4NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozODY6XFx0aWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ182R19CUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODctXFx0XFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV82Z2h6KHJ0d2Rldiwgb2JqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM4OC1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIFxcdTAwMjZyZXMtXFx1MDAzZXUucG9saWN5XzZnaHopO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM4OTpcXHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfNkdIWl9TUF9TVVApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzkwLVxcdFxcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel9zcChydHdkZXYsIG9iaixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx1MDAyNnJlcy1cXHUwMDNldS5wb2xpY3lfNmdoel9zcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzkyOlxcdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ182R0haX1ZMUF9TVVApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzkzLVxcdFxcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel92bHAocnR3ZGV2LCBvYmosXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk0LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBcXHUwMDI2cmVzLVxcdTAwM2V1LnBvbGljeV82Z2h6X3ZscCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mzk1OlxcdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ19UQVNfRU4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk2LVxcdFxcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfdGFzKHJ0d2Rldiwgb2JqLCBcXHUwMDI2cmVzLVxcdTAwM2V1LnBvbGljeV90YXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM5NzpcXHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfUkVHX1JVTEVTX0VOKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5OC1cXHRcXHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3JlZ19ydWxlcyhydHdkZXYsIG9iaixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTQwNz1pbnQgcnR3ODlfYWNwaV9ldmFsdWF0ZV9ydGFnKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQxOS1cXHRpZiAoYnVmX2xlbiAhPSBzaXplb2YoKnJlcykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MjA6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQyMS1cXHRcXHRcXHQgICAgX19mdW5jX18sIGJ1Zl9sZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQyODpcXHRydHc4OV9oZXhfZHVtcChydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiYW50ZW5uYV9nYWluOiBcXFwiLCByZXMsIHNpemVvZigqcmVzKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDI5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NDM1PWVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBydHc4OV9hY3BpX3Nhcl9nZXRfc3ViYmFuZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzktXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NDA6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NDEtXFx0XFx0XFx0ICAgIFxcXCJjZW50ZXIgZnJlcSAldSB0byBBQ1BJIFNBUiBzdWJiYW5kIGlzIHVuaGFuZGxlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ0NC1cXHRjYXNlIDI0MTIgLi4uIDI0ODQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDQ1OlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl8yR0haX1NVQkJBTkQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDQ2LVxcdGNhc2UgNTE4MCAuLi4gNTI0MDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NDc6XFx0XFx0cmV0dXJuIFJUVzg5X0FDUElfU0FSXzVHSFpfU1VCQkFORF8xO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ0OC1cXHRjYXNlIDUyNTAgLi4uIDUzMjA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDQ5OlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfMjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NTAtXFx0Y2FzZSA1NTAwIC4uLiA1NzIwOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ1MTpcXHRcXHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNUdIWl9TVUJCQU5EXzJFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ1Mi1cXHRjYXNlIDU3NDUgLi4uIDU4ODU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDUzOlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfM180O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ1NC1cXHRjYXNlIDU5NTUgLi4uIDYxNTU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDU1OlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfNV9MO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ1Ni1cXHRjYXNlIDYxNzUgLi4uIDY0MTU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDU3OlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfNV9IO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ1OC1cXHRjYXNlIDY0MzUgLi4uIDY1MTU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDU5OlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfNjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjAtXFx0Y2FzZSA2NTM1IC4uLiA2Njk1OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ2MTpcXHRcXHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzdfTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjItXFx0Y2FzZSA2NzE1IC4uLiA2ODU1OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ2MzpcXHRcXHRyZXR1cm4gUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzdfSDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDY1OlxcdC8qIGZyZXEgNjg3NSAoY2ggMTg1LCAyME1Ieikgc3BhbnMgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzdfSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ2NjpcXHQgKiBhbmQgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzgsIHNvIGRpcmVjdGx5IGRlc2NyaWJlIGl0IHdpdGhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjctXFx0ICogc3RydWN0IHJ0dzg5XzZnaHpfc3Bhbi5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ3MC1cXHRjYXNlIDY4OTUgLi4uIDcxMTU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDcxOlxcdFxcdHJldHVybiBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfODtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NzItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NDc1PWVudW0gcnR3ODlfYmFuZCBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kX3RvX2JhbmQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDc5LVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDgwOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDgxLVxcdFxcdFxcdCAgICBcXFwiQUNQSSBTQVIgc3ViYmFuZCAldSB0byBiYW5kIGlzIHVuaGFuZGxlZFxcXFxuXFxcIiwgc3ViYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDgyLVxcdFxcdGZhbGx0aHJvdWdoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4MzpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzJHSFpfU1VCQkFORDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0ODQ6XFx0XFx0cmV0dXJuIFJUVzg5X0JBTkRfMkc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDg1OlxcdGNhc2UgUlRXODlfQUNQSV9TQVJfNUdIWl9TVUJCQU5EXzE6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDg2OlxcdFxcdHJldHVybiBSVFc4OV9CQU5EXzVHO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4NzpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzVHSFpfU1VCQkFORF8yOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4ODpcXHRcXHRyZXR1cm4gUlRXODlfQkFORF81RztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0ODk6XFx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl81R0haX1NVQkJBTkRfMkU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDkwOlxcdFxcdHJldHVybiBSVFc4OV9CQU5EXzVHO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5MTpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzVHSFpfU1VCQkFORF8zXzQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDkyOlxcdFxcdHJldHVybiBSVFc4OV9CQU5EXzVHO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5MzpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF81X0w6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDk0OlxcdFxcdHJldHVybiBSVFc4OV9CQU5EXzZHO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5NTpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF81X0g6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDk2OlxcdFxcdHJldHVybiBSVFc4OV9CQU5EXzZHO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5NzpcXHRjYXNlIFJUVzg5X0FDUElfU0FSXzZHSFpfU1VCQkFORF82OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ5ODpcXHRcXHRyZXR1cm4gUlRXODlfQkFORF82RztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0OTk6XFx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfN19MOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUwMDpcXHRcXHRyZXR1cm4gUlRXODlfQkFORF82RztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MDE6XFx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfN19IOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUwMjpcXHRcXHRyZXR1cm4gUlRXODlfQkFORF82RztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MDM6XFx0Y2FzZSBSVFc4OV9BQ1BJX1NBUl82R0haX1NVQkJBTkRfODpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MDQ6XFx0XFx0cmV0dXJuIFJUVzg5X0JBTkRfNkc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTA1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTUzMD1zdGF0aWMgczE2IHJ0dzg5X2FjcGlfc2FyX25vcm1hbGl6ZV9ocF92YWwodTggdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTUzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MzY6XFx0QlVJTERfQlVHX09OKGZjdCBcXHUwMDNlIFRYUFdSX0ZBQ1RPUl9PRl9SVFc4OV9BQ1BJX1NBUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUzODpcXHRyZXMgPSAoYmlhcyBcXHUwMDNjXFx1MDAzYyBUWFBXUl9GQUNUT1JfT0ZfUlRXODlfQUNQSV9TQVIpICtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1Mzk6XFx0ICAgICAgKHYgXFx1MDAzY1xcdTAwM2MgKFRYUFdSX0ZBQ1RPUl9PRl9SVFc4OV9BQ1BJX1NBUiAtIGZjdCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU0MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NDE6XFx0cmV0dXJuIG1pbl90KHMzMiwgcmVzLCBNQVhfVkFMX09GX1JUVzg5X0FDUElfU0FSKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NDItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NTQ0PXN0YXRpYyBzMTYgcnR3ODlfYWNwaV9zYXJfbm9ybWFsaXplX3J0X3ZhbCh1OCB2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU0OTpcXHRCVUlMRF9CVUdfT04oZmN0IFxcdTAwM2UgVFhQV1JfRkFDVE9SX09GX1JUVzg5X0FDUElfU0FSKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTUxOlxcdHJlcyA9IHYgXFx1MDAzY1xcdTAwM2MgKFRYUFdSX0ZBQ1RPUl9PRl9SVFc4OV9BQ1BJX1NBUiAtIGZjdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU1MzpcXHRyZXR1cm4gbWluX3QoczMyLCByZXMsIE1BWF9WQUxfT0ZfUlRXODlfQUNQSV9TQVIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU1NC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz01NTc9dm9pZCBydHc4OV9hY3BpX3Nhcl9sb2FkX3N0ZF9sZWdhY3koc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2NjpcXHRmb3IgKHN1YmJhbmQgPSAwOyBzdWJiYW5kIFxcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1NVQkJBTkQ7IHN1YmJhbmQrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2NzpcXHRcXHRmb3IgKHBhdGggPSAwOyBwYXRoIFxcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1JGX1BBVEg7IHBhdGgrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU2OC1cXHRcXHRcXHR1OCBhbnRpZHggPSByZWMtXFx1MDAzZXJmcGF0aF90b19hbnRpZHgocGF0aCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU3MDpcXHRcXHRcXHRpZiAoc3ViYmFuZCBcXHUwMDNjIFJUVzg5X0FDUElfU0FSX1NVQkJBTkRfTlJfTEVHQUNZKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU3MS1cXHRcXHRcXHRcXHRlbnQtXFx1MDAzZXZbc3ViYmFuZF1bcGF0aF0gPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTczLVxcdFxcdFxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NzQ6XFx0XFx0XFx0XFx0ZW50LVxcdTAwM2V2W3N1YmJhbmRdW3BhdGhdID0gTUFYX1ZBTF9PRl9SVFc4OV9BQ1BJX1NBUjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NzUtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NTgwPXZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zdGRfaGFzXzZnaHooc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4OTpcXHRCVUlMRF9CVUdfT04oUlRXODlfQUNQSV9TQVJfU1VCQkFORF9OUl9IQVNfNkdIWiAhPSBOVU1fT0ZfUlRXODlfQUNQSV9TQVJfU1VCQkFORCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU5MTpcXHRmb3IgKHN1YmJhbmQgPSAwOyBzdWJiYW5kIFxcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1NVQkJBTkQ7IHN1YmJhbmQrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU5MjpcXHRcXHRmb3IgKHBhdGggPSAwOyBwYXRoIFxcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1JGX1BBVEg7IHBhdGgrKykge1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzowOToxOC4zNDgxMTExNDdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMjE0OTExMjk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVTQiBXaXJlbGVzcyBBZGFwdGVyIEVtdWxhdGlvbiBhbmQgRnV6emluZyBTdHJhdGVneSoqXG5cbk9rYXksIHNvIEkgc2VlIHRoZXNlIFJUVzg5IG1vZGVscyBoYXZlIFVTQiBpbnRlcmZhY2VzIOKAkyBgUlRXODlfODg1MUJVYCwgYFJUVzg5Xzg4NTJBVWAsIGBSVFc4OV84ODUyQlVgLCBgUlRXODlfODg1MkNVYCwgYW5kIGBSVFc4OV84OTIyQVVgLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHdoZXRoZXIgd2UgY2FuIGVmZmVjdGl2ZWx5IGVtdWxhdGUgdGhlc2UgVVNCIHdpcmVsZXNzIGFkYXB0ZXJzLCBwYXJ0aWN1bGFybHkgbGV2ZXJhZ2luZyBVU0IgUmF3IEdhZGdldCBhbmQgc3l6a2FsbGVyJ3MgVVNCIGZ1enppbmcgY2FwYWJpbGl0aWVzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiBzeXprYWxsZXIgY2FuIGhhbmRsZSB0aGlzIHR5cGUgb2YgZGV2aWNlLlxuXG5SaWdodCwgdGltZSB0byBjaGVjayBob3cgc3l6a2FsbGVyIGFwcHJvYWNoZXMgVVNCIGRyaXZlciBmdXp6aW5nLiAgSSByZWNhbGwgaXQgaGFzIGBzeXpfdXNiX2Nvbm5lY3RgLCBgc3l6X3VzYl9jb250cm9sX2lvYCwgYW5kIHN1cHBvcnRzIHJhdy1nYWRnZXQgYW5kIGR1bW15X2hjZCBlbXVsYXRpb24uIFRoaXMgaXMgcHJvbWlzaW5nOyBzeXprYWxsZXIncyBhYmlsaXR5IHRvIGVtdWxhdGUgKmFueSogVVNCIGRldmljZSwgcHJvYmUgZHJpdmVycywgZnV6eiB0aGVtLCBzZW5kIHBhY2tldHMsIGhhbmRsZSBmaXJtd2FyZSBsb2FkaW5nIOKAkyB0aGF0J3MgcHJlY2lzZWx5IHdoYXQgSSBuZWVkLlxuXG5Ob3csIEkgd2FudCB0byBjb25maXJtIHNvbWV0aGluZyBjcml0aWNhbDogQ2FuIHdlIHRyaWdnZXIgdGhlIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBmdW5jdGlvbiBpbiB0aGUgZHJpdmVyPyBJdCdzIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIGl0cyBjYWxsIHBhdGggYW5kIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIEkgbmVlZCB0byBrbm93IGhvdyBpdCdzIGJlaW5nIGNhbGxlZC5cblxuTGV0J3MgZG8gYSBxdWljayBgZ3JlcGAgZm9yIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCB3aXRoaW4gdGhlIGNvZGViYXNlIHRvIG1hcCBvdXQgaXRzIHVzYWdlLiBJIG5lZWQgdG8gc2VlIHRoZSBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODM0OSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzowOToyMS41NjMwMjQ5NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjQzMjAxMTQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTI5Mjg9c3RhdGljIHN0cnVjdCBza19idWZmICpydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyOTc4OnN0YXRpYyBpbnQgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI5NzktXFx0XFx0XFx0XFx0XFx0c3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0zMDcxPWludCBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODA6XFx0cnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDgxLVxcdFxcdFxcdFxcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9QU19QT0xMLCBcXHUwMDI2cGt0X2lkX3BzX3BvbGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDgyOlxcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4My1cXHRcXHRcXHRcXHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfTlVMTF9EQVRBLCBcXHUwMDI2cGt0X2lkX251bGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDg0OlxcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4NS1cXHRcXHRcXHRcXHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfUU9TX05VTEwsIFxcdTAwMjZwa3RfaWRfcW9zX251bGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTk2Mjc9aW50IHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjM0LVxcdGlmIChlbmFibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6OTYzNTpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk2MzYtXFx0XFx0XFx0XFx0XFx0XFx0ICAgUlRXODlfUEtUX09GTERfVFlQRV9BUlBfUlNQLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTk2NzU9aW50IHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTY4NC1cXHRpZiAoZW5hYmxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk2ODU6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05Njg2LVxcdFxcdFxcdFxcdFxcdFxcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfQVJQX1JTUCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0xMDA0Mj1pbnQgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjEwMDcxOlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzItXFx0XFx0XFx0XFx0XFx0ICAgUlRXODlfUEtUX09GTERfVFlQRV9FQVBPTF9LRVksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzctXFx0aWYgKGd0a19pbmZvLVxcdTAwM2VpZ3RrX2tleWlkKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjEwMDc4OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwNzktXFx0XFx0XFx0XFx0XFx0XFx0ICAgUlRXODlfUEtUX09GTERfVFlQRV9TQV9RVUVSWSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MjMuODA2MjMyMTJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNjc5MzYwMTcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSSdtIGdvaW5nIHRvIHB1bGwgdXAgdGhhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jYCBmaWxlIGFuZCBzdGFydCBleGFtaW5pbmcgaXQuIE15IGltbWVkaWF0ZSBmb2N1cyB3aWxsIGJlIG9uIHRoZSBmdW5jdGlvbiBpdHNlbGYsIGFuZCwgb2YgY291cnNlLCB0aGUgc3Vycm91bmRpbmcgY29kZSBjb250ZXh0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGZpdHMgaW50byB0aGUgYmlnZ2VyIHBpY3R1cmUgb2YgdGhlIFJlYWx0ZWsgd2lyZWxlc3MgZmlybXdhcmUgbG9hZGluZyBwcm9jZXNzIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlci4gSSdtIGV4cGVjdGluZyBzb21lIHN0YW5kYXJkIGZpcm13YXJlIGludGVyYWN0aW9uIGNvZGUsIHBvdGVudGlhbGx5IGludm9sdmluZyB0aGluZ3MgbGlrZSByZXF1ZXN0aW5nIGZpcm13YXJlIGJsb2JzLCBtZW1vcnkgbWFwcGluZywgd3JpdGluZyB0byBzcGVjaWZpYyByZWdpc3RlcnMsIGFuZCBzb21lIGVycm9yIGhhbmRsaW5nIHRvIGVuc3VyZSByb2J1c3RuZXNzLiBJJ2xsIG5lZWQgdG8gbG9vayBmb3IgYW55IHVudXN1YWwgYXBwcm9hY2hlcyB0aGV5J3ZlIHRha2VuIG9yIGFueSBjdXN0b20gb3B0aW1pemF0aW9ucyB0aGV5J3ZlIGltcGxlbWVudGVkLiBNeSBnb2FsIGlzIHRvIHF1aWNrbHkgZ3Jhc3AgaXRzIGNvcmUgcHVycG9zZSBhbmQgcG90ZW50aWFsIHBvaW50cyBvZiBpbnRlcmVzdCBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLCBlc3BlY2lhbGx5IHJlZ2FyZGluZyBhbnkgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyBvciBwZXJmb3JtYW5jZSBib3R0bGVuZWNrcy4gSSBhbHNvIGhhdmUgdG8ga2VlcCBpbiBtaW5kLCBpcyB0aGUgZmlsZSByZWxhdGVkIHRvIGEgc3BlY2lmaWMgaGFyZHdhcmUgb3IgYSBtb3JlIGdlbmVyaWMgaW1wbGVtZW50YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMjc4LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MjYuNDg1NTk1MjQzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQwNjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyOTc1LFxuICBcIkxpbmVDb3VudFwiOiA3MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyOTc1OlxcdFxcdHJldHVybiBza2I7XFxuMjk3NjpcXHR9XFxuMjk3NzpcXHRcXG4yOTc4OlxcdHN0YXRpYyBpbnQgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuMjk3OTpcXHRcXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbjI5ODA6XFx0XFx0XFx0XFx0XFx0XFx0ZW51bSBydHc4OV9md19wa3Rfb2ZsZF90eXBlIHR5cGUsXFxuMjk4MTpcXHRcXHRcXHRcXHRcXHRcXHR1OCAqaWQpXFxuMjk4MjpcXHR7XFxuMjk4MzpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmID0gcnR3dmlmX2xpbmtfdG9fdmlmKHJ0d3ZpZl9saW5rKTtcXG4yOTg0OlxcdFxcdGludCBsaW5rX2lkID0gaWVlZTgwMjExX3ZpZl9pc19tbGQodmlmKSA/IHJ0d3ZpZl9saW5rLVxcdTAwM2VsaW5rX2lkIDogLTE7XFxuMjk4NTpcXHRcXHRzdHJ1Y3QgcnR3ODlfcGt0b2ZsZF9pbmZvICppbmZvO1xcbjI5ODY6XFx0XFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4yOTg3OlxcdFxcdGludCByZXQ7XFxuMjk4ODpcXHRcXG4yOTg5OlxcdFxcdGluZm8gPSBremFsbG9jX29iaigqaW5mbyk7XFxuMjk5MDpcXHRcXHRpZiAoIWluZm8pXFxuMjk5MTpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4yOTkyOlxcdFxcbjI5OTM6XFx0XFx0c3dpdGNoICh0eXBlKSB7XFxuMjk5NDpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFNfUE9MTDpcXG4yOTk1OlxcdFxcdFxcdHNrYiA9IGllZWU4MDIxMV9wc3BvbGxfZ2V0KHJ0d2Rldi1cXHUwMDNlaHcsIHZpZik7XFxuMjk5NjpcXHRcXHRcXHRicmVhaztcXG4yOTk3OlxcdFxcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9QUk9CRV9SU1A6XFxuMjk5ODpcXHRcXHRcXHRza2IgPSBpZWVlODAyMTFfcHJvYmVyZXNwX2dldChydHdkZXYtXFx1MDAzZWh3LCB2aWYpO1xcbjI5OTk6XFx0XFx0XFx0YnJlYWs7XFxuMzAwMDpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfTlVMTF9EQVRBOlxcbjMwMDE6XFx0XFx0XFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXFx1MDAzZWh3LCB2aWYsIGxpbmtfaWQsIGZhbHNlKTtcXG4zMDAyOlxcdFxcdFxcdGJyZWFrO1xcbjMwMDM6XFx0XFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX1FPU19OVUxMOlxcbjMwMDQ6XFx0XFx0XFx0c2tiID0gaWVlZTgwMjExX251bGxmdW5jX2dldChydHdkZXYtXFx1MDAzZWh3LCB2aWYsIGxpbmtfaWQsIHRydWUpO1xcbjMwMDU6XFx0XFx0XFx0YnJlYWs7XFxuMzAwNjpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfRUFQT0xfS0VZOlxcbjMwMDc6XFx0XFx0XFx0c2tiID0gcnR3ODlfZWFwb2xfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xcbjMwMDg6XFx0XFx0XFx0YnJlYWs7XFxuMzAwOTpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfU0FfUVVFUlk6XFxuMzAxMDpcXHRcXHRcXHRza2IgPSBydHc4OV9zYV9xdWVyeV9nZXQocnR3ZGV2LCBydHd2aWZfbGluayk7XFxuMzAxMTpcXHRcXHRcXHRicmVhaztcXG4zMDEyOlxcdFxcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9BUlBfUlNQOlxcbjMwMTM6XFx0XFx0XFx0c2tiID0gcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChydHdkZXYsIHJ0d3ZpZl9saW5rKTtcXG4zMDE0OlxcdFxcdFxcdGJyZWFrO1xcbjMwMTU6XFx0XFx0ZGVmYXVsdDpcXG4zMDE2OlxcdFxcdFxcdHJldCA9IC1FSU5WQUw7XFxuMzAxNzpcXHRcXHRcXHRnb3RvIGVycjtcXG4zMDE4OlxcdFxcdH1cXG4zMDE5OlxcdFxcbjMwMjA6XFx0XFx0aWYgKCFza2IpIHtcXG4zMDIxOlxcdFxcdFxcdHJldCA9IC1FTk9NRU07XFxuMzAyMjpcXHRcXHRcXHRnb3RvIGVycjtcXG4zMDIzOlxcdFxcdH1cXG4zMDI0OlxcdFxcbjMwMjU6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZChydHdkZXYsIFxcdTAwMjZpbmZvLVxcdTAwM2VpZCwgc2tiKTtcXG4zMDI2OlxcdFxcdGtmcmVlX3NrYihza2IpO1xcbjMwMjc6XFx0XFxuMzAyODpcXHRcXHRpZiAocmV0KVxcbjMwMjk6XFx0XFx0XFx0Z290byBlcnI7XFxuMzAzMDpcXHRcXG4zMDMxOlxcdFxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmluZm8tXFx1MDAzZWxpc3QsIFxcdTAwMjZydHd2aWZfbGluay1cXHUwMDNlZ2VuZXJhbF9wa3RfbGlzdCk7XFxuMzAzMjpcXHRcXHQqaWQgPSBpbmZvLVxcdTAwM2VpZDtcXG4zMDMzOlxcdFxcdHJldHVybiAwO1xcbjMwMzQ6XFx0XFxuMzAzNTpcXHRlcnI6XFxuMzAzNjpcXHRcXHRrZnJlZShpbmZvKTtcXG4zMDM3OlxcdFxcdHJldHVybiByZXQ7XFxuMzAzODpcXHR9XFxuMzAzOTpcXHRcXG4zMDQwOlxcdHZvaWQgcnR3ODlfZndfcmVsZWFzZV9nZW5lcmFsX3BrdF9saXN0X3ZpZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuMzA0MTpcXHRcXHRcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbjMwNDI6XFx0XFx0XFx0XFx0XFx0XFx0ICAgYm9vbCBub3RpZnlfZncpXFxuMzA0MzpcXHR7XFxuMzA0NDpcXHRcXHRzdHJ1Y3QgbGlzdF9oZWFkICpwa3RfbGlzdCA9IFxcdTAwMjZydHd2aWZfbGluay1cXHUwMDNlZ2VuZXJhbF9wa3RfbGlzdDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MjYuNDg1OTM3MzYzWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDE1MjIzMDgwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSZWNlbnQgUlRXODkgRHJpdmVyIEZpeCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggZm9yIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBpcyBpbnRlcmVzdGluZy4gVGhlIGtleSBjaGFuZ2UgaXMgZW5zdXJpbmcgdGhlIHJldHVybiBjb2RlIGFjY3VyYXRlbHkgcmVmbGVjdHMgZmFpbHVyZXMgZnJvbSBgcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZGAgaXRzZWxmLCByYXRoZXIgdGhhbiBhbHdheXMgZGVmYXVsdGluZyB0byBgLUVOT01FTWAuIFByZXZpb3VzbHksIGlmIHRoYXQgZnVuY3Rpb24gcmV0dXJuZWQsIHNheSwgYC1FQlVTWWAgb3IgYC1FSU5WQUxgLCB3ZSdkIGxvc2UgdGhhdCBjcnVjaWFsIGVycm9yIGluZm9ybWF0aW9uLCBhbmQgaXQgd291bGQgbWlzbGVhZCB0aGUgY2FsbGVyLiBHb29kIGNhdGNoLlxuXG5Ob3csIGEgYnJvYWRlciBxdWVzdGlvbiBhcmlzZXM6IGlzIHRoZSBSVFc4OSBVU0IgZHJpdmVyIGZ1enplZCBvciBmdXp6YWJsZSB3aXRoaW4gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBzeXprYWxsZXI/IEl0IGlzIGFsd2F5cyBpbXBvcnRhbnQgdG8gY29uc2lkZXIgaG93IHRoZXNlIGNoYW5nZXMgd2lsbCBpbXBhY3QgZnV6emVyIGNvdmVyYWdlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgbmV3IGNvZGUgcGF0aCBjYW4gYWN0dWFsbHkgYmUgcmVhY2hlZCB0aHJvdWdoIGZ1enppbmcuIExldCdzIHNlZS4uLiB0aGUgaW5zdHJ1Y3Rpb25zIHNheSB0byBkaXNyZWdhcmQgcGF0Y2hlcyB0aGF0IGRlYWwgd2l0aDogY29kZSBwYXRocyBpbXBvc3NpYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcnMsIGFuZCB0ZWFyLWRvd24gY2FsbGJhY2tzLiBUaGF0IG5hcnJvd3MgaXQgZG93bi5cblxuV2FpdCBhIHNlY29uZC4gTGV0J3MgYW5hbHl6ZSB3aGV0aGVyIFJUVzg5IGFjdHVhbGx5IGZ1bmN0aW9ucyBkaWZmZXJlbnRseSBvdmVyIFVTQiB2cy4gUENJLiBJZiBpdCdzIHRoZSBVU0IgZHJpdmVyLCBjYW4gaXQgYmUgcHJvYmVkIGFuZCBmdXp6ZWQgdGhyb3VnaCBhIFVTQiBlbXVsYXRpb24gc2V0dXA/IFRoaW5rIG9mIHJhdyBVU0IgZ2FkZ2V0IG1vZGUsIHNpbWlsYXIgdG8gd2hhdCBzeXprYWxsZXIgdXNlcy4gV2hhdCBuZWVkcyB0byBoYXBwZW4gZHVyaW5nIHRoZSBgcnR3ODlfdXNiYCBwcm9iZSByb3V0aW5lPyBEb2VzIGl0IG5lZWQgZmlybXdhcmUgdG8gYmUgbG9hZGVkIG9yIGEgZGV2aWNlIHRvIGNvbW11bmljYXRlIGJlZm9yZSBleGVjdXRpb24gY2FuIGV2ZW4gb2NjdXI/IEkgbmVlZCB0byBkaWcgaW50byB0aGUgY29kZS4gVGltZSB0byBjaGVjayBgcnR3ODlfdXNiLmNgIGFuZCBwb3RlbnRpYWxseSBhbHNvIGBydHc4OS9jb3JlLmNgIG9yIGV2ZW4gYHJ0dzg5L21hYzgwMjExYCB0byBmdWxseSB1bmRlcnN0YW5kIHRoZSBzZXR1cCBhbmQgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIFRoYXQncyB0aGUgYmVzdCB3YXkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBjaGFuZ2UgaXMgaW1wb3J0YW50IHRvIGZ1enplcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNzc3LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MzAuNjM4MTcyNDFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkxMTc2Mjc4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg5X2Z3X2gyY19cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDI0NjcgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmM9MTI9cnR3ODlfY2FtX2dldF9zZWNfa2V5X2NtZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jLTIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmM6MjI6XFx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGNtZF9sZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjMtXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jPTIxNT1zdGF0aWMgaW50IF9fcnR3ODlfY2FtX2RldGFjaF9zZWNfY2FtKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjM4LVxcdFxcdFxcdFxcdCAgXFxcImZhaWxlZCB0byB1cGRhdGUgZGN0bCBjYW0gZGVsIGtleTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jYW0uYzoyMzk6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluaywgTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jLTI0MC1cXHRcXHRcXHRcXHQgICAgICAgUlRXODlfUk9MRV9JTkZPX0NIQU5HRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jPTI0OD1zdGF0aWMgaW50IF9fcnR3ODlfY2FtX2F0dGFjaF9zZWNfY2FtKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjc5LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NhbS5jOjI4MDpcXHRyZXQgPSBydHc4OV9md19oMmNfY2FtKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLCBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2FtLmMtMjgxLVxcdFxcdFxcdCAgICAgICBSVFc4OV9ST0xFX0lORk9fQ0hBTkdFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTc0OT1zdGF0aWMgaW50IF9fbWNjX2Z3X3JlcV90c2Yoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1NjQgKnRzZl9yZWYsIHU2NCAqdHNmX2F1eClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTc2MC1cXHRyZXEubWFjaWRfeSA9IGF1eC1cXHUwMDNlcnR3dmlmX2xpbmstXFx1MDAzZW1hY19pZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzo3NjE6XFx0cmV0ID0gcnR3ODlfZndfaDJjX21jY19yZXFfdHNmKHJ0d2RldiwgXFx1MDAyNnJlcSwgXFx1MDAyNnJwdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtNzYyLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTc3ND1zdGF0aWMgaW50IF9fbXJjX2Z3X3JlcV90c2Yoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1NjQgKnRzZl9yZWYsIHU2NCAqdHNmX2F1eClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTc5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzo3OTE6XFx0cmV0ID0gcnR3ODlfZndfaDJjX21yY19yZXFfdHNmKHJ0d2RldiwgXFx1MDAyNmFyZywgXFx1MDAyNnJwdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtNzkyLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTE4Njg9c3RhdGljIGludCBfX21jY19md19hZGRfcm9sZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV9tY2Nfcm9sZSAqcm9sZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTE4OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MTkwMDpcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX21jYyhydHdkZXYsIFxcdTAwMjZyZXEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTE5MDEtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMTkwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoxOTA3OlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tY2NfbWFjaWRfYml0bWFwKHJ0d2RldiwgbWNjLVxcdTAwM2Vncm91cCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0xOTA4LVxcdFxcdFxcdFxcdFxcdCAgICByb2xlLVxcdTAwM2VydHd2aWZfbGluay1cXHUwMDNlbWFjX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MTk1MD1zdGF0aWMgaW50IF9fbWNjX2Z3X2FkZF9idF9yb2xlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTE5NjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MTk2MTpcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX21jYyhydHdkZXYsIFxcdTAwMjZyZXEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTE5NjItXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MTk4NT1zdGF0aWMgaW50IF9fbWNjX2Z3X3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCByZXBsYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjA0Ni1cXHRpZiAoc3luYy1cXHUwMDNlZW5hYmxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjA0NzpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfbWNjX3N5bmMocnR3ZGV2LCByZXEuZ3JvdXAsIHN5bmMtXFx1MDAzZW1hY2lkX3NyYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMDQ4LVxcdFxcdFxcdFxcdFxcdCAgICBzeW5jLVxcdTAwM2VtYWNpZF90Z3QsIHN5bmMtXFx1MDAzZW9mZnNldCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMDU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIwNjA6XFx0cmV0ID0gcnR3ODlfZndfaDJjX3N0YXJ0X21jYyhydHdkZXYsIFxcdTAwMjZyZXEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIwNjEtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjA5NT1zdGF0aWMgaW50IF9fbXJjX2Z3X3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCByZXBsYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjE0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMTUwOlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfYWRkKHJ0d2RldiwgXFx1MDAyNmFkZF9hcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIxNTEtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjE2OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMTcwOlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfc3luYyhydHdkZXYsIFxcdTAwMjZzeW5jX2FyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjE3MS1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIxODE6XFx0cmV0ID0gcnR3ODlfZndfaDJjX21yY19zdGFydChydHdkZXYsIFxcdTAwMjZzdGFydF9hcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIxODItXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjE5MT1zdGF0aWMgaW50IF9fbWNjX2Z3X3NldF9kdXJhdGlvbl9ub19idChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgc3luY19jaGFuZ2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjIxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMjExOlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tY2Nfc2V0X2R1cmF0aW9uKHJ0d2RldiwgXFx1MDAyNnJlcSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjIxMi1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMjIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIyMjE6XFx0cmV0ID0gcnR3ODlfZndfaDJjX21jY19zeW5jKHJ0d2RldiwgbWNjLVxcdTAwM2Vncm91cCwgc3luYy1cXHUwMDNlbWFjaWRfc3JjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyMjItXFx0XFx0XFx0XFx0ICAgIHN5bmMtXFx1MDAzZW1hY2lkX3RndCwgc3luYy1cXHUwMDNlb2Zmc2V0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTIyMzI9c3RhdGljIGludCBfX21yY19md19zZXRfZHVyYXRpb25fbm9fYnQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIHN5bmNfY2hhbmdlZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyNjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjI2NjpcXHRyZXQgPSBydHc4OV9md19oMmNfbXJjX3VwZF9kdXJhdGlvbihydHdkZXYsIFxcdTAwMjZkdXJfYXJnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMjY3LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjI3NjpcXHRyZXQgPSBydHc4OV9md19oMmNfbXJjX3N5bmMocnR3ZGV2LCBcXHUwMDI2c3luY19hcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIyNzctXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjMzND1zdGF0aWMgdm9pZCBydHc4OV9tY2Nfc3RhcnRfYmVhY29uX25vYShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMzQzLVxcdGlmIChyZWYtXFx1MDAzZWlzX2dvKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjIzNDQ6XFx0XFx0cnR3ODlfZndfaDJjX3RzZjMyX3RvZ2dsZShydHdkZXYsIHJlZi1cXHUwMDNlcnR3dmlmX2xpbmssIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNDUtXFx0ZWxzZSBpZiAoYXV4LVxcdTAwM2Vpc19nbylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMzQ2OlxcdFxcdHJ0dzg5X2Z3X2gyY190c2YzMl90b2dnbGUocnR3ZGV2LCBhdXgtXFx1MDAzZXJ0d3ZpZl9saW5rLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yMzQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjM1MT1zdGF0aWMgdm9pZCBydHc4OV9tY2Nfc3RvcF9iZWFjb25fbm9hKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNjAtXFx0aWYgKHJlZi1cXHUwMDNlaXNfZ28pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjM2MTpcXHRcXHRydHc4OV9md19oMmNfdHNmMzJfdG9nZ2xlKHJ0d2RldiwgcmVmLVxcdTAwM2VydHd2aWZfbGluaywgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTIzNjItXFx0ZWxzZSBpZiAoYXV4LVxcdTAwM2Vpc19nbylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyMzYzOlxcdFxcdHJ0dzg5X2Z3X2gyY190c2YzMl90b2dnbGUocnR3ZGV2LCBhdXgtXFx1MDAzZXJ0d3ZpZl9saW5rLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjM2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jPTIzODA9c3RhdGljIGludCBydHc4OV9tY2Nfc3RhcnQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjQxMS1cXHRpZiAocnR3ODlfbWNjX2lnbm9yZV9iY24ocnR3ZGV2LCByZWYpIHx8IGF1eC1cXHUwMDNlaWdub3JlX2Jjbikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI0MTI6XFx0XFx0cnR3ODlfZndfaDJjX3NldF9iY25fZmx0cl9jZmcocnR3ZGV2LCBhdXgtXFx1MDAzZXJ0d3ZpZl9saW5rLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjQxMy1cXHR9IGVsc2UgaWYgKHJ0dzg5X21jY19pZ25vcmVfYmNuKHJ0d2RldiwgYXV4KSB8fCByZWYtXFx1MDAzZWlnbm9yZV9iY24pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDE0OlxcdFxcdHJ0dzg5X2Z3X2gyY19zZXRfYmNuX2ZsdHJfY2ZnKHJ0d2RldiwgcmVmLVxcdTAwM2VydHd2aWZfbGluaywgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI0MTUtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNDE2OlxcdFxcdHJ0dzg5X2Z3X2gyY19zZXRfYmNuX2ZsdHJfY2ZnKHJ0d2RldiwgcmVmLVxcdTAwM2VydHd2aWZfbGluaywgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM6MjQxNzpcXHRcXHRydHc4OV9md19oMmNfc2V0X2Jjbl9mbHRyX2NmZyhydHdkZXYsIGF1eC1cXHUwMDNlcnR3dmlmX2xpbmssIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI0MTgtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjQ3OD1zdGF0aWMgdm9pZCBydHc4OV9tY2Nfc3RvcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTA5LVxcdGlmIChydHc4OV9jb25jdXJyZW50X3ZpYV9tcmMocnR3ZGV2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI1MTA6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX21yY19kZWwocnR3ZGV2LCBtY2MtXFx1MDAzZWdyb3VwLCBzZWwuc2xvdF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1MTEtXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI1MTQtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNTE1OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19zdG9wX21jYyhydHdkZXYsIG1jYy1cXHUwMDNlZ3JvdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjUxNi1cXHRcXHRcXHRcXHRcXHQgICAgc2VsLm1hY19pZCwgdHJ1ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI1MjE6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2RlbF9tY2NfZ3JvdXAocnR3ZGV2LCBtY2MtXFx1MDAzZWdyb3VwLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTIyLVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTI5LVxcdHJ0dzg5X21jY19zdG9wX2JlYWNvbl9ub2EocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNTMwOlxcdHJ0dzg5X2Z3X2gyY19tY2NfZGlnKHJ0d2RldiwgUlRXODlfQ0hBTkNUWF8wLCAwLCAwLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjUzMS1cXHRydHc4OV9waHlfZGlnX3Jlc3VtZShydHdkZXYsIHRydWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9MjUzNj1zdGF0aWMgaW50IHJ0dzg5X21jY191cGRhdGUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjU1OC1cXHRpZiAob2xkX3JlZl9pZ25vcmVfYmNuICE9IHJlZi1cXHUwMDNlaWdub3JlX2JjbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNTU5OlxcdFxcdHJ0dzg5X2Z3X2gyY19zZXRfYmNuX2ZsdHJfY2ZnKHJ0d2RldiwgcmVmLVxcdTAwM2VydHd2aWZfbGluaywgIXJlZi1cXHUwMDNlaWdub3JlX2Jjbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjU2MC1cXHRlbHNlIGlmIChvbGRfYXV4X2lnbm9yZV9iY24gIT0gYXV4LVxcdTAwM2VpZ25vcmVfYmNuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI1NjE6XFx0XFx0cnR3ODlfZndfaDJjX3NldF9iY25fZmx0cl9jZmcocnR3ZGV2LCBhdXgtXFx1MDAzZXJ0d3ZpZl9saW5rLCAhYXV4LVxcdTAwM2VpZ25vcmVfYmNuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNTYyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmM9Mjc3MD1zdGF0aWMgaW50IF9fbWNjX2Z3X3VwZF9tYWNpZF9iaXRtYXAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjc3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyNzc2OlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tY2NfbWFjaWRfYml0bWFwKHJ0d2RldiwgbWNjLVxcdTAwM2Vncm91cCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yNzc3LVxcdFxcdFxcdFxcdFxcdCAgICB1cGQtXFx1MDAzZXJ0d3ZpZl9saW5rLVxcdTAwM2VtYWNfaWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYz0yNzg4PXN0YXRpYyBpbnQgX19tcmNfZndfdXBkX21hY2lkX2JpdG1hcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYy0yODA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jOjI4MDk6XFx0XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX21yY191cGRfYml0bWFwKHJ0d2RldiwgXFx1MDAyNmFyZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjgxMC1cXHRcXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jaGFuLmMtMjgxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NoYW4uYzoyODIwOlxcdFxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19tcmNfdXBkX2JpdG1hcChydHdkZXYsIFxcdTAwMjZhcmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY2hhbi5jLTI4MjEtXFx0XFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jPTg3Nz1zdGF0aWMgaW50IF9zZW5kX2Z3X2NtZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IGgyY19jbGFzcywgdTggaDJjX2Z1bmMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy05MDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6OTA2OlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19yYXdfd2l0aF9oZHIocnR3ZGV2LCBoMmNfY2xhc3MsIGgyY19mdW5jLCBwYXJhbSwgbGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTkwNy1cXHRcXHRcXHRcXHRcXHRmYWxzZSwgdHJ1ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYz0yNzcyPXN0YXRpYyB2b2lkIF9md19zZXRfZHJ2X2luZm8oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCB0eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc4Mi1cXHRcXHRpZiAodmVyLVxcdTAwM2VmY3hpbml0ID09IDcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc4MzpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfaW5pdF92NyhydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3ODQtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjI3ODU6XFx0XFx0XFx0cnR3ODlfZndfaDJjX2N4ZHJ2X2luaXQocnR3ZGV2LCB0eXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yNzg2LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjc4OC1cXHRcXHRpZiAodmVyLVxcdTAwM2Vmd2xyb2xlID09IDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc4OTpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfcm9sZShydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTAtXFx0XFx0ZWxzZSBpZiAodmVyLVxcdTAwM2Vmd2xyb2xlID09IDEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5MTpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MShydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTItXFx0XFx0ZWxzZSBpZiAodmVyLVxcdTAwM2Vmd2xyb2xlID09IDIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5MzpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MihydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTQtXFx0XFx0ZWxzZSBpZiAodmVyLVxcdTAwM2Vmd2xyb2xlID09IDcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5NTpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92NyhydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTYtXFx0XFx0ZWxzZSBpZiAodmVyLVxcdTAwM2Vmd2xyb2xlID09IDgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6Mjc5NzpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfcm9sZV92OChydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI3OTgtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODAzLVxcdFxcdGlmICh2ZXItXFx1MDAzZWZjeGN0cmwgPT0gNylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODA0OlxcdFxcdFxcdHJ0dzg5X2Z3X2gyY19jeGRydl9jdHJsX3Y3KHJ0d2RldiwgdHlwZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjgwNS1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6MjgwNjpcXHRcXHRcXHRydHc4OV9md19oMmNfY3hkcnZfY3RybChydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI4MDctXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODIxLVxcdFxcdGRtLVxcdTAwM2V0cnhfaW5mby5uaG0gPSB3bC1cXHUwMDNlbmhtLnB3cjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODIyOlxcdFxcdHJ0dzg5X2Z3X2gyY19jeGRydl90cngocnR3ZGV2LCB0eXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODIzLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjgyNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODI4OlxcdFxcdHJ0dzg5X2Z3X2gyY19jeGRydl9yZmsocnR3ZGV2LCB0eXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy0yODI5LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtMjg0MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzoyODQyOlxcdFxcdHJ0dzg5X2Z3X2gyY19jeGRydl9vc2lfaW5mbyhydHdkZXYsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTI4NDMtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz0yNTA1PXN0YXRpYyB2b2lkIHJ0dzg5X2NhbmNlbF82Z2h6X3Byb2JlX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0yNTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjI1MjE6XFx0XFx0cnR3ODlfZndfaDJjX2RlbF9wa3Rfb2ZmbG9hZChydHdkZXYsIGluZm8tXFx1MDAzZWlkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0yNTIyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9MjYwMD1zdGF0aWMgdm9pZCBydHc4OV9iY25fY2ZnX3RidHRfb2Zmc2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTI2MjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6MjYyNDpcXHRydHc4OV9md19oMmNfdGJ0dF90dW5pbmcocnR3ZGV2LCBydHd2aWZfbGluaywgb2Zmc2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0yNjI1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTMwMzE9c3RhdGljIHZvaWQgcnR3ODlfdmlmX3J4X3N0YXRzX2l0ZXIodm9pZCAqZGF0YSwgdTggKm1hYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTMwODctXFx0XFx0XFx0cnR3ODlfdmlmX3N5bmNfYmNuX3RzZihydHd2aWZfbGluaywgaGRyLCBza2ItXFx1MDAzZWxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6MzA4ODpcXHRcXHRcXHRydHc4OV9md19oMmNfcnNzaV9vZmZsb2FkKHJ0d2RldiwgcGh5X3BwZHUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTMwODktXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTIxNT1zdGF0aWMgYm9vbCBydHc4OV90cmFmZmljX3N0YXRzX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTUyMjktXFx0XFx0cnR3ODlfdmlmX2Zvcl9lYWNoX2xpbmsocnR3dmlmLCBydHd2aWZfbGluaywgbGlua19pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1MjMwOlxcdFxcdFxcdHJ0dzg5X2Z3X2gyY190cF9vZmZsb2FkKHJ0d2RldiwgcnR3dmlmX2xpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTUyMzEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTY1Nj1pbnQgcnR3ODlfY29yZV9zdGFfbGlua19hZGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTcwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NzAxOlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19yb2xlX21haW50YWluKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU3MDItXFx0XFx0XFx0XFx0XFx0XFx0IFJUVzg5X1JPTEVfQ1JFQVRFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU3MjA9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfZGlzYXNzb2Moc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTcyOC1cXHRpZiAodmlmLVxcdTAwM2V0eXBlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJT04pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NzI5OlxcdFxcdHJ0dzg5X2Z3X2gyY19zZXRfYmNuX2ZsdHJfY2ZnKHJ0d2RldiwgcnR3dmlmX2xpbmssIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NzMwLVxcdFxcdHJ0dzg5X2NvcmVfYmNuX3RyYWNrX3Jlc2V0KHJ0d2Rldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01NzM5PWludCBydHc4OV9jb3JlX3N0YV9saW5rX2Rpc2Nvbm5lY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTc2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NzY2OlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19qb2luX2luZm8ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU3NjctXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTc3Mi1cXHQvKiB1cGRhdGUgY2FtIGFpZCBtYWNfaWQgbmV0X3R5cGUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NzczOlxcdHJldCA9IHJ0dzg5X2Z3X2gyY19jYW0ocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmssIE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTc3NC1cXHRcXHRcXHQgICAgICAgUlRXODlfUk9MRV9DT05fRElTQ09OTik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01Nzk5PWludCBydHc4OV9jb3JlX3N0YV9saW5rX2Fzc29jKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU4NDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTg0MTpcXHRyZXQgPSBydHc4OV9md19oMmNfam9pbl9pbmZvKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg0Mi1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODQ3LVxcdC8qIHVwZGF0ZSBjYW0gYWlkIG1hY19pZCBuZXRfdHlwZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4NDg6XFx0cmV0ID0gcnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluaywgTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODQ5LVxcdFxcdFxcdCAgICAgICBSVFc4OV9ST0xFX0NPTl9ESVNDT05OKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU4NzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTg3NjpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluaywgcnR3c3RhX2xpbmstXFx1MDAzZW1hY19pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg3Ny1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4ODI6XFx0XFx0cnR3ODlfZndfaDJjX3NldF9iY25fZmx0cl9jZmcocnR3ZGV2LCBydHd2aWZfbGluaywgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg4My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU4OTQ9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfcmVtb3ZlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU5MTAtXFx0fSBlbHNlIGlmICh2aWYtXFx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfQVAgfHwgc3RhLVxcdTAwM2V0ZGxzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTkxMTpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfcm9sZV9tYWludGFpbihydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01OTEyLVxcdFxcdFxcdFxcdFxcdFxcdCBSVFc4OV9ST0xFX1JFTU9WRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz02NTY1PWludCBydHc4OV9jb3JlX3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY2MjUtXFx0cnR3ODlfYnRjX250ZnlfcmFkaW9fc3RhdGUocnR3ZGV2LCBCVENfUkZDVFJMX1dMX09OKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo2NjI2OlxcdHJ0dzg5X2Z3X2gyY19md19sb2cocnR3ZGV2LCBydHdkZXYtXFx1MDAzZWZ3LmxvZy5lbmFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjY2Mjc6XFx0cnR3ODlfZndfaDJjX2luaXRfYmFfY2FtKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNjYyOC1cXHRydHc4OV90YXNfZndfdGltZXJfZW5hYmxlKHJ0d2RldiwgdHJ1ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz02OTY5PXZvaWQgcnR3ODlfY29yZV9zY2FuX3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY5ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6Njk4NTpcXHRydHc4OV9md19oMmNfY2FtKHJ0d2RldiwgcnR3dmlmX2xpbmssIE5VTEwsIG1hY19hZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTY5ODYtXFx0XFx0XFx0IFJUVzg5X1JPTEVfSU5GT19DSEFOR0UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9Njk4OT12b2lkIHJ0dzg5X2NvcmVfc2Nhbl9jb21wbGV0ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03MDA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjcwMDY6XFx0cnR3ODlfZndfaDJjX2NhbShydHdkZXYsIHJ0d3ZpZl9saW5rLCBOVUxMLCBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTcwMDctXFx0XFx0XFx0IFJUVzg5X1JPTEVfSU5GT19DSEFOR0UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NzExOD1pbnQgcnR3ODlfY29yZV9tbHNyX3N3aXRjaChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWYgKnJ0d3ZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTcxNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NzE3MDpcXHRydHc4OV9md19oMmNfdHhfaGlzdG9yeShydHdkZXYsIHRhcmdldC1cXHUwMDNlbWFjX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03MTcxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jPTM1NDk9c3RhdGljIHNzaXplX3QgcnR3ODlfZGVidWdfcHJpdl9zZW5kX2gyY19zZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM1NjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jOjM1NjE6XFx0cmV0ID0gcnR3ODlfZndfaDJjX3JhdyhydHdkZXYsIGgyYywgaDJjX2xlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM1NjItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9Mzc4MD1ydHc4OV9kZWJ1Z19wcml2X2Z3X2NyYXNoX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtMzc5OC1cXHRcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jOjM3OTk6XFx0XFx0c2ltID0gcnR3ODlfZndfaDJjX3RyaWdnZXJfY3B1X2V4Y2VwdGlvbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtMzgwMC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYz0zOTE4PXN0YXRpYyBzc2l6ZV90IHJ0dzg5X2RlYnVnX3ByaXZfZndfbG9nX21hbnVhbF9zZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM5MzItXFx0XFx0cnR3ODlfZndfbG9nX3ByZXBhcmUocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6MzkzMzpcXHRydHc4OV9md19oMmNfZndfbG9nKHJ0d2RldiwgZndfbG9nX21hbnVhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTM5MzQtb3V0Olxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jPTQ1MjE9cnR3ODlfZGVidWdfcHJpdl9iYl9pbmZvX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNDUzMi1cXHRlbHNlIGlmIChzc2NhbmYoYnVmLCBcXFwibWFjX2lkICV4XFxcIiwgXFx1MDAyNnZhbCkgPT0gMSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6NDUzMzpcXHRcXHRydHc4OV9md19oMmNfdHhfaGlzdG9yeShydHdkZXYsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTQ1MzQtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTcxPXN0YXRpYyBpbnQgX19wYXJzZV9zZWN1cml0eV9zZWN0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy03Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6Nzc6c3RhdGljIHN0cnVjdCBza19idWZmICpydHc4OV9md19oMmNfYWxsb2Nfc2tiKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTMyIGxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNzgtXFx0XFx0XFx0XFx0XFx0ICAgICAgYm9vbCBoZWFkZXIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk2OnN0cnVjdCBza19idWZmICpydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTMyIGxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5ODpcXHRyZXR1cm4gcnR3ODlfZndfaDJjX2FsbG9jX3NrYihydHdkZXYsIGxlbiwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk5LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxMDE6c3RydWN0IHNrX2J1ZmYgKnJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfbm9faGRyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTMyIGxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTAyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAzOlxcdHJldHVybiBydHc4OV9md19oMmNfYWxsb2Nfc2tiKHJ0d2RldiwgbGVuLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwNC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MTcwMT1zdGF0aWMgaW50IF9fcnR3ODlfZndfZG93bmxvYWRfaGRyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xNzEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxNzEzOlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xNzE0LVxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MTc4Mj1zdGF0aWMgaW50IF9fcnR3ODlfZndfZG93bmxvYWRfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMTgxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTgxNzpcXHRcXHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX25vX2hkcihydHdkZXYsIHBrdF9sZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xODE4LVxcdFxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MjIyMD12b2lkIHJ0dzg5X2Z3X2xvZ19kdW1wKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggKmJ1ZiwgdTMyIGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMjYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyMjYxOmludCBydHc4OV9md19oMmNfY2FtKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjI2Mi1cXHRcXHQgICAgIHN0cnVjdCBydHc4OV9zdGFfbGluayAqcnR3c3RhX2xpbmssIGNvbnN0IHU4ICpzY2FuX21hY19hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIyNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjIyNzk6XFx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIyODAtXFx0aWYgKCFza2IpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyMzE3OmludCBydHc4OV9md19oMmNfZGN0bF9zZWNfY2FtX3YxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjMxOC1cXHRcXHRcXHRcXHQgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyMzI2OlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzI3LVxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM1My19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjIzNTQ6RVhQT1JUX1NZTUJPTChydHc4OV9md19oMmNfZGN0bF9zZWNfY2FtX3YxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM1NjppbnQgcnR3ODlfZndfaDJjX2RjdGxfc2VjX2NhbV92MihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzNTctXFx0XFx0XFx0XFx0IHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjM2NTpcXHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjM2Ni1cXHRpZiAoIXNrYikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzOTItfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyMzkzOkVYUE9SVF9TWU1CT0wocnR3ODlfZndfaDJjX2RjdGxfc2VjX2NhbV92Mik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTIzOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjIzOTU6aW50IHJ0dzg5X2Z3X2gyY19kY3RsX3NlY19jYW1fdjMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yMzk2LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI0MDQ6XFx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0MDUtXFx0aWYgKCFza2IpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDMxLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQzMjpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19kY3RsX3NlY19jYW1fdjMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNDM0OmludCBydHc4OV9md19oMmNfZGVmYXVsdF9kbWFjX3RibF92MihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0MzUtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI0NDQ6XFx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIGxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI0NDUtXFx0aWYgKCFza2IpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDg2LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQ4NzpFWFBPUlRfU1lNQk9MKHJ0dzg5X2Z3X2gyY19kZWZhdWx0X2RtYWNfdGJsX3YyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjQ4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjQ4OTppbnQgcnR3ODlfZndfaDJjX2RlZmF1bHRfZG1hY190YmxfdjMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDkwLVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNDk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNDk5OlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNTAwLVxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjU0Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI1NDM6RVhQT1JUX1NZTUJPTChydHc4OV9md19oMmNfZGVmYXVsdF9kbWFjX3RibF92Myk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI1NDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI1NDU6aW50IHJ0dzg5X2Z3X2gyY19iYV9jYW0oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNTQ2LVxcdFxcdFxcdHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjU3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjU3MzpcXHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjU3NC1cXHRpZiAoIXNrYikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2MjItfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNjIzOkVYUE9SVF9TWU1CT0wocnR3ODlfZndfaDJjX2JhX2NhbSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2MjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI2MjU6c3RhdGljIGludCBydHc4OV9md19oMmNfaW5pdF9iYV9jYW1fdjBfZXh0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjYyNi1cXHRcXHRcXHRcXHRcXHQgICB1OCBlbnRyeV9pZHgsIHU4IHVpZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNjMzOlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjM0LVxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjY2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjY2Njp2b2lkIHJ0dzg5X2Z3X2gyY19pbml0X2R5bmFtaWNfYmFfY2FtX3YwX2V4dChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2Njcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2NzMtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGNoaXAtXFx1MDAzZWJhY2FtX2R5bmFtaWNfbnVtOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjY3NDpcXHRcXHRydHc4OV9md19oMmNfaW5pdF9iYV9jYW1fdjBfZXh0KHJ0d2RldiwgZW50cnlfaWR4LCB1aWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjc1LVxcdFxcdGVudHJ5X2lkeCsrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI2NzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI2ODA6aW50IHJ0dzg5X2Z3X2gyY19iYV9jYW1fdjEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNjgxLVxcdFxcdFxcdCAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjcwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MjcwOTpcXHRza2IgPSBydHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjcxMC1cXHRpZiAoIXNrYikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NTYtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNzU3OkVYUE9SVF9TWU1CT0wocnR3ODlfZndfaDJjX2JhX2NhbV92MSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI3NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI3NTk6aW50IHJ0dzg5X2Z3X2gyY19pbml0X2JhX2NhbV91c2VycyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHVzZXJzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNzYwLVxcdFxcdFxcdFxcdCAgIHU4IG9mZnNldCwgdTggbWFjX2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNzY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNzY3OlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yNzY4LVxcdGlmICghc2tiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjc5OC0jZGVmaW5lIEgyQ19MT0dfQ0ZHX0xFTiAxMlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoyNzk5OmludCBydHc4OV9md19oMmNfZndfbG9nKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI4MDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI4MDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjI4MTA6XFx0c2tiID0gcnR3ODlfZndfaDJjX2FsbG9jX3NrYl93aXRoX2hkcihydHdkZXYsIEgyQ19MT0dfQ0ZHX0xFTik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTI4MTEtXFx0aWYgKCFza2IpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0yOTI4PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjk3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6Mjk3ODpzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc5LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzAyNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzAyNTpcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkKHJ0d2RldiwgXFx1MDAyNmluZm8tXFx1MDAzZWlkLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDI2LVxcdGtmcmVlX3NrYihza2IpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTMwNDA9dm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3RfdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDQ4LVxcdFxcdGlmIChub3RpZnlfZncpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwNDk6XFx0XFx0XFx0cnR3ODlfZndfaDJjX2RlbF9wa3Rfb2ZmbG9hZChydHdkZXYsIGluZm8tXFx1MDAzZWlkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA1MC1cXHRcXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MzA1Nz12b2lkIHJ0dzg5X2Z3X3JlbGVhc2VfZ2VuZXJhbF9wa3RfbGlzdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgbm90aWZ5X2Z3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwNzAtI2RlZmluZSBIMkNfR0VORVJBTF9QS1RfSURfVU5EIDB4ZmZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzA3MTppbnQgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA3Mi1cXHRcXHRcXHQgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssIHU4IG1hY2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjMwODA6XFx0cnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDgxLVxcdFxcdFxcdFxcdCAgICAgUlRXODlfUEtUX09GTERfVFlQRV9QU19QT0xMLCBcXHUwMDI2cGt0X2lkX3BzX3BvbGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDgyOlxcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4My1cXHRcXHRcXHRcXHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfTlVMTF9EQVRBLCBcXHUwMDI2cGt0X2lkX251bGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDg0OlxcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4NS1cXHRcXHRcXHRcXHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfUU9TX05VTEwsIFxcdTAwMjZwa3RfaWRfcW9zX251bGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDg3OlxcdHNrYiA9IHJ0dzg5X2Z3X2gyY19hbGxvY19za2Jfd2l0aF9oZHIocnR3ZGV2LCBIMkNfR0VORVJBTF9QS1RfTEVOKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4OC1cXHRpZiAoIXNrYikge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMxMTktI2RlZmluZSBIMkNfTFBTX1BBUk1fTEVOIDhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzEyMDppbnQgcnR3ODlfZndfaDJjX2xwc19wYXJtKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzEyMS1cXHRcXHRcXHQgIHN0cnVjdCBydHc4OV9scHNfcGFybSAqbHBzX3BhcmFtKVxcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjA5OjMwLjcyOTM1NTM5OFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0ODA1Mzg1Njg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRmVhc2liaWxpdHkgb2YgYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBuZWVkIHRvIGtub3cgd2hlcmUgYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGlzIGNhbGxlZC4gSXQgbG9va3MgbGlrZSBpdCdzIGludm9rZWQgYnkgYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAgKHdoaWNoIGlzIGl0c2VsZiBjYWxsZWQgZnJvbSBgcnR3ODlfY29yZV9zdGFfbGlua19hc3NvY2ApLCBgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmVgLCBgcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkYCwgYW5kIGBydHc4OV9md19oMmNfd293X2d0a19vZmxkYC4gVGhpcyBnaXZlcyBtZSBzb21lIGNvbnRleHQsIGJ1dCBub3cgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uOiBpcyB0aGlzIGZ1bmN0aW9uLCBhbmQgYnkgZXh0ZW5zaW9uLCB0aGUgYHJ0dzg5YCBkcml2ZXIgYXMgYSB3aG9sZSwgYW1lbmFibGUgdG8gZnV6emluZyB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgYW5kIHN5emthbGxlcj9cblxuQmVmb3JlIEkganVtcCB0byBjb25jbHVzaW9ucywgSSBuZWVkIHRvIGNvbnN1bHQgdGhlIGZ1enppbmcgZ3VpZGVsaW5lcy4gTGV0IG1lIG1ha2Ugc3VyZSBJJ20gbm90IHdhc3RpbmcgbXkgdGltZSBvbiBzb21ldGhpbmcgdGhhdCBpcyBleHBsaWNpdGx5IGV4Y2x1ZGVkLiBUaGUgZ3VpZGVsaW5lcyBzcGVjaWZpY2FsbHkgY2FsbCBvdXQgbW9kaWZpY2F0aW9ucyB0byBkb2N1bWVudGF0aW9uLCBLY29uZmlnIGZpbGVzLCBkZWNvcmF0aXZlIGxvZ2dpbmcsIGNoYW5nZXMgdG8gbm9uLWZ1bmN0aW9uYWwgY29uc3RhbnRzLCB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgYW5kIGNlcnRhaW4gaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyAoUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBHUFUsIGRyaXZlcnMnIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIHRlYXJkb3duIGNhbGxiYWNrcykuIE5vbmUgb2YgdGhhdCAqaW1tZWRpYXRlbHkqIGp1bXBzIG91dCBhcyBhIGNvbmNlcm4gaGVyZSwgYXNzdW1pbmcgdGhlIGNhbGxzaXRlcyBhcmUgcmVhY2hhYmxlIHdpdGhpbiBhIGZ1enplZCBlbnZpcm9ubWVudC5cblxuTm93LCB0aGUgbWFpbiBxdWVzdGlvbjogY2FuIGBydHc4OWAgZXZlbiBiZSBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBjb250ZXh0PyBJIGtub3cgc29tZSBkcml2ZXJzIHByZXNlbnQgaW1tZWRpYXRlIGNoYWxsZW5nZXMuIFNwZWNpZmljYWxseSwgVVNCIHdpcmVsZXNzIGRyaXZlcnMgYXJlIG9mdGVuIGZ1enphYmxlIGluIExpbnV4LCBwYXJ0aWN1bGFybHkgd2l0aCBzeXprYWxsZXIncyBVU0IgZW11bGF0aW9uIGNhcGFiaWxpdGllcy4gVGhpcyBpcyBnb29kIG5ld3MsIGFzIHN5emthbGxlciBhY3RpdmVseSBmdXp6ZXMgVVNCIHdpcmVsZXNzIG5ldHdvcmsgZHJpdmVycyB1c2luZyB0aGUgZHVtbXlfaGNkL3Jhd19nYWRnZXQgbWV0aG9kcy5cblxuVGhlIGtleSB0aGVuIGJlY29tZXMsIGlzIGBydHc4OWAgYSBVU0IgZHJpdmVyPyBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgb3B0aW9ucyBmb3IgYFJUVzg5X1VTQmAgYW5kIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgbGlrZSBgUlRXODlfODg1MkFVYCwgYFJUVzg5Xzg4NTJCVWAsIGBSVFc4OV84ODUyQ1VgLCBgUlRXODlfODkyMkFVYCwgYFJUVzg5Xzg4NTFCVWAuIFRob3NlIHdvdWxkIHByb3ZpZGUgdGhlIG1vc3QgZGlyZWN0IGluZm9ybWF0aW9uLiBBbHNvLCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGBydHc4OWAgZXZlbiBoYXMgYSBgdXNiLmNgIGZpbGUgaW4gdGhlIGRyaXZlciB0cmVlLiBJIHNob3VsZCBsb29rIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jYCB0byBjb25maXJtIG15IHN1c3BpY2lvbi4gSWYgaXQncyBhIFVTQiBkcml2ZXIsIHRoZSBsaWtlbGlob29kIG9mIHN1Y2Nlc3NmdWwgZnV6emluZyBpcyBzaWduaWZpY2FudGx5IGhpZ2hlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgwMTgsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1ODIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MzUuNTM0NzQ1NzkzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1MDY2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDgwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXFxuICAgMjpcXHQvKiBDb3B5cmlnaHQoYykgMjAyNSAgUmVhbHRlayBDb3Jwb3JhdGlvblxcbiAgIDM6XFx0ICovXFxuICAgNDpcXHRcXG4gICA1OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC91c2IuaFxcdTAwM2VcXG4gICA2OlxcdCNpbmNsdWRlIFxcXCJkZWJ1Zy5oXFxcIlxcbiAgIDc6XFx0I2luY2x1ZGUgXFxcIm1hYy5oXFxcIlxcbiAgIDg6XFx0I2luY2x1ZGUgXFxcInJlZy5oXFxcIlxcbiAgIDk6XFx0I2luY2x1ZGUgXFxcInR4cnguaFxcXCJcXG4gIDEwOlxcdCNpbmNsdWRlIFxcXCJ1c2IuaFxcXCJcXG4gIDExOlxcdFxcbiAgMTI6XFx0c3RhdGljIHZvaWQgcnR3ODlfdXNiX3JlYWRfcG9ydF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpO1xcbiAgMTM6XFx0XFxuICAxNDpcXHRzdGF0aWMgdm9pZCBfX3J0dzg5X3VzYl92ZW5kb3JyZXEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1MzIgYWRkcixcXG4gIDE1OlxcdFxcdFxcdFxcdFxcdCAgdm9pZCAqZGF0YSwgdTE2IGxlbiwgdTggcmVxdHlwZSwgYm9vbCB3YXJuKVxcbiAgMTY6XFx0e1xcbiAgMTc6XFx0XFx0c3RydWN0IHJ0dzg5X3VzYiAqcnR3dXNiID0gcnR3ODlfdXNiX3ByaXYocnR3ZGV2KTtcXG4gIDE4OlxcdFxcdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gcnR3dXNiLVxcdTAwM2V1ZGV2O1xcbiAgMTk6XFx0XFx0dW5zaWduZWQgaW50IHBpcGU7XFxuICAyMDpcXHRcXHR1MTYgdmFsdWUsIGluZGV4O1xcbiAgMjE6XFx0XFx0aW50IGF0dGVtcHQsIHJldDtcXG4gIDIyOlxcdFxcbiAgMjM6XFx0XFx0aWYgKHRlc3RfYml0KFJUVzg5X0ZMQUdfVU5QTFVHR0VELCBydHdkZXYtXFx1MDAzZWZsYWdzKSlcXG4gIDI0OlxcdFxcdFxcdHJldHVybjtcXG4gIDI1OlxcdFxcbiAgMjY6XFx0XFx0dmFsdWUgPSB1MzJfZ2V0X2JpdHMoYWRkciwgR0VOTUFTSygxNSwgMCkpO1xcbiAgMjc6XFx0XFx0aW5kZXggPSB1MzJfZ2V0X2JpdHMoYWRkciwgR0VOTUFTSygyMywgMTYpKTtcXG4gIDI4OlxcdFxcbiAgMjk6XFx0XFx0Zm9yIChhdHRlbXB0ID0gMDsgYXR0ZW1wdCBcXHUwMDNjIDEwOyBhdHRlbXB0KyspIHtcXG4gIDMwOlxcdFxcdFxcdCpydHd1c2ItXFx1MDAzZXZlbmRvcl9yZXFfYnVmID0gMDtcXG4gIDMxOlxcdFxcbiAgMzI6XFx0XFx0XFx0aWYgKHJlcXR5cGUgPT0gUlRXODlfVVNCX1ZFTlFUX1JFQUQpIHtcXG4gIDMzOlxcdFxcdFxcdFxcdHBpcGUgPSB1c2JfcmN2Y3RybHBpcGUodWRldiwgMCk7XFxuICAzNDpcXHRcXHRcXHR9IGVsc2UgeyAvKiBSVFc4OV9VU0JfVkVOUVRfV1JJVEUgKi9cXG4gIDM1OlxcdFxcdFxcdFxcdHBpcGUgPSB1c2Jfc25kY3RybHBpcGUodWRldiwgMCk7XFxuICAzNjpcXHRcXG4gIDM3OlxcdFxcdFxcdFxcdG1lbWNweShydHd1c2ItXFx1MDAzZXZlbmRvcl9yZXFfYnVmLCBkYXRhLCBsZW4pO1xcbiAgMzg6XFx0XFx0XFx0fVxcbiAgMzk6XFx0XFxuICA0MDpcXHRcXHRcXHRyZXQgPSB1c2JfY29udHJvbF9tc2codWRldiwgcGlwZSwgUlRXODlfVVNCX1ZFTlFULCByZXF0eXBlLFxcbiAgNDE6XFx0XFx0XFx0XFx0XFx0ICAgICAgdmFsdWUsIGluZGV4LCBydHd1c2ItXFx1MDAzZXZlbmRvcl9yZXFfYnVmLFxcbiAgNDI6XFx0XFx0XFx0XFx0XFx0ICAgICAgbGVuLCA1MDApO1xcbiAgNDM6XFx0XFxuICA0NDpcXHRcXHRcXHRpZiAocmV0ID09IGxlbikgeyAvKiBTdWNjZXNzICovXFxuICA0NTpcXHRcXHRcXHRcXHRhdG9taWNfc2V0KFxcdTAwMjZydHd1c2ItXFx1MDAzZWNvbnRpbnVhbF9pb19lcnJvciwgMCk7XFxuICA0NjpcXHRcXG4gIDQ3OlxcdFxcdFxcdFxcdGlmIChyZXF0eXBlID09IFJUVzg5X1VTQl9WRU5RVF9SRUFEKVxcbiAgNDg6XFx0XFx0XFx0XFx0XFx0bWVtY3B5KGRhdGEsIHJ0d3VzYi1cXHUwMDNldmVuZG9yX3JlcV9idWYsIGxlbik7XFxuICA0OTpcXHRcXG4gIDUwOlxcdFxcdFxcdFxcdGJyZWFrO1xcbiAgNTE6XFx0XFx0XFx0fVxcbiAgNTI6XFx0XFxuICA1MzpcXHRcXHRcXHRpZiAocmV0ID09IC1FU0hVVERPV04gfHwgcmV0ID09IC1FTk9ERVYpXFxuICA1NDpcXHRcXHRcXHRcXHRzZXRfYml0KFJUVzg5X0ZMQUdfVU5QTFVHR0VELCBydHdkZXYtXFx1MDAzZWZsYWdzKTtcXG4gIDU1OlxcdFxcdFxcdGVsc2UgaWYgKHJldCBcXHUwMDNjIDAgXFx1MDAyNlxcdTAwMjYgd2FybilcXG4gIDU2OlxcdFxcdFxcdFxcdHJ0dzg5X3dhcm4ocnR3ZGV2LFxcbiAgNTc6XFx0XFx0XFx0XFx0XFx0ICAgXFxcInVzYiAlcyV1IDB4JXggZmFpbCByZXQ9JWQgdmFsdWU9MHgleCBhdHRlbXB0PSVkXFxcXG5cXFwiLFxcbiAgNTg6XFx0XFx0XFx0XFx0XFx0ICAgc3RyX3JlYWRfd3JpdGUocmVxdHlwZSA9PSBSVFc4OV9VU0JfVkVOUVRfUkVBRCksXFxuICA1OTpcXHRcXHRcXHRcXHRcXHQgICBsZW4gKiA4LCBhZGRyLCByZXQsXFxuICA2MDpcXHRcXHRcXHRcXHRcXHQgICBsZTMyX3RvX2NwdXAocnR3dXNiLVxcdTAwM2V2ZW5kb3JfcmVxX2J1ZiksXFxuICA2MTpcXHRcXHRcXHRcXHRcXHQgICBhdHRlbXB0KTtcXG4gIDYyOlxcdFxcdFxcdGVsc2UgaWYgKHJldCBcXHUwMDNlIDAgXFx1MDAyNlxcdTAwMjYgcmVxdHlwZSA9PSBSVFc4OV9VU0JfVkVOUVRfUkVBRClcXG4gIDYzOlxcdFxcdFxcdFxcdG1lbWNweShkYXRhLCBydHd1c2ItXFx1MDAzZXZlbmRvcl9yZXFfYnVmLCBsZW4pO1xcbiAgNjQ6XFx0XFxuICA2NTpcXHRcXHRcXHRpZiAoYXRvbWljX2luY19yZXR1cm4oXFx1MDAyNnJ0d3VzYi1cXHUwMDNlY29udGludWFsX2lvX2Vycm9yKSBcXHUwMDNlIDQpIHtcXG4gIDY2OlxcdFxcdFxcdFxcdHNldF9iaXQoUlRXODlfRkxBR19VTlBMVUdHRUQsIHJ0d2Rldi1cXHUwMDNlZmxhZ3MpO1xcbiAgNjc6XFx0XFx0XFx0XFx0YnJlYWs7XFxuICA2ODpcXHRcXHRcXHR9XFxuICA2OTpcXHRcXHR9XFxuICA3MDpcXHR9XFxuICA3MTpcXHRcXG4gIDcyOlxcdHN0YXRpYyB2b2lkIHJ0dzg5X3VzYl92ZW5kb3JyZXEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1MzIgYWRkcixcXG4gIDczOlxcdFxcdFxcdFxcdFxcdHZvaWQgKmRhdGEsIHUxNiBsZW4sIHU4IHJlcXR5cGUpXFxuICA3NDpcXHR7XFxuICA3NTpcXHRcXHRfX3J0dzg5X3VzYl92ZW5kb3JyZXEocnR3ZGV2LCBhZGRyLCBkYXRhLCBsZW4sIHJlcXR5cGUsIHRydWUpO1xcbiAgNzY6XFx0fVxcbiAgNzc6XFx0XFxuICA3ODpcXHRzdGF0aWMgdTMyIHJ0dzg5X3VzYl9yZWFkX2NtYWMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1MzIgYWRkcilcXG4gIDc5OlxcdHtcXG4gIDgwOlxcdFxcdHUzMiBhZGRyMzIsIHZhbDMyLCBzaGlmdDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6MzUuNTM0ODk4NjMzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjYyMzE4NjAyOTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSVFc4OSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIFJUVzg5IGRyaXZlciwgc3BlY2lmaWNhbGx5IHRoZSBgZncuY2AgZmlsZS4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyBhYm91dCBSVFc4OSdzIFVTQiBzdXBwb3J0LCBhbmQgaG93IHdlIGNvdWxkIHBvdGVudGlhbGx5IGVtdWxhdGUgd2lyZWxlc3MgVVNCIGFkYXB0ZXJzIHVzaW5nIFVTQiBnYWRnZXRzLCBidXQgdGhhdCdzIG5vdCB0aGUgZm9jdXMgaGVyZS4gVGhlIHBhdGNoIGl0c2VsZiBpcyB3aGF0IGludGVyZXN0cyBtZS4gTGV0J3MgZGlnIGluLlxuXG5UaGUgZGlmZiBpbnRyb2R1Y2VzIGEgc21hbGwgYnV0IGNydWNpYWwgY2hhbmdlIHRvIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YC4gSXQgc2VlbXMgbGlrZSBlcnJvciBoYW5kbGluZyBpcyBiZWluZyBpbXByb3ZlZC4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggYWRkcyBleHBsaWNpdCBlcnJvciByZXR1cm5zIGZvciBjYXNlcyB3aGVyZSB0aGUgYHN3aXRjaGAgc3RhdGVtZW50IGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBoaXRzIHRoZSBgZGVmYXVsdGAgY2FzZSBhbmQgd2hlbiBgc2tiYCBpcyBOVUxMLiBCZWZvcmUsIHRoZXNlIGNhc2VzIHdvdWxkIGhhdmUgcmVzdWx0ZWQgaW4gYW4gYC1FTk9NRU1gIHJldHVybiwgd2hpY2ggd2Fzbid0IGZ1bGx5IGFjY3VyYXRlIGluIHRoZSBmaXJzdCBjYXNlLiBOb3csIGAtRUlOVkFMYCBpcyByZXR1cm5lZCBmb3IgaW52YWxpZCBwYWNrZXQgdHlwZXMgYW5kIGAtRU5PTUVNYCBmb3IgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZXMsIG1ha2luZyBkZWJ1Z2dpbmcgZWFzaWVyLlxuXG5OZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgY2hhbmdlLCBzbyBJJ20gY2hlY2tpbmcgdGhlIGNhbGxlcnMgb2YgYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3RgIGFzIHdlbGwgYXMgZnVuY3Rpb25zIHRoYXQgY2FsbCBpdC4gVGhlIHBsYW4gaXMgdG8gc2VlIGhvdyB0aGlzIG1vZGlmaWVkIGVycm9yIGhhbmRsaW5nIHJpcHBsZXMgdGhyb3VnaCB0aGUgZHJpdmVyLiBJJ3ZlIGZvdW5kIHRoYXQgYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAsIGBydHc4OV9md19oMmNfa2VlcF9hbGl2ZWAsIGBydHc4OV9md19oMmNfYXJwX29mZmxvYWRgIGFuZCBgcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZGAgYXJlIGFsbCBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uIE5vdywgSSBuZWVkIHRvIGNoZWNrIHdoZXJlIHRob3NlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGZsb3cgYW5kIGVuc3VyZSBhbnkgcG90ZW50aWFsIGlzc3VlcyBmcm9tIHRoZSB1cGRhdGVkIGVycm9yIGNvZGVzIGFyZSBjYXVnaHQgYW5kIGhhbmRsZWQgYXBwcm9wcmlhdGVseS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA1NzEsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTQxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6NDEuNzY2NzYyNDI0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTI4NzAxMTU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg5X2Z3X2gyY18oa2VlcF9hbGl2ZXxhcnBfb2ZmbG9hZHx3b3dfZ3RrX29mbGR8Z2VuZXJhbF9wa3QpXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU3OTk9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfYXNzb2Moc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTg3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1ODc2OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluay1cXHUwMDNlbWFjX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODc3LVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0zMDU3PXZvaWQgcnR3ODlfZndfcmVsZWFzZV9nZW5lcmFsX3BrdF9saXN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBub3RpZnlfZncpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA3MC0jZGVmaW5lIEgyQ19HRU5FUkFMX1BLVF9JRF9VTkQgMHhmZlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDcxOmludCBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDcyLVxcdFxcdFxcdCAgICAgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluaywgdTggbWFjaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9OTU2ND1pbnQgcnR3ODlfZndfaDJjX3BrdF9kcm9wKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjI2LSNkZWZpbmUgSDJDX0tFRVBfQUxJVkVfTEVOIDRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6OTYyNzppbnQgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjI4LVxcdFxcdFxcdCAgICBib29sIGVuYWJsZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05Njc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5Njc1OmludCBydHc4OV9md19oMmNfYXJwX29mZmxvYWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05Njc2LVxcdFxcdFxcdCAgICAgYm9vbCBlbmFibGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MTAwNDA9RVhQT1JUX1NZTUJPTChydHc4OV9md19oMmNfd293X2NhbV91cGRhdGVfdjEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xMDA0MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MTAwNDI6aW50IHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0xMDA0My1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oPTU0NTE9dm9pZCBydHc4OV9md19mcmVlX2FsbF9lYXJseV9oMmMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3Lmg6NTQ1MjppbnQgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmgtNTQ1My1cXHRcXHRcXHQgICAgIHU4IG1hY2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaD01NTI4PWludCBydHc4OV9md19oMmNfY2ZnX3BubyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oLTU1MjktXFx0XFx0XFx0IGJvb2wgZW5hYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3Lmg6NTUzMDppbnQgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC01NTMxLVxcdFxcdFxcdCAgICBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oOjU1MzI6aW50IHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oLTU1MzMtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLCBib29sIGVuYWJsZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3Lmg9NTU0Mj1pbnQgcnR3ODlfZndfaDJjX3dvd19jYW1fdXBkYXRlX3YxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmgtNTU0My1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3ODlfd293X2NhbV9pbmZvICpjYW1faW5mbyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oOjU1NDQ6aW50IHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC01NTQ1LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jPTEyNjA9c3RhdGljIGludCBydHc4OV93b3dfc3dhcF9mdyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgd293KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xMzMzLVxcdGlmIChpc19jb25uKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYzoxMzM0OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluay1cXHUwMDNlbWFjX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTEzMzUtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYz0xNTU4PXN0YXRpYyBpbnQgcnR3ODlfd293X2Z3X3N0YXJ0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jOjE1ODA6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2tlZXBfYWxpdmUocnR3ZGV2LCBydHd2aWZfbGluaywgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNTgxLVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTU5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jOjE1OTI6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZChydHdkZXYsIHJ0d3ZpZl9saW5rLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE1OTMtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNTk3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTU5ODpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfYXJwX29mZmxvYWQocnR3ZGV2LCBydHd2aWZfbGluaywgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNTk5LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jPTE2MjY9c3RhdGljIGludCBydHc4OV93b3dfZndfc3RvcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYzoxNjQ5OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlKHJ0d2RldiwgcnR3dmlmX2xpbmssIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NTAtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNjYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTY2MTpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfd293X2d0a19vZmxkKHJ0d2RldiwgcnR3dmlmX2xpbmssIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3dvdy5jLTE2NjItXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS93b3cuYy0xNjY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmM6MTY2NzpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfYXJwX29mZmxvYWQocnR3ZGV2LCBydHd2aWZfbGluaywgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvd293LmMtMTY2OC1cXHRcXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzowOTo0NC4yOTU0NjgwM1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1MjAyNjg3NzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgcnR3ODkgRmlybXdhcmUgSDJDIFBhY2tldCBIYW5kbGluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEknbSBmb2N1c2luZyBvbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAsIHdoaWNoIEkgc2VlIGlzIGEgc3RhdGljIGhlbHBlciBmdW5jdGlvbiByZXNpZGluZyB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY2AuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHVuZGVyc3RhbmRpbmcgaXRzIHVzYWdlIOKAkyB3aGF0IG90aGVyIGZ1bmN0aW9ucyAqZGlyZWN0bHkqIGNhbGwgaXQ/IExvb2tpbmcgYXQgdGhlIGNvZGUsIGl0J3MgY2FsbGVkIGJ5IGBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RgLCBgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmVgLCBgcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkYCwgYW5kIGBydHc4OV9md19oMmNfd293X2d0a19vZmxkYC4gVGhpcyBnaXZlcyBtZSBhIGdvb2Qgb3ZlcnZpZXcgb2YgaG93IGl0J3MgaW50ZWdyYXRlZCB3aXRoaW4gdGhlIGRyaXZlcidzIEgyQyAoSG9zdCB0byBDb250cm9sbGVyKSBwYWNrZXQgbWVjaGFuaXNtLlxuXG5OZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYnVpbGQgY29uZmlndXJhdGlvbi4gSSBoYXZlIHRvIG1ha2Ugc3VyZSB0aGUgZHJpdmVyIGNhbiBldmVuIGJlIGNvbXBpbGVkLCBhbmQgSSB3YW50IHRvIGtub3cgd2hpY2ggY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSByZXF1aXJlZCBvciBlbmFibGVkLiBDaGVja2luZyB0aGUgYEtjb25maWdgIGZpbGUgaW4gdGhhdCBkaXJlY3RvcnkgaXMga2V5LiBGcm9tIGEgcXVpY2sgZ2xhbmNlLCBJIHNlZSBgQ09ORklHX1JUVzg5YCBhcyB0aGUgcm9vdCwgZm9sbG93ZWQgYnkgYENPTkZJR19SVFc4OV9DT1JFYCAod2hpY2ggaXMgdHlwaWNhbGx5IHNlbGVjdGVkIGJ5IHRoZSBkZXZpY2UgZHJpdmVycyksIGFuZCB0aGVuIGVpdGhlciBgQ09ORklHX1JUVzg5X1VTQmAgb3IgYENPTkZJR19SVFc4OV9QQ0lgIGRlcGVuZGluZyBvbiB0aGUgaW50ZXJmYWNlLiBGdXJ0aGVyIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gdHJlZSwgSSBzZWUgZGV2aWNlLXNwZWNpZmljIG9wdGlvbnMgc3VjaCBhcyBgQ09ORklHX1JUVzg5Xzg4NTJBVWAsIGBDT05GSUdfUlRXODlfODg1MkFFYCwgYENPTkZJR19SVFc4OV84ODUyQkVgLCBldGMuIEl0IHNlZW1zIGxpa2UgdGhlIHZhcmlvdXMgY2hpcHNldHMgb3IgaGFyZHdhcmUgcmV2aXNpb25zIG5lZWQgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgdG8gYmUgc3VwcG9ydGVkLlxuXG5CZWZvcmUgZ29pbmcgZGVlcGVyIGludG8gdGhlIHNwZWNpZmljIG9wdGlvbnMsIGxldCBtZSBkb3VibGUtY2hlY2sgdGhlIEtjb25maWcgZmlsZSB0byBjb25maXJtIHdoZXRoZXIgdGhlIGRldmljZS1zcGVjaWZpYyBvcHRpb25zIHN1Y2ggYXMgYFJUVzg5Xzg4NTJBVWAsIGBSVFc4OV84ODUxQlVgLCBgUlRXODlfODg1MkJVYCwgYFJUVzg5Xzg4NTJDVWAgb3IgYFJUVzg5Xzg5MjJBVWAgYXJlIGFsc28gY29ycmVjdGx5IGRlZmluZWQuIEl0J3MgY3J1Y2lhbCB0byBjb25maXJtIHRob3NlIGRlcGVuZGVuY2llcyBiZWZvcmUgYXNzdW1pbmcgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb25zLiBPbmNlIEkgY29uZmlybSB0aGVtLCBJIHdpbGwgaGF2ZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVyJ3MgYnVpbGQgcHJvY2VzcyBhbmQgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1MDM5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjA5OjQ5LjQ5ODE1ODEwOVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODY5NDE1MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFJUVzg5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjptZW51Y29uZmlnIFJUVzg5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODAyLjExYXggd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz0xMT1pZiBSVFc4OVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM6Y29uZmlnIFJUVzg5X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTc6Y29uZmlnIFJUVzg5X1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xOC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjA6Y29uZmlnIFJUVzg5X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjM6Y29uZmlnIFJUVzg5Xzg4NTFCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI0LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyNjpjb25maWcgUlRXODlfODg1MkFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjctXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI5OmNvbmZpZyBSVFc4OV84ODUyQl9DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzAtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OV84ODUyQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zMy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MzU6Y29uZmlnIFJUVzg5Xzg4NTJCVFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNi1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Mzg6Y29uZmlnIFJUVzg5Xzg4NTJDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM5LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0MTpjb25maWcgUlRXODlfODkyMkFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDItXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQ0OmNvbmZpZyBSVFc4OV84ODUxQkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDUtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MUJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1NTpjb25maWcgUlRXODlfODg1MUJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU2LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NjY6Y29uZmlnIFJUVzg5Xzg4NTJBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02Ny1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjc3OmNvbmZpZyBSVFc4OV84ODUyQVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo4ODpjb25maWcgUlRXODlfODg1MkJFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTg5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy05OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTAwOmNvbmZpZyBSVFc4OV84ODUyQlVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAxLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExMjpjb25maWcgUlRXODlfODg1MkJURVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMTMtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkJFLVZUIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTI0OmNvbmZpZyBSVFc4OV84ODUyQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTI1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNkUpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMzU6Y29uZmlnIFJUVzg5Xzg4NTJDVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzYtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE0Njpjb25maWcgUlRXODlfODkyMkFFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE0Ny1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4OTIyQUUvODkyMkFFLVZTIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTYwOmNvbmZpZyBSVFc4OV84OTIyQVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTYxLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg5MjJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNykgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3Mjpjb25maWcgUlRXODlfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTczLVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzU6Y29uZmlnIFJUVzg5X0RFQlVHTVNHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3Ni1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg5IGRlYnVnIG1lc3NhZ2Ugc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE4NDpjb25maWcgUlRXODlfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODUtXFx0Ym9vbCBcXFwiUmVhbHRlayBydHc4OSBkZWJ1Z2ZzIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjA5OjQ5LjU4NTEwODk0OFoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2MTA1Njk0NjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBSZWFsdGVrIEtjb25maWcgZm9yIFJUVzg5IERlcGVuZGVuY2llcyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgYFJUVzg5YCBtb2R1bGUuIFdoZXJlIGRvIEkgc3RhcnQ/IFRoZSBiZXN0IHBsYWNlIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYnVpbGQgY29uZmlndXJhdGlvbiBpcyBhbHdheXMgdGhlIGBLY29uZmlnYCBmaWxlLCBwYXJ0aWN1bGFybHkgdGhlIG9uZSBpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWtgIGRpcmVjdG9yeS4gVGhhdCdzIHVzdWFsbHkgdGhlIGF1dGhvcml0YXRpdmUgc291cmNlIGZvciB0aGVzZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlcnMuIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIGZpbGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvS2NvbmZpZ2AgdG8gc2VlIGV4YWN0bHkgd2hhdCBvdGhlciBvcHRpb25zIG9yIGZlYXR1cmVzIG5lZWQgdG8gYmUgZW5hYmxlZCBvciBhcmUgcmVxdWlyZWQgZm9yIGBSVFc4OWAgdG8gZnVuY3Rpb24gY29ycmVjdGx5IHdpdGhpbiB0aGUga2VybmVsIGJ1aWxkLiBUaGlzIEtjb25maWcgZmlsZSB3aWxsIGJlIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgZnVsbCBzY29wZSBvZiB3aGF0IEknbSB3b3JraW5nIHdpdGggYW5kIHdoYXQgb3RoZXIgY29tcG9uZW50cyBtaWdodCBuZWVkIGF0dGVudGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDgyNTMsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzowOTo1NS42OTA4MDU3MloiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg2NzQ5NTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNvdXJjZS4qcnR3ODkvS2NvbmZpZ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL0tjb25maWc9MTg9c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9LY29uZmlnOjE5OnNvdXJjZSBcXFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvS2NvbmZpZy0yMC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6NTUuODc3NTYwNDA3WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI4NDAzODk5NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhvdWdodHM6XG5cbioqRXhhbWluaW5nIHRoZSBSVFc4OSBLY29uZmlnIEZpbGUqKlxuXG5Pa2F5LCB0aW1lIHRvIGRpdmUgaW50byB0aGUgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIgY29uZmlndXJhdGlvbi4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHJldmlld2luZyB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IGxpbmVzIDEgdGhyb3VnaCAyMC4gSSB3YW50IHRvIHF1aWNrbHkgcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvZmZlcmVkIGJ5IHRoaXMgZHJpdmVyLiBXaGF0IGFyZSB0aGUgZXNzZW50aWFsIGZlYXR1cmUgZmxhZ3M/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBkZXBlbmRlbmNpZXMgb3IgY29uZGl0aW9uYWwgc2V0dGluZ3MgSSBzaG91bGQga2VlcCBpbiBtaW5kIGFzIEkgc3RhcnQgdG8gY29uZmlndXJlIHRoaXMgbW9kdWxlIGZvciBhIHBhcnRpY3VsYXIgdXNlIGNhc2U/IEknbSBob3BpbmcgdG8gZ2V0IGEgcXVpY2sgb3ZlcnZpZXcgb2YgdGhlIGtleSBrbm9icyBhbmQgbGV2ZXJzIGJlZm9yZSBnZXR0aW5nIGJvZ2dlZCBkb3duIGluIHRoZSBtb3JlIGdyYW51bGFyIGRldGFpbHMgZnVydGhlciBkb3duIGluIHRoZSBmaWxlLiBFc3NlbnRpYWxseSwgSSdtIHNldHRpbmcgdGhlIHN0YWdlIGZvciBhIG1vcmUgZm9jdXNlZCBhbmFseXNpcyBsYXRlciBvbi4gTGV0J3Mgc2VlIHdoYXQgdGhlc2UgaW5pdGlhbCBsaW5lcyByZXZlYWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NTk3LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6NTguNzE3OTU0MTA3WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNDAxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxcbiAgIDI6XFx0bWVudWNvbmZpZyBSVFc4OVxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODAyLjExYXggd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFxcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gICA1OlxcdFxcdGhlbHBcXG4gICA2OlxcdFxcdCAgVGhpcyBtb2R1bGUgYWRkcyBzdXBwb3J0IGZvciBtYWM4MDIxMS1iYXNlZCB3aXJlbGVzcyBkcml2ZXJzIHRoYXRcXG4gICA3OlxcdFxcdCAgZW5hYmxlcyBSZWFsdGVrIElFRUUgODAyLjExYXggd2lyZWxlc3MgY2hpcHNldHMuXFxuICAgODpcXHRcXG4gICA5OlxcdFxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkIHJ0dzg5LlxcbiAgMTA6XFx0XFxuICAxMTpcXHRpZiBSVFc4OVxcbiAgMTI6XFx0XFxuICAxMzpcXHRjb25maWcgUlRXODlfQ09SRVxcbiAgMTQ6XFx0XFx0dHJpc3RhdGVcXG4gIDE1OlxcdFxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbiAgMTY6XFx0XFxuICAxNzpcXHRjb25maWcgUlRXODlfUENJXFxuICAxODpcXHRcXHR0cmlzdGF0ZVxcbiAgMTk6XFx0XFxuICAyMDpcXHRjb25maWcgUlRXODlfVVNCXFxuICAyMTpcXHRcXHR0cmlzdGF0ZVxcbiAgMjI6XFx0XFxuICAyMzpcXHRjb25maWcgUlRXODlfODg1MUJcXG4gIDI0OlxcdFxcdHRyaXN0YXRlXFxuICAyNTpcXHRcXG4gIDI2OlxcdGNvbmZpZyBSVFc4OV84ODUyQVxcbiAgMjc6XFx0XFx0dHJpc3RhdGVcXG4gIDI4OlxcdFxcbiAgMjk6XFx0Y29uZmlnIFJUVzg5Xzg4NTJCX0NPTU1PTlxcbiAgMzA6XFx0XFx0dHJpc3RhdGVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MDk6NTguNzE4MDU5OTc3WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEwODU0OTA2MzA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBSZWFsdGVrIFJUVzg5IEZpcm13YXJlIEgyQyBQYWNrZXQgSGFuZGxpbmcqKlxuXG5Pa2F5LCBzbyBoZXJlJ3Mgd2hhdCBJJ3ZlIGdvdCBzbyBmYXIuIEknbSBsb29raW5nIGF0IHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgUlRXODkgZHJpdmVyLiBgUlRXODlgIHJlbGllcyBvbiBgTUFDODAyMTFgLCB3aGljaCBpcyBzdGFuZGFyZC4gU3BlY2lmaWNhbGx5LCBJJ20gc2VlaW5nIGEgYnVuY2ggb2YgZGV2aWNlLXNwZWNpZmljIG9wdGlvbnMgbGlrZSBgUlRXODlfODg1MkFVYCwgYFJUVzg5Xzg4NTJBRWAsIGFuZCBzbyBvbiwgYW5kIHRoZXNlIGFyZSB0aWVkIHRvIGVpdGhlciBVU0Igb3IgUENJIGludGVyZmFjZXMuIFdoZW4gb25lIG9mIHRoZXNlIGRldmljZS1zcGVjaWZpYyBvcHRpb25zLCBsaWtlIGBSVFc4OV84ODUyQVVgLCBpcyBlbmFibGVkLCBpdCBwdWxscyBpbiBgUlRXODlfQ09SRWAsIGBSVFc4OV9VU0JgLCBhbmQgYFJUVzg5Xzg4NTJBYC4gVGhhdCBnaXZlcyBtZSBhIGdvb2QgaWRlYSBvZiB0aGUgYnVpbGQgY29uZmlndXJhdGlvbiBsYW5kc2NhcGUuXG5cbk5leHQsIEkgemVyb2VkIGluIG9uIHRoZSBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAgZnVuY3Rpb24uIFRoaXMgaXMgYSBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgSDJDIHBhY2tldCBoYW5kbGluZywgYW5kIEkndmUgaWRlbnRpZmllZCBzZXZlcmFsIG5vbi1zdGF0aWMgY2FsbGVycyBvciBlbnRyeXBvaW50czogYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAsIGBydHc4OV9md19oMmNfa2VlcF9hbGl2ZWAsIGBydHc4OV9md19oMmNfYXJwX29mZmxvYWRgLCBhbmQgYHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGRgLiBTbywgdGhvc2UgYXJlIHRoZSBtYWluIGZ1bmN0aW9ucyB0aGF0IGNhbGwgaW50byB0aGUgaGVscGVyLlxuXG5EaWdnaW5nIGRlZXBlciwgSSBsb29rZWQgZm9yIG90aGVyIHJlbGF0ZWQgZnVuY3Rpb25zLiBJJ3ZlIGZvdW5kIHRoYXQgYHJ0dzg5X2NvcmVfc3RhX2xpbmtfYXNzb2NgIGNhbGxzIGBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RgLiBBbHNvLCBgcnR3ODlfd293X2Z3X3N0YXJ0YCBhbmQgYHJ0dzg5X3dvd19md19zdG9wYCBib3RoIGNhbGwgYHJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlYCwgYHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGRgLCBhbmQgYHJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZGAuIGBydHc4OV93b3dfc3dhcF9md2AgY2FsbHMgYHJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdGAgYXMgd2VsbC4gU2VlbXMgbGlrZSB0aGVzZSBXb1cgKFdha2Utb24tV2lyZWxlc3MpIGZ1bmN0aW9uYWxpdGllcyBhcmUga2V5IHBsYXllcnMgaGVyZSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuXG5cbk5vdywgdGhlIHJlYWxseSBpbnRlcmVzdGluZyBwYXJ0OiBJJ20gY2xhc3NpZnlpbmcgdGhpcyBhcyBhIGZ1bmN0aW9uYWwgbG9naWMgbW9kaWZpY2F0aW9uIGJlY2F1c2UgdGhlIGVycm9yIGhhbmRsaW5nIGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBhbmQgaXRzIGNhbGxlcnMgaXMgY2hhbmdpbmcuIFByZXZpb3VzbHksIGFueSBlcnJvciBqdXN0IHJldHVybmVkIGAtRU5PTUVNYC4gTm93LCB0aGUgcGF0Y2ggKnByZXNlcnZlcyogdGhlIGVycm9yIHJldHVybiBjb2RlIChgcmV0YCkgZnJvbSBhIG5lc3RlZCBjYWxsIHRvIGBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkYC4gSWYgdGhhdCBuZXN0ZWQgY2FsbCByZXR1cm5zIGFueXRoaW5nIG90aGVyIHRoYW4gLUVOT01FTSAoZS5nLiAtRUJVU1ksIC1FSU5WQUwpLCB0aGVuIHRoYXQgZXJyb3IgaXMgcmVzcGVjdGVkLCBidXQgLUVOT01FTSBpcyBzdGlsbCByZXR1cm5lZCBpZiBubyBTS0IuIFRoaXMgaXMgaW1wb3J0YW50IHRvIG5vdGUgc2luY2UgaXQgY2hhbmdlcyBob3cgcG90ZW50aWFsIGlzc3VlcyBhcmUgcHJvcGFnYXRlZCB1cCB0aGUgc3RhY2ssIGFuZCBpdCdzIHNvbWV0aGluZyBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIGZvciBmdXp6aW5nLiBBbHNvLCBpdCdzIGdvb2QgdG8ga25vdyB0aGlzIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIFVTQiBlbnZpcm9ubWVudHMgbGlrZSB0aG9zZSB1c2VkIGJ5IHN5emthbGxlci5cblxuRmluYWxseSwganVzdCB0byBiZSBzdXJlLCBJJ3ZlIGNoZWNrZWQgdGhlIHJlbGV2YW50IGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuICBJJ3ZlIGNvbmZpcm1lZCB0aGF0IHRoZSBjcml0aWNhbCBjb25maWdzIChgUlRXODlgLCBgUlRXODlfQ09SRWAsIGBSVFc4OV9QQ0lgLCBgUlRXODlfVVNCYCwgYFJUVzg5Xzg4NTJBVWAsIGBSVFc4OV84ODUyQUVgLCBhbmQgYE1BQzgwMjExYCkgYXJlIGFsbCBwcmVzZW50LiBMZXQncyBzZWUgaWYgYFJUVzg5X0NPUkVgIGhhcyBvdGhlciBpZmRlZnMsIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgIHNwZWNpZmljYWxseS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDkyMzEsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NzksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzoxMDowOS41NzI5NjgzODVaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2NDI5MDQ5OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiI2lmZGVmfCNpZiBJU19FTkFCTEVEXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MTA6MTAuMjM3MjY5MjM0WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ1MTA1MDIwMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFJUVzg5IEZpcm13YXJlIEJ1aWxkIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBgZncuY2AgaXMgZGVmaW5pdGVseSBiZWluZyBjb21waWxlZCBpbnRvIGBydHc4OV9jb3JlLm9gLCBidXQgb25seSB3aGVuIGBDT05GSUdfUlRXODlfQ09SRWAgaXMgYWN0aXZlLiAgVGhhdCBtYWtlcyBzZW5zZS4gTm93LCBsZXQncyB0cmFjZSB3aGVyZSBgQ09ORklHX1JUVzg5X0NPUkVgIGlzIGJlaW5nIHNlbGVjdGVkLiBSaWdodCwgaXQncyBiZWluZyBicm91Z2h0IGluIHRocm91Z2ggYSBidW5jaCBvZiBzcGVjaWZpYyBkZXZpY2UgY29uZmlndXJhdGlvbnMgbGlrZSBgQ09ORklHX1JUVzg5Xzg4NTJBVWAsIGBDT05GSUdfUlRXODlfODg1MkFFYCwgYW5kIHNvIG9uLiBUaGF0IG1lYW5zIHRoZSBzcGVjaWZpYyBjaGlwc2V0cyBhcmUgZGljdGF0aW5nIHRoZSBpbmNsdXNpb24uIEdvdCBpdC4gQW5kIHRoYXQgcGFyZW50IGNvbmZpZ3VyYXRpb24sIGBDT05GSUdfUlRXODlgLCBkZXBlbmRzIG9uIGBDT05GSUdfTUFDODAyMTFgLiBPa2F5LCBzbyBgTUFDODAyMTFgIGlzIGZ1bmRhbWVudGFsLlxuXG5Ob3csIGxldCdzIHF1aWNrbHkgcmV2aWV3IHRoZSBjcml0aWNhbCBzeW1ib2xzIGFuZCBjb25maWd1cmF0aW9ucyB0byBjb25maXJtIGV2ZXJ5dGhpbmcgaXMgYXMgZXhwZWN0ZWQuIExvb2tpbmcgYXQgYEZvY3VzU3ltYm9sc2AsIEkgc2VlIGBydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RgLCBgcnR3ODlfZndfaDJjX2tlZXBfYWxpdmVgLCBgcnR3ODlfZndfaDJjX2FycF9vZmZsb2FkYCwgYW5kIGBydHc4OV9md19oMmNfd293X2d0a19vZmxkYCBhcmUgcmVsZXZhbnQuXG5cbkFuZCBmb3IgZW5hYmxlZCBjb25maWdzLCB3ZSBoYXZlOiBgUlRXODlgLCBgUlRXODlfQ09SRWAsIGBSVFc4OV9VU0JgLCBgUlRXODlfODg1MkFVYCwgYW5kIGZpbmFsbHkgYE1BQzgwMjExYC4gQWxsIG9mIHRoZXNlIGFsaWduIHdpdGggdGhlIGluaXRpYWwgZGVwZW5kZW5jeSBhbmFseXNpcywgc28gdGhpbmdzIHNlZW0gdG8gYmUgaW4gb3JkZXIuXG5cbldpdGggdGhhdCBjb25maXJtYXRpb24sIGl0J3MgdGltZSB0byBzZXQgdXAgdGhlIGNhbGwgdG8gYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA5MTIsIk91dHB1dFRva2VucyI6MjU0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjE0Ljc0Nzc3NDEyNFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNDM4NzM2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRXODlcIixcbiAgICBcIlJUVzg5X0NPUkVcIixcbiAgICBcIlJUVzg5X1VTQlwiLFxuICAgIFwiUlRXODlfODg1MkFVXCIsXG4gICAgXCJNQUM4MDIxMVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg5X2Z3X2gyY19nZW5lcmFsX3BrdFwiLFxuICAgIFwicnR3ODlfZndfaDJjX2tlZXBfYWxpdmVcIixcbiAgICBcInJ0dzg5X2Z3X2gyY19hcnBfb2ZmbG9hZFwiLFxuICAgIFwicnR3ODlfZndfaDJjX3dvd19ndGtfb2ZsZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGNvZGUgcHJvcGFnYXRpb24gaW4gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdCBpbiB0aGUgUmVhbHRlayBydHc4OSBkcml2ZXIsIGVuc3VyaW5nIHByb3BlciBlcnJvciByZXR1cm4gdmFsdWVzIChzdWNoIGFzIC1FSU5WQUwgb24gaW52YWxpZCBwYWNrZXQgdHlwZXMgb3IgcHJvcGFnYXRpb24gb2YgZXJyb3JzIGZyb20gcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZCkgaW5zdGVhZCBvZiB1bmNvbmRpdGlvbmFsbHkgcmV0dXJuaW5nIC1FTk9NRU0uIFRoZSBydHc4OSBkcml2ZXIgc3VwcG9ydHMgVVNCIGRldmljZXMgd2hpY2ggY2FuIGJlIGVtdWxhdGVkIGFuZCBmdXp6ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBVU0IgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg5XCIsXG4gICAgXCJSVFc4OV9DT1JFXCIsXG4gICAgXCJSVFc4OV9VU0JcIixcbiAgICBcIlJUVzg5Xzg4NTJBVVwiLFxuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHc4OV9md19oMmNfZ2VuZXJhbF9wa3RcIixcbiAgICBcInJ0dzg5X2Z3X2gyY19rZWVwX2FsaXZlXCIsXG4gICAgXCJydHc4OV9md19oMmNfYXJwX29mZmxvYWRcIixcbiAgICBcInJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBjb2RlIHByb3BhZ2F0aW9uIGluIHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QgaW4gdGhlIFJlYWx0ZWsgcnR3ODkgZHJpdmVyLCBlbnN1cmluZyBwcm9wZXIgZXJyb3IgcmV0dXJuIHZhbHVlcyAoc3VjaCBhcyAtRUlOVkFMIG9uIGludmFsaWQgcGFja2V0IHR5cGVzIG9yIHByb3BhZ2F0aW9uIG9mIGVycm9ycyBmcm9tIHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQpIGluc3RlYWQgb2YgdW5jb25kaXRpb25hbGx5IHJldHVybmluZyAtRU5PTUVNLiBUaGUgcnR3ODkgZHJpdmVyIHN1cHBvcnRzIFVTQiBkZXZpY2VzIHdoaWNoIGNhbiBiZSBlbXVsYXRlZCBhbmQgZnV6emVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgVVNCIGVtdWxhdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMjM6MTA6MTQuODUyMTcwNDgyWiIsIlNlcSI6MjUsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzE3NDg4MTM1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjE0Ljg1Mjg4MzY3MloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjE3MTc0MTYyMzA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjb3JyZWN0cyBlcnJvciBoYW5kbGluZyBhbmQgcmV0dXJuIGNvZGUgcHJvcGFnYXRpb24gaW4gYHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QoKWAuIFNwZWNpZmljYWxseSwgaXQgYXNzaWducyBhcHByb3ByaWF0ZSBlcnJvciBjb2RlcyAoYC1FSU5WQUxgIG9uIHVua25vd24gcGFja2V0IHR5cGUgYW5kIGAtRU5PTUVNYCBvbiBwYWNrZXQgYWxsb2NhdGlvbiBmYWlsdXJlKSBhbmQgcmV0dXJucyBgcmV0YCBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgYC1FTk9NRU1gLiBBbGwgdmFyaWFibGVzIGFyZSBmdWxseSBpbml0aWFsaXplZCwgYW5kIHRoZXJlIGFyZSBubyB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcywgaW5mby1sZWFrcyB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIGJ1ZmZlciB1c2FnZXMgaW52b2x2ZWQuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzMDhhNDRiYTJiNWQxY2QyYjdmOGY2ZmNlOGE3YjUxZDdhODhiOTBmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBTZXAgMSAyMzowOTowOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuaW5kZXggZDZhNTk0Yjc1YWIyMC4uYWIyZDBiMGNiMWU1OSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXG5AQCAtMzAxMywxMSArMzAxMywxNCBAQCBzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuIFx0XHRza2IgPSBydHc4OV9hcnBfcmVzcG9uc2VfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4rXHRcdHJldCA9IC1FSU5WQUw7XG4gXHRcdGdvdG8gZXJyO1xuIFx0fVxuIFxuLVx0aWYgKCFza2IpXG4rXHRpZiAoIXNrYikge1xuK1x0XHRyZXQgPSAtRU5PTUVNO1xuIFx0XHRnb3RvIGVycjtcbitcdH1cbiBcbiBcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQocnR3ZGV2LCBcdTAwMjZpbmZvLVx1MDAzZWlkLCBza2IpO1xuIFx0a2ZyZWVfc2tiKHNrYik7XG5AQCAtMzAzMSw3ICszMDM0LDcgQEAgc3RhdGljIGludCBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcbiBlcnI6XG4gXHRrZnJlZShpbmZvKTtcbi1cdHJldHVybiAtRU5PTUVNO1xuK1x0cmV0dXJuIHJldDtcbiB9XG4gXG4gdm9pZCBydHc4OV9md19yZWxlYXNlX2dlbmVyYWxfcGt0X2xpc3RfdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjE0Ljg1Mjg4NTAyMloiLCJTZXEiOjI3LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2NTMwNzU2NjE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRpdmluZyBpbnRvIHRoZSBSZWFsdGVrIFdpcmVsZXNzIEZpcm13YXJlKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyBoYXBwZW5pbmcgd2l0aCB0aGlzIFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBydHc4OWAgY29kZS4gTXkgZmlyc3QgbW92ZSB3aWxsIGJlIHRvIHplcm8gaW4gb24gdGhlIGRpZmYgYW5kIHJlYWQgdGhlIGNvbnRleHQgYXJvdW5kIHRoZSBjaGFuZ2VzIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgLiBUaGF0J2xsIGdpdmUgbWUgdGhlIGJyb2FkIHN0cm9rZXMg4oCTIHRoZSAqd2h5KiBiZWhpbmQgdGhlIGNoYW5nZS4gXG5cblRoZW4sIEknbGwgZHJpbGwgZG93biBmdXJ0aGVyLiBJJ20gZ29pbmcgdG8gbGV2ZXJhZ2UgYHJlYWQtZmlsZWAgdG8gZ2V0IGEgZGlyZWN0IGxvb2sgYXQgdGhlIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCBmdW5jdGlvbi4gSSB3YW50IHRvIHNlZSBleGFjdGx5IGhvdyBpdCBmdW5jdGlvbnMsIHVuZGVyc3RhbmQgdGhlIGRhdGEgaXQgaGFuZGxlcywgYW5kIGVuc3VyZSBpdCBhbGlnbnMgd2l0aCB0aGUgY2hhbmdlcyBJJ3ZlIHNlZW4gaW4gdGhlIGRpZmYuIFRoaXMgaXMgd2hlcmUgdGhlIHJlYWwgbWVhdCBvZiB0aGUgYW5hbHlzaXMgYmVnaW5zIGZvciBtZSwgYXMgSSBuZWVkIHRvIGNvbXByZWhlbmQgZXZlcnkgZGV0YWlsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjkxLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQyMzoxMDoyMS4zODM2NDM3NjZaIiwiU2VxIjoyOCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTUxODUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyOTgwLFxuICBcIkxpbmVDb3VudFwiOiA3MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyOTgwOlxcdFxcdFxcdFxcdFxcdFxcdGVudW0gcnR3ODlfZndfcGt0X29mbGRfdHlwZSB0eXBlLFxcbjI5ODE6XFx0XFx0XFx0XFx0XFx0XFx0dTggKmlkKVxcbjI5ODI6XFx0e1xcbjI5ODM6XFx0XFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiA9IHJ0d3ZpZl9saW5rX3RvX3ZpZihydHd2aWZfbGluayk7XFxuMjk4NDpcXHRcXHRpbnQgbGlua19pZCA9IGllZWU4MDIxMV92aWZfaXNfbWxkKHZpZikgPyBydHd2aWZfbGluay1cXHUwMDNlbGlua19pZCA6IC0xO1xcbjI5ODU6XFx0XFx0c3RydWN0IHJ0dzg5X3BrdG9mbGRfaW5mbyAqaW5mbztcXG4yOTg2OlxcdFxcdHN0cnVjdCBza19idWZmICpza2I7XFxuMjk4NzpcXHRcXHRpbnQgcmV0O1xcbjI5ODg6XFx0XFxuMjk4OTpcXHRcXHRpbmZvID0ga3phbGxvY19vYmooKmluZm8pO1xcbjI5OTA6XFx0XFx0aWYgKCFpbmZvKVxcbjI5OTE6XFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuMjk5MjpcXHRcXG4yOTkzOlxcdFxcdHN3aXRjaCAodHlwZSkge1xcbjI5OTQ6XFx0XFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX1BTX1BPTEw6XFxuMjk5NTpcXHRcXHRcXHRza2IgPSBpZWVlODAyMTFfcHNwb2xsX2dldChydHdkZXYtXFx1MDAzZWh3LCB2aWYpO1xcbjI5OTY6XFx0XFx0XFx0YnJlYWs7XFxuMjk5NzpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFJPQkVfUlNQOlxcbjI5OTg6XFx0XFx0XFx0c2tiID0gaWVlZTgwMjExX3Byb2JlcmVzcF9nZXQocnR3ZGV2LVxcdTAwM2VodywgdmlmKTtcXG4yOTk5OlxcdFxcdFxcdGJyZWFrO1xcbjMwMDA6XFx0XFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQTpcXG4zMDAxOlxcdFxcdFxcdHNrYiA9IGllZWU4MDIxMV9udWxsZnVuY19nZXQocnR3ZGV2LVxcdTAwM2VodywgdmlmLCBsaW5rX2lkLCBmYWxzZSk7XFxuMzAwMjpcXHRcXHRcXHRicmVhaztcXG4zMDAzOlxcdFxcdGNhc2UgUlRXODlfUEtUX09GTERfVFlQRV9RT1NfTlVMTDpcXG4zMDA0OlxcdFxcdFxcdHNrYiA9IGllZWU4MDIxMV9udWxsZnVuY19nZXQocnR3ZGV2LVxcdTAwM2VodywgdmlmLCBsaW5rX2lkLCB0cnVlKTtcXG4zMDA1OlxcdFxcdFxcdGJyZWFrO1xcbjMwMDY6XFx0XFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX0VBUE9MX0tFWTpcXG4zMDA3OlxcdFxcdFxcdHNrYiA9IHJ0dzg5X2VhcG9sX2dldChydHdkZXYsIHJ0d3ZpZl9saW5rKTtcXG4zMDA4OlxcdFxcdFxcdGJyZWFrO1xcbjMwMDk6XFx0XFx0Y2FzZSBSVFc4OV9QS1RfT0ZMRF9UWVBFX1NBX1FVRVJZOlxcbjMwMTA6XFx0XFx0XFx0c2tiID0gcnR3ODlfc2FfcXVlcnlfZ2V0KHJ0d2RldiwgcnR3dmlmX2xpbmspO1xcbjMwMTE6XFx0XFx0XFx0YnJlYWs7XFxuMzAxMjpcXHRcXHRjYXNlIFJUVzg5X1BLVF9PRkxEX1RZUEVfQVJQX1JTUDpcXG4zMDEzOlxcdFxcdFxcdHNrYiA9IHJ0dzg5X2FycF9yZXNwb25zZV9nZXQocnR3ZGV2LCBydHd2aWZfbGluayk7XFxuMzAxNDpcXHRcXHRcXHRicmVhaztcXG4zMDE1OlxcdFxcdGRlZmF1bHQ6XFxuMzAxNjpcXHRcXHRcXHRyZXQgPSAtRUlOVkFMO1xcbjMwMTc6XFx0XFx0XFx0Z290byBlcnI7XFxuMzAxODpcXHRcXHR9XFxuMzAxOTpcXHRcXG4zMDIwOlxcdFxcdGlmICghc2tiKSB7XFxuMzAyMTpcXHRcXHRcXHRyZXQgPSAtRU5PTUVNO1xcbjMwMjI6XFx0XFx0XFx0Z290byBlcnI7XFxuMzAyMzpcXHRcXHR9XFxuMzAyNDpcXHRcXG4zMDI1OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQocnR3ZGV2LCBcXHUwMDI2aW5mby1cXHUwMDNlaWQsIHNrYik7XFxuMzAyNjpcXHRcXHRrZnJlZV9za2Ioc2tiKTtcXG4zMDI3OlxcdFxcbjMwMjg6XFx0XFx0aWYgKHJldClcXG4zMDI5OlxcdFxcdFxcdGdvdG8gZXJyO1xcbjMwMzA6XFx0XFxuMzAzMTpcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZpbmZvLVxcdTAwM2VsaXN0LCBcXHUwMDI2cnR3dmlmX2xpbmstXFx1MDAzZWdlbmVyYWxfcGt0X2xpc3QpO1xcbjMwMzI6XFx0XFx0KmlkID0gaW5mby1cXHUwMDNlaWQ7XFxuMzAzMzpcXHRcXHRyZXR1cm4gMDtcXG4zMDM0OlxcdFxcbjMwMzU6XFx0ZXJyOlxcbjMwMzY6XFx0XFx0a2ZyZWUoaW5mbyk7XFxuMzAzNzpcXHRcXHRyZXR1cm4gcmV0O1xcbjMwMzg6XFx0fVxcbjMwMzk6XFx0XFxuMzA0MDpcXHR2b2lkIHJ0dzg5X2Z3X3JlbGVhc2VfZ2VuZXJhbF9wa3RfbGlzdF92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbjMwNDE6XFx0XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluayxcXG4zMDQyOlxcdFxcdFxcdFxcdFxcdFxcdCAgIGJvb2wgbm90aWZ5X2Z3KVxcbjMwNDM6XFx0e1xcbjMwNDQ6XFx0XFx0c3RydWN0IGxpc3RfaGVhZCAqcGt0X2xpc3QgPSBcXHUwMDI2cnR3dmlmX2xpbmstXFx1MDAzZWdlbmVyYWxfcGt0X2xpc3Q7XFxuMzA0NTpcXHRcXHRzdHJ1Y3QgcnR3ODlfcGt0b2ZsZF9pbmZvICppbmZvLCAqdG1wO1xcbjMwNDY6XFx0XFxuMzA0NzpcXHRcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoaW5mbywgdG1wLCBwa3RfbGlzdCwgbGlzdCkge1xcbjMwNDg6XFx0XFx0XFx0aWYgKG5vdGlmeV9mdylcXG4zMDQ5OlxcdFxcdFxcdFxcdHJ0dzg5X2Z3X2gyY19kZWxfcGt0X29mZmxvYWQocnR3ZGV2LCBpbmZvLVxcdTAwM2VpZCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjIxLjM4NDE5NzY4NloiLCJTZXEiOjI5LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0NzU4NDEzNTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQnVnIEZpeCBpbiBgcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdGAqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoZSBjb3JlIGlzc3VlIGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCB3YXMgaW4gdGhlIGVycm9yIGhhbmRsaW5nLiBCZWZvcmUgdGhlIHBhdGNoLCB0aGUgZnVuY3Rpb24ncyBgZXJyOmAgbGFiZWwgY29uc2lzdGVudGx5IHJldHVybmVkIGAtRU5PTUVNYC4gVGhlIHByb2JsZW0gd2FzIHRoYXQgdGhlIHJldHVybiB2YWx1ZSBgcmV0YCB3YXNuJ3QgYWx3YXlzIHByb3Blcmx5IGluaXRpYWxpemVkIGJlZm9yZSBoaXR0aW5nIHRoYXQgYGVycjpgIGxhYmVsLiBTcGVjaWZpY2FsbHksIGlmIGBydHc4OV9md19oMmNfYWRkX3BrdF9vZmZsb2FkYCBmYWlsZWQsIG9yIGlmIHRoZSBgZGVmYXVsdGAgY2FzZSB3YXMgaGl0LCB0aGUgY29kZSB3b3VsZCBqdW1wIHRvIGBlcnI6YCB3aXRob3V0IHNldHRpbmcgYHJldGAsIGJ1dCBgZXJyOmAgd291bGQgKnN0aWxsKiByZXR1cm4gYC1FTk9NRU1gLCBlZmZlY3RpdmVseSBtYXNraW5nIHRoZSBvcmlnaW5hbCBlcnJvciBjb2RlLiBBbmQsIGl0IHNlZW1zLCBpbiBgZGVmYXVsdDpgLCBgZ290byBlcnI7YCB3YXMgdXNlZCAqYmVmb3JlKiBpbml0aWFsaXppbmcgYHJldGAuIExpa2V3aXNlIGZvciB0aGUgYCFza2JgIHBhdGguIFRoaXMgbWVhbnQgcG90ZW50aWFsbHkgbG9zaW5nIHZhbHVhYmxlIGVycm9yIGluZm9ybWF0aW9uLlxuXG5UaGUgcGF0Y2ggZml4ZXMgdGhpcyBieSBlbnN1cmluZyBgcmV0YCBpcyBpbml0aWFsaXplZCAqYmVmb3JlKiBgZXJyOmAuIE5vdywgYGVycjpgIHJldHVybnMgdGhlIGNvcnJlY3QgYHJldGAgdmFsdWUuIFNwZWNpZmljYWxseSwgaXQgaW5pdGlhbGl6ZXMgYHJldCA9IC1FSU5WQUw7YCBmb3IgdGhlIGBkZWZhdWx0OmAgY2FzZSwgYW5kIGByZXQgPSAtRU5PTUVNO2AgaWYgdGhlIGBza2JgIGlzIE5VTEwuIElmIHRoZSBgcnR3ODlfZndfaDJjX2FkZF9wa3Rfb2ZmbG9hZGAgY2FsbCBmYWlscywgdGhlIHByb3BlciBgcmV0YCB2YWx1ZSBpcyB1c2VkLlxuXG5Ob3csIGxldCdzIGFzc2VzcyB0aGUgaW1wbGljYXRpb25zLiBEb2VzIHRoaXMgaW50cm9kdWNlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByaXNrcyBvciBLTVNBTiBjb25jZXJucz8gTm8sIGl0IGRvZXNuJ3QgYXBwZWFyIHRvLiBUaGUgYGluZm9gIHN0cnVjdHVyZSBpcyBhbGxvY2F0ZWQgdmlhIGBremFsbG9jX29iamAsIHNvIGl0J3MgemVyb2VkLCBhbmQgaXQncyBwcm9wZXJseSBmcmVlZCBpZiBhbGxvY2F0aW9uIGZhaWxzLiBUaGUgdmFyaWFibGUgYHJldGAgaXMganVzdCBhbiBpbnRlZ2VyIHRoYXQncyByZXR1cm5lZCBhcyBhbiBlcnJvciBjb2RlLiBJbXBvcnRhbnRseSwgYWxsIHBhdGhzIGxlYWRpbmcgdG8gYGVycjpgIG5vdyBndWFyYW50ZWUgdGhhdCBgcmV0YCBpcyBpbml0aWFsaXplZCwgYXMgYmVmb3JlLiBObyB1c2VyLXNwYWNlIGRhdGEgc3RydWN0dXJlcyBhcmUgY29waWVkLCBzbyB0aGVyZSdzIG5vIHJpc2sgb2YgbWVtb3J5IGxlYWtzIHZpYSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBjYWxsZXJzIG9mIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YCB0byBtYWtlIGNlcnRhaW4gZXZlcnl0aGluZyBpcyBjbGVhbi5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg0OSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4NiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjI2LjE0MjYxNTIwMloiLCJTZXEiOjMwLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgyMzExODAwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz0yOTI4PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqcnR3ODlfYXJwX3Jlc3BvbnNlX2dldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMjk3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6Mjk3ODpzdGF0aWMgaW50IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0yOTc5LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MzA3MT1pbnQgcnR3ODlfZndfaDJjX2dlbmVyYWxfcGt0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy0zMDc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzozMDgwOlxcdHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtMzA4MS1cXHRcXHRcXHRcXHQgICAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfUFNfUE9MTCwgXFx1MDAyNnBrdF9pZF9wc19wb2xsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzA4MjpcXHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwODMtXFx0XFx0XFx0XFx0ICAgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX05VTExfREFUQSwgXFx1MDAyNnBrdF9pZF9udWxsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6MzA4NDpcXHRydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTMwODUtXFx0XFx0XFx0XFx0ICAgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX1FPU19OVUxMLCBcXHUwMDI2cGt0X2lkX3Fvc19udWxsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz05NjI3PWludCBydHc4OV9md19oMmNfa2VlcF9hbGl2ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTYzNC1cXHRpZiAoZW5hYmxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjk2MzU6XFx0XFx0cmV0ID0gcnR3ODlfZndfaDJjX2FkZF9nZW5lcmFsX3BrdChydHdkZXYsIHJ0d3ZpZl9saW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy05NjM2LVxcdFxcdFxcdFxcdFxcdFxcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfQVJQX1JTUCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz05Njc1PWludCBydHc4OV9md19oMmNfYXJwX29mZmxvYWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTk2ODQtXFx0aWYgKGVuYWJsZSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo5Njg1OlxcdFxcdHJldCA9IHJ0dzg5X2Z3X2gyY19hZGRfZ2VuZXJhbF9wa3QocnR3ZGV2LCBydHd2aWZfbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtOTY4Ni1cXHRcXHRcXHRcXHRcXHRcXHQgICBSVFc4OV9QS1RfT0ZMRF9UWVBFX0FSUF9SU1AsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9MTAwNDI9aW50IHJ0dzg5X2Z3X2gyY193b3dfZ3RrX29mbGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxMDA3MTpcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDcyLVxcdFxcdFxcdFxcdFxcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfRUFQT0xfS0VZLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDc3LVxcdGlmIChndGtfaW5mby1cXHUwMDNlaWd0a19rZXlpZCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzoxMDA3ODpcXHRcXHRyZXQgPSBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KHJ0d2RldiwgcnR3dmlmX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTEwMDc5LVxcdFxcdFxcdFxcdFxcdFxcdCAgIFJUVzg5X1BLVF9PRkxEX1RZUEVfU0FfUVVFUlksXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjI4Ljk2NTc0Mjg1M1oiLCJTZXEiOjMxLCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMDYxMjc2ODA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIENvZGUgQ2hhbmdlKipcblxuT2theSwgdGhpcyBpcyBwcmV0dHkgY2xlYW4uIFRoZSBjb3JlIG9mIGl0IGlzIGEgc3RyYWlnaHRmb3J3YXJkIGZpeCBmb3IgZXJyb3IgaGFuZGxpbmcgd2l0aGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0YC4gSXQgc2VlbXMgdGhlIG9yaWdpbmFsIGNvZGUgd2FzIG1hc2tpbmcgdGhlIGFjdHVhbCBlcnJvciBhbmQgYWx3YXlzIHJldHVybmluZyBgLUVOT01FTWAgaW4gY2VydGFpbiBmYWlsdXJlIHNjZW5hcmlvcy4gVGhpcyBjaGFuZ2UgY29ycmVjdHMgdGhhdCBieSBlbnN1cmluZyB0aGUgZnVuY3Rpb24gcmVwb3J0cyB0aGUgKnJlYWwqIGVycm9yIGNvZGUgKGByZXRgKSBmcm9tIHRoZSBvcGVyYXRpb24uIFNwZWNpZmljYWxseSwgaXQgZXhwbGljaXRseSBzZXRzIGByZXRgIHRvIGAtRUlOVkFMYCBmb3IgdW5leHBlY3RlZCBjb25kaXRpb25zIHdpdGhpbiB0aGUgYGRlZmF1bHQ6YCBjYXNlLCBhbmQgYC1FTk9NRU1gIHdoZW4gdGhlIGFsbG9jYXRpb24gb2YgdGhlIGBza2JgIGZhaWxzLlxuXG5UaGVyZSBhcmUgbm8gb2J2aW91cyB2dWxuZXJhYmlsaXRpZXMgaGVyZTsgSSdtIG5vdCBzZWVpbmcgYW55IHJpc2tzIGFyb3VuZCB1bmluaXRpYWxpemVkIG1lbW9yeSwgc3VwZXJmbHVvdXMgdXNlci1zcGFjZSBjb3BpZXMsIG9yIGRhdGEgbGVha3MgZHVlIHRvIHBhZGRpbmcuIEkgdGhpbmsgdGhpcyBjYW4gYmUgY2F0ZWdvcml6ZWQgYXMgYSBmb2N1c2VkLCBzYWZlIGJ1ZyBmaXguIEJhc2VkIG9uIHRoYXQsIEtNU0FOIGlzbid0IG5lY2Vzc2FyeS5cblxuTGV0J3MgcHJvY2VlZCB0byBgc2V0LXJlc3VsdHNgIGFuZCBhcnRpY3VsYXRlIHRoaXMgY29uY2lzZSByYXRpb25hbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYxNjYsIk91dHB1dFRva2VucyI6MTM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDIzOjEwOjMyLjAyNzAyMjU3OVoiLCJTZXEiOjMyLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNjY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY29ycmVjdHMgZXJyb3IgaGFuZGxpbmcgYW5kIHJldHVybiBjb2RlIHByb3BhZ2F0aW9uIGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KClgLiBTcGVjaWZpY2FsbHksIGl0IGFzc2lnbnMgYXBwcm9wcmlhdGUgZXJyb3IgY29kZXMgKGAtRUlOVkFMYCBvbiB1bmtub3duIHBhY2tldCB0eXBlIGFuZCBgLUVOT01FTWAgb24gcGFja2V0IGFsbG9jYXRpb24gZmFpbHVyZSkgYW5kIHJldHVybnMgYHJldGAgaW5zdGVhZCBvZiBoYXJkY29kaW5nIGAtRU5PTUVNYC4gQWxsIHZhcmlhYmxlcyBhcmUgZnVsbHkgaW5pdGlhbGl6ZWQsIGFuZCB0aGVyZSBhcmUgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMsIGluZm8tbGVha3MgdG8gdXNlciBzcGFjZSwgb3IgdW5pbml0aWFsaXplZCBidWZmZXIgdXNhZ2VzIGludm9sdmVkLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY29ycmVjdHMgZXJyb3IgaGFuZGxpbmcgYW5kIHJldHVybiBjb2RlIHByb3BhZ2F0aW9uIGluIGBydHc4OV9md19oMmNfYWRkX2dlbmVyYWxfcGt0KClgLiBTcGVjaWZpY2FsbHksIGl0IGFzc2lnbnMgYXBwcm9wcmlhdGUgZXJyb3IgY29kZXMgKGAtRUlOVkFMYCBvbiB1bmtub3duIHBhY2tldCB0eXBlIGFuZCBgLUVOT01FTWAgb24gcGFja2V0IGFsbG9jYXRpb24gZmFpbHVyZSkgYW5kIHJldHVybnMgYHJldGAgaW5zdGVhZCBvZiBoYXJkY29kaW5nIGAtRU5PTUVNYC4gQWxsIHZhcmlhYmxlcyBhcmUgZnVsbHkgaW5pdGlhbGl6ZWQsIGFuZCB0aGVyZSBhcmUgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMsIGluZm8tbGVha3MgdG8gdXNlciBzcGFjZSwgb3IgdW5pbml0aWFsaXplZCBidWZmZXIgdXNhZ2VzIGludm9sdmVkLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowscrnm[1] Phase: Succeeded StartedAt: 2026-09-01 23:10:43 +0000 UTC FinishedAt: 2026-09-01 23:10:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-09-01 23:10:43 +0000 UTC FinishedAt: 2026-09-01 23:10:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2] Phase: Succeeded StartedAt: 2026-09-01 23:10:43 +0000 UTC FinishedAt: 2026-09-01 23:51:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-09-01 23:10:43 +0000 UTC FinishedAt: 2026-09-01 23:51:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-09-01 23:10:43 +0000 UTC FinishedAt: 2026-09-01 23:10:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-09-01 23:10:43 +0000 UTC FinishedAt: 2026-09-01 23:10:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowscrnm/series-workflowscrnm-convert-artifact-2259822969/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-09-01 23:10:53 +0000 UTC FinishedAt: 2026-09-01 23:30:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-09-01 23:10:53 +0000 UTC FinishedAt: 2026-09-01 23:30:06 +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:*7495ed9b-4b43-47cc-a67d-3d1c9b5d2281,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-workflowscrnm/series-workflowscrnm-convert-artifact-2259822969/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": "a2d854ad-6c5d-4b78-861a-77aab91bd56a", "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-workflowscrnm/series-workflowscrnm-build-action-617267863/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-09-01 23:10:53 +0000 UTC FinishedAt: 2026-09-01 23:29:56 +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:*7495ed9b-4b43-47cc-a67d-3d1c9b5d2281,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-workflowscrnm/series-workflowscrnm-convert-artifact-2259822969/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": "a2d854ad-6c5d-4b78-861a-77aab91bd56a", "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-workflowscrnm/series-workflowscrnm-build-action-617267863/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-09-01 23:30:06 +0000 UTC FinishedAt: 2026-09-01 23:30:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-09-01 23:30:06 +0000 UTC FinishedAt: 2026-09-01 23:30:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-09-01 23:30:06 +0000 UTC FinishedAt: 2026-09-01 23:30:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-09-01 23:30:06 +0000 UTC FinishedAt: 2026-09-01 23:30:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowscrnm/series-workflowscrnm-convert-artifact-2492506188/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-09-01 23:30:16 +0000 UTC FinishedAt: 2026-09-01 23:32:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-09-01 23:30:16 +0000 UTC FinishedAt: 2026-09-01 23:32:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*a2d854ad-6c5d-4b78-861a-77aab91bd56a,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-workflowscrnm/series-workflowscrnm-build-action-617267863/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-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-09-01 23:32:15 +0000 UTC FinishedAt: 2026-09-01 23:32:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-09-01 23:32:15 +0000 UTC FinishedAt: 2026-09-01 23:32:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-09-01 23:32:15 +0000 UTC FinishedAt: 2026-09-01 23:47:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-09-01 23:32:15 +0000 UTC FinishedAt: 2026-09-01 23:47:59 +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:*7495ed9b-4b43-47cc-a67d-3d1c9b5d2281,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-workflowscrnm/series-workflowscrnm-convert-artifact-2492506188/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": "d329b271-fcb8-4ffe-b2df-bf5a2533adfd", "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-workflowscrnm/series-workflowscrnm-build-action-1995107944/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-09-01 23:32:15 +0000 UTC FinishedAt: 2026-09-01 23:47:48 +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:*7495ed9b-4b43-47cc-a67d-3d1c9b5d2281,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-workflowscrnm/series-workflowscrnm-convert-artifact-2492506188/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": "d329b271-fcb8-4ffe-b2df-bf5a2533adfd", "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-workflowscrnm/series-workflowscrnm-build-action-1995107944/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-09-01 23:47:59 +0000 UTC FinishedAt: 2026-09-01 23:47:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-09-01 23:47:59 +0000 UTC FinishedAt: 2026-09-01 23:47:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-09-01 23:47:59 +0000 UTC FinishedAt: 2026-09-01 23:50:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-09-01 23:47:59 +0000 UTC FinishedAt: 2026-09-01 23:49:54 +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:*d329b271-fcb8-4ffe-b2df-bf5a2533adfd,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-workflowscrnm/series-workflowscrnm-build-action-1995107944/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-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-09-01 23:50:03 +0000 UTC FinishedAt: 2026-09-01 23:51:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-09-01 23:50:03 +0000 UTC FinishedAt: 2026-09-01 23:51:23 +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":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"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:*a2d854ad-6c5d-4b78-861a-77aab91bd56a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d329b271-fcb8-4ffe-b2df-bf5a2533adfd,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-workflowscrnm/series-workflowscrnm-build-action-617267863/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-workflowscrnm/series-workflowscrnm-build-action-1995107944/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-09-01 23:50:03 +0000 UTC FinishedAt: 2026-09-01 23:50:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-09-01 23:50:03 +0000 UTC FinishedAt: 2026-09-01 23:50:08 +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":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"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-workflowscrnm/series-workflowscrnm-convert-artifact-843958197/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-09-01 23:50:03 +0000 UTC FinishedAt: 2026-09-01 23:50:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-09-01 23:50:03 +0000 UTC FinishedAt: 2026-09-01 23:50:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-09-01 23:50:03 +0000 UTC FinishedAt: 2026-09-01 23:50:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-09-01 23:50:13 +0000 UTC FinishedAt: 2026-09-01 23:51:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscrnm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw89_fw_h2c_general_pkt","rtw89_fw_h2c_keep_alive","rtw89_fw_h2c_arp_offload","rtw89_fw_h2c_wow_gtk_ofld"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c322f5cf7476ded7a9a20f7be72462065a03c68","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_CORE","RTW89_USB","RTW89_8852AU","MAC80211"],"series_id":"01c2cc0c-e7c7-49c8-a734-7991d6fd25f4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-09-01 23:50:13 +0000 UTC FinishedAt: 2026-09-01 23:51:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*a2d854ad-6c5d-4b78-861a-77aab91bd56a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d329b271-fcb8-4ffe-b2df-bf5a2533adfd,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-workflowscrnm/series-workflowscrnm-build-action-617267863/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-workflowscrnm/series-workflowscrnm-build-action-1995107944/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-workflowscrnm/series-workflowscrnm-convert-artifact-843958197/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,}