Name: series-workflowdlspn Phase: Succeeded StartedAt: 2026-08-07 09:45:21 +0000 UTC FinishedAt: 2026-08-07 11:05:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[0] Phase: Succeeded StartedAt: 2026-08-07 09:45:21 +0000 UTC FinishedAt: 2026-08-07 10:21:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[0].run-triage Phase: Succeeded StartedAt: 2026-08-07 09:45:21 +0000 UTC FinishedAt: 2026-08-07 10:21:26 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89_8851BU", "RTW89_8851BE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89_8851BU", "RTW89_8851BE" ], "series_id": "585bc4f2-2b1e-461d-9d6c-b93a9fec8c32" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtw8851b_dpk", "rtw8851b_dpk_track" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUxQkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4ODUxYl9kcGsmIzM0OywKICAgICYjMzQ7cnR3ODg1MWJfZHBrX3RyYWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZnVuY3Rpb25hbCBidWcgaW4gdGhlIERQSyAoRGlnaXRhbCBQcmUtRGlzdG9ydGlvbikgY2FsaWJyYXRpb24gbG9naWMgb2YgdGhlIHJ0dzg5IGRyaXZlciB3aGVyZSBjaGFubmVsIGFuZCBiYW5kd2lkdGggdmFsdWVzIHdlcmUgc3dhcHBlZC4gVGhpcyBhZmZlY3RzIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gYW5kIHRyYWNraW5nIGxvZ2ljLiBUaGUgZHJpdmVyIHN1cHBvcnRzIFVTQiAoODg1MUJVKSBhbmQgY2FuIGJlIGZ1enplZCB2aWEgZHVtbXlfaGNkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjE5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMDI3ODM5MzM5Nzc4MTdlZjA4NWU5MWRiODUzYzJjYzYyNzNmMGVhOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMTA6MTk6MTcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmNcbmluZGV4IGM2M2YwZTYzNjRkYWQuLjcxMzQyNDYxZjJiMzAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXG5AQCAtMTg5NSw4ICYjNDM7MTg5NSw4IEBAIHN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuIFx0dTgga2lkeCA9IGRway1cdTAwM2VjdXJfaWR4W3BhdGhdO1xuIFxuIFx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPSBjaGFuLVx1MDAzZWJhbmRfdHlwZTtcbi1cdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXHUwMDNlYmFuZF93aWR0aDtcbi1cdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXHUwMDNlY2hhbm5lbDtcbiYjNDM7XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggPSBjaGFuLVx1MDAzZWNoYW5uZWw7XG4mIzQzO1x0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID0gY2hhbi1cdTAwM2ViYW5kX3dpZHRoO1xuIFxuIFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUkZLLFxuIFx0XHQgICAgXCYjMzQ7W0RQS10gUyVkWyVkXSAoUEhZJWQpOiBUU1NJICVzLyBEQkNDICVzLyAlcy8gQ0glZC8gJXNcXG5cJiMzNDssXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MTk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUxQkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4ODUxYl9kcGsmIzM0OywKICAgICYjMzQ7cnR3ODg1MWJfZHBrX3RyYWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZnVuY3Rpb25hbCBidWcgaW4gdGhlIERQSyAoRGlnaXRhbCBQcmUtRGlzdG9ydGlvbikgY2FsaWJyYXRpb24gbG9naWMgb2YgdGhlIHJ0dzg5IGRyaXZlciB3aGVyZSBjaGFubmVsIGFuZCBiYW5kd2lkdGggdmFsdWVzIHdlcmUgc3dhcHBlZC4gVGhpcyBhZmZlY3RzIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gYW5kIHRyYWNraW5nIGxvZ2ljLiBUaGUgZHJpdmVyIHN1cHBvcnRzIFVTQiAoODg1MUJVKSBhbmQgY2FuIGJlIGZ1enplZCB2aWEgZHVtbXlfaGNkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMDI3ODM5MzM5Nzc4MTdlZjA4NWU5MWRiODUzYzJjYzYyNzNmMGVhOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDcgMTA6MTk6MTcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYwppbmRleCBjNjNmMGU2MzY0ZGFkLi43MTM0MjQ2MWYyYjMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMKQEAgLTE4OTUsOCAmIzQzOzE4OTUsOCBAQCBzdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSwKIAl1OCBraWR4ID0gZHBrLSZndDtjdXJfaWR4W3BhdGhdOwogCiAJZHBrLSZndDticFtwYXRoXVtraWR4XS5iYW5kID0gY2hhbi0mZ3Q7YmFuZF90eXBlOwotCWRway0mZ3Q7YnBbcGF0aF1ba2lkeF0uY2ggPSBjaGFuLSZndDtiYW5kX3dpZHRoOwotCWRway0mZ3Q7YnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLSZndDtjaGFubmVsOwomIzQzOwlkcGstJmd0O2JwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi0mZ3Q7Y2hhbm5lbDsKJiM0MzsJZHBrLSZndDticFtwYXRoXVtraWR4XS5idyA9IGNoYW4tJmd0O2JhbmRfd2lkdGg7CiAKIAlydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssCiAJCSAgICAmIzM0O1tEUEtdIFMlZFslZF0gKFBIWSVkKTogVFNTSSAlcy8gREJDQyAlcy8gJXMvIENIJWQvICVzXG4mIzM0OywKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIzNAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDI4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSZWFsdGVrIFdpLUZpIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBmb3IgYHJ0dzg4NTFiX3Jmay5jYCB3aXRoaW4gdGhlIFJlYWx0ZWsgYHJ0dzg5YCBXaS1GaSBkcml2ZXIuIEl0IHNlZW1zIGxpa2UgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGJ1ZyBmaXgg4oCTIGBjaGFuLSZndDtiYW5kX3dpZHRoYCBhbmQgYGNoYW4tJmd0O2NoYW5uZWxgIHdlcmUgZ2V0dGluZyBtaXhlZCB1cCBkdXJpbmcgYXNzaWdubWVudCB0byBgZHBrLSZndDticGAuIEJ1dCBpcyB0aGlzIHNvbWV0aGluZyB3b3J0aCBkZWRpY2F0aW5nIHRpbWUgdG8/IEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGl0JiMzOTtzIGV2ZW4gKnJlYWNoYWJsZSogYW5kIGlmIGZ1enppbmcgaXQgbWFrZXMgc2Vuc2UuCgpSaWdodCwgc28gaXQmIzM5O3MgYSBSZWFsdGVrIGRyaXZlciwgYHJ0dzg5YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGNoZWNrIGlmIG1hYzgwMjExX2h3c2ltIGlzIGFwcGxpY2FibGUsIGJ1dCBpdCBsb29rcyBsaWtlIHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIsIHNvIHRoYXQmIzM5O3MgcHJvYmFibHkgbm90IGdvaW5nIHRvIHdvcmsuIEFoLCBgcnR3ODlgLi4uIHRoYXQmIzM5O3MgUENJL1VTQiBmb3IgUmVhbHRlayA4MDIuMTFheCBkZXZpY2VzLCBpc24mIzM5O3QgaXQ/IFRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXMsIGNhbiBJIGV2ZW4gdGVzdCB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IEhhcmR3YXJlIGRyaXZlcnMsIHBhcnRpY3VsYXJseSBXaS1GaSBvbmVzLCBhcmUgYSBwYWluLiBNb3N0IG9mIHRoZSB0aW1lLCBJIG5lZWQgYWN0dWFsIHBoeXNpY2FsIGhhcmR3YXJlIGZvciBkcml2ZXJzIGxpa2UgYHJ0dzg5YCwgYGl3bHdpZmlgLCBgYXRoMTBrYCwgb3IgYGF0aDExa2AgdW5sZXNzIHRoZXkgaGF2ZSBhIFVTQiBpbnRlcmZhY2UuIFVTQiBjYW4gc29tZXRpbWVzIGJlIGVtdWxhdGVkIHdpdGggYGR1bW15X2hjZGAgb3IgYHJhdy1nYWRnZXRgLiBQQ0kmIzM5O3MgZ2VuZXJhbGx5IGV2ZW4gbW9yZSBwcm9ibGVtYXRpYyB3aXRob3V0IHByb3BlciBlbXVsYXRpb24uIEJ1dC4uLiB3YWl0IGEgbWludXRlLCBJIHJlbWVtYmVyIGBydHc4OWAgYWN0dWFsbHkgc3VwcG9ydHMgKmJvdGgqIFBDSSAqYW5kKiBVU0IuIE5vdyB0aGF0JiMzOTtzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBUaGF0IGNoYW5nZXMgdGhpbmdzIGRyYW1hdGljYWxseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHc4OSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA4MDQzMCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTI9bWVudWNvbmZpZyBSVFc4OVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy04LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjk6XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgcnR3ODkuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTE5MD1jb25maWcgUlRXODlfREVCVUdNU0dcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxOTE6XHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODkgZGVidWcgbWVzc2FnZSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTkyLVx0ZGVwZW5kcyBvbiBSVFc4OV9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTE5OT1jb25maWcgUlRXODlfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIwMDpcdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OSBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMDEtXHRkZXBlbmRzIG9uIFJUVzg5X0NPUkUgXHUwMDI2XHUwMDI2IENGRzgwMjExX0RFQlVHRlNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX1JUVzg5X0NPUkUpICYjNDM7PSBydHc4OV9jb3JlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDpydHc4OV9jb3JlLXkgJiM0Mzs9IGNvcmUubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01LVx0XHRtYWM4MDIxMS5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MjM6cnR3ODlfY29yZS0kKENPTkZJR19QTSkgJiM0Mzs9IHdvdy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToyNTpvYmotJChDT05GSUdfUlRXODlfODg1MUIpICYjNDM7PSBydHc4OV84ODUxYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjI2OnJ0dzg5Xzg4NTFiLW9ianMgOj0gcnR3ODg1MWIubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yNy1cdFx0ICAgIHJ0dzg4NTFiX3RhYmxlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfUlRXODlfODg1MUJFKSAmIzQzOz0gcnR3ODlfODg1MWJlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MzI6cnR3ODlfODg1MWJlLW9ianMgOj0gcnR3ODg1MWJlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19SVFc4OV84ODUxQlUpICYjNDM7PSBydHc4OV84ODUxYnUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozNTpydHc4OV84ODUxYnUtb2JqcyA6PSBydHc4ODUxYnUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6Mzc6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJBKSAmIzQzOz0gcnR3ODlfODg1MmEub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozODpydHc4OV84ODUyYS1vYmpzIDo9IHJ0dzg4NTJhLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzktXHRcdCAgICBydHc4ODUyYV90YWJsZS5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDM6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJBRSkgJiM0Mzs9IHJ0dzg5Xzg4NTJhZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjQ0OnJ0dzg5Xzg4NTJhZS1vYmpzIDo9IHJ0dzg4NTJhZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo0NjpvYmotJChDT05GSUdfUlRXODlfODg1MkFVKSAmIzQzOz0gcnR3ODlfODg1MmF1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDc6cnR3ODlfODg1MmF1LW9ianMgOj0gcnR3ODg1MmF1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19SVFc4OV84ODUyQl9DT01NT04pICYjNDM7PSBydHc4OV84ODUyYl9jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo1MDpydHc4OV84ODUyYl9jb21tb24tb2JqcyA6PSBydHc4ODUyYl9jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NTI6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCKSAmIzQzOz0gcnR3ODlfODg1MmIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo1MzpydHc4OV84ODUyYi1vYmpzIDo9IHJ0dzg4NTJiLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNTQtXHRcdCAgICBydHc4ODUyYl90YWJsZS5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NTg6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCRSkgJiM0Mzs9IHJ0dzg5Xzg4NTJiZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjU5OnJ0dzg5Xzg4NTJiZS1vYmpzIDo9IHJ0dzg4NTJiZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2MTpvYmotJChDT05GSUdfUlRXODlfODg1MkJVKSAmIzQzOz0gcnR3ODlfODg1MmJ1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NjI6cnR3ODlfODg1MmJ1LW9ianMgOj0gcnR3ODg1MmJ1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjY0Om9iai0kKENPTkZJR19SVFc4OV84ODUyQlQpICYjNDM7PSBydHc4OV84ODUyYnQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2NTpydHc4OV84ODUyYnQtb2JqcyA6PSBydHc4ODUyYnQubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS02Ni1cdFx0ICAgIHJ0dzg4NTJidF9yZmsubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjY5Om9iai0kKENPTkZJR19SVFc4OV84ODUyQlRFKSAmIzQzOz0gcnR3ODlfODg1MmJ0ZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjcwOnJ0dzg5Xzg4NTJidGUtb2JqcyA6PSBydHc4ODUyYnRlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjcyOm9iai0kKENPTkZJR19SVFc4OV84ODUyQykgJiM0Mzs9IHJ0dzg5Xzg4NTJjLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NzM6cnR3ODlfODg1MmMtb2JqcyA6PSBydHc4ODUyYy5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTc0LVx0XHQgICAgcnR3ODg1MmNfdGFibGUubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjc4Om9iai0kKENPTkZJR19SVFc4OV84ODUyQ0UpICYjNDM7PSBydHc4OV84ODUyY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo3OTpydHc4OV84ODUyY2Utb2JqcyA6PSBydHc4ODUyY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS04MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJDVSkgJiM0Mzs9IHJ0dzg5Xzg4NTJjdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjgyOnJ0dzg5Xzg4NTJjdS1vYmpzIDo9IHJ0dzg4NTJjdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4NDpvYmotJChDT05GSUdfUlRXODlfODkyMkEpICYjNDM7PSBydHc4OV84OTIyYS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjg1OnJ0dzg5Xzg5MjJhLW9ianMgOj0gcnR3ODkyMmEubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4NjpcdFx0ICAgIHJ0dzg5MjJhX3Jmay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTg3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4ODpvYmotJChDT05GSUdfUlRXODlfODkyMkFFKSAmIzQzOz0gcnR3ODlfODkyMmFlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODk6cnR3ODlfODkyMmFlLW9ianMgOj0gcnR3ODkyMmFlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjkxOm9iai0kKENPTkZJR19SVFc4OV84OTIyQVUpICYjNDM7PSBydHc4OV84OTIyYXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo5MjpydHc4OV84OTIyYXUtb2JqcyA6PSBydHc4OTIyYXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTQ6b2JqLSQoQ09ORklHX1JUVzg5Xzg5MjJEKSAmIzQzOz0gcnR3ODlfODkyMmQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo5NTpydHc4OV84OTIyZC1vYmpzIDo9IHJ0dzg5MjJkLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTY6XHRcdCAgICBydHc4OTIyZF9yZmsub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTg6b2JqLSQoQ09ORklHX1JUVzg5Xzg5MjJERSkgJiM0Mzs9IHJ0dzg5Xzg5MjJkZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjk5OnJ0dzg5Xzg5MjJkZS1vYmpzIDo9IHJ0dzg5MjJkZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTEwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MTAxOnJ0dzg5X2NvcmUtJChDT05GSUdfUlRXODlfREVCVUcpICYjNDM7PSBkZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwMjpydHc4OV9jb3JlLSQoQ09ORklHX1JUVzg5X0xFRFMpICYjNDM7PSBsZWQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToxMDM6cnR3ODlfY29yZS0kKENPTkZJR19SVFc4OV9MRURTX01DKSAmIzQzOz0gbGVkX21jLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMTA0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToxMDU6b2JqLSQoQ09ORklHX1JUVzg5X1BDSSkgJiM0Mzs9IHJ0dzg5X3BjaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwNjpydHc4OV9wY2kteSA6PSBwY2kubyBwY2lfYmUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0xMDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwODpvYmotJChDT05GSUdfUlRXODlfVVNCKSAmIzQzOz0gcnR3ODlfdXNiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MTA5OnJ0dzg5X3VzYi15IDo9IHVzYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTExMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjExOnN0YXRpYyBjb25zdCBndWlkX3QgcnR3ODlfZ3VpZCA9IEdVSURfSU5JVCgweEQyQThDM0U4LCAweDRCNjksIDB4NEYwMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEyLVx0XHRcdFx0XHQgICAweDgyLCAweEJELCAweEZFLCAweDg2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTU6c3RhdGljIHUzMiBydHc4OV9hY3BpX3RyYXZlcnNhbF9vYmplY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTYtXHRcdFx0XHQgICAgICAgY29uc3QgdW5pb24gYWNwaV9vYmplY3QgKm9iaiwgdTggKnBvcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMi1cdFx0aWYgKHVubGlrZWx5KG9iai1cdTAwM2VidWZmZXIubGVuZ3RoID09IDApKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMzpcdFx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQtXHRcdFx0XHQgICAgXCYjMzQ7JXM6IGludmFsaWQgYnVmZmVyIHR5cGVcXG5cJiMzNDssIF9fZnVuY19fKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NC1cdFx0aWYgKHVubGlrZWx5KG9iai1cdTAwM2VwYWNrYWdlLmNvdW50ID09IDApKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NTpcdFx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDYtXHRcdFx0XHQgICAgXCYjMzQ7JXM6IGludmFsaWQgcGFja2FnZSB0eXBlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NDpcdFx0XHRzdWJfbGVuID0gcnR3ODlfYWNwaV90cmF2ZXJzYWxfb2JqZWN0KHJ0d2RldiwgZWxtLCB0bXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTUtXHRcdFx0aWYgKHVubGlrZWx5KHN1Yl9sZW4gPT0gMCkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjEtXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjI6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiB1bmhhbmRsZWQgdHlwZTogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02My1cdFx0XHQgICAgX19mdW5jX18sIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczOnN0YXRpYyB1MzIgcnR3ODlfYWNwaV9jYWxjdWxhdGVfb2JqZWN0X2xlbmd0aChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03NC1cdFx0XHRcdFx0ICAgICAgY29uc3QgdW5pb24gYWNwaV9vYmplY3QgKm9iailcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTc1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjc2Olx0cmV0dXJuIHJ0dzg5X2FjcGlfdHJhdmVyc2FsX29iamVjdChydHdkZXYsIG9iaiwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjc5OnN0YXRpYyBzdHJ1Y3QgcnR3ODlfYWNwaV9kYXRhICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjgwOnJ0dzg5X2FjcGlfZXZhbHVhdGVfbWV0aG9kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgY29uc3QgY2hhciAqbWV0aG9kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtODEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtODItXHRzdHJ1Y3QgYWNwaV9idWZmZXIgYnVmID0ge0FDUElfQUxMT0NBVEVfQlVGRkVSLCBOVUxMfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjgzOlx0c3RydWN0IHJ0dzg5X2FjcGlfZGF0YSAqZGF0YSA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy04NC1cdGFjcGlfaGFuZGxlIHJvb3QsIGhhbmRsZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05MC1cdGlmICghcm9vdCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6OTE6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05Mi1cdFx0XHQgICAgXCYjMzQ7YWNwaSAoJXMpOiBmYWlsZWQgdG8gZ2V0IHJvb3RcXG5cJiMzNDssIG1ldGhvZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtOTctXHRpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjk4Olx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtOTktXHRcdFx0ICAgIFwmIzM0O2FjcGkgKCVzKTogZmFpbGVkIHRvIGdldCBoYW5kbGVcXG5cJiMzNDssIG1ldGhvZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTA0LVx0aWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxMDU6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMDYtXHRcdFx0ICAgIFwmIzM0O2FjcGkgKCVzKTogZmFpbGVkIHRvIGV2YWx1YXRlIG9iamVjdFxcblwmIzM0OywgbWV0aG9kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMTAtXHRvYmogPSBidWYucG9pbnRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjExMTpcdGxlbiA9IHJ0dzg5X2FjcGlfY2FsY3VsYXRlX29iamVjdF9sZW5ndGgocnR3ZGV2LCBvYmopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTEyLVx0aWYgKHVubGlrZWx5KGxlbiA9PSAwKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTEzOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTE0LVx0XHRcdCAgICBcJiMzNDthY3BpICglcyk6IGZhaWxlZCB0byB0cmF2ZXJzYWwgb2JqIGxlblxcblwmIzM0OywgbWV0aG9kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMjItXHRkYXRhLVx1MDAzZWxlbiA9IGxlbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEyMzpcdHJ0dzg5X2FjcGlfdHJhdmVyc2FsX29iamVjdChydHdkZXYsIG9iaiwgZGF0YS1cdTAwM2VidWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTI0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTEzMD1zdGF0aWNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEzMTppbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3ZhbHVlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEzMi1cdFx0XHQgICAgIHU4ICp2YWx1ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMzQtXHRpZiAob2JqLVx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0lOVEVHRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEzNTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEzNi1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGludGVnZXIgYnV0IHR5cGU6ICVkXFxuXCYjMzQ7LCBvYmotXHUwMDNldHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTQ0OnN0YXRpYyBib29sIGNoa19hY3BpX3BvbGljeV82Z2h6X3NpZyhjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoeiAqcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MTUxPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTUyOmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHooc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTUzLVx0XHRcdFx0ICAgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE1NDpcdFx0XHRcdCAgIHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6ICoqcG9saWN5XzZnaHopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNTUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTU2Olx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5XzZnaHogKnB0cjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE1Ny1cdHUzMiBleHBlY3RfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2MC1cdGlmIChvYmotXHUwMDNldHlwZSAhPSBBQ1BJX1RZUEVfQlVGRkVSKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNjE6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNjItXHRcdFx0ICAgIFwmIzM0O2FjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxuXCYjMzQ7LCBvYmotXHUwMDNldHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTY3LVx0aWYgKGxlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNjg6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTY5LVx0XHRcdCAgICBfX2Z1bmNfXywgbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzQtXHRpZiAoIWNoa19hY3BpX3BvbGljeV82Z2h6X3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNzU6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzYtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE4MC1cdGlmIChsZW4gXHUwMDNjIGV4cGVjdF9sZW4pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE4MTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7JXM6IGV4cGVjdCAldSBidXQgbGVuZ3RoOiAldVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE4Mi1cdFx0XHQgICAgX19mdW5jX18sIGV4cGVjdF9sZW4sIGxlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTg5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTkwOlx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7cG9saWN5XzZnaHo6IFwmIzM0OywgKnBvbGljeV82Z2h6LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTkxLVx0XHQgICAgICAgZXhwZWN0X2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTk1OnN0YXRpYyBib29sIGNoa19hY3BpX3BvbGljeV82Z2h6X3NwX3NpZyhjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoel9zcCAqcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE5Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MjAzPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjA0OmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfc3Aoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjA1LVx0XHRcdFx0ICAgICAgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIwNjpcdFx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6X3NwICoqcG9saWN5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjA3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIwODpcdGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6X3NwICpwdHI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMDktXHR1MzIgYnVmX2xlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMTEtXHRpZiAob2JqLVx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjEyOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjEzLVx0XHRcdCAgICBcJiMzNDthY3BpOiBleHBlY3QgYnVmZmVyIGJ1dCB0eXBlOiAlZFxcblwmIzM0Oywgb2JqLVx1MDAzZXR5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxOC1cdGlmIChidWZfbGVuIFx1MDAzYyBzaXplb2YoKnB0cikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIxOTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7JXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjAtXHRcdFx0ICAgIF9fZnVuY19fLCBidWZfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjUtXHRpZiAoIWNoa19hY3BpX3BvbGljeV82Z2h6X3NwX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyMjY6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjctXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIzNDpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV82Z2h6X3NwOiBcJiMzNDssICpwb2xpY3ksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzUtXHRcdCAgICAgICBzaXplb2YoKnB0cikpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIzOTpzdGF0aWMgYm9vbCBjaGtfYWNwaV9wb2xpY3lfNmdoel92bHBfc2lnKGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6X3ZscCAqcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI0MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MjQ3PXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjQ4OmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfdmxwKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI0OS1cdFx0XHRcdCAgICAgICB1bmlvbiBhY3BpX29iamVjdCAqb2JqLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjUwOlx0XHRcdFx0ICAgICAgIHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6X3ZscCAqKnBvbGljeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1MS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNTI6XHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoel92bHAgKnB0cjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1My1cdHUzMiBidWZfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1NS1cdGlmIChvYmotXHUwMDNldHlwZSAhPSBBQ1BJX1RZUEVfQlVGRkVSKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNTY6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNTctXHRcdFx0ICAgIFwmIzM0O2FjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxuXCYjMzQ7LCBvYmotXHUwMDNldHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjYyLVx0aWYgKGJ1Zl9sZW4gXHUwMDNjIHNpemVvZigqcHRyKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjYzOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDslczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2NC1cdFx0XHQgICAgX19mdW5jX18sIGJ1Zl9sZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2OS1cdGlmICghY2hrX2FjcGlfcG9saWN5XzZnaHpfdmxwX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNzA6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzEtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI3ODpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV82Z2h6X3ZscDogXCYjMzQ7LCAqcG9saWN5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjc5LVx0XHQgICAgICAgc2l6ZW9mKCpwdHIpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyODM6c3RhdGljIGJvb2wgY2hrX2FjcGlfcG9saWN5X3Rhc19zaWcoY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3RhcyAqcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI4NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjkxOnN0YXRpYyBpbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV90YXMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjkyLVx0XHRcdFx0XHQgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI5MzpcdFx0XHRcdFx0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV90YXMgKipwb2xpY3kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yOTQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mjk1Olx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3RhcyAqcHRyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjk2LVx0dTMyIGJ1Zl9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjk4LVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI5OTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMwMC1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMDUtXHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMDY6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzA3LVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzEyLVx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfdGFzX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMTM6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMTQtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMyMTpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV90YXM6IFwmIzM0OywgKnBvbGljeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyMi1cdFx0ICAgICAgIHNpemVvZigqcHRyKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzI2PXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzI3OmJvb2wgY2hrX2FjcGlfcG9saWN5X3JlZ19ydWxlc19zaWcoY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3JlZ19ydWxlcyAqcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzM1PXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzM2OmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3JlZ19ydWxlcyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMzctXHRcdFx0XHRcdHVuaW9uIGFjcGlfb2JqZWN0ICpvYmosXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMzg6XHRcdFx0XHRcdHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV9yZWdfcnVsZXMgKipwb2xpY3kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMzkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzQwOlx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3JlZ19ydWxlcyAqcHRyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQxLVx0dTMyIGJ1Zl9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQzLVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM0NDpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM0NS1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTAtXHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNTE6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzUyLVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzU3LVx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfcmVnX3J1bGVzX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNTg6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTktXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM2NjpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV9yZWdfcnVsZXM6IFwmIzM0OywgKnBvbGljeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM2Ny1cdFx0ICAgICAgIHNpemVvZigqcHRyKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzcxOmludCBydHc4OV9hY3BpX2V2YWx1YXRlX2RzbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNzI6XHRcdFx0ICAgIGVudW0gcnR3ODlfYWNwaV9kc21fZnVuYyBmdW5jLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzczOlx0XHRcdCAgICBzdHJ1Y3QgcnR3ODlfYWNwaV9kc21fcmVzdWx0ICpyZXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM3ODpcdG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKHJ0d2Rldi1cdTAwM2VkZXYpLCBcdTAwMjZydHc4OV9ndWlkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzc5LVx0XHRcdFx0MCwgZnVuYywgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODAtXHRpZiAoIW9iaikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzgxOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzgyLVx0XHRcdCAgICBcJiMzNDthY3BpIGRzbSBmYWlsIHRvIGV2YWx1YXRlIGZ1bmM6ICVkXFxuXCYjMzQ7LCBmdW5jKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODYtXHRpZiAoZnVuYyA9PSBSVFc4OV9BQ1BJX0RTTV9GVU5DXzZHX0JQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mzg3Olx0XHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHoocnR3ZGV2LCBvYmosXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODgtXHRcdFx0XHRcdFx0ICAgICBcdTAwMjZyZXMtXHUwMDNldS5wb2xpY3lfNmdoeik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODktXHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfNkdIWl9TUF9TVVApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTA6XHRcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel9zcChydHdkZXYsIG9iaixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5MS1cdFx0XHRcdFx0XHRcdFx1MDAyNnJlcy1cdTAwM2V1LnBvbGljeV82Z2h6X3NwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5Mi1cdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ182R0haX1ZMUF9TVVApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTM6XHRcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel92bHAocnR3ZGV2LCBvYmosXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTQtXHRcdFx0XHRcdFx0XHQgXHUwMDI2cmVzLVx1MDAzZXUucG9saWN5XzZnaHpfdmxwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5NS1cdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ19UQVNfRU4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTY6XHRcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfdGFzKHJ0d2Rldiwgb2JqLCBcdTAwMjZyZXMtXHUwMDNldS5wb2xpY3lfdGFzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5Ny1cdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ19SRUdfUlVMRVNfRU4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTg6XHRcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfcmVnX3J1bGVzKHJ0d2Rldiwgb2JqLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk5LVx0XHRcdFx0XHRcdFx0ICBcdTAwMjZyZXMtXHUwMDNldS5wb2xpY3lfcmVnX3J1bGVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQwMC1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQwMTpcdFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3ZhbHVlKHJ0d2Rldiwgb2JqLCBcdTAwMjZyZXMtXHUwMDNldS52YWx1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MDItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDA3OmludCBydHc4OV9hY3BpX2V2YWx1YXRlX3J0YWcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDA4Olx0XHRcdCAgICAgc3RydWN0IHJ0dzg5X2FjcGlfcnRhZ19yZXN1bHQgKnJlcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQwOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MTA6XHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9kYXRhICpkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDExLVx0dTMyIGJ1Zl9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDE0Olx0ZGF0YSA9IHJ0dzg5X2FjcGlfZXZhbHVhdGVfbWV0aG9kKHJ0d2RldiwgXCYjMzQ7UlRBR1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MTUtXHRpZiAoIWRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDE5LVx0aWYgKGJ1Zl9sZW4gIT0gc2l6ZW9mKCpyZXMpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MjA6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDIxLVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDI2Olx0KnJlcyA9ICooc3RydWN0IHJ0dzg5X2FjcGlfcnRhZ19yZXN1bHQgKilkYXRhLVx1MDAzZWJ1ZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQyODpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O2FudGVubmFfZ2FpbjogXCYjMzQ7LCByZXMsIHNpemVvZigqcmVzKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MjktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDM1OmVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBydHc4OV9hY3BpX3Nhcl9nZXRfc3ViYmFuZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzYtXHRcdFx0XHRcdFx0ICAgICAgIHUzMiBjZW50ZXJfZnJlcSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzktXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDQwOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDQxLVx0XHRcdCAgICBcJiMzNDtjZW50ZXIgZnJlcSAldSB0byBBQ1BJIFNBUiBzdWJiYW5kIGlzIHVuaGFuZGxlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjYtXHQgKiBhbmQgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzgsIHNvIGRpcmVjdGx5IGRlc2NyaWJlIGl0IHdpdGhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ2NzpcdCAqIHN0cnVjdCBydHc4OV82Z2h6X3NwYW4uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjgtXHQgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NzU6ZW51bSBydHc4OV9iYW5kIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmRfdG9fYmFuZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NzY6XHRcdFx0XHRcdCAgICAgICBlbnVtIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmQgc3ViYmFuZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ3Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDc5LVx0ZGVmYXVsdDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4MDpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ4MS1cdFx0XHQgICAgXCYjMzQ7QUNQSSBTQVIgc3ViYmFuZCAldSB0byBiYW5kIGlzIHVuaGFuZGxlZFxcblwmIzM0Oywgc3ViYmFuZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTA4OnN0YXRpYyB1OCBydHc4OV9hY3BpX3Nhcl9yZnBhdGhfdG9faHBfYW50aWR4KGVudW0gcnR3ODlfcmZfcGF0aCByZnBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01MDkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTUxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUxOTpzdGF0aWMgdTggcnR3ODlfYWNwaV9zYXJfcmZwYXRoX3RvX3J0X2FudGlkeChlbnVtIHJ0dzg5X3JmX3BhdGggcmZwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTIwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MzA6c3RhdGljIHMxNiBydHc4OV9hY3BpX3Nhcl9ub3JtYWxpemVfaHBfdmFsKHU4IHYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01MzEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU0NDpzdGF0aWMgczE2IHJ0dzg5X2FjcGlfc2FyX25vcm1hbGl6ZV9ydF92YWwodTggdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NTU2PXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTU3OnZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zdGRfbGVnYWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU1ODpcdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9zYXJfcmVjb2duaXRpb24gKnJlYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU1OS1cdFx0XHRcdCAgICBjb25zdCB2b2lkICpjb250ZW50LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTYwOlx0XHRcdFx0ICAgIHN0cnVjdCBydHc4OV9zYXJfZW50cnlfZnJvbV9hY3BpICplbnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTYyOlx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3N0ZF9sZWdhY3kgKnB0ciA9IGNvbnRlbnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NjM6XHRlbnVtIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmQgc3ViYmFuZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2NDpcdGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTY1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTU3OT1zdGF0aWNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4MDp2b2lkIHJ0dzg5X2FjcGlfc2FyX2xvYWRfc3RkX2hhc182Z2h6KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4MTpcdFx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3Nhcl9yZWNvZ25pdGlvbiAqcmVjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTgyLVx0XHRcdFx0ICAgICAgY29uc3Qgdm9pZCAqY29udGVudCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4MzpcdFx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV9zYXJfZW50cnlfZnJvbV9hY3BpICplbnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01ODQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTg1Olx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3N0ZF9oYXNfNmdoeiAqcHRyID0gY29udGVudDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4NjpcdGVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBzdWJiYW5kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTg3Olx0ZW51bSBydHc4OV9yZl9wYXRoIHBhdGg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01ODgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NjAwPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjAxOnZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zbWxfbGVnYWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYwMjpcdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9zYXJfcmVjb2duaXRpb24gKnJlYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTYwMy1cdFx0XHRcdCAgICBjb25zdCB2b2lkICpjb250ZW50LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjA0Olx0XHRcdFx0ICAgIHN0cnVjdCBydHc4OV9zYXJfZW50cnlfZnJvbV9hY3BpICplbnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MDUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjA2Olx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3NtbF9sZWdhY3kgKnB0ciA9IGNvbnRlbnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MDc6XHRlbnVtIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmQgc3ViYmFuZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYwODpcdGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjA5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTYyMz1zdGF0aWNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyNDp2b2lkIHJ0dzg5X2FjcGlfc2FyX2xvYWRfc21sX2hhc182Z2h6KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyNTpcdFx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3Nhcl9yZWNvZ25pdGlvbiAqcmVjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjI2LVx0XHRcdFx0ICAgICAgY29uc3Qgdm9pZCAqY29udGVudCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyNzpcdFx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV9zYXJfZW50cnlfZnJvbV9hY3BpICplbnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02Mjgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjI5Olx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3NtbF9oYXNfNmdoeiAqcHRyID0gY29udGVudDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYzMDpcdGVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBzdWJiYW5kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjMxOlx0ZW51bSBydHc4OV9yZl9wYXRoIHBhdGg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjQ0OnN0YXRpYyBzMTYgcnR3ODlfYWNwaV9nZW9fc2FyX25vcm1hbGl6ZV9kZWx0YShzOCBkZWx0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTY0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjUzOnN0YXRpYyBlbnVtIHJ0dzg5X2FjcGlfZ2VvX3Nhcl9yZWdkX2hwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2NTQ6cnR3ODlfYWNwaV9nZW9fc2FyX3JlZ2RfY29udmVydF9ocF9pZHgoZW51bSBydHc4OV9yZWd1bGF0aW9uX3R5cGUgcmVnZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTY1NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Njc1OnN0YXRpYyBlbnVtIHJ0dzg5X2FjcGlfZ2VvX3Nhcl9yZWdkX3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2NzY6cnR3ODlfYWNwaV9nZW9fc2FyX3JlZ2RfY29udmVydF9ydF9pZHgoZW51bSBydHc4OV9yZWd1bGF0aW9uX3R5cGUgcmVnZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTY3Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NzAwPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzAxOnZvaWQgcnR3ODlfYWNwaV9nZW9fc2FyX2xvYWRfYnlfaHAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzAyOlx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfZ2VvX3Nhcl9ocF92YWwgKnB0cixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjcwMzpcdFx0XHRcdCAgIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLCBzMTYgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcwNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MDU6XHR1OCBhbnRpZHggPSBydHc4OV9hY3BpX3Nhcl9yZnBhdGhfdG9faHBfYW50aWR4KHBhdGgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzA2Olx0czE2IGRlbHRhID0gcnR3ODlfYWNwaV9nZW9fc2FyX25vcm1hbGl6ZV9kZWx0YShwdHItXHUwMDNlZGVsdGFbYW50aWR4XSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MDc6XHRzMTYgbWF4ID0gcnR3ODlfYWNwaV9zYXJfbm9ybWFsaXplX2hwX3ZhbChwdHItXHUwMDNlbWF4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcwOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz03MTI9c3RhdGljXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MTM6dm9pZCBydHc4OV9hY3BpX2dlb19zYXJfbG9hZF9ieV9ydChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MTQ6XHRcdFx0XHQgICBjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9nZW9fc2FyX3J0X3ZhbCAqcHRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzE1LVx0XHRcdFx0ICAgczE2ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03MTYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzE3Olx0czE2IGRlbHRhID0gcnR3ODlfYWNwaV9nZW9fc2FyX25vcm1hbGl6ZV9kZWx0YShwdHItXHUwMDNlZGVsdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzE4Olx0czE2IG1heCA9IHJ0dzg5X2FjcGlfc2FyX25vcm1hbGl6ZV9ydF92YWwocHRyLVx1MDAzZW1heCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03MTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NzIzPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzI0OnZvaWQgcnR3ODlfYWNwaV9nZW9fc2FyX2xvYWRfaHBfbGVnYWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcyNS1cdFx0XHRcdCAgICAgICBjb25zdCB2b2lkICpjb250ZW50LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzI2Olx0XHRcdFx0ICAgICAgIGVudW0gcnR3ODlfcmVndWxhdGlvbl90eXBlIHJlZ2QsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3Mjc6XHRcdFx0XHQgICAgICAgc3RydWN0IHJ0dzg5X3Nhcl9lbnRyeV9mcm9tX2FjcGkgKmVudClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcyOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3Mjk6XHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9nZW9fc2FyX2hwX2xlZ2FjeSAqcHRyID0gY29udGVudDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczMDpcdGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX2dlb19zYXJfaHBfbGVnYWN5X2VudHJ5ICpwdHJfZW50O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzMxOlx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfZ2VvX3Nhcl9ocF92YWwgKnB0cl9lbnRfdmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzMyOlx0ZW51bSBydHc4OV9hY3BpX2dlb19zYXJfcmVnZF9ocCBnZW9faWR4ID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczMzpcdFx0cnR3ODlfYWNwaV9nZW9fc2FyX3JlZ2RfY29udmVydF9ocF9pZHgocmVnZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MzQ6XHRlbnVtIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmQgc3ViYmFuZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczNTpcdGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzM2Olx0ZW51bSBydHc4OV9iYW5kIGJhbmQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03MzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzQwLVx0Zm9yIChzdWJiYW5kID0gMDsgc3ViYmFuZCBcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1NVQkJBTkQ7IHN1YmJhbmQmIzQzOyYjNDM7KSB7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODk5MwoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDI3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWx0ZWsgcnR3ODkgV2lyZWxlc3MgRHJpdmVyIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBSZWFsdGVrIHJ0dzg5IHdpcmVsZXNzIGRyaXZlciwgYW5kIGl0JiMzOTtzIHN0cnVjdHVyZWQgaW4gYSBwcmV0dHkgc3RhbmRhcmQgd2F5LCB3aXRoIGRpZmZlcmVudCBjb21wb25lbnRzIGxpa2UgYHJ0dzg5X2NvcmVgLCBgcnR3ODlfODg1MWJgLCBhbmQgc2VwYXJhdGUgbW9kdWxlcyBmb3IgUENJIGFuZCBVU0IgKGBydHc4OV9wY2lgLCBgcnR3ODlfdXNiYCkuIFRoYXQmIzM5O3MgaW1tZWRpYXRlbHkgaW50ZXJlc3RpbmcgYmVjYXVzZSB0aGUgVVNCIHN1cHBvcnQgb3BlbnMgdXAgc29tZSBmdXp6aW5nIHBvc3NpYmlsaXRpZXMgd2l0aCBzeXprYWxsZXIuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBJIGNvdWxkIHVzZSBgZHVtbXlfaGNkYCBhbmQgYHJhdy1nYWRnZXRgIHRvIHRhcmdldCBpdC4KCk5vdywgbXkgZm9jdXMgaXMgb24gd2hldGhlciBhIHBhcnRpY3VsYXIgZmlsZSwgYHJ0dzg4NTFiX3Jmay5jYCwgaXMgYnVpbHQgaW50byB0aGUgVVNCIGNvbXBvbmVudC4gSSBzZWUgdGhhdCBpdCYjMzk7cyBsaXN0ZWQgYXMgcGFydCBvZiB0aGUgYHJ0dzg5Xzg4NTFiYCBidWlsZDogYHJ0dzg5Xzg4NTFiLW9ianMgOj0gcnR3ODg1MWIubyBydHc4ODUxYl90YWJsZS5vIHJ0dzg4NTFiX3Jmay5vYC4gUmlnaHQsIHNvIGl0JiMzOTtzIGNvbXBpbGVkIGludG8gYHJ0dzg5Xzg4NTFiLm9gLCBub3QgZGlyZWN0bHkgaW50byBhIFVTQi1zcGVjaWZpYyBtb2R1bGUuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBtb2R1bGUgKmlzKiBjb21waWxlZCB3aGVuIFVTQiBzdXBwb3J0IGlzIGVuYWJsZWQuCgpUbyBjb25maXJtIHRoYXQsIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0aGUgYE1ha2VmaWxlYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9gIGFuZCB2ZXJpZnkgdGhhdCBgcnR3ODg1MWJfcmZrLm9gIGlzIGluZGVlZCBpbmNsdWRlZCB3aGVuIHRoZSBVU0IgY29tcG9uZW50IGlzIGJ1aWx0LiBJJiMzOTttIGdvaW5nIHRvIHRyYWNrIHRoYXQgZG93biBhbmQgY29uZmlybSB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg4NTFiX3JmayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU9MjY9cnR3ODlfODg1MWItb2JqcyA6PSBydHc4ODUxYi5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTI3LVx0XHQgICAgcnR3ODg1MWJfdGFibGUubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToyODpcdFx0ICAgIHJ0dzg4NTFiX3Jmay5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjI5Olx0XHQgICAgcnR3ODg1MWJfcmZrX3RhYmxlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTExLSNpbmNsdWRlIFwmIzM0O3J0dzg4NTFiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoxMjojaW5jbHVkZSBcJiMzNDtydHc4ODUxYl9yZmsuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjEzOiNpbmNsdWRlIFwmIzM0O3J0dzg4NTFiX3Jma190YWJsZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTQtI2luY2x1ZGUgXCYjMzQ7cnR3ODg1MWJfdGFibGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYz0yNTE9c3RhdGljIGNvbnN0IHN0cnVjdCBydHc4OV9ycnNyX2NmZ3MgcnR3ODg1MWJfcnJzcl9jZmdzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0yNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjU2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3ODlfcmZraWxsX3JlZ3MgcnR3ODg1MWJfcmZraWxsX3JlZ3MgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjU3LVx0LnBpbm11eCA9IHtSX0FYX0dQSU84XzE1X0ZVTkNfU0VMLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYz0xNzMyPXN0YXRpYyB2b2lkIHJ0dzg4NTFiX3NldF9jaGFubmVsX2hlbHAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGVudGVyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjE3NTQ6c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3NTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjE3Njc6c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX2NoYW5uZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3NjgtXHRcdFx0XHQgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoxNzg1OnN0YXRpYyB2b2lkIHJ0dzg4NTFiX3Jma19iYW5kX2NoYW5nZWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3ODYtXHRcdFx0XHQgICAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoxNzkyOnN0YXRpYyB2b2lkIHJ0dzg4NTFiX3Jma19zY2FuKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzkzLVx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MTgwMDpzdGF0aWMgdm9pZCBydHc4ODUxYl9yZmtfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE4MDEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYz0yNDkzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3ODlfY2hpcF9vcHMgcnR3ODg1MWJfY2hpcF9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1MDktXHQucmZrX2h3X2luaXRcdFx0PSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjI1MTA6XHQucmZrX2luaXRcdFx0PSBydHc4ODUxYl9yZmtfaW5pdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0yNTExLVx0LnJma19pbml0X2xhdGVcdFx0PSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjI1MTI6XHQucmZrX2NoYW5uZWxcdFx0PSBydHc4ODUxYl9yZmtfY2hhbm5lbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoyNTEzOlx0LnJma19iYW5kX2NoYW5nZWRcdD0gcnR3ODg1MWJfcmZrX2JhbmRfY2hhbmdlZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoyNTE0Olx0LnJma19zY2FuXHRcdD0gcnR3ODg1MWJfcmZrX3NjYW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjUxNTpcdC5yZmtfdHJhY2tcdFx0PSBydHc4ODUxYl9yZmtfdHJhY2ssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjUxNi1cdC5wb3dlcl90cmltXHRcdD0gcnR3ODg1MWJfcG93ZXJfdHJpbSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM9MjU3NT1jb25zdCBzdHJ1Y3QgcnR3ODlfY2hpcF9pbmZvIHJ0dzg4NTFiX2NoaXBfaW5mbyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjcxOS1cdC5ic3NfY2xyX21hcF9yZWdcdD0gUl9CU1NfQ0xSX01BUF9WMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoyNzIwOlx0LnJma2lsbF9pbml0XHRcdD0gXHUwMDI2cnR3ODg1MWJfcmZraWxsX3JlZ3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjcyMS1cdC5yZmtpbGxfZ2V0XHRcdD0ge1JfQVhfR1BJT19FWFRfQ1RSTCwgQl9BWF9HUElPX0lOXzl9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTAtI2luY2x1ZGUgXCYjMzQ7cnR3ODg1MWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxMTojaW5jbHVkZSBcJiMzNDtydHc4ODUxYl9yZmsuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxMjojaW5jbHVkZSBcJiMzNDtydHc4ODUxYl9yZmtfdGFibGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xMy0jaW5jbHVkZSBcJiMzNDtydHc4ODUxYl90YWJsZS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmtfdGFibGUuYy00LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmtfdGFibGUuYzo1OiNpbmNsdWRlIFwmIzM0O3J0dzg4NTFiX3Jma190YWJsZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jma190YWJsZS5jLTYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE5MDkKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA2NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIHJ0dzg5IERyaXZlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBydHc4OWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaXRzIGJ1aWxkIGNvbmZpZ3VyYXRpb25zLiBJIHNlZSB0aGF0IGl0IGNhbiBiZSBidWlsdCB3aXRoIGBDT05GSUdfUlRXODlfVVNCYCBhbmQgYENPTkZJR19SVFc4OV84ODUxQmAgZW5hYmxlZC4gSW50ZXJlc3RpbmcsIGEgVVNCIGNvbmZpZ3VyYXRpb24gYW5kIGEgc3BlY2lmaWMgY2hpcHNldC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIGNvbmZpZ3VyYXRpb25zIGltcGFjdCB0aGUgZHJpdmVyJiMzOTtzIGJlaGF2aW9yLiBUaGUgcmVsZXZhbnQgZnVuY3Rpb24gaGVyZSBzZWVtcyB0byBiZSBgX2Rwa19pbmZvcm1hdGlvbmAuIFJpZ2h0LCBsZXQmIzM5O3MgdHJhY2UgdGhpcy4gSSBuZWVkIHRvIHNlZSBleGFjdGx5IHdoZXJlIGBfZHBrX2luZm9ybWF0aW9uYCBpcyBjYWxsZWQgd2l0aGluIHRoZSBkcml2ZXImIzM5O3MgY29kZS4gVGhhdCB3aWxsIHRlbGwgbWUgaG93IHRoZSBVU0Igb3IgY2hpcHNldC1zcGVjaWZpYyBhc3BlY3RzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGlzIGNvbnRleHQuIFRpbWUgdG8gcHVsbCB1cCB0aGUgc291cmNlIGFuZCBkaWcgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X2Rwa19pbmZvcm1hdGlvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MTg4MD1zdGF0aWMgdm9pZCBfZHBrX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE4ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE4ODk6c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE4OTAtXHRcdFx0ICAgICBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTI2MDk9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBmb3JjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2MjYtXHRcdF9kcGtfYmt1cF9yZihydHdkZXYsIGRwa19yZl9yZWcsIHJmX2JrdXAsIHBhdGgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNjI3Olx0XHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2MjgtXHRcdF9kcGtfaW5pdChydHdkZXYsIHBhdGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MTg2MD1zdGF0aWMgdm9pZCBfZHBrX3J4X2RjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0xODY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoxODY5OnN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0xODcwLVx0XHRcdCAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI2MTA9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBmb3JjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI2NTItXHRcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIFx1MDAyNmJhY2t1cF9yZl92YWxbcGF0aF1bMF0sIHBhdGgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNjUzOlx0XHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI2NTQtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0xNzQ0PXN0YXRpYyB2b2lkIF9kcGtfcnhfZGNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE3NTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE3NTE6c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE3NTItXHRcdFx0ICAgICBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTI0ODQ9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBmb3JjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI1MTQtXHRcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIFx1MDAyNmJhY2t1cF9yZl92YWxbcGF0aF1bMF0sIHBhdGgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNTE1Olx0XHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI1MTYtXHRcdGlmIChydHdkZXYtXHUwMDNlaXNfdHNzaV9tb2RlW3BhdGhdKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTE4NTI9c3RhdGljIHZvaWQgX2Rwa19yeF9kY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4NjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODYzOnN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTg2NC1cdFx0XHQgICAgIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLCBlbnVtIHJ0dzg5X2NoYW5jdHhfaWR4IGNoYW5jdHhfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI1ODY9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjA5LVx0XHRfcmZrX2JhY2t1cF9yZl9yZWcocnR3ZGV2LCBiYWNrdXBfcmZfdmFsW3BhdGhdLCBwYXRoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2MTA6XHRcdF9kcGtfaW5mb3JtYXRpb24ocnR3ZGV2LCBwaHksIHBhdGgsIGNoYW5jdHhfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2MTEtXHRcdGlmIChydHdkZXYtXHUwMDNlaXNfdHNzaV9tb2RlW3BhdGhdKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MTg3Mz1zdGF0aWMgdTggX2Rwa19vbmVfc2hvdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoxOTA3OnN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTA4LVx0XHRcdCAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jPTI2OTY9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBmb3JjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTI3MzEtXHRcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIGJhY2t1cF9yZl92YWxbcGF0aF0sIHBhdGgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoyNzMyOlx0XHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTI3MzMtXHRcdF9kcGtfaW5pdChydHdkZXYsIHBhdGgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MzY1CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIHByb3ZpZGVkIGluZm9ybWF0aW9uOgoKKipUcmFjaW5nIHRoZSBSRiBDYWxpYnJhdGlvbiBQYXRoKioKCk9rYXksIHNvIEkgc2VlIHRoYXQgYF9kcGtfaW5mb3JtYXRpb25gIGlzIGJlaW5nIGNhbGxlZCBieSBgX2Rwa19jYWxfc2VsZWN0YC4gR2l2ZW4gdGhhdCB0aGVzZSBhcmUgb2J2aW91c2x5IGludGVybmFsIGZ1bmN0aW9uIG5hbWVzLCBhbmQgdGhlIGNvbnRleHQgc3VnZ2VzdHMgUkYgY2FsaWJyYXRpb24gaXMgaW52b2x2ZWQsIG15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIG1vZHVsZSByZWxhdGVkIHRvIFJGIGNhbGlicmF0aW9uIHJvdXRpbmVzLiBNeSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBwaW5wb2ludCB0aGUgb3JpZ2luIG9mIGBfZHBrX2NhbF9zZWxlY3RgLiBVbmRlcnN0YW5kaW5nICppdHMqIGNhbGxpbmcgY29udGV4dCB3aWxsIGdpdmUgbWUgYSBjbGVhcmVyIHBpY3R1cmUgb2YgdGhlIGxhcmdlciBjYWxpYnJhdGlvbiB3b3JrZmxvdywgaW5jbHVkaW5nIHRoZSBmdW5jdGlvbiYjMzk7cyByZXNwb25zaWJpbGl0eSBhbmQgdGhlIGRhdGEgaXQgY29uc3VtZXMuIEkgbmVlZCB0byB0cmFjZSBiYWNrIGZyb20gYF9kcGtfY2FsX3NlbGVjdGAgdG8gaWRlbnRpZnkgaXRzIHBhcmVudCBmdW5jdGlvbihzKSB0byB1bmRlcnN0YW5kIHRoZSBsYXJnZXIgY29udGV4dC4gVGhpcyB3aWxsIGdpdmUgbWUgYSBnb29kIHVuZGVyc3RhbmRpbmcgb2Ygd2hlcmUgYF9kcGtfaW5mb3JtYXRpb25gIGZpdHMgaW50byB0aGUgd2hvbGUgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X2Rwa19jYWxfc2VsZWN0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0yNTcxPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNjA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNjA5OnN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2MTAtXHRcdFx0ICAgIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIHU4IGtwYXRoLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjY2OD1zdGF0aWMgdm9pZCBfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSwgYm9vbCBmb3JjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI2NzU6XHRfZHBrX2NhbF9zZWxlY3QocnR3ZGV2LCBmb3JjZSwgcGh5LCBfa3BhdGgocnR3ZGV2LCBwaHkpLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2NzYtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjU3MD1zdGF0aWMgYm9vbCBfZHBrX21haW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjYwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjYxMDpzdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjExLVx0XHRcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI3MTI9c3RhdGljIHZvaWQgX2RwayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNzIyLVx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNzIzOlx0XHRfZHBrX2NhbF9zZWxlY3QocnR3ZGV2LCBmb3JjZSwgcGh5LCBfa3BhdGgocnR3ZGV2LCBwaHkpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNzI0LVx0XHRcdFx0Y2hhbmN0eF9pZHgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjQzNT1zdGF0aWMgYm9vbCBfZHBrX21haW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjQ4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjQ4NDpzdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDg1LVx0XHRcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTI1NzQ9c3RhdGljIHZvaWQgX2RwayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIGJvb2wgZm9yY2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNTg0LVx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNTg1Olx0XHRfZHBrX2NhbF9zZWxlY3QocnR3ZGV2LCBmb3JjZSwgcGh5LCBSRl9BQiwgY2hhbmN0eF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNTg2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0yNTMzPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjU4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI1ODY6c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI1ODctXHRcdFx0ICAgIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIHU4IGtwYXRoLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTM4NTk9dm9pZCBydHc4ODUyYnRfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMzg2Ny1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjM4Njg6XHRcdF9kcGtfY2FsX3NlbGVjdChydHdkZXYsIHBoeV9pZHgsIFJGX0FCLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0zODY5LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jPTI2ODg9c3RhdGljIHZvaWQgX2Rwa19kcmZfZGlyZWN0X2NudHJsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggcGF0aCwgYm9vbCBpc19ieWJiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjY5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MjY5NjpzdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0yNjk3LVx0XHRcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jPTI4MDE9c3RhdGljIHZvaWQgX2RwayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIGJvb2wgZm9yY2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0yODExLVx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoyODEyOlx0XHRfZHBrX2NhbF9zZWxlY3QocnR3ZGV2LCBmb3JjZSwgcGh5LCBfa3BhdGgocnR3ZGV2LCBwaHkpLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTI4MTMtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2Njk0CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNDkxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJ1ZyBGaXgqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSSBzZWUgdGhhdCBgX2Rwa2AgaXMgdHJpZ2dlcmVkIGJ5IGBydHc4ODUxYl9yZmtfdHJhY2tgIGFuZCBgcnR3ODg1MWJfcmZrX2NoYW5uZWxgLCBhbmQgaW1wb3J0YW50bHksIHRoZXNlIGZ1bmN0aW9ucyBhcmUgaG9va2VkIHVwIHRvIHRoZSBgcnR3ODg1MWJfY2hpcF9vcHNgIHN0cnVjdHVyZS4gVGhhdCB0ZWxscyBtZSB0aGVzZSBhcmUgZGVmaW5pdGVseSBleGVjdXRlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gb3Igd2hlbiB0aGUgY2hhbm5lbCBjaGFuZ2VzLCB3aGljaCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIE5vdywgdGhlIGRyaXZlciBzdXBwb3J0cyBVU0IsIHdoaWNoIG1lYW5zIEkgY2FuIGxldmVyYWdlIGBkdW1teV9oY2RgIGFuZCBgcmF3LWdhZGdldGAgZm9yIGZ1enppbmcuCgpCdXQgaG9sZCBvbiwgaXMgVVNCIHN1cHBvcnQgZXZlbiByZWxldmFudCB0byB0aGUgYDg4NTFiYCBzcGVjaWZpY2FsbHk/IExldCBtZSBjb25maXJtLiBBaCwgeWVzLCB0aGUgYE1ha2VmaWxlYCBjb25maXJtcyB0aGUgYHJ0dzg5Xzg4NTFidWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYHJ0dzg4NTFidS5vYCwgaXMgaW5jbHVkZWQgYmFzZWQgb24gdGhlIGBDT05GSUdfUlRXODlfODg1MUJVYCBmbGFnLiBUaGF0IG1lYW5zIGl04oCZcyByZWFjaGFibGUgdmlhIGEgVVNCIGZ1enppbmcgc2V0dXAsIHBlcmZlY3QuCgpOb3cgdG8gdGhlIGNvcmUgb2YgdGhlIGZpeC4gSXQmIzM5O3MgYSBzaW1wbGUgc3dhcDogYGNoYW4tJmd0O2JhbmRfd2lkdGhgIGFuZCBgY2hhbi0mZ3Q7Y2hhbm5lbGAgYXJlIHN3YXBwZWQgaW4gdGhlIGFzc2lnbm1lbnQgdG8gYGRway0mZ3Q7YnBgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgYml0IG9mIGEgZGF0YSBjb3JydXB0aW9uIGlzc3VlLiBUaGlzIGJ1ZyBkaXJlY3RseSBpbXBhY3RzIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGBkcGstJmd0O2JwW3BhdGhdW2tpZHhdLmNoYCBhbmQgYGJ3YC4gSSBzdXNwZWN0IHRoZXNlIHZhbHVlcyBmZWVkIGludG8gdGhlIERQSyAoRGlnaXRhbCBQcmUtRGlzdG9ydGlvbikgY2FsaWJyYXRpb24gbG9naWMgbGF0ZXIgb24uIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIHRoaXMgY291bGQgcG90ZW50aWFsbHkgaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiBwZXJmb3JtYW5jZSBvciBldmVuIGludHJvZHVjZSBpbnN0YWJpbGl0eSBpZiB0aGUgRFBLIGlzIHNlbnNpdGl2ZSB0byB0aGVzZSB2YWx1ZXMuCgpHaXZlbiB0aGF0IGl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBkcml2ZXIgSSAqY2FuKiBmdXp6IHZpYSBVU0IsIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nIHllcyAtIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggaW52ZXN0aWdhdGluZy4gSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBkb3duc3RyZWFtIHVzZSBvZiB0aG9zZSB2YWx1ZXMgdG8gc2VlIHRoZSBmdWxsIGltcGFjdC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgZXhhY3RseSB3aGF0IGBfZHBrYCBkb2VzLiBPaywgdGhhdCBmdW5jdGlvbiBpcyBzaW1wbGU6IGl0IHN0b3JlcyBjaGFubmVsIGFuZCBiYW5kd2lkdGggaW5mbyBpbiBgZHBrLSZndDticGAuIEkgc2hvdWxkIGxvb2sgYXQgYWxsIHVzZXMgb2YgYGRway0mZ3Q7YnBgIHRvIHVuZGVyc3RhbmQgdGhlIGRhdGEgZmxvdywgYW5kIGlkZW50aWZ5IGlmIHRoZXkgaGF2ZSBhbnkgc2VjdXJpdHkgaW1wbGljYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcGstXHUwMDNlYnAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjE1IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTE4NjM9c3RhdGljIHZvaWQgX2Rwa19vbm9mZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTg3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg3MTpcdHZhbCA9IGRway1cdTAwM2Vpc19kcGtfZW5hYmxlICogb2ZmX3JldmVyc2UgKiBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTg3Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTE4ODA9c3RhdGljIHZvaWQgX2Rwa19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xODg1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxODg2Olx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnBhdGhfb2sgPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xODg3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTE4ODk9c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xODk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxODk3Olx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPSBjaGFuLVx1MDAzZWJhbmRfdHlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg5ODpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXHUwMDNlY2hhbm5lbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg5OTpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXHUwMDNlYmFuZF93aWR0aDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTkwMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5MDUtXHRcdCAgICBzdHJfb25fb2ZmKHJ0d2Rldi1cdTAwM2VkYmNjX2VuKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkwNjpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcJiMzNDsyR1wmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5MDc6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAxID8gXCYjMzQ7NUdcJiMzNDsgOiBcJiMzNDs2R1wmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkwODpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkwOTpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXCYjMzQ7MjBNXCYjMzQ7IDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkxMDpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAxID8gXCYjMzQ7NDBNXCYjMzQ7IDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkxMTpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAyID8gXCYjMzQ7ODBNXCYjMzQ7IDogXCYjMzQ7MTYwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5MTItfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MTk5Mj1zdGF0aWMgdm9pZCBfZHBrX3RwZ19zZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5OTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5OTY6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfODApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTk5Ny1cdFx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YsIDB4MCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5OTgtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19TRUwsIE1BU0tEV09SRCwgMHhmZmUwZmEwMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5OTk6XHR9IGVsc2UgaWYgKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzQwKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwMDAtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjAwNy1cdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXCYjMzQ7W0RQS10gVFBHIFNlbGVjdCBmb3IgJXNcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwMDg6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MCA/IFwmIzM0OzgwTVwmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwMDk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzIwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwMTAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjA3Mz1zdGF0aWMgdm9pZCBfZHBrX3BhcmFfcXVlcnkoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwOTE6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrID0gKHBhcmEgXHUwMDNlXHUwMDNlIDEwKSBcdTAwMjYgMHgzZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjA5MjpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayA9IChwYXJhIFx1MDAzZVx1MDAzZSAyNikgXHUwMDI2IDB4M2Y7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwOTMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMDk1LVx0XHQgICAgXCYjMzQ7W0RQS10gdGhlcm1hbC8gdHhhZ2NfUkYgKEslZCkgPSAweCV4LyAweCV4XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMDk2Olx0XHQgICAgZHBrLVx1MDAzZWN1cl9rX3NldCwgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMDk3Olx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnR4YWdjX2Rwayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwOTgtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjIyMj1zdGF0aWMgdm9pZCBfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIyMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIyMjY6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMjI3LVx0XHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX01PRCwgUkZSRUdfTUFTSywgMHg1MDUyMSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMjM4LVx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9SQ0tELCBSUl9SQ0tEX0JXLCAweDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMjM5Olx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9CVEMsIFJSX0JUQ19UWEJCLCBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgJiM0MzsgMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIyNDAtXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1JYQkIsIDB4MCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0yMzM1PXN0YXRpYyB1OCBfZHBrX2FnYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMzY0LVx0XHRcdGlmIChhZ2NfY250ID09IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjM2NTpcdFx0XHRcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMzY2LVx0XHRcdFx0XHRfZHBrX2J5cGFzc19yeGlxYyhydHdkZXYsIHBhdGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjUxNz1zdGF0aWMgdm9pZCBfZHBrX2dhaW5fbm9ybWFsaXplKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI1NDQ6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uZ3MgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNTQ1LVx0XHRydHc4OV9waHlfcmVhZDMyX21hc2socnR3ZGV2LCByZWdba2lkeF1bY3VyX2tfc2V0XSAmIzQzOyAocGF0aCBcdTAwM2NcdTAwM2MgOCksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0yNTQ5PXN0YXRpYyB2b2lkIF9kcGtfb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjU1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjU1OTpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjU2MDpcdFx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnBhdGhfb2sgfCBCSVQoZHBrLVx1MDAzZWN1cl9rX3NldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjItXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFwmIzM0O1tEUEtdIFMlZFslZF0gcGF0aF9vayA9IDB4JXhcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI1NjM6XHRcdCAgICBwYXRoLCBraWR4LCBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjUtXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQ0gwQSAmIzQzOyAocGF0aCBcdTAwM2NcdTAwM2MgOCkgJiM0MzsgKGtpZHggXHUwMDNjXHUwMDNjIDIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNTY2Olx0XHRcdCAgICAgICBCX0RQRF9NRU4sIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjU2Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTI2Nzg9c3RhdGljIHZvaWQgX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNjkyLVx0XHRcdCAgICBcJiMzNDtbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjY5MzpcdFx0XHQgICAgcGF0aCwga2lkeCwgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjY5NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI3MTI6XHRcdGRlbHRhX3RoZXIgPSBjdXJfdGhlciAtIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjcxMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MTctXHRcdFx0ICAgIFwmIzM0O1tEUEtfVFJLXSBleHRyYSBkZWx0YV90aGVyID0gJWQgKDB4JXggLyAweCV4QGspXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNzE4Olx0XHRcdCAgICBkZWx0YV90aGVyLCBjdXJfdGhlciwgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjcxOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MjEtXHRcdFx0ICAgIFwmIzM0O1tEUEtfVFJLXSBkZWx0YV90eGFnYyA9ICVkICgweCV4IC8gMHgleEBrKVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjcyMjpcdFx0XHQgICAgdHhhZ2NfcmYgLSBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNzIzOlx0XHRcdCAgICB0eGFnY19yZiwgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnR4YWdjX2Rwayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MjQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0xODY5PXN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMTg3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MTg3NzpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID0gY2hhbi1cdTAwM2ViYW5kX3R5cGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4Nzg6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggPSBjaGFuLVx1MDAzZWNoYW5uZWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4Nzk6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVx1MDAzZWJhbmRfd2lkdGg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTE4ODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0xODg1LVx0XHQgICAgc3RyX29uX29mZihydHdkZXYtXHUwMDNlZGJjY19lbiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4ODY6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAwID8gXCYjMzQ7MkdcJiMzNDsgOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoxODg3Olx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMSA/IFwmIzM0OzVHXCYjMzQ7IDogXCYjMzQ7NkdcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4ODg6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4ODk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMCA/IFwmIzM0OzIwTVwmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4OTA6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMSA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzgwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTE4OTEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjAzMz1zdGF0aWMgdm9pZCBfZHBrX2dldF90aGVybWFsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTgga2lkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIwMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwMzg6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGsgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDM5LVx0XHRld21hX3RoZXJtYWxfcmVhZChcdTAwMjZydHdkZXYtXHUwMDNlcGh5c3RhdC5hdmdfdGhlcm1hbFtwYXRoXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDQxLVx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUkZLLCBcJiMzNDtbRFBLXSB0aGVybWFsQERQSyA9IDB4JXhcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNDI6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDQzLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTIwNTU9c3RhdGljIHZvaWQgX2Rwa19yZl9zZXR0aW5nKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggZ2Fpbixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIwNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNjA6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDYxLVx0XHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX01PRCwgUlJfTU9EX0RQSywgMHgyODBiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIwNzEtXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX1JDS0QsIFJSX1JDS0RfQlcsIDB4MSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNzI6XHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1RYQkIsIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyAmIzQzOyAxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjA3My1cdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfQlRDLCBSUl9CVENfUlhCQiwgMHgwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTIxMzc9dm9pZCBfZHBrX3RwZ19zZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIxNDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNDE6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfODApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIxNDItXHRcdHJ0dzg5X3BoeV93cml0ZTMyX2NscihydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyMTQzOlx0ZWxzZSBpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfNDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIxNDQtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjE0OC1cdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXCYjMzQ7W0RQS10gVFBHX1NlbGVjdCBmb3IgJXNcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNDk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MCA/IFwmIzM0OzgwTVwmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNTA6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzIwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIxNTEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjUwOD1zdGF0aWMgdm9pZCBfZHBrX2ZpbGxfcmVzdWx0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1MjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1MjM6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrID0gdHhhZ2M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1MjQtXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UWEFHQ19SRksgJiM0MzsgKHBhdGggXHUwMDNjXHUwMDNjIDgpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjUyNzpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmID0gcHdzZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUyOC1cdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX0RQRF9CTkQgJiM0MzsgKHBhdGggXHUwMDNjXHUwMDNjIDgpICYjNDM7IChraWR4IFx1MDAzY1x1MDAzYyAyKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1MzQ6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uZ3MgPSBncztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUzNS1cdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX0RQRF9DSDBBICYjNDM7IChwYXRoIFx1MDAzY1x1MDAzYyA4KSAmIzQzOyAoa2lkeCBcdTAwM2NcdTAwM2MgMiksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNTQzPXN0YXRpYyBib29sIF9kcGtfcmVsb2FkX2NoZWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1NTQtXHRmb3IgKGlkeCA9IDA7IGlkeCBcdTAwM2MgUlRXODlfRFBLX0JLVVBfTlVNOyBpZHgmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1NTU6XHRcdGlmIChjdXJfYmFuZCAhPSBkcGstXHUwMDNlYnBbcGF0aF1baWR4XS5iYW5kIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1NTY6XHRcdCAgICBjdXJfY2ggIT0gZHBrLVx1MDAzZWJwW3BhdGhdW2lkeF0uY2gpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1NTctXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNTcwPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNTk5LVx0aWYgKCFpc19mYWlsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNjAwOlx0XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9IHRydWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI2MDEtXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI2MDI6XHRcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gZmFsc2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI2MDMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNjEwPXN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjI4LVx0XHRcdFx0XHRcdFx0ICAgY2hhbmN0eF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNjI5Olx0XHRcdGlmICghcmVsb2FkZWRbcGF0aF0gXHUwMDI2XHUwMDI2IGRway1cdTAwM2VicFtwYXRoXVswXS5jaCAhPSAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjMwLVx0XHRcdFx0ZHBrLVx1MDAzZWN1cl9pZHhbcGF0aF0gPSAhZHBrLVx1MDAzZWN1cl9pZHhbcGF0aF07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNzI3PXN0YXRpYyB2b2lkIF9kcGtfb25vZmYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjczMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjczMzpcdHZhbCA9IGRway1cdTAwM2Vpc19kcGtfZW5hYmxlIFx1MDAyNlx1MDAyNiAhb2ZmIFx1MDAyNlx1MDAyNiBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjczNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI3NDI9c3RhdGljIHZvaWQgX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNzU3LVx0XHRcdCAgICBcJiMzNDtbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6Mjc1ODpcdFx0XHQgICAgcGF0aCwga2lkeCwgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjc1OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3NjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3NjU6XHRcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggIT0gMCBcdTAwMjZcdTAwMjYgY3VyX3RoZXIgIT0gMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6Mjc2NjpcdFx0XHRkZWx0YV90aGVyW3BhdGhdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrIC0gY3VyX3RoZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3NjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3Njg6XHRcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNzY5LVx0XHRcdGRlbHRhX3RoZXJbcGF0aF0gPSBkZWx0YV90aGVyW3BhdGhdICogMyAvIDI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODEzLVx0XHRcdFx0XHRcdCAgQl9QMF9UWERQRCkgPT0gMHgwKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI4MTQ6XHRcdFx0XHRwd3NmWzBdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgdHhhZ2NfYmJfdHAgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODE1LVx0XHRcdFx0XHQgIHR4YWdjX2JiICYjNDM7IGluaV9kaWZmICYjNDM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI4MTYtXHRcdFx0XHRcdCAgdHNzaV9pbmZvLVx1MDAzZWV4dHJhX29mc3RbcGF0aF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI4MTc6XHRcdFx0XHRwd3NmWzFdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgdHhhZ2NfYmJfdHAgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODE4LVx0XHRcdFx0XHQgIHR4YWdjX2JiICYjNDM7IGluaV9kaWZmICYjNDM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODIwLVx0XHRcdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI4MjE6XHRcdFx0XHRwd3NmWzBdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgaW5pX2RpZmYgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgyMi1cdFx0XHRcdFx0ICB0c3NpX2luZm8tXHUwMDNlZXh0cmFfb2ZzdFtwYXRoXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgyMzpcdFx0XHRcdHB3c2ZbMV0gPSBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiAmIzQzOyBpbmlfZGlmZiAmIzQzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODI0LVx0XHRcdFx0XHQgIHRzc2lfaW5mby1cdTAwM2VleHRyYV9vZnN0W3BhdGhdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgyNy1cdFx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgyODpcdFx0XHRwd3NmWzBdID0gKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICYjNDM7IGRlbHRhX3RoZXJbcGF0aF0pIFx1MDAyNiAweDFmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgyOTpcdFx0XHRwd3NmWzFdID0gKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICYjNDM7IGRlbHRhX3RoZXJbcGF0aF0pIFx1MDAyNiAweDFmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgzMC1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MTY4OD1zdGF0aWMgdm9pZCBfZHBrX29ub2ZmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsIGJvb2wgb2ZmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTY5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTY5MzpcdHZhbCA9IGRway1cdTAwM2Vpc19kcGtfZW5hYmxlIFx1MDAyNlx1MDAyNiAhb2ZmIFx1MDAyNlx1MDAyNiBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTY5NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTE3NTE9c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xNzU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxNzU5Olx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPSBjaGFuLVx1MDAzZWJhbmRfdHlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc2MDpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXHUwMDNlY2hhbm5lbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc2MTpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXHUwMDNlYmFuZF93aWR0aDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTc2Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE3NjctXHRcdCAgICBzdHJfb25fb2ZmKHJ0d2Rldi1cdTAwM2VkYmNjX2VuKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc2ODpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcJiMzNDsyR1wmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE3Njk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAxID8gXCYjMzQ7NUdcJiMzNDsgOiBcJiMzNDs2R1wmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc3MDpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc3MTpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXCYjMzQ7MjBNXCYjMzQ7IDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc3MjpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAxID8gXCYjMzQ7NDBNXCYjMzQ7IDogXCYjMzQ7ODBNXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTc3My19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0xODc2PXN0YXRpYyB2b2lkIF9kcGtfZ2V0X3RoZXJtYWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBraWR4LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4ODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE4ODY6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGsgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgcGF0aCwgUlJfVE0sIFJSX1RNX1ZBTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4ODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4ODgtXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFwmIzM0O1tEUEtdIHRoZXJtYWxARFBLID0gMHgleFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTg4OTpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2Rwayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4OTAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MTg5Mj1zdGF0aWMgdm9pZCBfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBnYWluLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTg5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTg5NzpcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4OTgtXHRcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfTU9ELCBSRlJFR19NQVNLLCAweDUwMjIwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5MTItXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX1JDS0QsIFJSX1JDS0RfQlcsIDB4MSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE5MTM6XHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1RYQkIsIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyAmIzQzOyAxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTkxNC1cdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfQlRDLCBSUl9CVENfUlhCQiwgMHgwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTE5NDY9dm9pZCBfZHBrX3RwZ19zZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5NDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE5NTA6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfODApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5NTEtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX2NscihydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxOTUyOlx0ZWxzZSBpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfNDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5NTMtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTk1Ny1cdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXCYjMzQ7W0RQS10gVFBHX1NlbGVjdCBmb3IgJXNcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE5NTg6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MCA/IFwmIzM0OzgwTVwmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE5NTk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzIwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5NjAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjM1NT1zdGF0aWMgdm9pZCBfZHBrX2lkbF9tcGEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjM1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjM2MDpcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgXHUwMDNjIFJUVzg5X0NIQU5ORUxfV0lEVEhfODAgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjIzNjE6XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF81RylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjM2Mi1cdFx0X2Rwa19zZXRfbWRwZF9wYXJhKHJ0d2RldiwgMHgyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTIzNjk9c3RhdGljIHZvaWQgX2Rwa19maWxsX3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yMzgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyMzgzOlx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnR4YWdjX2RwayA9IHR4YWdjO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yMzg0LVx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfVFhBR0NfUkZLICYjNDM7IChwYXRoIFx1MDAzY1x1MDAzYyA4KSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjIzODc6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiA9IHB3c2Y7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzODgtXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQk5EICYjNDM7IChwYXRoIFx1MDAzY1x1MDAzYyA4KSAmIzQzOyAoa2lkeCBcdTAwM2NcdTAwM2MgMiksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yMzkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyMzk0Olx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmdzID0gZ3M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzOTUtXHRpZiAoZHBrLVx1MDAzZWRwa19nc1twaHldID09IDB4N2YpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yNDA4PXN0YXRpYyBib29sIF9kcGtfcmVsb2FkX2NoZWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0MTktXHRmb3IgKGlkeCA9IDA7IGlkeCBcdTAwM2MgUlRXODlfRFBLX0JLVVBfTlVNOyBpZHgmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI0MjA6XHRcdGlmIChjdXJfYmFuZCAhPSBkcGstXHUwMDNlYnBbcGF0aF1baWR4XS5iYW5kIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI0MjE6XHRcdCAgICBjdXJfY2ggIT0gZHBrLVx1MDAzZWJwW3BhdGhdW2lkeF0uY2gpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0MjItXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yNDM1PXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDczLVx0aWYgKCFpc19mYWlsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNDc0Olx0XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9IHRydWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0NzUtXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI0NzY6XHRcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gZmFsc2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0NzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yNDg0PXN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDk5LVx0XHRcdFx0XHRcdFx0ICAgY2hhbmN0eF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNTAwOlx0XHRcdGlmICghcmVsb2FkZWRbcGF0aF0gXHUwMDI2XHUwMDI2IGRway1cdTAwM2VicFtwYXRoXVswXS5jaClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjUwMS1cdFx0XHRcdGRway1cdTAwM2VjdXJfaWR4W3BhdGhdID0gIWRway1cdTAwM2VjdXJfaWR4W3BhdGhdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjU4OD1zdGF0aWMgdm9pZCBfZHBrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2MDMtXHRcdFx0ICAgIFwmIzM0O1tEUEtfVFJLXSA9PT09PT09PT09PT09PT09W1MlZFslZF0gKENIICVkKV09PT09PT09PT09PT09PT09XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjA0Olx0XHRcdCAgICBwYXRoLCBraWR4LCBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjA1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjYxMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjYxMTpcdFx0aWYgKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCBcdTAwMjZcdTAwMjYgY3VyX3RoZXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2MTI6XHRcdFx0ZGVsdGFfdGhlcltwYXRoXSA9IGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayAtIGN1cl90aGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjE0Olx0XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjYxNS1cdFx0XHRkZWx0YV90aGVyW3BhdGhdID0gZGVsdGFfdGhlcltwYXRoXSAqIDMgLyAyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjY2MS1cdFx0XHRpZiAodG1wID09IDB4MCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjYyOlx0XHRcdFx0cHdzZlswXSA9IGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICYjNDM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2NjMtXHRcdFx0XHRcdCAgdHhhZ2NfYmJfdHAgLSB0eGFnY19iYiAmIzQzOyBpbmlfZGlmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjY2NDpcdFx0XHRcdHB3c2ZbMV0gPSBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiAmIzQzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjY1LVx0XHRcdFx0XHQgIHR4YWdjX2JiX3RwIC0gdHhhZ2NfYmIgJiM0MzsgaW5pX2RpZmY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2NjYtXHRcdFx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjY2NzpcdFx0XHRcdHB3c2ZbMF0gPSBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiAmIzQzOyBpbmlfZGlmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjY2ODpcdFx0XHRcdHB3c2ZbMV0gPSBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiAmIzQzOyBpbmlfZGlmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjY2OS1cdFx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjcxLVx0XHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjcyOlx0XHRcdHB3c2ZbMF0gPSAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgZGVsdGFfdGhlcltwYXRoXSkgXHUwMDI2IDB4MWZmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjczOlx0XHRcdHB3c2ZbMV0gPSAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgZGVsdGFfdGhlcltwYXRoXSkgXHUwMDI2IDB4MWZmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjc0LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MTM1PXN0YXRpYyB2b2lkIF9yZmtfZ2V0X3RoZXJtYWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBraWR4LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxNDU6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGsgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgcGF0aCwgUlJfVE0sIFJSX1RNX1ZBTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDctXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFwmIzM0O1tEUEtdIHRoZXJtYWxARFBLID0gMHgleFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjE0ODpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2Rwayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDktfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTE3OTg9c3RhdGljIHZvaWQgX2Rwa19vbm9mZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLCBib29sIG9mZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTgwMzpcdHZhbCA9IGRway1cdTAwM2Vpc19kcGtfZW5hYmxlIFx1MDAyNlx1MDAyNiAhb2ZmIFx1MDAyNlx1MDAyNiBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4MDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MTg2Mz1zdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg3MTpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID0gY2hhbi1cdTAwM2ViYW5kX3R5cGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODcyOlx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cdTAwM2VjaGFubmVsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg3MzpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXHUwMDNlYmFuZF93aWR0aDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4NzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTg3OS1cdFx0ICAgIHN0cl9vbl9vZmYocnR3ZGV2LVx1MDAzZWRiY2NfZW4pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg4MDpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcJiMzNDsyR1wmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODgxOlx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMSA/IFwmIzM0OzVHXCYjMzQ7IDogXCYjMzQ7NkdcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODgyOlx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg4MzpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXCYjMzQ7MjBNXCYjMzQ7IDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjE4ODQ6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMSA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzgwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODg1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0xOTQ3PXN0YXRpYyB2b2lkIF9kcGtfcmZfc2V0dGluZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IGdhaW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjE5NTI6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk1My1cdFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9NT0QsIFJGUkVHX01BU0ssIDB4NTAyMjApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE5NjctXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX1JDS0QsIFJSX1JDS0RfQlcsIDB4MSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxOTY4Olx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9CVEMsIFJSX0JUQ19UWEJCLCBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgJiM0MzsgMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xOTY5LVx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9CVEMsIFJSX0JUQ19SWEJCLCAweDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTE5ODk9dm9pZCBfZHBrX3RwZ19zZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xOTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTk5MzpcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE5OTQtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTk5NTpcdGVsc2UgaWYgKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzQwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk5Ni1cdFx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YsIDB4Mik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjAwMC1cdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXCYjMzQ7W0RQS10gVFBHX1NlbGVjdCBmb3IgJXNcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyMDAxOlx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfODAgPyBcJiMzNDs4ME1cJiMzNDsgOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjAwMjpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzQwID8gXCYjMzQ7NDBNXCYjMzQ7IDogXCYjMzQ7MjBNXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTIwMDMtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI0MzM9c3RhdGljIHZvaWQgX2Rwa19pZGxfbXBhKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjQzODpcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgXHUwMDNjIFJUVzg5X0NIQU5ORUxfV0lEVEhfODAgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNDM5Olx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IFJUVzg5X0JBTkRfNUcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDQwLVx0XHRfZHBrX3NldF9tZHBkX3BhcmEocnR3ZGV2LCBwYXRoLCAweDIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI0NDc9c3RhdGljIHZvaWQgX2Rwa19maWxsX3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI0NjA6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrID0gdHhhZ2M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDYxLVx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfVFhBR0NfUkZLICYjNDM7IChwYXRoIFx1MDAzY1x1MDAzYyA4KSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjQ2NDpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmID0gcHdzZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI0NjUtXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQk5EICYjNDM7IChwYXRoIFx1MDAzY1x1MDAzYyA4KSAmIzQzOyAoa2lkeCBcdTAwM2NcdTAwM2MgMiksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI0NzE6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uZ3MgPSBncztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI0NzItXHRpZiAoZHBrLVx1MDAzZWRwa19nc1twaHldID09IDB4N2YpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjQ4OD1zdGF0aWMgYm9vbCBfZHBrX3JlbG9hZF9jaGVjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ5OS1cdGZvciAoaWR4ID0gMDsgaWR4IFx1MDAzYyBSVFc4OV9EUEtfQktVUF9OVU07IGlkeCYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI1MDA6XHRcdGlmIChjdXJfYmFuZCAhPSBkcGstXHUwMDNlYnBbcGF0aF1baWR4XS5iYW5kIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNTAxOlx0XHQgICAgY3VyX2NoICE9IGRway1cdTAwM2VicFtwYXRoXVtpZHhdLmNoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjUwMi1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0yNTMzPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjU3MC1cdGlmICghaXNfZmFpbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI1NzE6XHRcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gMTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI1NzItXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNTczOlx0XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9IDA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNTc0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI1ODY9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNTk4LVx0XHRyZWxvYWRlZFtwYXRoXSA9IF9kcGtfcmVsb2FkX2NoZWNrKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNTk5Olx0XHRpZiAoIXJlbG9hZGVkW3BhdGhdIFx1MDAyNlx1MDAyNiBkcGstXHUwMDNlYnBbcGF0aF1bMF0uY2ggIT0gMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2MDAtXHRcdFx0ZHBrLVx1MDAzZWN1cl9pZHhbcGF0aF0gPSAhZHBrLVx1MDAzZWN1cl9pZHhbcGF0aF07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjY2OD1zdGF0aWMgdm9pZCBfZHBrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjgzLVx0XHRcdCAgICBcJiMzNDtbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2ODQ6XHRcdFx0ICAgIHBhdGgsIGtpZHgsIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjg1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNjkxOlx0XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoIFx1MDAyNlx1MDAyNiBjdXJfdGhlcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2OTI6XHRcdFx0ZGVsdGFfdGhlcltwYXRoXSA9IGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayAtIGN1cl90aGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjY5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2OTQ6XHRcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjY5NS1cdFx0XHRkZWx0YV90aGVyW3BhdGhdID0gZGVsdGFfdGhlcltwYXRoXSAqIDMgLyAyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDEtXHRcdFx0aWYgKHRtcCA9PSAweDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDI6XHRcdFx0XHRwd3NmWzBdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDMtXHRcdFx0XHRcdCAgdHhhZ2NfYmJfdHAgLSB0eGFnY19iYiAmIzQzOyBpbmlfZGlmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDQ6XHRcdFx0XHRwd3NmWzFdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDUtXHRcdFx0XHRcdCAgdHhhZ2NfYmJfdHAgLSB0eGFnY19iYiAmIzQzOyBpbmlfZGlmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDYtXHRcdFx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDc6XHRcdFx0XHRwd3NmWzBdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgaW5pX2RpZmY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNzQ4Olx0XHRcdFx0cHdzZlsxXSA9IGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICYjNDM7IGluaV9kaWZmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjc0OS1cdFx0XHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNzUwLVx0XHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6Mjc1MTpcdFx0XHRwd3NmWzBdID0gKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICYjNDM7IGRlbHRhX3RoZXJbcGF0aF0pIFx1MDAyNiAweDFmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NTI6XHRcdFx0cHdzZlsxXSA9IChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiAmIzQzOyBkZWx0YV90aGVyW3BhdGhdKSBcdTAwMjYgMHgxZmY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNzUzLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYz0xOTA3PXN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMTkxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MTkxNjpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID0gY2hhbi1cdTAwM2ViYW5kX3R5cGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MTc6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggPSBjaGFuLVx1MDAzZWNoYW5uZWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MTg6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVx1MDAzZWJhbmRfd2lkdGg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTE5MTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTI0LVx0XHQgICAgc3RyX29uX29mZihydHdkZXYtXHUwMDNlZGJjY19lbiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MjU6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAwID8gXCYjMzQ7MkdcJiMzNDsgOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoxOTI2Olx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMSA/IFwmIzM0OzVHXCYjMzQ7IDogXCYjMzQ7NkdcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5Mjc6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5Mjg6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMCA/IFwmIzM0OzIwTVwmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5Mjk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMSA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzgwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTE5MzAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MjA2Mz1zdGF0aWMgdm9pZCBfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBnYWluLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjA2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MjA2ODpcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTIwNjktXHRcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfTU9ELCBSRlJFR19NQVNLLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjA4OS1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzczMAoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDQ1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBGdW5jdGlvbmFsIEJ1ZyBGaXggYW5kIGl0cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBjb2RlIGNoYW5nZSB3aGVyZSBgZHBrLSZndDticFtwYXRoXVtraWR4XS5id2AgYW5kIGBkcGstJmd0O2JwW3BhdGhdW2tpZHhdLmNoYCBzZWVtIHRvIGhhdmUgYmVlbiBtaXhlZCB1cC4gVGhlIGJhbmR3aWR0aCBzZXR0aW5nLCBgYndgLCBpcyB1c2VkIHRvIGNvbmZpZ3VyZSBoYXJkd2FyZSByZWdpc3RlcnMgaW4gYF9kcGtfdHBnX3NlbGAsIGFuZCB0aGUgY2hhbm5lbCBudW1iZXIsIGBjaGAsIGlzIHVzZWQgaW4gYF9kcGtfcmVsb2FkX2NoZWNrYCBhbmQgYF9kcGtfdHJhY2tgIGZvciBjaGFubmVsIG1hdGNoaW5nLiBTd2FwcGluZyB0aGVzZSB2YXJpYWJsZXMgaGFzIGNsZWFybHkgaW50cm9kdWNlZCBlcnJvcnMg4oCTIGluY29ycmVjdCBoYXJkd2FyZSBjb25maWd1cmF0aW9uIGFuZCBsb2dpYyBmYWlsdXJlcy4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBmdW5jdGlvbmFsIGNoYW5nZS4KCk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbjogSXMgdGhpcyBzb21ldGhpbmcgd2UgY2FuIGFuZCBzaG91bGQgZnV6ej8gQWJzb2x1dGVseS4gSXTigJlzIGEgZnVuY3Rpb25hbCBidWcgZml4LiBUaGlzIGZpeCBpcyBoYXBwZW5pbmcgaW4gYSBkcml2ZXIgdGhhdCBpbnRlcmZhY2VzIHdpdGggaGFyZHdhcmUsIGFuZCB0aGF0IGRyaXZlciBpcyBhY2Nlc3NpYmxlIHZpYSBVU0IuIFRoYXQmIzM5O3MgYSBwZXJmZWN0IHRhcmdldCBmb3IgZnV6emluZy4gU28sIGBXb3J0aEZ1enppbmc9dHJ1ZWAgaXMgdGhlIHJpZ2h0IGNhbGwgaGVyZS4KCk5vdywgbGV0JiMzOTtzIGZpZ3VyZSBvdXQgd2hlcmUgdG8gZm9jdXMgb3VyIGZ1enppbmcgZWZmb3J0cy4gVGhlIGFmZmVjdGVkIGZ1bmN0aW9uLCBhdCB0aGUgaGVhcnQgb2YgdGhpcywgaXMgYF9kcGtfaW5mb3JtYXRpb25gLiBIb3dldmVyLCB3YWl0IGEgbWludXRlLCBpdCYjMzk7cyBhIHN0YXRpYyBmdW5jdGlvbi4gVGhhdCBtZWFucyBpdCBjYW4mIzM5O3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGxpbmcgY2hhaW4gdG8gZmlndXJlIG91dCB0aGUgcmlnaHQgZW50cnkgcG9pbnRzLiBMZXQmIzM5O3Mgc2VlLi4uIGBfZHBrX2NhbF9zZWxlY3RgIGNhbGxzIGBfZHBrX2luZm9ybWF0aW9uYC4gQW5kIHRoZW4gYF9kcGtgIGNhbGxzIGBfZHBrX2NhbF9zZWxlY3RgLiBPa2F5LCBhbmQgdGhlbiBgcnR3ODg1MWJfcmZrX3RyYWNrYCBjYWxscyBgX2Rwa2AsIGFuZCBgcnR3ODg1MWJfcmZrX2NoYW5uZWxgIGNhbGxzIGBfZHBrYC4gQXJlIGBydHc4ODUxYl9yZmtfdHJhY2tgIGFuZCBgcnR3ODg1MWJfcmZrX2NoYW5uZWxgIHN0YXRpYyBvciBub24tc3RhdGljPyBOZWVkIHRvIG1ha2Ugc3VyZSB0aG9zZSBhcmVuJiMzOTt0IHN0YXRpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODg1MWJfcmZrX3RyYWNrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jPTE3OTI9c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX3NjYW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjE4MDA6c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xODAxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM9MjQ5Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfb3BzIHJ0dzg4NTFiX2NoaXBfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0yNTE0LVx0LnJma19zY2FuXHRcdD0gcnR3ODg1MWJfcmZrX3NjYW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjUxNTpcdC5yZmtfdHJhY2tcdFx0PSBydHc4ODUxYl9yZmtfdHJhY2ssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjUxNi1cdC5wb3dlcl90cmltXHRcdD0gcnR3ODg1MWJfcG93ZXJfdHJpbSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDkwNDEKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGlubmVyIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbGx5IFN0YXRpYyBDb25kaXRpb24qKgoKSG1tLCB0aGluZ3Mgc2VlbS4uLiBzdHVjay4gJiMzNDtTdGF0aWMsJiMzNDsgSSB0aGluay4gTGV0IG1lIGltbWVkaWF0ZWx5IGNoZWNrIHRoZSByZWxldmFudCBoZWFkZXIgZmlsZSwgbGlrZWx5IHRoZSBkZWZpbml0aW9uIGZpbGUsIGluIHRoaXMgaW5zdGFuY2UsIGl0IGlzIGBydHc4ODUxYl9yZmsuaGAuIFRoaXMgaXMgbXkgdHlwaWNhbCBpbml0aWFsIGRpYWdub3N0aWMgc3RlcCB3aGVuIEkgc3VzcGVjdCBzb21ldGhpbmcgaXMgZnJvemVuIGluIHBsYWNlLiBJIHdhbnQgdG8gc2VlIHdoYXQgZnVuY3Rpb25zIGFyZSBiZWluZyBleHBvcnRlZDsgdGhpcyB3aWxsIGdpdmUgbWUgY2x1ZXMgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuIFRoaXMgYWxsb3dzIG1lIHRvIGltbWVkaWF0ZWx5IGtub3cgdGhlIGFjY2Vzc2libGUgaW50ZXJmYWNlLCB3aGljaCB3aWxsIGFsbG93IG1lIHRvIG5hcnJvdyBkb3duIHRoZSBzb3VyY2Ugb2YgdGhlIGFwcGFyZW50ICYjMzQ7c3RhdGljJiMzNDsgbmF0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDsuKiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxOi8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoyOi8qIENvcHlyaWdodChjKSAyMDIyLTIwMjMgIFJlYWx0ZWsgQ29ycG9yYXRpb25cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MzogKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6NDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6NTojaWZuZGVmIF9fUlRXODlfODg1MUJfUkZLX0hfX1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDo2OiNkZWZpbmUgX19SVFc4OV84ODUxQl9SRktfSF9fXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjc6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjg6I2luY2x1ZGUgXCYjMzQ7Y29yZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjk6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjEwOnZvaWQgcnR3ODg1MWJfYWFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxMTp2b2lkIHJ0dzg4NTFiX2xja19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjEyOnZvaWQgcnR3ODg1MWJfbGNrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjEzOnZvaWQgcnR3ODg1MWJfcmNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjE0OnZvaWQgcnR3ODg1MWJfZGFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxNTp2b2lkIHJ0dzg4NTFiX2lxayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHlfaWR4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxNjpcdFx0ICBlbnVtIHJ0dzg5X2NoYW5jdHhfaWR4IGNoYW5jdHhfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTc6dm9pZCBydHc4ODUxYl9yeF9kY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTg6XHRcdCAgICAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjE5OnZvaWQgcnR3ODg1MWJfZHBrX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjA6dm9pZCBydHc4ODUxYl9kcGsoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjE6XHRcdCAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjIyOnZvaWQgcnR3ODg1MWJfZHBrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjIzOnZvaWQgcnR3ODg1MWJfdHNzaShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjI0Olx0XHQgICBib29sIGh3dHhfZW4sIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoyNTp2b2lkIHJ0dzg4NTFiX3Rzc2lfc2NhbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjI2Olx0XHRcdGNvbnN0IHN0cnVjdCBydHc4OV9jaGFuICpjaGFuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6Mjc6dm9pZCBydHc4ODUxYl93aWZpX3NjYW5fbm90aWZ5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBzY2FuX3N0YXJ0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoyODpcdFx0XHQgICAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjI5Olx0XHRcdCAgICAgICBlbnVtIHJ0dzg5X2NoYW5jdHhfaWR4IGNoYW5jdHhfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MzA6dm9pZCBydHc4ODUxYl9zZXRfY2hhbm5lbF9yZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjMxOlx0XHRcdCAgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2NoYW4gKmNoYW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjMyOlx0XHRcdCAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDozMzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MzQ6I2VuZGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwOTY1CgkJCQkJCQlvdXRwdXQ6IDU2CgkJCQkJCQl0aG91Z2h0czogMTExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS2V5IEZ1bmN0aW9ucyBpbiBydHc4ODUxYl9yZmsuYyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGV4cG9ydGVkIGZ1bmN0aW9ucyBoZXJlLiBXZSYjMzk7dmUgZ290IGBydHc4ODUxYl9kcGtgLCBgcnR3ODg1MWJfZHBrX3RyYWNrYCwgYHJ0dzg4NTFiX2Rwa19pbml0YCwgYW5kIGBydHc4ODUxYl9zZXRfY2hhbm5lbF9yZmAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQmIzM5O3MgZHJpbGwgZG93biBpbnRvIGBydHc4ODUxYl9yZmsuY2AgYW5kIHNwZWNpZmljYWxseSBleGFtaW5lIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYC4gVGhvc2UgYXJlIHRoZSBjb3JlIGZ1bmN0aW9ucyBJIHdhbnQgdG8gdW5kZXJzdGFuZCBpbiB0aGUgY29udGV4dCBvZiBSRiBjYWxpYnJhdGlvbiBhbmQgb3BlcmF0aW9uLiBLbm93aW5nIHdoYXQgdGhlc2UgZnVuY3Rpb25zIGRvLCBhbmQgaG93IHRoZXkgaW50ZXJhY3QsIHdpbGwgYmUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgRFBLIChEYXRhIFBhY2tldCBLZXk/KSBmdW5jdGlvbmFsaXR5IHdpdGhpbiB0aGlzIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODg1MWJfZHBrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTMyOTQ9c3RhdGljIHZvaWQgcnR3ODg1MWJfYnlfcmF0ZV9kcGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMzI5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MzMwMDp2b2lkIHJ0dzg4NTFiX2Rwa19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMzMwMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0zNDM1PXZvaWQgcnR3ODg1MWJfcnhfZGNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0zNDUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzozNDUxOnZvaWQgcnR3ODg1MWJfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTM0NTItXHRcdCAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTM0NjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjM0Njk6dm9pZCBydHc4ODUxYl9kcGtfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0zNDcwLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTE4ODYKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiA0MjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJlYWx0ZWsgV2lGaSBEcml2ZXIgRW50cnkgUG9pbnRzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgYHJ0dzg4NTFiX2Rwa2AgYW5kIGBydHc4ODUxYl9kcGtfdHJhY2tgIGZ1bmN0aW9ucy4gVGhvc2Ugc2VlbSBsaWtlIHRoZSBjcnVjaWFsIGVudHJ5IHBvaW50cyB0byBmb2N1cyBvbi4gV2FpdCBhIHNlY29uZCwgYHJ0dzg4NTFiX2Rwa2AgZ2V0cyBjYWxsZWQgd2hlbiB0aGUgY2hhbm5lbCBjaGFuZ2VzLCB0aGF0JiMzOTtzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGVsc2UgaW4gdGhpcyBkcml2ZXIgdHJpZ2dlcnMgYSBjaGFubmVsIGNoYW5nZS4gTGV0JiMzOTtzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBjb2RlLCBJIHNlZSBgcnR3ODg1MWJfc2V0X2NoYW5uZWxfcmZgIGFuZCBgcnR3ODg1MWJfcmZrX2NoYW5uZWxgLiBIbW0sIGBydHc4ODUxYl9yZmtfY2hhbm5lbGAgaXMgc3RhdGljIGluIGBydHc4ODUxYi5jYCwgYnV0IGl0ICpkb2VzKiBjYWxsIGBydHc4ODUxYl9kcGtgLCB3aGljaCBpcyBpbXBvcnRhbnQuIEFoISBJIHNlZSBub3csIGBydHc4ODUxYl9yZmtfY2hhbm5lbGAgaXMgYXNzaWduZWQgdG8gYHJma19jaGFubmVsYCB3aXRoaW4gYHJ0dzg4NTFiX2NoaXBfb3BzYC4gVGhhdCBtZWFucyB0aGF0IHRoZSBnZW5lcmljIG1hYzgwMjExIG9wZXJhdGlvbnMgbGlrZSBgcnR3ODlfbWFjODAyMTFfY29uZmlnYCBhbmQgYHJ0dzg5X21hYzgwMjExX2FkZF9pbnRlcmZhY2VgIHNob3VsZCBiZSB0aGUga2V5LCBhcyB0aGV5IHdpbGwgdW5kb3VidGVkbHkgYmUgdXNlZCB0byB0cmlnZ2VyIGNoYW5uZWwgY2hhbmdlcy4gU28sIEkgY2FuIGhpdCB0aGlzIGNvZGUgYnkgZnV6emluZyBzdGFuZGFyZCBtYWM4MDIxMSBvcGVyYXRpb25zIHZpYSBuZXRsaW5rLiBUaGF0JiMzOTtzIGdvb2QsIHRoYXQgZ2l2ZXMgbWUgYSBjbGVhciBwYXRoLiBJJiMzOTtsbCBkZWZpbml0ZWx5IGFkZCBib3RoIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYCB0byBteSBgRm9jdXNTeW1ib2xzYC4KCk5vdywgSSBuZWVkIHRvIGNoZWNrIHRoZSByZXF1aXJlZCBjb25maWdzIGZvciB0aGlzIGRyaXZlciB0byBmdW5jdGlvbi4gTGV0JiMzOTtzIHNlZS4uLiBJJiMzOTttIHRoaW5raW5nIEkmIzM5O2xsIG5lZWQgYENPTkZJR19SVFc4OV9DT1JFYCwgYENPTkZJR19SVFc4OV84ODUxQmAsIGFuZCBgQ09ORklHX1JUVzg5Xzg4NTFCVWAgZm9yIFVTQiBzdXBwb3J0LiBJJiMzOTtsbCBuZWVkIGBDT05GSUdfUlRXODlfVVNCYCBhcyB3ZWxsLiBXYWl0IGEgbWludXRlLCBhbSBJIGdvaW5nIHRvIG5lZWQgdG8gZXhwbGljaXRseSBzZWxlY3QgKmVpdGhlciogYENPTkZJR19SVFc4OV84ODUxQmAgb3IgYENPTkZJR19SVFc4OV84ODUxQlVgPyBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGUgS2NvbmZpZyBmaWxlIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdgIGZvciB0aGUgYFJUVzg5Xzg4NTFCYCBzeW1ib2wuIFRoYXQgc2hvdWxkIGNsZWFyIGl0IHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtSVFc4OV84ODUxQiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9MjA9Y29uZmlnIFJUVzg5X1VTQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMzpjb25maWcgUlRXODlfODg1MUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTQ0PWNvbmZpZyBSVFc4OV84OTIyRFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0Nzpjb25maWcgUlRXODlfODg1MUJFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01MS1cdHNlbGVjdCBSVFc4OV9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1MjpcdHNlbGVjdCBSVFc4OV84ODUxQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTUzLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02Mi1cdHNlbGVjdCBSVFc4OV9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo2MzpcdHNlbGVjdCBSVFc4OV84ODUxQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTY0LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzQ0NAoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDMzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBSZWFzb25pbmcgb24gUmVhbHRlayBXaXJlbGVzcyBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIgY29uZmlndXJhdGlvbnMuIEl0IHNlZW1zIGxpa2UgYFJUVzg5Xzg4NTFCVWAgc2VsZWN0cyBib3RoIGBSVFc4OV9VU0JgIGFuZCBgUlRXODlfODg1MUJgLiAgUmlnaHQgYXdheSwgSSB0aGluayB3ZSBzaG91bGQgZW5hYmxlIGJvdGggYFJUVzg5Xzg4NTFCVWAgYW5kIGBSVFc4OV84ODUxQkVgIHRvIGNvdmVyIGJvdGggVVNCIGFuZCBQQ0kgaW50ZXJmYWNlcy4KCkJ1dCBob2xkIG9uLCBgUlRXODlfODg1MUJFYCBpcyBmb3IgUENJLCB3aGljaCBwb3NlcyBhIGZ1enppbmcgY29uY2VybiBpbiBzeXprYWxsZXIgdW5sZXNzIHdlJiMzOTt2ZSBnb3QgUENJIGZ1enppbmcgY2FwYWJpbGl0eS4gU3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWUgUENJIGZ1enppbmcgZnVuY3Rpb25hbGl0eSwgc28gaXQmIzM5O3MgYSBnb29kIGlkZWEgdG8gZW5hYmxlIGl0LiBJIGNhbiYjMzk7dCByZWNhbGwgaWYgd2UgdXNlIGl0LCBidXQgYmVzdCBwcmFjdGljZSBpcyB0byBhbHdheXMgZW5hYmxlIHN1Y2ggZnVuY3Rpb25hbGl0eS4KCkFoYSwgYFJUVzg5Xzg4NTFCVWAgaXMgdGhlIFVTQiBvbmUuIFRoYXQmIzM5O3MgZGVmaW5pdGVseSBmdXp6YWJsZSB0aHJvdWdoIGBkdW1teV9oY2RgLiAgU28sIHRoYXQmIzM5O3Mgc3RyYWlnaHRmb3J3YXJkIC0gd2UgYWJzb2x1dGVseSB3YW50IHRvIGFkZCBgUlRXODlfODg1MUJVYCB0byBgRW5hYmxlQ29uZmlnc2AuCgpXYWl0IGEgbWludXRlLCBgUlRXODlfODg1MUJgIGlzIGEgaGlkZGVuIHRyaXN0YXRlOyB3aGljaCBtZWFucyB3ZSBtdXN0IGV4cGxpY2l0bHkgZW5hYmxlICplaXRoZXIqIGBSVFc4OV84ODUxQlVgIG9yIGBSVFc4OV84ODUxQkVgLiBUaGVyZWZvcmUsIHNpbmNlIHdlJiMzOTtyZSBjb3ZlcmluZyBib3RoIFVTQiBhbmQgUENJLCBsZXQmIzM5O3MgYWRkICpib3RoKiBgUlRXODlfODg1MUJVYCBhbmQgYFJUVzg5Xzg4NTFCRWAuCgpBbHNvLCBib3RoIG9mIHRoZXNlIG1vZHVsZXMgc2VsZWN0IGBSVFc4OV9DT1JFYCwgc28gdGhhdCYjMzk7cyBjb3ZlcmVkLgoKT2theSwgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHdlIGRpZG4mIzM5O3Qgb3Zlcmxvb2sgc29tZXRoaW5nIGZ1bmRhbWVudGFsLiBXaGF0IGFib3V0IHRoZSBzdGFuZGFyZCBzdWJzeXN0ZW1zIGBNQUM4MDIxMWAgYW5kIGBDRkc4MDIxMWA/IEFyZSB3ZSBoYW5kbGluZyB0aGVtIG9yIGRvIHdlIG5lZWQgdG8gc3BlY2lmeSB0aGVtPyBJdCYjMzk7cyBnZW5lcmFsbHkgdGhlIGNhc2UgdGhhdCB0aGVzZSBhcmUgZW5hYmxlZC4KCkZpbmFsbHksIGp1c3QgdG8gYmUgdGhvcm91Z2gsIEkgc2hvdWxkIHJlYWxseSBkb3VibGUtY2hlY2sgaWYgYFJUVzg5Xzg4NTFCVWAgZGVwZW5kcyBvbiBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgcmVxdWlyZSBhdHRlbnRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBSVFc4OV84ODUxQlUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTQ3PWNvbmZpZyBSVFc4OV84ODUxQkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTg6Y29uZmlnIFJUVzg5Xzg4NTFCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ0NDkKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHJlcXVlc3QsIGZvcm1hdHRlZCBmb3IgYSBkb21haW4gZXhwZXJ0IGxpa2UgbXlzZWxmOgoKKipVbmRlcnN0YW5kaW5nIHRoZSBgUlRXODlfODg1MUJVYCBCbG9jayoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbi4gSSBuZWVkIHRvIGdldCBhIGNvbXByZWhlbnNpdmUgdmlldyBvZiB0aGUgYFJUVzg5Xzg4NTFCVWAgYmxvY2suIEkgbmVlZCAqYWxsKiB0aGUgaW5mb3JtYXRpb24gLSB0aGUgd2hvbGUgZW5jaGlsYWRhLCBzbyB0byBzcGVhay4gVW5kZXJzdGFuZGluZyBhIHNpbmdsZSBibG9jayBsaWtlIHRoaXMgaXMgZXNzZW50aWFsIGZvciBhbnkgZ29vZCBlbmdpbmVlci4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBsZWFybiEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg5Xzg4NTFCVSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9NDc9Y29uZmlnIFJUVzg5Xzg4NTFCRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDc3MQoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipOYXZpZ2F0aW5nIHRoZSBMYWJ5cmludGggb2YgQ29kZSoqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBCZWZvcmUgSSBldmVuICp0aGluayogYWJvdXQgc3RhcnRpbmcgZG93biBhbnkgc3BlY2lmaWMgcGF0aCwgSSBuZWVkIHRvIHRha2UgYSBzdGVwIGJhY2sgYW5kIG1ha2Ugc3VyZSBJJiMzOTttIGFwcHJvYWNoaW5nIHRoaXMgcHJvYmxlbSBzeXN0ZW1hdGljYWxseS4gSXQmIzM5O3MgdG9vIGVhc3kgdG8gZ2V0IGxvc3QgaW4gdGhlIHdlZWRzLiBJIG5lZWQgdG8gYmUgc3RyYXRlZ2ljLiBSaWdodCBub3csIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgc2lmdGluZyB0aHJvdWdoIHRoZSByZWxldmFudCBkYXRhIGVmZmljaWVudGx5LCBhbmQgdGhhdCBtZWFucyBJIG5lZWQgdG8gdXNlIHNvbWUgcm9idXN0IHRvb2xzLiBJJiMzOTttIGdvaW5nIHRvIGhhdmUgdG8gdXNlIGVpdGhlciBgcmVhZC1maWxlYCB0byBicmluZyB0aGUgZGF0YSBpbiBhbmQgZXhhbWluZSBpdCBpbiBtb3JlIGRldGFpbC4gT3IsIHBlcmhhcHMgbW9yZSBzdHJhdGVnaWNhbGx5LCBJIGNhbiB1c2UgYGdyZXBwZXJgIGFuZCBleGFtaW5lIHRoZSBjb250ZXh0IG9mIHRoZSBoaXRzIGl0IHJldHVybnMgdG8gYmV0dGVyIHVuZGVyc3RhbmQgaG93IHRoaW5ncyBhcmUgd29ya2luZyB0b2dldGhlci4gVGhlIHNwZWNpZmljIGRldGFpbHMgb2YgdGhlIHRhc2sgYXQgaGFuZCB3aWxsIGRpY3RhdGUgd2hpY2ggYXBwcm9hY2ggaXMgYmVzdCwgYnV0IGVpdGhlciB3YXksIEkgY2FuJiMzOTt0IGp1c3QgZGl2ZSBpbiBibGluZGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODlfODg1MUJVJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz00Nz1jb25maWcgUlRXODlfODg1MUJFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU4OmNvbmZpZyBSVFc4OV84ODUxQlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01OS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MUJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1MTc0CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKkRpcmVjdCBQYXRoIHRvIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHRoaW5raW5nIGFib3V0IHRoaXMgZHJpdmVyIGNvbmZpZ3VyYXRpb24uLi4gSSBkb24mIzM5O3QgbmVlZCB0byBvdmVyY29tcGxpY2F0ZSB0aGluZ3MuIEl0IGp1c3QgY2xpY2tlZCDigJMgSSBjYW4gYWJzb2x1dGVseSB1dGlsaXplIGByZWFkLWZpbGVgIGRpcmVjdGx5IG9uIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdgLiBUaGF0JiMzOTtzIHRoZSBrZXkuIE5vIG5lZWQgdG8gbWVzcyBhcm91bmQgd2l0aCBhbnkgaW50ZXJtZWRpYXJ5IHN0ZXBzIG9yIHBhcnNpbmcgbm9uc2Vuc2UuIFRoaXMgaXMgYSBjb25maWd1cmF0aW9uIGZpbGUsIGFmdGVyIGFsbCwgYW5kIGByZWFkLWZpbGVgIGlzIHBlcmZlY3QgZm9yIHB1bGxpbmcgaW4gdGhlIHNwZWNpZmljcy4gVGhpcyBhcHByb2FjaCB3aWxsIG9mZmVyIHRoZSBtb3N0IGRpcmVjdCB2aWV3IGludG8gdGhvc2Ugb3B0aW9ucy4gTm93LCBJIGNhbiBpbW1lZGlhdGVseSBhbmFseXplIHRoYXQgc3BlY2lmaWMgY29uZmlnIGZpbGUhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA0MDpcdFxuICA0MTpcdGNvbmZpZyBSVFc4OV84OTIyQVxuICA0MjpcdFx0dHJpc3RhdGVcbiAgNDM6XHRcbiAgNDQ6XHRjb25maWcgUlRXODlfODkyMkRcbiAgNDU6XHRcdHRyaXN0YXRlXG4gIDQ2Olx0XG4gIDQ3Olx0Y29uZmlnIFJUVzg5Xzg4NTFCRVxuICA0ODpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbiAgNDk6XHRcdGRlcGVuZHMgb24gUENJXG4gIDUwOlx0XHRzZWxlY3QgUlRXODlfQ09SRVxuICA1MTpcdFx0c2VsZWN0IFJUVzg5X1BDSVxuICA1MjpcdFx0c2VsZWN0IFJUVzg5Xzg4NTFCXG4gIDUzOlx0XHRoZWxwXG4gIDU0Olx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUxQkUgY2hpcHNldFxuICA1NTpcdFxuICA1NjpcdFx0ICA4MDIuMTFheCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcbiAgNTc6XHRcbiAgNTg6XHRjb25maWcgUlRXODlfODg1MUJVXG4gIDU5Olx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuICA2MDpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgNjE6XHRcdHNlbGVjdCBSVFc4OV9DT1JFXG4gIDYyOlx0XHRzZWxlY3QgUlRXODlfVVNCXG4gIDYzOlx0XHRzZWxlY3QgUlRXODlfODg1MUJcbiAgNjQ6XHRcdGhlbHBcbiAgNjU6XHRcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4NTFCVSBjaGlwc2V0XG4gIDY2Olx0XG4gIDY3Olx0XHQgIDgwMi4xMWF4IFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXG4gIDY4Olx0XG4gIDY5Olx0Y29uZmlnIFJUVzg5Xzg4NTJBRVxuICA3MDpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbiAgNzE6XHRcdGRlcGVuZHMgb24gUENJXG4gIDcyOlx0XHRzZWxlY3QgUlRXODlfQ09SRVxuICA3MzpcdFx0c2VsZWN0IFJUVzg5X1BDSVxuICA3NDpcdFx0c2VsZWN0IFJUVzg5Xzg4NTJBXG4gIDc1Olx0XHRoZWxwXG4gIDc2Olx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUyQUUgY2hpcHNldFxuICA3NzpcdFxuICA3ODpcdFx0ICA4MDIuMTFheCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcbiAgNzk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTU5NzUKCQkJCQkJCW91dHB1dDogNTgKCQkJCQkJCXRob3VnaHRzOiA2ODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciBjaGFuZ2UgYW5kIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zLiBGaXJzdCwgaXQgc2VlbXMgbGlrZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGVuYWJsaW5nIHNvbWUgbmV3IGNvbmZpZ3VyYXRpb25zLiBgUlRXODlfODg1MUJVYCByZWxpZXMgb24gdGhlIGBVU0JgIGJ1cywgd2hpbGUgYFJUVzg5Xzg4NTFCRWAgdXNlcyBgUENJYC4gIFNvLCBJIHNob3VsZCBhZGQgYm90aCBvZiB0aG9zZSB0byB0aGUgYEVuYWJsZUNvbmZpZ3NgIGxpc3QuIE1pZ2h0IGFzIHdlbGwgdGhyb3cgYFJUVzg5X0NPUkVgIGluIHRoZXJlIHRvbywgZXZlbiB0aG91Z2ggaXQmIzM5O3MgYWxyZWFkeSBzZWxlY3RlZCDigJMgYmV0dGVyIHNhZmUgdGhhbiBzb3JyeSwgeW91IGtub3c/IEFoLCB3YWl0IGEgbWludXRlLCBgUlRXODlfODg1MUJgIGlzIHRoZSBhY3R1YWwgdW5kZXJseWluZyBjaGlwIGNvbmZpZ3VyYXRpb24sIGJ1dCBpdCYjMzk7cyBoaWRkZW4gKHRyaXN0YXRlKS4gVGhlIHByaW1hcnkgb25lIHRvIGVuYWJsZSB0aGVuIGlzIGBSVFc4OV84ODUxQlVgLiBHb3QgaXQuCgpOb3csIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIGNvZGUgaXRzZWxmLiBJJiMzOTttIGZvY3VzaW5nIG9uIHRoZSBzeW1ib2xzIHJlbGF0ZWQgdG8gdGhpcyBEUEsgKER5bmFtaWMgUGFja2V0IEtlcm5lbCkgaW5mb3JtYXRpb24uIFRoZSBkaWZmIEkgc2VlIGNlbnRlcnMgb24gYHJ0dzg4NTFiX3Jmay5jYC4gTGV0JiMzOTtzIHNlZS4uLkkgc2VlIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYCBhcyB0aGUga2V5IGZ1bmN0aW9ucyBoZXJlLiBUaGVzZSBhcmUgdGhlIG5vbi1zdGF0aWMgb25lcyB0aGF0IHVsdGltYXRlbHkgY2FsbCBgX2Rwa19pbmZvcm1hdGlvbmAuIEhtbSwgaG9sZCBvbi4gYF9kcGtfaW5mb3JtYXRpb25gIGlzIGFjdHVhbGx5IGNhbGxlZCBmcm9tIG90aGVyIGBydHc4ODUyYCB2YXJpYW50cyB0b28gKGBydHc4ODUyYV9yZmsuY2AsIGV0Yy4pLiBCdXQgdGhlICpwYXRjaCogb25seSBtb2RpZmllcyBgcnR3ODg1MWJfcmZrLmNgLiBTbywgSSByZWFsbHkgb25seSBuZWVkIHRvIGNvbmNlbnRyYXRlIG9uIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYCBpbiB0aGUgY29udGV4dCBvZiB0aGlzIHNwZWNpZmljIHBhdGNoLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCYjMzk7cyB2ZXJpZnkgdGhhdCB0aG9zZSB0d28gYXJlIHRoZSBjb3JyZWN0IHN5bWJvbHMgdG8gZm9jdXMgb24uIFllcCwgdGhleSBhcmUgZXhwb3J0ZWQgKG5vbi1zdGF0aWMpLCB3aGljaCBtZWFucyB0aGV5JiMzOTtyZSBwdWJsaWMsIGFuZCB0aGV5IGRvIGluZGVlZCBjYWxsIGBfZHBrX2luZm9ybWF0aW9uYCB2aWEgYF9kcGtgIGFuZCBgX2Rwa19jYWxfc2VsZWN0YC4gT2theSwgSSBzZWUgdGhhdCBgcnR3ODg1MWJfZHBrX2luaXRgIGFsc28gZXhpc3RzLiBCdXQgaXMgaXQgdXNlZCBoZXJlPyBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGF0IGZ1bmN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHc4ODUxYl9kcGtfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0zMjk0PXN0YXRpYyB2b2lkIHJ0dzg4NTFiX2J5X3JhdGVfZHBkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTMyOTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjMzMDA6dm9pZCBydHc4ODUxYl9kcGtfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTMzMDEte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzQyOQoJCQkJCQkJb3V0cHV0OiA1NQoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYHJ0dzg4NTFiX2Rwa19pbml0YCBmdW5jdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2UgYW5kIGhvdyBpdCBmaXRzIGludG8gdGhlIGJyb2FkZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVyLiBBcyBhbiBleHBlcnQsIEkmIzM5O20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgdGhpcyBmdW5jdGlvbiBsaWtlbHkgaGFuZGxlcyB0aGUgaW5pdGlhbGl6YXRpb24gcGhhc2UgZm9yIHRoZSBEaXNwbGF5UG9ydCBLZXkgKERQSykgZnVuY3Rpb25hbGl0eSB3aXRoaW4gdGhlIFJlYWx0ZWsgUlRMODg1MUIgV2ktRmkgY2hpcHNldC4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGZvciBrZXkgZGF0YSBzdHJ1Y3R1cmVzLCByZWdpc3RlciBhY2Nlc3NlcywgYW5kIHRoZSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGludm9sdmVkLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZXhwZWN0aW5nIHRvIHNlZSBjb25maWd1cmF0aW9uIG9mIERQSy1yZWxhdGVkIGhhcmR3YXJlLCBwb3RlbnRpYWxseSBpbmNsdWRpbmc6CgoqICAgKipLZXkgZ2VuZXJhdGlvbiBvciBsb2FkaW5nOioqIFRoaXMgaXMgY3JpdGljYWw7IHRoZSBmdW5jdGlvbiB3aWxsIGVpdGhlciBnZW5lcmF0ZSwgbG9hZCwgb3IgcmVjZWl2ZSB0aGUgaW5pdGlhbCBEUEsuIFRoaXMgaXMgbXkgdG9wIHByaW9yaXR5LgoqICAgKipEUEsgcmVnaXN0ZXIgaW5pdGlhbGl6YXRpb246KiogSXQmIzM5O3MgcHJhY3RpY2FsbHkgZ3VhcmFudGVlZCB0aGF0IHRoZXJlIGFyZSBzcGVjaWZpYyByZWdpc3RlcnMgY29udHJvbGxpbmcgdGhlIERQSyBmZWF0dXJlLiBJJiMzOTtsbCBiZSBzZWFyY2hpbmcgZm9yIHRoZWlyIGFkZHJlc3NlcyBhbmQgdGhlaXIgaW50ZW5kZWQgY29uZmlndXJhdGlvbnMuCiogICAqKlNlY3VyaXR5IENvbnRleHQgU2V0dXA6KiogRGVwZW5kaW5nIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiwgdGhlIGZ1bmN0aW9uIG1heSBiZSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB1cCBzZWN1cml0eSBjb250ZXh0cyBsaWtlIGF1dGhlbnRpY2F0aW9uIG9yIGtleSBkZXJpdmF0aW9uLCBzbyBpdCBjYW4gc2VjdXJlbHkgZXhjaGFuZ2UgdGhlIERQSy4gSSYjMzk7bGwgc2VhcmNoIGZvciBjcnlwdG9ncmFwaGljIGZ1bmN0aW9ucywgdG9vLgoqICAgKipQb3dlciBhbmQgQ2xvY2sgQ29udHJvbDoqKiBVc3VhbGx5LCB0aGUgRFBLIHJlbGF0ZWQgYmxvY2sgaXMgcG93ZXJlZCBkb3duIG9yIGluIGxvdy1wb3dlciBzdGF0ZS4gU28sIEkgd2lsbCBjaGVjayB0aGUgY2xvY2sgYW5kIHBvd2VyIG1hbmFnZW1lbnQgZnVuY3Rpb25zLgoqICAgKipFcnJvciBIYW5kbGluZzoqKiBJdCYjMzk7cyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGluaXRpYWxpemF0aW9uIGZhaWx1cmVzIGFyZSBoYW5kbGVkLiBJJiMzOTtsbCBsb29rIGZvciBlcnJvciBjb2RlcywgcmV0dXJuIHZhbHVlcywgYW5kIGxvZ2dpbmcuCgpNeSBnb2FsIGlzIHRvIGdyYXNwIHRoZSBpbml0aWFsaXphdGlvbiBmbG93LCBwaW5wb2ludCBhbnkgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyBvciBhcmVhcyBmb3Igb3B0aW1pemF0aW9uLCBhbmQgdWx0aW1hdGVseSBhc3Nlc3MgaG93IGVmZmVjdGl2ZWx5IGl0IGludGVncmF0ZXMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzMzAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzMzMDA6XHR2b2lkIHJ0dzg4NTFiX2Rwa19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbjMzMDE6XHR7XG4zMzAyOlx0XHRydHc4ODUxYl9ieV9yYXRlX2RwZChydHdkZXYpO1xuMzMwMzpcdH1cbjMzMDQ6XHRcbjMzMDU6XHR2b2lkIHJ0dzg4NTFiX2FhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuMzMwNjpcdHtcbjMzMDc6XHRcdHUzMiB0bXAwNSwgdG1wZDMsIGliWzRdO1xuMzMwODpcdFx0dTMyIHRtcDtcbjMzMDk6XHRcdGludCByZXQ7XG4zMzEwOlx0XHRpbnQgcmVrO1xuMzMxMTpcdFx0aW50IGk7XG4zMzEyOlx0XG4zMzEzOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFwmIzM0O1tMQ0tdRE8gQUFDS1xcblwmIzM0Oyk7XG4zMzE0Olx0XG4zMzE1Olx0XHR0bXAwNSA9IHJ0dzg5X3JlYWRfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX1JTVjEsIFJGUkVHX01BU0spO1xuMzMxNjpcdFx0dG1wZDMgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9MQ0tfVFJHLCBSRlJFR19NQVNLKTtcbjMzMTc6XHRcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9NT0QsIFJSX01PRF9NQVNLLCAweDMpO1xuMzMxODpcdFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX1JTVjEsIFJGUkVHX01BU0ssIDB4MCk7XG4zMzE5Olx0XHRydHc4OV93cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUlJfTENLX1RSRywgUlJfTENLX1NULCAweDApO1xuMzMyMDpcdFxuMzMyMTpcdFx0Zm9yIChyZWsgPSAwOyByZWsgXHUwMDNjIDQ7IHJlayYjNDM7JiM0MzspIHtcbjMzMjI6XHRcdFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX0FBQ0ssIFJGUkVHX01BU0ssIDB4ODIwMWUpO1xuMzMyMzpcdFx0XHRydHc4OV93cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUlJfQUFDSywgUkZSRUdfTUFTSywgMHg4MjAxZik7XG4zMzI0Olx0XHRcdGZzbGVlcCgxMDApO1xuMzMyNTpcdFxuMzMyNjpcdFx0XHRyZXQgPSByZWFkX3BvbGxfdGltZW91dF9hdG9taWMocnR3ODlfcmVhZF9yZiwgdG1wLCB0bXAsXG4zMzI3Olx0XHRcdFx0XHRcdCAgICAgICAxLCAxMDAwLCBmYWxzZSxcbjMzMjg6XHRcdFx0XHRcdFx0ICAgICAgIHJ0d2RldiwgUkZfUEFUSF9BLCAweGQwLCBCSVQoMTYpKTtcbjMzMjk6XHRcdFx0aWYgKHJldClcbjMzMzA6XHRcdFx0XHRydHc4OV93YXJuKHJ0d2RldiwgXCYjMzQ7W0xDS11BQUNLIHRpbWVvdXRcXG5cJiMzNDspO1xuMzMzMTpcdFxuMzMzMjpcdFx0XHRydHc4OV93cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUlJfVkNJLCBSUl9WQ0lfT04sIDB4MSk7XG4zMzMzOlx0XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIDQ7IGkmIzQzOyYjNDM7KSB7XG4zMzM0Olx0XHRcdFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX1ZDTywgUlJfVkNPX1NFTCwgaSk7XG4zMzM1Olx0XHRcdFx0aWJbaV0gPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9JQkQsIFJSX0lCRF9WQUwpO1xuMzMzNjpcdFx0XHR9XG4zMzM3Olx0XHRcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9WQ0ksIFJSX1ZDSV9PTiwgMHgwKTtcbjMzMzg6XHRcbjMzMzk6XHRcdFx0aWYgKGliWzBdICE9IDAgXHUwMDI2XHUwMDI2IGliWzFdICE9IDAgXHUwMDI2XHUwMDI2IGliWzJdICE9IDAgXHUwMDI2XHUwMDI2IGliWzNdICE9IDApXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4ODIzCgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIGNvZGUgc25pcHBldDoKCioqRGVlcCBEaXZlIGludG8gcnR3ODg1MWImIzM5O3MgRFBEIEluaXRpYWxpemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgcnR3ODg1MWJfZHBrX2luaXRgIGFuZCBJIHNlZSB0aGF0IGFsbCBpdCYjMzk7cyBkb2luZyBpcyBjYWxsaW5nIGBydHc4ODUxYl9ieV9yYXRlX2RwZGAuIFRoYXQmIzM5O3MgYSBrZXkgb2JzZXJ2YXRpb24uIFRoaXMgbWVhbnMsIGFzIGZhciBhcyBJIGNhbiB0ZWxsIGZyb20gdGhpcyBzbmlwcGV0IGFsb25lLCBpdCAqZG9lc24mIzM5O3QqIGRpcmVjdGx5IGludm9rZSBgX2Rwa19pbmZvcm1hdGlvbmAsIHdoaWNoIGlzIHNvbWV0aGluZyB0byBrZWVwIGluIG1pbmQuIFdlIG5lZWQgdG8gdmVyaWZ5IHdoZXJlIGFuZCBob3cgYF9kcGtfaW5mb3JtYXRpb25gIGlzIGFjdHVhbGx5IHV0aWxpemVkIHdpdGhpbiB0aGUgRFBEIGZyYW1ld29yayBvZiB0aGlzIGRyaXZlci4KCk15IGltbWVkaWF0ZSBuZXh0IHN0ZXAgaXMgY2xlYXI6IEkgbmVlZCB0byB0aG9yb3VnaGx5IGV4YW1pbmUgYHJ0dzg4NTFiX2Rwa2AgYW5kIGBydHc4ODUxYl9kcGtfdHJhY2tgIHRvIHVuZGVyc3RhbmQgdGhlIGRhdGEgZmxvdyBhbmQgZGV0ZXJtaW5lIHRoZSBmdWxsIHBpY3R1cmUgb2YgdGhlIGRpZ2l0YWwgcHJlLWRpc3RvcnRpb24gcHJvY2VzcyB3aXRoaW4gdGhlIGBydHc4ODUxYmAgZHJpdmVyLiBUaGF0IHdpbGwgaGVscCBzaGVkIGxpZ2h0IG9uIHRoZSBmdW5jdGlvbiB0aGF0JiMzOTtzIGJlaW5nIGNhbGxlZCwgYW5kIHJldmVhbCB0aGUgbG9jYXRpb24gb2YgdGhlIGNhbGwgZm9yIGBfZHBrX2luZm9ybWF0aW9uYCBpZiBpdCBleGlzdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDM0NTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MzQ1MDpcdFxuMzQ1MTpcdHZvaWQgcnR3ODg1MWJfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXG4zNDUyOlx0XHRcdCAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcbjM0NTM6XHR7XG4zNDU0Olx0XHR1OCBwaHlfbWFwID0gcnR3ODlfYnRjX3BoeW1hcChydHdkZXYsIHBoeV9pZHgsIDAsIGNoYW5jdHhfaWR4KTtcbjM0NTU6XHRcdHUzMiB0eF9lbjtcbjM0NTY6XHRcbjM0NTc6XHRcdHJ0dzg5X2J0Y19udGZ5X3dsX3JmayhydHdkZXYsIHBoeV9tYXAsIEJUQ19XUkZLVF9EUEssIEJUQ19XUkZLX1NUQVJUKTtcbjM0NTg6XHRcdHJ0dzg5X2NoaXBfc3RvcF9zY2hfdHgocnR3ZGV2LCBwaHlfaWR4LCBcdTAwMjZ0eF9lbiwgUlRXODlfU0NIX1RYX1NFTF9BTEwpO1xuMzQ1OTpcdFx0X3dhaXRfcnhfbW9kZShydHdkZXYsIF9rcGF0aChydHdkZXYsIHBoeV9pZHgpKTtcbjM0NjA6XHRcbjM0NjE6XHRcdHJ0d2Rldi1cdTAwM2VkcGsuaXNfZHBrX2VuYWJsZSA9IHRydWU7XG4zNDYyOlx0XHRydHdkZXYtXHUwMDNlZHBrLmlzX2Rwa19yZWxvYWRfZW4gPSBmYWxzZTtcbjM0NjM6XHRcdF9kcGsocnR3ZGV2LCBwaHlfaWR4LCBmYWxzZSwgY2hhbmN0eF9pZHgpO1xuMzQ2NDpcdFxuMzQ2NTpcdFx0cnR3ODlfY2hpcF9yZXN1bWVfc2NoX3R4KHJ0d2RldiwgcGh5X2lkeCwgdHhfZW4pO1xuMzQ2NjpcdFx0cnR3ODlfYnRjX250Znlfd2xfcmZrKHJ0d2RldiwgcGh5X21hcCwgQlRDX1dSRktUX0RQSywgQlRDX1dSRktfU1RPUCk7XG4zNDY3Olx0fVxuMzQ2ODpcdFxuMzQ2OTpcdHZvaWQgcnR3ODg1MWJfZHBrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbjM0NzA6XHR7XG4zNDcxOlx0XHRfZHBrX3RyYWNrKHJ0d2Rldik7XG4zNDcyOlx0fVxuMzQ3MzpcdFxuMzQ3NDpcdHZvaWQgcnR3ODg1MWJfdHNzaShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4zNDc1Olx0XHRcdCAgIGJvb2wgaHd0eF9lbiwgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcbjM0NzY6XHR7XG4zNDc3Olx0XHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2hhbiAqY2hhbiA9IHJ0dzg5X2NoYW5fZ2V0KHJ0d2RldiwgY2hhbmN0eF9pZHgpO1xuMzQ3ODpcdFx0dTggcGh5X21hcCA9IHJ0dzg5X2J0Y19waHltYXAocnR3ZGV2LCBwaHksIFJGX0EsIGNoYW5jdHhfaWR4KTtcbjM0Nzk6XHRcdHU4IGk7XG4zNDgwOlx0XG4zNDgxOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19UU1NJLCBcJiMzNDtbVFNTSV0gJXM6IHBoeT0lZFxcblwmIzM0OywgX19mdW5jX18sIHBoeSk7XG4zNDgyOlx0XHRydHc4OV9idGNfbnRmeV93bF9yZmsocnR3ZGV2LCBwaHlfbWFwLCBCVENfV1JGS1RfSVFLLCBCVENfV1JGS19PTkVTSE9UX1NUQVJUKTtcbjM0ODM6XHRcbjM0ODQ6XHRcdF90c3NpX2Rpc2FibGUocnR3ZGV2LCBwaHkpO1xuMzQ4NTpcdFxuMzQ4NjpcdFx0Zm9yIChpID0gUkZfUEFUSF9BOyBpIFx1MDAzYyBSRl9QQVRIX05VTV84ODUxQjsgaSYjNDM7JiM0MzspIHtcbjM0ODc6XHRcdFx0X3Rzc2lfc2V0X3N5cyhydHdkZXYsIHBoeSwgaSwgY2hhbik7XG4zNDg4Olx0XHRcdF90c3NpX2luaV90eHB3cl9jdHJsX2JiKHJ0d2RldiwgcGh5LCBpKTtcbjM0ODk6XHRcdFx0X3Rzc2lfaW5pX3R4cHdyX2N0cmxfYmJfaGVfdGIocnR3ZGV2LCBwaHksIGkpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MDE2MgoJCQkJCQkJb3V0cHV0OiAxNDgKCQkJCQkJCXRob3VnaHRzOiAyNzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJlbGV2YW50IENvZGUqKgoKT2theSwgc28gSSYjMzk7dmUgdHJhY2VkIHRocm91Z2ggdGhlIGNvZGUuIEkgc2VlIHRoYXQgYHJ0dzg4NTFiX2Rwa2AgbWFrZXMgYSBjYWxsIHRvIGBfZHBrYCwgc3BlY2lmaWNhbGx5IHdpdGggdGhlIGFyZ3VtZW50cyBgcnR3ZGV2YCwgYHBoeV9pZHhgLCBgZmFsc2VgLCBhbmQgYGNoYW5jdHhfaWR4YC4gVGhhdCBgX2Rwa2AgZnVuY3Rpb24gdGhlbiBjYWxscyBgX2Rwa19jYWxfc2VsZWN0YCwgd2hpY2ggZmluYWxseSBnZXRzIGRvd24gdG8gYF9kcGtfaW5mb3JtYXRpb25gLiBUaGF0JiMzOTtzIG9uZSBwYXRoLiBPbiB0aGUgb3RoZXIgaGFuZCwgYHJ0dzg4NTFiX2Rwa190cmFja2AgY2FsbHMgYF9kcGtfdHJhY2tgLCBhbmQgdGhhdCBmdW5jdGlvbiB1dGlsaXplcyBgZHBrLSZndDticFtwYXRoXVtraWR4XS5jaGAuIFRoaXMgbG9va3MgcHJvbWlzaW5nLiBCb3RoIHNlZW0gdG8gYmUgaW52b2x2ZWQgaW4ga2V5IHBhcnRzIG9mIHRoZSBEUEsgcHJvY2Vzcy4KCkdpdmVuIHRoaXMsIEkgYW0gZ29pbmcgdG8gbWFyayBgcnR3ODg1MWJfZHBrYCBhbmQgYHJ0dzg4NTFiX2Rwa190cmFja2AgYXMgdGhlIHRhcmdldCBzeW1ib2xzIGZvciBmdXp6aW5nLgoKTXkgZGVjaXNpb24gY2FuIGJlIHN1bW1hcml6ZWQgYXM6CgoqICAgKipXb3J0aEZ1enppbmc6KiogVHJ1ZSAtIHRoaXMgY2hhbmdlIGlzIGRlZmluaXRlbHkgd29ydGggZnV6emVyIGlucHV0LgoqICAgKipGb2N1c1N5bWJvbHM6KiogYFsmIzM0O3J0dzg4NTFiX2RwayYjMzQ7LCAmIzM0O3J0dzg4NTFiX2Rwa190cmFjayYjMzQ7XWAgLSBUaGVzZSBhcmUgdGhlIG1vc3QgcmVsZXZhbnQgc3ltYm9scyB0byB0YXJnZXQuCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYFsmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LCAmIzM0O1JUVzg5Xzg4NTFCRSYjMzQ7XWAgLSBJIGJlbGlldmUgdGhlIGRyaXZlciBjb25maWd1cmF0aW9ucyBmb3IgVVNCICg4ODUxQlUpIGFuZCBQQ0ktRSAoODg1MUJFKSBhcmUgcmVsZXZhbnQuCiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgYnVnIGluIHRoZSBEUEsgY2FsaWJyYXRpb24gbG9naWMsIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIGNoYW5uZWwgYW5kIGJhbmR3aWR0aCB2YWx1ZSBzd2FwcGluZyB3aXRoaW4gdGhlIHJ0dzg5IGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBoYXJkd2FyZSBjb25maWd1cmF0aW9uIGFuZCB0cmFja2luZyBsb2dpYyB3aXRoaW4gdGhlIGRyaXZlciwgd2hpY2ggaXMgd2hhdCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBUaGUgVVNCIGNvbmZpZ3VyYXRpb24gaXMgcGFydGljdWxhcmx5IGludGVyZXN0aW5nLCBnaXZlbiB0aGUgYWJpbGl0eSB0byB1c2UgYSBgZHVtbXlfaGNkYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUxQkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4ODUxYl9kcGsmIzM0OywKICAgICYjMzQ7cnR3ODg1MWJfZHBrX3RyYWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZnVuY3Rpb25hbCBidWcgaW4gdGhlIERQSyAoRGlnaXRhbCBQcmUtRGlzdG9ydGlvbikgY2FsaWJyYXRpb24gbG9naWMgb2YgdGhlIHJ0dzg5IGRyaXZlciB3aGVyZSBjaGFubmVsIGFuZCBiYW5kd2lkdGggdmFsdWVzIHdlcmUgc3dhcHBlZC4gVGhpcyBhZmZlY3RzIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gYW5kIHRyYWNraW5nIGxvZ2ljLiBUaGUgZHJpdmVyIHN1cHBvcnRzIFVTQiAoODg1MUJVKSBhbmQgY2FuIGJlIGZ1enplZCB2aWEgZHVtbXlfaGNkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtSVFc4OV84ODUxQlUmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MUJFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnR3ODg1MWJfZHBrJiMzNDssCiAgICAmIzM0O3J0dzg4NTFiX2Rwa190cmFjayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGZ1bmN0aW9uYWwgYnVnIGluIHRoZSBEUEsgKERpZ2l0YWwgUHJlLURpc3RvcnRpb24pIGNhbGlicmF0aW9uIGxvZ2ljIG9mIHRoZSBydHc4OSBkcml2ZXIgd2hlcmUgY2hhbm5lbCBhbmQgYmFuZHdpZHRoIHZhbHVlcyB3ZXJlIHN3YXBwZWQuIFRoaXMgYWZmZWN0cyBoYXJkd2FyZSBjb25maWd1cmF0aW9uIGFuZCB0cmFja2luZyBsb2dpYy4gVGhlIGRyaXZlciBzdXBwb3J0cyBVU0IgKDg4NTFCVSkgYW5kIGNhbiBiZSBmdXp6ZWQgdmlhIGR1bW15X2hjZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjE5OjE4LjY5NzU2MzY5N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjc4MjA5MDM5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OV84ODUxQlVcIixcbiAgICBcIlJUVzg5Xzg4NTFCRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg4NTFiX2Rwa1wiLFxuICAgIFwicnR3ODg1MWJfZHBrX3RyYWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBmdW5jdGlvbmFsIGJ1ZyBpbiB0aGUgRFBLIChEaWdpdGFsIFByZS1EaXN0b3J0aW9uKSBjYWxpYnJhdGlvbiBsb2dpYyBvZiB0aGUgcnR3ODkgZHJpdmVyIHdoZXJlIGNoYW5uZWwgYW5kIGJhbmR3aWR0aCB2YWx1ZXMgd2VyZSBzd2FwcGVkLiBUaGlzIGFmZmVjdHMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiBhbmQgdHJhY2tpbmcgbG9naWMuIFRoZSBkcml2ZXIgc3VwcG9ydHMgVVNCICg4ODUxQlUpIGFuZCBjYW4gYmUgZnV6emVkIHZpYSBkdW1teV9oY2QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjE5OjE4LjY5NzU3MDkyN1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzUwNzY5NDU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMDI3ODM5MzM5Nzc4MTdlZjA4NWU5MWRiODUzYzJjYzYyNzNmMGVhOFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyA3IDEwOjE5OjE3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXFxuaW5kZXggYzYzZjBlNjM2NGRhZC4uNzEzNDI0NjFmMmIzMCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuY1xcbkBAIC0xODk1LDggKzE4OTUsOCBAQCBzdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4gXFx0dTgga2lkeCA9IGRway1cXHUwMDNlY3VyX2lkeFtwYXRoXTtcXG4gXFxuIFxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9IGNoYW4tXFx1MDAzZWJhbmRfdHlwZTtcXG4tXFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXFx1MDAzZWJhbmRfd2lkdGg7XFxuLVxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVxcdTAwM2VjaGFubmVsO1xcbitcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cXHUwMDNlY2hhbm5lbDtcXG4rXFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXFx1MDAzZWJhbmRfd2lkdGg7XFxuIFxcbiBcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssXFxuIFxcdFxcdCAgICBcXFwiW0RQS10gUyVkWyVkXSAoUEhZJWQpOiBUU1NJICVzLyBEQkNDICVzLyAlcy8gQ0glZC8gJXNcXFxcblxcXCIsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjE5OjE5LjA0OTA2NjQ5MVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjExNjQzMDU3ODQ4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OV84ODUxQlVcIixcbiAgICBcIlJUVzg5Xzg4NTFCRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg4NTFiX2Rwa1wiLFxuICAgIFwicnR3ODg1MWJfZHBrX3RyYWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBmdW5jdGlvbmFsIGJ1ZyBpbiB0aGUgRFBLIChEaWdpdGFsIFByZS1EaXN0b3J0aW9uKSBjYWxpYnJhdGlvbiBsb2dpYyBvZiB0aGUgcnR3ODkgZHJpdmVyIHdoZXJlIGNoYW5uZWwgYW5kIGJhbmR3aWR0aCB2YWx1ZXMgd2VyZSBzd2FwcGVkLiBUaGlzIGFmZmVjdHMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiBhbmQgdHJhY2tpbmcgbG9naWMuIFRoZSBkcml2ZXIgc3VwcG9ydHMgVVNCICg4ODUxQlUpIGFuZCBjYW4gYmUgZnV6emVkIHZpYSBkdW1teV9oY2QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDAyNzgzOTMzOTc3ODE3ZWYwODVlOTFkYjg1M2MyY2M2MjczZjBlYThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyA3IDEwOjE5OjE3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmNcbmluZGV4IGM2M2YwZTYzNjRkYWQuLjcxMzQyNDYxZjJiMzAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXG5AQCAtMTg5NSw4ICsxODk1LDggQEAgc3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4gXHR1OCBraWR4ID0gZHBrLVx1MDAzZWN1cl9pZHhbcGF0aF07XG4gXG4gXHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9IGNoYW4tXHUwMDNlYmFuZF90eXBlO1xuLVx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cdTAwM2ViYW5kX3dpZHRoO1xuLVx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID0gY2hhbi1cdTAwM2VjaGFubmVsO1xuK1x0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cdTAwM2VjaGFubmVsO1xuK1x0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID0gY2hhbi1cdTAwM2ViYW5kX3dpZHRoO1xuIFxuIFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUkZLLFxuIFx0XHQgICAgXCJbRFBLXSBTJWRbJWRdIChQSFklZCk6IFRTU0kgJXMvIERCQ0MgJXMvICVzLyBDSCVkLyAlc1xcblwiLFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6MTkuMDQ5MDY3OTAxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjcxODk2Nzc5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSZWFsdGVrIFdpLUZpIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggZm9yIGBydHc4ODUxYl9yZmsuY2Agd2l0aGluIHRoZSBSZWFsdGVrIGBydHc4OWAgV2ktRmkgZHJpdmVyLiBJdCBzZWVtcyBsaWtlIGEgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBidWcgZml4IOKAkyBgY2hhbi1cdTAwM2ViYW5kX3dpZHRoYCBhbmQgYGNoYW4tXHUwMDNlY2hhbm5lbGAgd2VyZSBnZXR0aW5nIG1peGVkIHVwIGR1cmluZyBhc3NpZ25tZW50IHRvIGBkcGstXHUwMDNlYnBgLiBCdXQgaXMgdGhpcyBzb21ldGhpbmcgd29ydGggZGVkaWNhdGluZyB0aW1lIHRvPyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCdzIGV2ZW4gKnJlYWNoYWJsZSogYW5kIGlmIGZ1enppbmcgaXQgbWFrZXMgc2Vuc2UuXG5cblJpZ2h0LCBzbyBpdCdzIGEgUmVhbHRlayBkcml2ZXIsIGBydHc4OWAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjaGVjayBpZiBtYWM4MDIxMV9od3NpbSBpcyBhcHBsaWNhYmxlLCBidXQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLCBzbyB0aGF0J3MgcHJvYmFibHkgbm90IGdvaW5nIHRvIHdvcmsuIEFoLCBgcnR3ODlgLi4uIHRoYXQncyBQQ0kvVVNCIGZvciBSZWFsdGVrIDgwMi4xMWF4IGRldmljZXMsIGlzbid0IGl0PyBUaGUgcXVlc3Rpb24gdGhlbiBiZWNvbWVzLCBjYW4gSSBldmVuIHRlc3QgdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBIYXJkd2FyZSBkcml2ZXJzLCBwYXJ0aWN1bGFybHkgV2ktRmkgb25lcywgYXJlIGEgcGFpbi4gTW9zdCBvZiB0aGUgdGltZSwgSSBuZWVkIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZSBmb3IgZHJpdmVycyBsaWtlIGBydHc4OWAsIGBpd2x3aWZpYCwgYGF0aDEwa2AsIG9yIGBhdGgxMWtgIHVubGVzcyB0aGV5IGhhdmUgYSBVU0IgaW50ZXJmYWNlLiBVU0IgY2FuIHNvbWV0aW1lcyBiZSBlbXVsYXRlZCB3aXRoIGBkdW1teV9oY2RgIG9yIGByYXctZ2FkZ2V0YC4gUENJJ3MgZ2VuZXJhbGx5IGV2ZW4gbW9yZSBwcm9ibGVtYXRpYyB3aXRob3V0IHByb3BlciBlbXVsYXRpb24uIEJ1dC4uLiB3YWl0IGEgbWludXRlLCBJIHJlbWVtYmVyIGBydHc4OWAgYWN0dWFsbHkgc3VwcG9ydHMgKmJvdGgqIFBDSSAqYW5kKiBVU0IuIE5vdyB0aGF0J3MgaW50ZXJlc3RpbmcuIEkgbmVlZCB0byBjb25maXJtIHRoYXQuIFRoYXQgY2hhbmdlcyB0aGluZ3MgZHJhbWF0aWNhbGx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjM0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6MjUuNzY4MDM4MDM3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3Njc0NjYxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4OVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDgwNDMwIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9Mj1tZW51Y29uZmlnIFJUVzg5XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6OTpcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBydHc4OS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9MTkwPWNvbmZpZyBSVFc4OV9ERUJVR01TR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxOTE6XFx0Ym9vbCBcXFwiUmVhbHRlayBydHc4OSBkZWJ1ZyBtZXNzYWdlIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE5Mi1cXHRkZXBlbmRzIG9uIFJUVzg5X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz0xOTk9Y29uZmlnIFJUVzg5X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjAwOlxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODkgZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMDEtXFx0ZGVwZW5kcyBvbiBSVFc4OV9DT1JFIFxcdTAwMjZcXHUwMDI2IENGRzgwMjExX0RFQlVHRlNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX1JUVzg5X0NPUkUpICs9IHJ0dzg5X2NvcmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDpydHc4OV9jb3JlLXkgKz0gY29yZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTUtXFx0XFx0bWFjODAyMTEubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MjM6cnR3ODlfY29yZS0kKENPTkZJR19QTSkgKz0gd293Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTFCKSArPSBydHc4OV84ODUxYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToyNjpydHc4OV84ODUxYi1vYmpzIDo9IHJ0dzg4NTFiLm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMjctXFx0XFx0ICAgIHJ0dzg4NTFiX3RhYmxlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjMxOm9iai0kKENPTkZJR19SVFc4OV84ODUxQkUpICs9IHJ0dzg5Xzg4NTFiZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozMjpydHc4OV84ODUxYmUtb2JqcyA6PSBydHc4ODUxYmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozNDpvYmotJChDT05GSUdfUlRXODlfODg1MUJVKSArPSBydHc4OV84ODUxYnUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MzU6cnR3ODlfODg1MWJ1LW9ianMgOj0gcnR3ODg1MWJ1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6Mzc6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJBKSArPSBydHc4OV84ODUyYS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozODpydHc4OV84ODUyYS1vYmpzIDo9IHJ0dzg4NTJhLm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzktXFx0XFx0ICAgIHJ0dzg4NTJhX3RhYmxlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjQzOm9iai0kKENPTkZJR19SVFc4OV84ODUyQUUpICs9IHJ0dzg5Xzg4NTJhZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo0NDpydHc4OV84ODUyYWUtb2JqcyA6PSBydHc4ODUyYWUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo0NjpvYmotJChDT05GSUdfUlRXODlfODg1MkFVKSArPSBydHc4OV84ODUyYXUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDc6cnR3ODlfODg1MmF1LW9ianMgOj0gcnR3ODg1MmF1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDk6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCX0NPTU1PTikgKz0gcnR3ODlfODg1MmJfY29tbW9uLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjUwOnJ0dzg5Xzg4NTJiX2NvbW1vbi1vYmpzIDo9IHJ0dzg4NTJiX2NvbW1vbi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjUyOm9iai0kKENPTkZJR19SVFc4OV84ODUyQikgKz0gcnR3ODlfODg1MmIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NTM6cnR3ODlfODg1MmItb2JqcyA6PSBydHc4ODUyYi5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTU0LVxcdFxcdCAgICBydHc4ODUyYl90YWJsZS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo1ODpvYmotJChDT05GSUdfUlRXODlfODg1MkJFKSArPSBydHc4OV84ODUyYmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NTk6cnR3ODlfODg1MmJlLW9ianMgOj0gcnR3ODg1MmJlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NjE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCVSkgKz0gcnR3ODlfODg1MmJ1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjYyOnJ0dzg5Xzg4NTJidS1vYmpzIDo9IHJ0dzg4NTJidS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS02My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjY0Om9iai0kKENPTkZJR19SVFc4OV84ODUyQlQpICs9IHJ0dzg5Xzg4NTJidC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2NTpydHc4OV84ODUyYnQtb2JqcyA6PSBydHc4ODUyYnQubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS02Ni1cXHRcXHQgICAgcnR3ODg1MmJ0X3Jmay5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2OTpvYmotJChDT05GSUdfUlRXODlfODg1MkJURSkgKz0gcnR3ODlfODg1MmJ0ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo3MDpydHc4OV84ODUyYnRlLW9ianMgOj0gcnR3ODg1MmJ0ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjcyOm9iai0kKENPTkZJR19SVFc4OV84ODUyQykgKz0gcnR3ODlfODg1MmMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NzM6cnR3ODlfODg1MmMtb2JqcyA6PSBydHc4ODUyYy5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTc0LVxcdFxcdCAgICBydHc4ODUyY190YWJsZS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo3ODpvYmotJChDT05GSUdfUlRXODlfODg1MkNFKSArPSBydHc4OV84ODUyY2Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6Nzk6cnR3ODlfODg1MmNlLW9ianMgOj0gcnR3ODg1MmNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJDVSkgKz0gcnR3ODlfODg1MmN1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjgyOnJ0dzg5Xzg4NTJjdS1vYmpzIDo9IHJ0dzg4NTJjdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS04My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjg0Om9iai0kKENPTkZJR19SVFc4OV84OTIyQSkgKz0gcnR3ODlfODkyMmEub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODU6cnR3ODlfODkyMmEtb2JqcyA6PSBydHc4OTIyYS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjg2OlxcdFxcdCAgICBydHc4OTIyYV9yZmsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4ODpvYmotJChDT05GSUdfUlRXODlfODkyMkFFKSArPSBydHc4OV84OTIyYWUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODk6cnR3ODlfODkyMmFlLW9ianMgOj0gcnR3ODkyMmFlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTE6b2JqLSQoQ09ORklHX1JUVzg5Xzg5MjJBVSkgKz0gcnR3ODlfODkyMmF1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjkyOnJ0dzg5Xzg5MjJhdS1vYmpzIDo9IHJ0dzg5MjJhdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjk0Om9iai0kKENPTkZJR19SVFc4OV84OTIyRCkgKz0gcnR3ODlfODkyMmQub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTU6cnR3ODlfODkyMmQtb2JqcyA6PSBydHc4OTIyZC5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjk2OlxcdFxcdCAgICBydHc4OTIyZF9yZmsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo5ODpvYmotJChDT05GSUdfUlRXODlfODkyMkRFKSArPSBydHc4OV84OTIyZGUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTk6cnR3ODlfODkyMmRlLW9ianMgOj0gcnR3ODkyMmRlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTEwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwMTpydHc4OV9jb3JlLSQoQ09ORklHX1JUVzg5X0RFQlVHKSArPSBkZWJ1Zy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToxMDI6cnR3ODlfY29yZS0kKENPTkZJR19SVFc4OV9MRURTKSArPSBsZWQub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MTAzOnJ0dzg5X2NvcmUtJChDT05GSUdfUlRXODlfTEVEU19NQykgKz0gbGVkX21jLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTEwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwNTpvYmotJChDT05GSUdfUlRXODlfUENJKSArPSBydHc4OV9wY2kub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MTA2OnJ0dzg5X3BjaS15IDo9IHBjaS5vIHBjaV9iZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0xMDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToxMDg6b2JqLSQoQ09ORklHX1JUVzg5X1VTQikgKz0gcnR3ODlfdXNiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwOTpydHc4OV91c2IteSA6PSB1c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMTEwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTE6c3RhdGljIGNvbnN0IGd1aWRfdCBydHc4OV9ndWlkID0gR1VJRF9JTklUKDB4RDJBOEMzRTgsIDB4NEI2OSwgMHg0RjAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEyLVxcdFxcdFxcdFxcdFxcdCAgIDB4ODIsIDB4QkQsIDB4RkUsIDB4ODYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNTpzdGF0aWMgdTMyIHJ0dzg5X2FjcGlfdHJhdmVyc2FsX29iamVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTYtXFx0XFx0XFx0XFx0ICAgICAgIGNvbnN0IHVuaW9uIGFjcGlfb2JqZWN0ICpvYmosIHU4ICpwb3MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMi1cXHRcXHRpZiAodW5saWtlbHkob2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoID09IDApKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzM6XFx0XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNC1cXHRcXHRcXHRcXHQgICAgXFxcIiVzOiBpbnZhbGlkIGJ1ZmZlciB0eXBlXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NC1cXHRcXHRpZiAodW5saWtlbHkob2JqLVxcdTAwM2VwYWNrYWdlLmNvdW50ID09IDApKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDU6XFx0XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00Ni1cXHRcXHRcXHRcXHQgICAgXFxcIiVzOiBpbnZhbGlkIHBhY2thZ2UgdHlwZVxcXFxuXFxcIiwgX19mdW5jX18pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTQ6XFx0XFx0XFx0c3ViX2xlbiA9IHJ0dzg5X2FjcGlfdHJhdmVyc2FsX29iamVjdChydHdkZXYsIGVsbSwgdG1wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NS1cXHRcXHRcXHRpZiAodW5saWtlbHkoc3ViX2xlbiA9PSAwKSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTYxLVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjI6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiB1bmhhbmRsZWQgdHlwZTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjMtXFx0XFx0XFx0ICAgIF9fZnVuY19fLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzM6c3RhdGljIHUzMiBydHc4OV9hY3BpX2NhbGN1bGF0ZV9vYmplY3RfbGVuZ3RoKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03NC1cXHRcXHRcXHRcXHRcXHQgICAgICBjb25zdCB1bmlvbiBhY3BpX29iamVjdCAqb2JqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTc1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3NjpcXHRyZXR1cm4gcnR3ODlfYWNwaV90cmF2ZXJzYWxfb2JqZWN0KHJ0d2Rldiwgb2JqLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03Ny19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Nzk6c3RhdGljIHN0cnVjdCBydHc4OV9hY3BpX2RhdGEgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjgwOnJ0dzg5X2FjcGlfZXZhbHVhdGVfbWV0aG9kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgY29uc3QgY2hhciAqbWV0aG9kKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTgxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy04Mi1cXHRzdHJ1Y3QgYWNwaV9idWZmZXIgYnVmID0ge0FDUElfQUxMT0NBVEVfQlVGRkVSLCBOVUxMfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo4MzpcXHRzdHJ1Y3QgcnR3ODlfYWNwaV9kYXRhICpkYXRhID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy04NC1cXHRhY3BpX2hhbmRsZSByb290LCBoYW5kbGU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05MC1cXHRpZiAoIXJvb3QpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo5MTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTkyLVxcdFxcdFxcdCAgICBcXFwiYWNwaSAoJXMpOiBmYWlsZWQgdG8gZ2V0IHJvb3RcXFxcblxcXCIsIG1ldGhvZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05Ny1cXHRpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo5ODpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTk5LVxcdFxcdFxcdCAgICBcXFwiYWNwaSAoJXMpOiBmYWlsZWQgdG8gZ2V0IGhhbmRsZVxcXFxuXFxcIiwgbWV0aG9kKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEwNC1cXHRpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxMDU6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMDYtXFx0XFx0XFx0ICAgIFxcXCJhY3BpICglcyk6IGZhaWxlZCB0byBldmFsdWF0ZSBvYmplY3RcXFxcblxcXCIsIG1ldGhvZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMTAtXFx0b2JqID0gYnVmLnBvaW50ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTExOlxcdGxlbiA9IHJ0dzg5X2FjcGlfY2FsY3VsYXRlX29iamVjdF9sZW5ndGgocnR3ZGV2LCBvYmopO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTExMi1cXHRpZiAodW5saWtlbHkobGVuID09IDApKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTEzOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTE0LVxcdFxcdFxcdCAgICBcXFwiYWNwaSAoJXMpOiBmYWlsZWQgdG8gdHJhdmVyc2FsIG9iaiBsZW5cXFxcblxcXCIsIG1ldGhvZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMjItXFx0ZGF0YS1cXHUwMDNlbGVuID0gbGVuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEyMzpcXHRydHc4OV9hY3BpX3RyYXZlcnNhbF9vYmplY3QocnR3ZGV2LCBvYmosIGRhdGEtXFx1MDAzZWJ1Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTI0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MTMwPXN0YXRpY1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEzMTppbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3ZhbHVlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMzItXFx0XFx0XFx0ICAgICB1OCAqdmFsdWUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMzQtXFx0aWYgKG9iai1cXHUwMDNldHlwZSAhPSBBQ1BJX1RZUEVfSU5URUdFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEzNTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEzNi1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBpbnRlZ2VyIGJ1dCB0eXBlOiAlZFxcXFxuXFxcIiwgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNDQ6c3RhdGljIGJvb2wgY2hrX2FjcGlfcG9saWN5XzZnaHpfc2lnKGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6ICpwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE0NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0xNTE9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTUyOmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHooc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE1My1cXHRcXHRcXHRcXHQgICB1bmlvbiBhY3BpX29iamVjdCAqb2JqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE1NDpcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoeiAqKnBvbGljeV82Z2h6KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE1NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTU2OlxcdGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6ICpwdHI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTU3LVxcdHUzMiBleHBlY3RfbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTYwLVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE2MTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2Mi1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTY3LVxcdGlmIChsZW4gXFx1MDAzYyBzaXplb2YoKnB0cikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNjg6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2OS1cXHRcXHRcXHQgICAgX19mdW5jX18sIGxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzQtXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfNmdoel9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE3NTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzYtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xODAtXFx0aWYgKGxlbiBcXHUwMDNjIGV4cGVjdF9sZW4pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxODE6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBleHBlY3QgJXUgYnV0IGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTgyLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgZXhwZWN0X2xlbiwgbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE4OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxOTA6XFx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcInBvbGljeV82Z2h6OiBcXFwiLCAqcG9saWN5XzZnaHosXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTkxLVxcdFxcdCAgICAgICBleHBlY3RfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE5NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxOTU6c3RhdGljIGJvb2wgY2hrX2FjcGlfcG9saWN5XzZnaHpfc3Bfc2lnKGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6X3NwICpwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE5Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yMDM9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjA0OmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfc3Aoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIwNS1cXHRcXHRcXHRcXHQgICAgICB1bmlvbiBhY3BpX29iamVjdCAqb2JqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIwNjpcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoel9zcCAqKnBvbGljeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMDcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIwODpcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoel9zcCAqcHRyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIwOS1cXHR1MzIgYnVmX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxMS1cXHRpZiAob2JqLVxcdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyMTI6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMTMtXFx0XFx0XFx0ICAgIFxcXCJhY3BpOiBleHBlY3QgYnVmZmVyIGJ1dCB0eXBlOiAlZFxcXFxuXFxcIiwgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxOC1cXHRpZiAoYnVmX2xlbiBcXHUwMDNjIHNpemVvZigqcHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIxOTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjIwLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjUtXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfNmdoel9zcF9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIyNjpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjctXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjM0OlxcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCJwb2xpY3lfNmdoel9zcDogXFxcIiwgKnBvbGljeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzUtXFx0XFx0ICAgICAgIHNpemVvZigqcHRyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjM5OnN0YXRpYyBib29sIGNoa19hY3BpX3BvbGljeV82Z2h6X3ZscF9zaWcoY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5XzZnaHpfdmxwICpwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI0MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yNDc9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjQ4OmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfdmxwKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNDktXFx0XFx0XFx0XFx0ICAgICAgIHVuaW9uIGFjcGlfb2JqZWN0ICpvYmosXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjUwOlxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoel92bHAgKipwb2xpY3kpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjUxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNTI6XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5XzZnaHpfdmxwICpwdHI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjUzLVxcdHUzMiBidWZfbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjU1LVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI1NjpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1Ny1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjYyLVxcdGlmIChidWZfbGVuIFxcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjYzOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNjQtXFx0XFx0XFx0ICAgIF9fZnVuY19fLCBidWZfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2OS1cXHRpZiAoIWNoa19hY3BpX3BvbGljeV82Z2h6X3ZscF9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI3MDpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzEtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mjc4OlxcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCJwb2xpY3lfNmdoel92bHA6IFxcXCIsICpwb2xpY3ksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjc5LVxcdFxcdCAgICAgICBzaXplb2YoKnB0cikpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI4MzpzdGF0aWMgYm9vbCBjaGtfYWNwaV9wb2xpY3lfdGFzX3NpZyhjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfdGFzICpwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI4NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjkxOnN0YXRpYyBpbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV90YXMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI5Mi1cXHRcXHRcXHRcXHRcXHQgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyOTM6XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV90YXMgKipwb2xpY3kpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjk0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyOTU6XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3RhcyAqcHRyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI5Ni1cXHR1MzIgYnVmX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI5OC1cXHRpZiAob2JqLVxcdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyOTk6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMDAtXFx0XFx0XFx0ICAgIFxcXCJhY3BpOiBleHBlY3QgYnVmZmVyIGJ1dCB0eXBlOiAlZFxcXFxuXFxcIiwgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMwNS1cXHRpZiAoYnVmX2xlbiBcXHUwMDNjIHNpemVvZigqcHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMwNjpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzA3LVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMTItXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfdGFzX3NpZyhwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzEzOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogYmFkIHNpZ25hdHVyZVxcXFxuXFxcIiwgX19mdW5jX18pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMxNC1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMjE6XFx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcInBvbGljeV90YXM6IFxcXCIsICpwb2xpY3ksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzIyLVxcdFxcdCAgICAgICBzaXplb2YoKnB0cikpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzI2PXN0YXRpY1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMyNzpib29sIGNoa19hY3BpX3BvbGljeV9yZWdfcnVsZXNfc2lnKGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV9yZWdfcnVsZXMgKnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTMzNT1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMzY6aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfcmVnX3J1bGVzKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMzctXFx0XFx0XFx0XFx0XFx0dW5pb24gYWNwaV9vYmplY3QgKm9iaixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMzg6XFx0XFx0XFx0XFx0XFx0c3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3JlZ19ydWxlcyAqKnBvbGljeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMzkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM0MDpcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfcmVnX3J1bGVzICpwdHI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQxLVxcdHUzMiBidWZfbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQzLVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM0NDpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM0NS1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzUwLVxcdGlmIChidWZfbGVuIFxcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzUxOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTItXFx0XFx0XFx0ICAgIF9fZnVuY19fLCBidWZfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM1Ny1cXHRpZiAoIWNoa19hY3BpX3BvbGljeV9yZWdfcnVsZXNfc2lnKHB0cikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNTg6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBiYWQgc2lnbmF0dXJlXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzU5LVxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM2NjpcXHRydHc4OV9oZXhfZHVtcChydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwicG9saWN5X3JlZ19ydWxlczogXFxcIiwgKnBvbGljeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNjctXFx0XFx0ICAgICAgIHNpemVvZigqcHRyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzcxOmludCBydHc4OV9hY3BpX2V2YWx1YXRlX2RzbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzcyOlxcdFxcdFxcdCAgICBlbnVtIHJ0dzg5X2FjcGlfZHNtX2Z1bmMgZnVuYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNzM6XFx0XFx0XFx0ICAgIHN0cnVjdCBydHc4OV9hY3BpX2RzbV9yZXN1bHQgKnJlcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM3ODpcXHRvYmogPSBhY3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShydHdkZXYtXFx1MDAzZWRldiksIFxcdTAwMjZydHc4OV9ndWlkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM3OS1cXHRcXHRcXHRcXHQwLCBmdW5jLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODAtXFx0aWYgKCFvYmopIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozODE6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODItXFx0XFx0XFx0ICAgIFxcXCJhY3BpIGRzbSBmYWlsIHRvIGV2YWx1YXRlIGZ1bmM6ICVkXFxcXG5cXFwiLCBmdW5jKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM4Ni1cXHRpZiAoZnVuYyA9PSBSVFc4OV9BQ1BJX0RTTV9GVU5DXzZHX0JQKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM4NzpcXHRcXHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHoocnR3ZGV2LCBvYmosXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzg4LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgXFx1MDAyNnJlcy1cXHUwMDNldS5wb2xpY3lfNmdoeik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzg5LVxcdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ182R0haX1NQX1NVUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTA6XFx0XFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV82Z2h6X3NwKHJ0d2Rldiwgb2JqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5MS1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHUwMDI2cmVzLVxcdTAwM2V1LnBvbGljeV82Z2h6X3NwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTItXFx0ZWxzZSBpZiAoZnVuYyA9PSBSVFc4OV9BQ1BJX0RTTV9GVU5DXzZHSFpfVkxQX1NVUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTM6XFx0XFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV82Z2h6X3ZscChydHdkZXYsIG9iaixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IFxcdTAwMjZyZXMtXFx1MDAzZXUucG9saWN5XzZnaHpfdmxwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTUtXFx0ZWxzZSBpZiAoZnVuYyA9PSBSVFc4OV9BQ1BJX0RTTV9GVU5DX1RBU19FTilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTY6XFx0XFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV90YXMocnR3ZGV2LCBvYmosIFxcdTAwMjZyZXMtXFx1MDAzZXUucG9saWN5X3Rhcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk3LVxcdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ19SRUdfUlVMRVNfRU4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mzk4OlxcdFxcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfcmVnX3J1bGVzKHJ0d2Rldiwgb2JqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5OS1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgIFxcdTAwMjZyZXMtXFx1MDAzZXUucG9saWN5X3JlZ19ydWxlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDAwLVxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MDE6XFx0XFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3ZhbHVlKHJ0d2Rldiwgb2JqLCBcXHUwMDI2cmVzLVxcdTAwM2V1LnZhbHVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MDItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDA3OmludCBydHc4OV9hY3BpX2V2YWx1YXRlX3J0YWcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQwODpcXHRcXHRcXHQgICAgIHN0cnVjdCBydHc4OV9hY3BpX3J0YWdfcmVzdWx0ICpyZXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDA5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MTA6XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfZGF0YSAqZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MTEtXFx0dTMyIGJ1Zl9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDE0OlxcdGRhdGEgPSBydHc4OV9hY3BpX2V2YWx1YXRlX21ldGhvZChydHdkZXYsIFxcXCJSVEFHXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDE1LVxcdGlmICghZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQxOS1cXHRpZiAoYnVmX2xlbiAhPSBzaXplb2YoKnJlcykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MjA6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQyMS1cXHRcXHRcXHQgICAgX19mdW5jX18sIGJ1Zl9sZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQyNjpcXHQqcmVzID0gKihzdHJ1Y3QgcnR3ODlfYWNwaV9ydGFnX3Jlc3VsdCAqKWRhdGEtXFx1MDAzZWJ1ZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDI4OlxcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCJhbnRlbm5hX2dhaW46IFxcXCIsIHJlcywgc2l6ZW9mKCpyZXMpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MjktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDM1OmVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBydHc4OV9hY3BpX3Nhcl9nZXRfc3ViYmFuZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDM2LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICB1MzIgY2VudGVyX2ZyZXEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzktXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NDA6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NDEtXFx0XFx0XFx0ICAgIFxcXCJjZW50ZXIgZnJlcSAldSB0byBBQ1BJIFNBUiBzdWJiYW5kIGlzIHVuaGFuZGxlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ2Ni1cXHQgKiBhbmQgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzgsIHNvIGRpcmVjdGx5IGRlc2NyaWJlIGl0IHdpdGhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0Njc6XFx0ICogc3RydWN0IHJ0dzg5XzZnaHpfc3Bhbi5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjgtXFx0ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDc1OmVudW0gcnR3ODlfYmFuZCBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kX3RvX2JhbmQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ3NjpcXHRcXHRcXHRcXHRcXHQgICAgICAgZW51bSBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kIHN1YmJhbmQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDc3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ3OS1cXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4MDpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ4MS1cXHRcXHRcXHQgICAgXFxcIkFDUEkgU0FSIHN1YmJhbmQgJXUgdG8gYmFuZCBpcyB1bmhhbmRsZWRcXFxcblxcXCIsIHN1YmJhbmQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUwODpzdGF0aWMgdTggcnR3ODlfYWNwaV9zYXJfcmZwYXRoX3RvX2hwX2FudGlkeChlbnVtIHJ0dzg5X3JmX3BhdGggcmZwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTUwOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01MTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTE5OnN0YXRpYyB1OCBydHc4OV9hY3BpX3Nhcl9yZnBhdGhfdG9fcnRfYW50aWR4KGVudW0gcnR3ODlfcmZfcGF0aCByZnBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTUyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MzA6c3RhdGljIHMxNiBydHc4OV9hY3BpX3Nhcl9ub3JtYWxpemVfaHBfdmFsKHU4IHYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NDQ6c3RhdGljIHMxNiBydHc4OV9hY3BpX3Nhcl9ub3JtYWxpemVfcnRfdmFsKHU4IHYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTU1Nj1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NTc6dm9pZCBydHc4OV9hY3BpX3Nhcl9sb2FkX3N0ZF9sZWdhY3koc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU1ODpcXHRcXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3JlY29nbml0aW9uICpyZWMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTU5LVxcdFxcdFxcdFxcdCAgICBjb25zdCB2b2lkICpjb250ZW50LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2MDpcXHRcXHRcXHRcXHQgICAgc3RydWN0IHJ0dzg5X3Nhcl9lbnRyeV9mcm9tX2FjcGkgKmVudClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2MjpcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9zYXJfc3RkX2xlZ2FjeSAqcHRyID0gY29udGVudDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NjM6XFx0ZW51bSBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kIHN1YmJhbmQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTY0OlxcdGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU2NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTU3OT1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1ODA6dm9pZCBydHc4OV9hY3BpX3Nhcl9sb2FkX3N0ZF9oYXNfNmdoeihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTgxOlxcdFxcdFxcdFxcdCAgICAgIGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3Nhcl9yZWNvZ25pdGlvbiAqcmVjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU4Mi1cXHRcXHRcXHRcXHQgICAgICBjb25zdCB2b2lkICpjb250ZW50LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4MzpcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcnR3ODlfc2FyX2VudHJ5X2Zyb21fYWNwaSAqZW50KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU4NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTg1OlxcdGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3Nhcl9zdGRfaGFzXzZnaHogKnB0ciA9IGNvbnRlbnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTg2OlxcdGVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBzdWJiYW5kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4NzpcXHRlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01ODgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz02MDA9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjAxOnZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zbWxfbGVnYWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MDI6XFx0XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3Nhcl9yZWNvZ25pdGlvbiAqcmVjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTYwMy1cXHRcXHRcXHRcXHQgICAgY29uc3Qgdm9pZCAqY29udGVudCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MDQ6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHc4OV9zYXJfZW50cnlfZnJvbV9hY3BpICplbnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjA1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MDY6XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3NtbF9sZWdhY3kgKnB0ciA9IGNvbnRlbnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjA3OlxcdGVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBzdWJiYW5kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYwODpcXHRlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz02MjM9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjI0OnZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zbWxfaGFzXzZnaHooc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyNTpcXHRcXHRcXHRcXHQgICAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9zYXJfcmVjb2duaXRpb24gKnJlYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MjYtXFx0XFx0XFx0XFx0ICAgICAgY29uc3Qgdm9pZCAqY29udGVudCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2Mjc6XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHJ0dzg5X3Nhcl9lbnRyeV9mcm9tX2FjcGkgKmVudClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02Mjgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyOTpcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9zYXJfc21sX2hhc182Z2h6ICpwdHIgPSBjb250ZW50O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYzMDpcXHRlbnVtIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmQgc3ViYmFuZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MzE6XFx0ZW51bSBydHc4OV9yZl9wYXRoIHBhdGg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjMyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjY0NDpzdGF0aWMgczE2IHJ0dzg5X2FjcGlfZ2VvX3Nhcl9ub3JtYWxpemVfZGVsdGEoczggZGVsdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTY1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2NTM6c3RhdGljIGVudW0gcnR3ODlfYWNwaV9nZW9fc2FyX3JlZ2RfaHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2NTQ6cnR3ODlfYWNwaV9nZW9fc2FyX3JlZ2RfY29udmVydF9ocF9pZHgoZW51bSBydHc4OV9yZWd1bGF0aW9uX3R5cGUgcmVnZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02NTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjY3NTpzdGF0aWMgZW51bSBydHc4OV9hY3BpX2dlb19zYXJfcmVnZF9ydFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjY3NjpydHc4OV9hY3BpX2dlb19zYXJfcmVnZF9jb252ZXJ0X3J0X2lkeChlbnVtIHJ0dzg5X3JlZ3VsYXRpb25fdHlwZSByZWdkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTY3Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz03MDA9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzAxOnZvaWQgcnR3ODlfYWNwaV9nZW9fc2FyX2xvYWRfYnlfaHAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjcwMjpcXHRcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9nZW9fc2FyX2hwX3ZhbCAqcHRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjcwMzpcXHRcXHRcXHRcXHQgICBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgczE2ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzA0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MDU6XFx0dTggYW50aWR4ID0gcnR3ODlfYWNwaV9zYXJfcmZwYXRoX3RvX2hwX2FudGlkeChwYXRoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MDY6XFx0czE2IGRlbHRhID0gcnR3ODlfYWNwaV9nZW9fc2FyX25vcm1hbGl6ZV9kZWx0YShwdHItXFx1MDAzZWRlbHRhW2FudGlkeF0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjcwNzpcXHRzMTYgbWF4ID0gcnR3ODlfYWNwaV9zYXJfbm9ybWFsaXplX2hwX3ZhbChwdHItXFx1MDAzZW1heCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzA4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NzEyPXN0YXRpY1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjcxMzp2b2lkIHJ0dzg5X2FjcGlfZ2VvX3Nhcl9sb2FkX2J5X3J0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MTQ6XFx0XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfZ2VvX3Nhcl9ydF92YWwgKnB0cixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03MTUtXFx0XFx0XFx0XFx0ICAgczE2ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzE2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MTc6XFx0czE2IGRlbHRhID0gcnR3ODlfYWNwaV9nZW9fc2FyX25vcm1hbGl6ZV9kZWx0YShwdHItXFx1MDAzZWRlbHRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MTg6XFx0czE2IG1heCA9IHJ0dzg5X2FjcGlfc2FyX25vcm1hbGl6ZV9ydF92YWwocHRyLVxcdTAwM2VtYXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTcyMz1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MjQ6dm9pZCBydHc4OV9hY3BpX2dlb19zYXJfbG9hZF9ocF9sZWdhY3koc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcyNS1cXHRcXHRcXHRcXHQgICAgICAgY29uc3Qgdm9pZCAqY29udGVudCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MjY6XFx0XFx0XFx0XFx0ICAgICAgIGVudW0gcnR3ODlfcmVndWxhdGlvbl90eXBlIHJlZ2QsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzI3OlxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcnR3ODlfc2FyX2VudHJ5X2Zyb21fYWNwaSAqZW50KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcyOC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzI5OlxcdGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX2dlb19zYXJfaHBfbGVnYWN5ICpwdHIgPSBjb250ZW50O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczMDpcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9nZW9fc2FyX2hwX2xlZ2FjeV9lbnRyeSAqcHRyX2VudDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MzE6XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfZ2VvX3Nhcl9ocF92YWwgKnB0cl9lbnRfdmFsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczMjpcXHRlbnVtIHJ0dzg5X2FjcGlfZ2VvX3Nhcl9yZWdkX2hwIGdlb19pZHggPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczMzpcXHRcXHRydHc4OV9hY3BpX2dlb19zYXJfcmVnZF9jb252ZXJ0X2hwX2lkeChyZWdkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MzQ6XFx0ZW51bSBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kIHN1YmJhbmQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzM1OlxcdGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczNjpcXHRlbnVtIHJ0dzg5X2JhbmQgYmFuZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03MzctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03NDAtXFx0Zm9yIChzdWJiYW5kID0gMDsgc3ViYmFuZCBcXHUwMDNjIE5VTV9PRl9SVFc4OV9BQ1BJX1NBUl9TVUJCQU5EOyBzdWJiYW5kKyspIHtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6MjYuMDQ0Nzg5Nzg5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA2MjQ0NzA2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJlYWx0ZWsgcnR3ODkgV2lyZWxlc3MgRHJpdmVyIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgUmVhbHRlayBydHc4OSB3aXJlbGVzcyBkcml2ZXIsIGFuZCBpdCdzIHN0cnVjdHVyZWQgaW4gYSBwcmV0dHkgc3RhbmRhcmQgd2F5LCB3aXRoIGRpZmZlcmVudCBjb21wb25lbnRzIGxpa2UgYHJ0dzg5X2NvcmVgLCBgcnR3ODlfODg1MWJgLCBhbmQgc2VwYXJhdGUgbW9kdWxlcyBmb3IgUENJIGFuZCBVU0IgKGBydHc4OV9wY2lgLCBgcnR3ODlfdXNiYCkuIFRoYXQncyBpbW1lZGlhdGVseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZSBVU0Igc3VwcG9ydCBvcGVucyB1cCBzb21lIGZ1enppbmcgcG9zc2liaWxpdGllcyB3aXRoIHN5emthbGxlci4gU3BlY2lmaWNhbGx5LCBJJ20gdGhpbmtpbmcgSSBjb3VsZCB1c2UgYGR1bW15X2hjZGAgYW5kIGByYXctZ2FkZ2V0YCB0byB0YXJnZXQgaXQuXG5cbk5vdywgbXkgZm9jdXMgaXMgb24gd2hldGhlciBhIHBhcnRpY3VsYXIgZmlsZSwgYHJ0dzg4NTFiX3Jmay5jYCwgaXMgYnVpbHQgaW50byB0aGUgVVNCIGNvbXBvbmVudC4gSSBzZWUgdGhhdCBpdCdzIGxpc3RlZCBhcyBwYXJ0IG9mIHRoZSBgcnR3ODlfODg1MWJgIGJ1aWxkOiBgcnR3ODlfODg1MWItb2JqcyA6PSBydHc4ODUxYi5vIHJ0dzg4NTFiX3RhYmxlLm8gcnR3ODg1MWJfcmZrLm9gLiBSaWdodCwgc28gaXQncyBjb21waWxlZCBpbnRvIGBydHc4OV84ODUxYi5vYCwgbm90IGRpcmVjdGx5IGludG8gYSBVU0Itc3BlY2lmaWMgbW9kdWxlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgbW9kdWxlICppcyogY29tcGlsZWQgd2hlbiBVU0Igc3VwcG9ydCBpcyBlbmFibGVkLlxuXG5UbyBjb25maXJtIHRoYXQsIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0aGUgYE1ha2VmaWxlYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9gIGFuZCB2ZXJpZnkgdGhhdCBgcnR3ODg1MWJfcmZrLm9gIGlzIGluZGVlZCBpbmNsdWRlZCB3aGVuIHRoZSBVU0IgY29tcG9uZW50IGlzIGJ1aWx0LiBJJ20gZ29pbmcgdG8gdHJhY2sgdGhhdCBkb3duIGFuZCBjb25maXJtIHRoaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4OTkzLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjE5OjMyLjEwNzIzOTUyM1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDA1ODQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4ODUxYl9yZmtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZT0yNj1ydHc4OV84ODUxYi1vYmpzIDo9IHJ0dzg4NTFiLm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMjctXFx0XFx0ICAgIHJ0dzg4NTFiX3RhYmxlLm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6Mjg6XFx0XFx0ICAgIHJ0dzg4NTFiX3Jmay5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjI5OlxcdFxcdCAgICBydHc4ODUxYl9yZmtfdGFibGUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTEtI2luY2x1ZGUgXFxcInJ0dzg4NTFiLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjEyOiNpbmNsdWRlIFxcXCJydHc4ODUxYl9yZmsuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MTM6I2luY2x1ZGUgXFxcInJ0dzg4NTFiX3Jma190YWJsZS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNC0jaW5jbHVkZSBcXFwicnR3ODg1MWJfdGFibGUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYz0yNTE9c3RhdGljIGNvbnN0IHN0cnVjdCBydHc4OV9ycnNyX2NmZ3MgcnR3ODg1MWJfcnJzcl9jZmdzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjU2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3ODlfcmZraWxsX3JlZ3MgcnR3ODg1MWJfcmZraWxsX3JlZ3MgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1Ny1cXHQucGlubXV4ID0ge1JfQVhfR1BJTzhfMTVfRlVOQ19TRUwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM9MTczMj1zdGF0aWMgdm9pZCBydHc4ODUxYl9zZXRfY2hhbm5lbF9oZWxwKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBlbnRlcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoxNzU0OnN0YXRpYyB2b2lkIHJ0dzg4NTFiX3Jma19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc1NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MTc2NzpzdGF0aWMgdm9pZCBydHc4ODUxYl9yZmtfY2hhbm5lbChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3NjgtXFx0XFx0XFx0XFx0IHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MTc4NTpzdGF0aWMgdm9pZCBydHc4ODUxYl9yZmtfYmFuZF9jaGFuZ2VkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc4Ni1cXHRcXHRcXHRcXHQgICAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoxNzkyOnN0YXRpYyB2b2lkIHJ0dzg4NTFiX3Jma19zY2FuKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc5My1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjE4MDA6c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTgwMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM9MjQ5Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfb3BzIHJ0dzg4NTFiX2NoaXBfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1MDktXFx0LnJma19od19pbml0XFx0XFx0PSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoyNTEwOlxcdC5yZmtfaW5pdFxcdFxcdD0gcnR3ODg1MWJfcmZrX2luaXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1MTEtXFx0LnJma19pbml0X2xhdGVcXHRcXHQ9IE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjI1MTI6XFx0LnJma19jaGFubmVsXFx0XFx0PSBydHc4ODUxYl9yZmtfY2hhbm5lbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjUxMzpcXHQucmZrX2JhbmRfY2hhbmdlZFxcdD0gcnR3ODg1MWJfcmZrX2JhbmRfY2hhbmdlZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjUxNDpcXHQucmZrX3NjYW5cXHRcXHQ9IHJ0dzg4NTFiX3Jma19zY2FuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoyNTE1OlxcdC5yZmtfdHJhY2tcXHRcXHQ9IHJ0dzg4NTFiX3Jma190cmFjayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjUxNi1cXHQucG93ZXJfdHJpbVxcdFxcdD0gcnR3ODg1MWJfcG93ZXJfdHJpbSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYz0yNTc1PWNvbnN0IHN0cnVjdCBydHc4OV9jaGlwX2luZm8gcnR3ODg1MWJfY2hpcF9pbmZvID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI3MTktXFx0LmJzc19jbHJfbWFwX3JlZ1xcdD0gUl9CU1NfQ0xSX01BUF9WMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjcyMDpcXHQucmZraWxsX2luaXRcXHRcXHQ9IFxcdTAwMjZydHc4ODUxYl9yZmtpbGxfcmVncyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjcyMS1cXHQucmZraWxsX2dldFxcdFxcdD0ge1JfQVhfR1BJT19FWFRfQ1RSTCwgQl9BWF9HUElPX0lOXzl9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xMC0jaW5jbHVkZSBcXFwicnR3ODg1MWIuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjExOiNpbmNsdWRlIFxcXCJydHc4ODUxYl9yZmsuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjEyOiNpbmNsdWRlIFxcXCJydHc4ODUxYl9yZmtfdGFibGUuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTEzLSNpbmNsdWRlIFxcXCJydHc4ODUxYl90YWJsZS5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmtfdGFibGUuYy00LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrX3RhYmxlLmM6NTojaW5jbHVkZSBcXFwicnR3ODg1MWJfcmZrX3RhYmxlLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmtfdGFibGUuYy02LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoxOTozMi4xNTczMDU4MjdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDQwNDA5Mjg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgcnR3ODkgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBydHc4OWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaXRzIGJ1aWxkIGNvbmZpZ3VyYXRpb25zLiBJIHNlZSB0aGF0IGl0IGNhbiBiZSBidWlsdCB3aXRoIGBDT05GSUdfUlRXODlfVVNCYCBhbmQgYENPTkZJR19SVFc4OV84ODUxQmAgZW5hYmxlZC4gSW50ZXJlc3RpbmcsIGEgVVNCIGNvbmZpZ3VyYXRpb24gYW5kIGEgc3BlY2lmaWMgY2hpcHNldC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIGNvbmZpZ3VyYXRpb25zIGltcGFjdCB0aGUgZHJpdmVyJ3MgYmVoYXZpb3IuIFRoZSByZWxldmFudCBmdW5jdGlvbiBoZXJlIHNlZW1zIHRvIGJlIGBfZHBrX2luZm9ybWF0aW9uYC4gUmlnaHQsIGxldCdzIHRyYWNlIHRoaXMuIEkgbmVlZCB0byBzZWUgZXhhY3RseSB3aGVyZSBgX2Rwa19pbmZvcm1hdGlvbmAgaXMgY2FsbGVkIHdpdGhpbiB0aGUgZHJpdmVyJ3MgY29kZS4gVGhhdCB3aWxsIHRlbGwgbWUgaG93IHRoZSBVU0Igb3IgY2hpcHNldC1zcGVjaWZpYyBhc3BlY3RzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGlzIGNvbnRleHQuIFRpbWUgdG8gcHVsbCB1cCB0aGUgc291cmNlIGFuZCBkaWcgaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxOTA5LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6MzcuNTk3NzE3MjM1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNDU5OTk1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9kcGtfaW5mb3JtYXRpb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0xODgwPXN0YXRpYyB2b2lkIF9kcGtfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg4OTpzdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE4OTAtXFx0XFx0XFx0ICAgICBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjYwOT1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNjI2LVxcdFxcdF9kcGtfYmt1cF9yZihydHdkZXYsIGRwa19yZl9yZWcsIHJmX2JrdXAsIHBhdGgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjYyNzpcXHRcXHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNjI4LVxcdFxcdF9kcGtfaW5pdChydHdkZXYsIHBhdGgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0xODYwPXN0YXRpYyB2b2lkIF9kcGtfcnhfZGNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMTg2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4Njk6c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0xODcwLVxcdFxcdFxcdCAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjYxMD1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjUyLVxcdFxcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIFxcdTAwMjZiYWNrdXBfcmZfdmFsW3BhdGhdWzBdLCBwYXRoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI2NTM6XFx0XFx0X2Rwa19pbmZvcm1hdGlvbihydHdkZXYsIHBoeSwgcGF0aCwgY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjY1NC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTE3NDQ9c3RhdGljIHZvaWQgX2Rwa19yeF9kY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xNzUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc1MTpzdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE3NTItXFx0XFx0XFx0ICAgICBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjQ4ND1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNTE0LVxcdFxcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIFxcdTAwMjZiYWNrdXBfcmZfdmFsW3BhdGhdWzBdLCBwYXRoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI1MTU6XFx0XFx0X2Rwa19pbmZvcm1hdGlvbihydHdkZXYsIHBoeSwgcGF0aCwgY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjUxNi1cXHRcXHRpZiAocnR3ZGV2LVxcdTAwM2Vpc190c3NpX21vZGVbcGF0aF0pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0xODUyPXN0YXRpYyB2b2lkIF9kcGtfcnhfZGNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4NjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg2MzpzdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODY0LVxcdFxcdFxcdCAgICAgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0yNTg2PXN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjA5LVxcdFxcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIGJhY2t1cF9yZl92YWxbcGF0aF0sIHBhdGgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2MTA6XFx0XFx0X2Rwa19pbmZvcm1hdGlvbihydHdkZXYsIHBoeSwgcGF0aCwgY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2MTEtXFx0XFx0aWYgKHJ0d2Rldi1cXHUwMDNlaXNfdHNzaV9tb2RlW3BhdGhdKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYz0xODczPXN0YXRpYyB1OCBfZHBrX29uZV9zaG90KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMTkwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MDc6c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTA4LVxcdFxcdFxcdCAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MjY5Nj1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0yNzMxLVxcdFxcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIGJhY2t1cF9yZl92YWxbcGF0aF0sIHBhdGgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MjczMjpcXHRcXHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0yNzMzLVxcdFxcdF9kcGtfaW5pdChydHdkZXYsIHBhdGgpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoxOTozNy42NTAxODI5NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMjQ3MTczMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgaW5mb3JtYXRpb246XG5cbioqVHJhY2luZyB0aGUgUkYgQ2FsaWJyYXRpb24gUGF0aCoqXG5cbk9rYXksIHNvIEkgc2VlIHRoYXQgYF9kcGtfaW5mb3JtYXRpb25gIGlzIGJlaW5nIGNhbGxlZCBieSBgX2Rwa19jYWxfc2VsZWN0YC4gR2l2ZW4gdGhhdCB0aGVzZSBhcmUgb2J2aW91c2x5IGludGVybmFsIGZ1bmN0aW9uIG5hbWVzLCBhbmQgdGhlIGNvbnRleHQgc3VnZ2VzdHMgUkYgY2FsaWJyYXRpb24gaXMgaW52b2x2ZWQsIG15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2UncmUgZGVhbGluZyB3aXRoIGEgbW9kdWxlIHJlbGF0ZWQgdG8gUkYgY2FsaWJyYXRpb24gcm91dGluZXMuIE15IG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIHBpbnBvaW50IHRoZSBvcmlnaW4gb2YgYF9kcGtfY2FsX3NlbGVjdGAuIFVuZGVyc3RhbmRpbmcgKml0cyogY2FsbGluZyBjb250ZXh0IHdpbGwgZ2l2ZSBtZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgbGFyZ2VyIGNhbGlicmF0aW9uIHdvcmtmbG93LCBpbmNsdWRpbmcgdGhlIGZ1bmN0aW9uJ3MgcmVzcG9uc2liaWxpdHkgYW5kIHRoZSBkYXRhIGl0IGNvbnN1bWVzLiBJIG5lZWQgdG8gdHJhY2UgYmFjayBmcm9tIGBfZHBrX2NhbF9zZWxlY3RgIHRvIGlkZW50aWZ5IGl0cyBwYXJlbnQgZnVuY3Rpb24ocykgdG8gdW5kZXJzdGFuZCB0aGUgbGFyZ2VyIGNvbnRleHQuIFRoaXMgd2lsbCBnaXZlIG1lIGEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIHdoZXJlIGBfZHBrX2luZm9ybWF0aW9uYCBmaXRzIGludG8gdGhlIHdob2xlIHByb2Nlc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MzY1LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6NDEuNjc0OTAzNzgzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDE2MjgyNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfZHBrX2NhbF9zZWxlY3RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0yNTcxPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2MDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNjA5OnN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNjEwLVxcdFxcdFxcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjY2OD1zdGF0aWMgdm9pZCBfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSwgYm9vbCBmb3JjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjY3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI2NzU6XFx0X2Rwa19jYWxfc2VsZWN0KHJ0d2RldiwgZm9yY2UsIHBoeSwgX2twYXRoKHJ0d2RldiwgcGh5KSwgY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjY3Ni19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI1NzA9c3RhdGljIGJvb2wgX2Rwa19tYWluKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjYwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI2MTA6c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBmb3JjZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI2MTEtXFx0XFx0XFx0ICAgIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIHU4IGtwYXRoLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNzEyPXN0YXRpYyB2b2lkIF9kcGsoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNzIyLVxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3MjM6XFx0XFx0X2Rwa19jYWxfc2VsZWN0KHJ0d2RldiwgZm9yY2UsIHBoeSwgX2twYXRoKHJ0d2RldiwgcGh5KSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3MjQtXFx0XFx0XFx0XFx0Y2hhbmN0eF9pZHgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yNDM1PXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0ODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNDg0OnN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDg1LVxcdFxcdFxcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjU3ND1zdGF0aWMgdm9pZCBfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSwgYm9vbCBmb3JjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjU4NC1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNTg1OlxcdFxcdF9kcGtfY2FsX3NlbGVjdChydHdkZXYsIGZvcmNlLCBwaHksIFJGX0FCLCBjaGFuY3R4X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNTg2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI1MzM9c3RhdGljIGJvb2wgX2Rwa19tYWluKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI1ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjU4NjpzdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI1ODctXFx0XFx0XFx0ICAgIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIHU4IGtwYXRoLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9Mzg1OT12b2lkIHJ0dzg4NTJidF9kcGsoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTM4NjctXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjM4Njg6XFx0XFx0X2Rwa19jYWxfc2VsZWN0KHJ0d2RldiwgcGh5X2lkeCwgUkZfQUIsIGNoYW5jdHhfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0zODY5LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MjY4OD1zdGF0aWMgdm9pZCBfZHBrX2RyZl9kaXJlY3RfY250cmwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBwYXRoLCBib29sIGlzX2J5YmIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTI2OTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoyNjk2OnN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0yNjk3LVxcdFxcdFxcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MjgwMT1zdGF0aWMgdm9pZCBfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSwgYm9vbCBmb3JjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjgxMS1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoyODEyOlxcdFxcdF9kcGtfY2FsX3NlbGVjdChydHdkZXYsIGZvcmNlLCBwaHksIF9rcGF0aChydHdkZXYsIHBoeSksIGNoYW5jdHhfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTI4MTMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjE5OjQxLjcyNTA3MjIzOFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDIzODMwODA1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBCdWcgRml4KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJIHNlZSB0aGF0IGBfZHBrYCBpcyB0cmlnZ2VyZWQgYnkgYHJ0dzg4NTFiX3Jma190cmFja2AgYW5kIGBydHc4ODUxYl9yZmtfY2hhbm5lbGAsIGFuZCBpbXBvcnRhbnRseSwgdGhlc2UgZnVuY3Rpb25zIGFyZSBob29rZWQgdXAgdG8gdGhlIGBydHc4ODUxYl9jaGlwX29wc2Agc3RydWN0dXJlLiBUaGF0IHRlbGxzIG1lIHRoZXNlIGFyZSBkZWZpbml0ZWx5IGV4ZWN1dGVkIGR1cmluZyBpbml0aWFsaXphdGlvbiBvciB3aGVuIHRoZSBjaGFubmVsIGNoYW5nZXMsIHdoaWNoIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gTm93LCB0aGUgZHJpdmVyIHN1cHBvcnRzIFVTQiwgd2hpY2ggbWVhbnMgSSBjYW4gbGV2ZXJhZ2UgYGR1bW15X2hjZGAgYW5kIGByYXctZ2FkZ2V0YCBmb3IgZnV6emluZy5cblxuQnV0IGhvbGQgb24sIGlzIFVTQiBzdXBwb3J0IGV2ZW4gcmVsZXZhbnQgdG8gdGhlIGA4ODUxYmAgc3BlY2lmaWNhbGx5PyBMZXQgbWUgY29uZmlybS4gQWgsIHllcywgdGhlIGBNYWtlZmlsZWAgY29uZmlybXMgdGhlIGBydHc4OV84ODUxYnVgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGBydHc4ODUxYnUub2AsIGlzIGluY2x1ZGVkIGJhc2VkIG9uIHRoZSBgQ09ORklHX1JUVzg5Xzg4NTFCVWAgZmxhZy4gVGhhdCBtZWFucyBpdOKAmXMgcmVhY2hhYmxlIHZpYSBhIFVTQiBmdXp6aW5nIHNldHVwLCBwZXJmZWN0LlxuXG5Ob3cgdG8gdGhlIGNvcmUgb2YgdGhlIGZpeC4gSXQncyBhIHNpbXBsZSBzd2FwOiBgY2hhbi1cdTAwM2ViYW5kX3dpZHRoYCBhbmQgYGNoYW4tXHUwMDNlY2hhbm5lbGAgYXJlIHN3YXBwZWQgaW4gdGhlIGFzc2lnbm1lbnQgdG8gYGRway1cdTAwM2VicGAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBiaXQgb2YgYSBkYXRhIGNvcnJ1cHRpb24gaXNzdWUuIFRoaXMgYnVnIGRpcmVjdGx5IGltcGFjdHMgdGhlIHZhbHVlcyBzdG9yZWQgaW4gYGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaGAgYW5kIGBid2AuIEkgc3VzcGVjdCB0aGVzZSB2YWx1ZXMgZmVlZCBpbnRvIHRoZSBEUEsgKERpZ2l0YWwgUHJlLURpc3RvcnRpb24pIGNhbGlicmF0aW9uIGxvZ2ljIGxhdGVyIG9uLiBUaGF0J3MgaW50ZXJlc3RpbmcsIHRoaXMgY291bGQgcG90ZW50aWFsbHkgaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiBwZXJmb3JtYW5jZSBvciBldmVuIGludHJvZHVjZSBpbnN0YWJpbGl0eSBpZiB0aGUgRFBLIGlzIHNlbnNpdGl2ZSB0byB0aGVzZSB2YWx1ZXMuXG5cbkdpdmVuIHRoYXQgaXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgZHJpdmVyIEkgKmNhbiogZnV6eiB2aWEgVVNCLCB0aGUgYW5zd2VyIGlzIGEgcmVzb3VuZGluZyB5ZXMgLSBpdCdzIGRlZmluaXRlbHkgd29ydGggaW52ZXN0aWdhdGluZy4gSSdsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRvd25zdHJlYW0gdXNlIG9mIHRob3NlIHZhbHVlcyB0byBzZWUgdGhlIGZ1bGwgaW1wYWN0LiBJIG5lZWQgdG8gZmlndXJlIG91dCBleGFjdGx5IHdoYXQgYF9kcGtgIGRvZXMuIE9rLCB0aGF0IGZ1bmN0aW9uIGlzIHNpbXBsZTogaXQgc3RvcmVzIGNoYW5uZWwgYW5kIGJhbmR3aWR0aCBpbmZvIGluIGBkcGstXHUwMDNlYnBgLiBJIHNob3VsZCBsb29rIGF0IGFsbCB1c2VzIG9mIGBkcGstXHUwMDNlYnBgIHRvIHVuZGVyc3RhbmQgdGhlIGRhdGEgZmxvdywgYW5kIGlkZW50aWZ5IGlmIHRoZXkgaGF2ZSBhbnkgc2VjdXJpdHkgaW1wbGljYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjY5NCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoxOTo1NS45NjMzODMyMTRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjYyNjc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRway1cXHUwMDNlYnBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MTUgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MTg2Mz1zdGF0aWMgdm9pZCBfZHBrX29ub2ZmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE4NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxODcxOlxcdHZhbCA9IGRway1cXHUwMDNlaXNfZHBrX2VuYWJsZSAqIG9mZl9yZXZlcnNlICogZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTg3Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MTg4MD1zdGF0aWMgdm9pZCBfZHBrX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTg4NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE4ODY6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE4ODctfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0xODg5PXN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xODk2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg5NzpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPSBjaGFuLVxcdTAwM2ViYW5kX3R5cGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxODk4OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggPSBjaGFuLVxcdTAwM2VjaGFubmVsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg5OTpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID0gY2hhbi1cXHUwMDNlYmFuZF93aWR0aDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5MDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5MDUtXFx0XFx0ICAgIHN0cl9vbl9vZmYocnR3ZGV2LVxcdTAwM2VkYmNjX2VuKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5MDY6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAwID8gXFxcIjJHXFxcIiA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxOTA3OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMSA/IFxcXCI1R1xcXCIgOiBcXFwiNkdcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkwODpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5jaCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5MDk6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMCA/IFxcXCIyME1cXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5MTA6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMSA/IFxcXCI0ME1cXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5MTE6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMiA/IFxcXCI4ME1cXFwiIDogXFxcIjE2ME1cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5MTItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0xOTkyPXN0YXRpYyB2b2lkIF9kcGtfdHBnX3NlbChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLCB1OCBraWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xOTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTk5NjpcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzgwKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xOTk3LVxcdFxcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTk5OC1cXHRcXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UUEdfU0VMLCBNQVNLRFdPUkQsIDB4ZmZlMGZhMDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTk5OTpcXHR9IGVsc2UgaWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjAwMC1cXHRcXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UUEdfTU9ELCBCX1RQR19NT0RfRiwgMHgyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjAwNy1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFxcXCJbRFBLXSBUUEcgU2VsZWN0IGZvciAlc1xcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwMDg6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MCA/IFxcXCI4ME1cXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwMDk6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFxcXCI0ME1cXFwiIDogXFxcIjIwTVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjAxMC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTIwNzM9c3RhdGljIHZvaWQgX2Rwa19wYXJhX3F1ZXJ5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsIHU4IGtpZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMDkxOlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrID0gKHBhcmEgXFx1MDAzZVxcdTAwM2UgMTApIFxcdTAwMjYgMHgzZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwOTI6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayA9IChwYXJhIFxcdTAwM2VcXHUwMDNlIDI2KSBcXHUwMDI2IDB4M2Y7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMDkzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMDk1LVxcdFxcdCAgICBcXFwiW0RQS10gdGhlcm1hbC8gdHhhZ2NfUkYgKEslZCkgPSAweCV4LyAweCV4XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjA5NjpcXHRcXHQgICAgZHBrLVxcdTAwM2VjdXJfa19zZXQsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMDk3OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnR4YWdjX2Rwayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMDk4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjIyMj1zdGF0aWMgdm9pZCBfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjIyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIyMjY6XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMjI3LVxcdFxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfTU9ELCBSRlJFR19NQVNLLCAweDUwNTIxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjIzOC1cXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX1JDS0QsIFJSX1JDS0RfQlcsIDB4MSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMjM5OlxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfQlRDLCBSUl9CVENfVFhCQiwgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyArIDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjI0MC1cXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1JYQkIsIDB4MCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTIzMzU9c3RhdGljIHU4IF9kcGtfYWdjKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjM2NC1cXHRcXHRcXHRpZiAoYWdjX2NudCA9PSAwKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMzY1OlxcdFxcdFxcdFxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIzNjYtXFx0XFx0XFx0XFx0XFx0X2Rwa19ieXBhc3NfcnhpcWMocnR3ZGV2LCBwYXRoKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjUxNz1zdGF0aWMgdm9pZCBfZHBrX2dhaW5fbm9ybWFsaXplKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjU0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI1NDQ6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5ncyA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNTQ1LVxcdFxcdHJ0dzg5X3BoeV9yZWFkMzJfbWFzayhydHdkZXYsIHJlZ1traWR4XVtjdXJfa19zZXRdICsgKHBhdGggXFx1MDAzY1xcdTAwM2MgOCksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTI1NDk9c3RhdGljIHZvaWQgX2Rwa19vbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNTU5OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNTYwOlxcdFxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayB8IEJJVChkcGstXFx1MDAzZWN1cl9rX3NldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjU2Mi1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFxcXCJbRFBLXSBTJWRbJWRdIHBhdGhfb2sgPSAweCV4XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjU2MzpcXHRcXHQgICAgcGF0aCwga2lkeCwgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNTY1LVxcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX0RQRF9DSDBBICsgKHBhdGggXFx1MDAzY1xcdTAwM2MgOCkgKyAoa2lkeCBcXHUwMDNjXFx1MDAzYyAyKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI1NjY6XFx0XFx0XFx0ICAgICAgIEJfRFBEX01FTiwgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTI2Nzg9c3RhdGljIHZvaWQgX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2OTItXFx0XFx0XFx0ICAgIFxcXCJbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI2OTM6XFx0XFx0XFx0ICAgIHBhdGgsIGtpZHgsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjY5NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjcxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI3MTI6XFx0XFx0ZGVsdGFfdGhlciA9IGN1cl90aGVyIC0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MTctXFx0XFx0XFx0ICAgIFxcXCJbRFBLX1RSS10gZXh0cmEgZGVsdGFfdGhlciA9ICVkICgweCV4IC8gMHgleEBrKVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI3MTg6XFx0XFx0XFx0ICAgIGRlbHRhX3RoZXIsIGN1cl90aGVyLCBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MjEtXFx0XFx0XFx0ICAgIFxcXCJbRFBLX1RSS10gZGVsdGFfdHhhZ2MgPSAlZCAoMHgleCAvIDB4JXhAaylcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNzIyOlxcdFxcdFxcdCAgICB0eGFnY19yZiAtIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjcyMzpcXHRcXHRcXHQgICAgdHhhZ2NfcmYsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MjQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTE4Njk9c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTE4NzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoxODc3OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9IGNoYW4tXFx1MDAzZWJhbmRfdHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4Nzg6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXFx1MDAzZWNoYW5uZWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoxODc5OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVxcdTAwM2ViYW5kX3dpZHRoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMTg4MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMTg4NS1cXHRcXHQgICAgc3RyX29uX29mZihydHdkZXYtXFx1MDAzZWRiY2NfZW4pLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MTg4NjpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcXFwiMkdcXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4ODc6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAxID8gXFxcIjVHXFxcIiA6IFxcXCI2R1xcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoxODg4OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MTg4OTpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXFxcIjIwTVxcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MTg5MDpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAxID8gXFxcIjQwTVxcXCIgOiBcXFwiODBNXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0xODkxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjAzMz1zdGF0aWMgdm9pZCBfZHBrX2dldF90aGVybWFsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTgga2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjAzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwMzg6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDM5LVxcdFxcdGV3bWFfdGhlcm1hbF9yZWFkKFxcdTAwMjZydHdkZXYtXFx1MDAzZXBoeXN0YXQuYXZnX3RoZXJtYWxbcGF0aF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDQxLVxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXFxcIltEUEtdIHRoZXJtYWxARFBLID0gMHgleFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNDI6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjA0My19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTIwNTU9c3RhdGljIHZvaWQgX2Rwa19yZl9zZXR0aW5nKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggZ2FpbixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjA1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNjA6XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDYxLVxcdFxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfTU9ELCBSUl9NT0RfRFBLLCAweDI4MGIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDcxLVxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfUkNLRCwgUlJfUkNLRF9CVywgMHgxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNzI6XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9CVEMsIFJSX0JUQ19UWEJCLCBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ICsgMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDczLVxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfQlRDLCBSUl9CVENfUlhCQiwgMHgwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjEzNz12b2lkIF9kcGtfdHBnX3NlbChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLCB1OCBraWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjE0MTpcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzgwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjE0Mi1cXHRcXHRydHc4OV9waHlfd3JpdGUzMl9jbHIocnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNDM6XFx0ZWxzZSBpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzQwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjE0NC1cXHRcXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UUEdfTU9ELCBCX1RQR19NT0RfRiwgMHgyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjE0OC1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFxcXCJbRFBLXSBUUEdfU2VsZWN0IGZvciAlc1xcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNDk6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MCA/IFxcXCI4ME1cXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNTA6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFxcXCI0ME1cXFwiIDogXFxcIjIwTVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjE1MS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI1MDg9c3RhdGljIHZvaWQgX2Rwa19maWxsX3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1MjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNTIzOlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrID0gdHhhZ2M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNTI0LVxcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RYQUdDX1JGSyArIChwYXRoIFxcdTAwM2NcXHUwMDNjIDgpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjUyNzpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgPSBwd3NmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUyOC1cXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQk5EICsgKHBhdGggXFx1MDAzY1xcdTAwM2MgOCkgKyAoa2lkeCBcXHUwMDNjXFx1MDAzYyAyKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1MzQ6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5ncyA9IGdzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUzNS1cXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQ0gwQSArIChwYXRoIFxcdTAwM2NcXHUwMDNjIDgpICsgKGtpZHggXFx1MDAzY1xcdTAwM2MgMiksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI1NDM9c3RhdGljIGJvb2wgX2Rwa19yZWxvYWRfY2hlY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNTU0LVxcdGZvciAoaWR4ID0gMDsgaWR4IFxcdTAwM2MgUlRXODlfRFBLX0JLVVBfTlVNOyBpZHgrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjU1NTpcXHRcXHRpZiAoY3VyX2JhbmQgIT0gZHBrLVxcdTAwM2VicFtwYXRoXVtpZHhdLmJhbmQgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1NTY6XFx0XFx0ICAgIGN1cl9jaCAhPSBkcGstXFx1MDAzZWJwW3BhdGhdW2lkeF0uY2gpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNTU3LVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNTcwPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1OTktXFx0aWYgKCFpc19mYWlsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjYwMDpcXHRcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnBhdGhfb2sgPSB0cnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjYwMS1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNjAyOlxcdFxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjYwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjYxMD1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjI4LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIGNoYW5jdHhfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI2Mjk6XFx0XFx0XFx0aWYgKCFyZWxvYWRlZFtwYXRoXSBcXHUwMDI2XFx1MDAyNiBkcGstXFx1MDAzZWJwW3BhdGhdWzBdLmNoICE9IDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjMwLVxcdFxcdFxcdFxcdGRway1cXHUwMDNlY3VyX2lkeFtwYXRoXSA9ICFkcGstXFx1MDAzZWN1cl9pZHhbcGF0aF07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI3Mjc9c3RhdGljIHZvaWQgX2Rwa19vbm9mZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNzMzOlxcdHZhbCA9IGRway1cXHUwMDNlaXNfZHBrX2VuYWJsZSBcXHUwMDI2XFx1MDAyNiAhb2ZmIFxcdTAwMjZcXHUwMDI2IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3MzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI3NDI9c3RhdGljIHZvaWQgX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3NTctXFx0XFx0XFx0ICAgIFxcXCJbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3NTg6XFx0XFx0XFx0ICAgIHBhdGgsIGtpZHgsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjc1OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjc2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3NjU6XFx0XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggIT0gMCBcXHUwMDI2XFx1MDAyNiBjdXJfdGhlciAhPSAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6Mjc2NjpcXHRcXHRcXHRkZWx0YV90aGVyW3BhdGhdID0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayAtIGN1cl90aGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjc2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3Njg6XFx0XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjc2OS1cXHRcXHRcXHRkZWx0YV90aGVyW3BhdGhdID0gZGVsdGFfdGhlcltwYXRoXSAqIDMgLyAyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODEzLVxcdFxcdFxcdFxcdFxcdFxcdCAgQl9QMF9UWERQRCkgPT0gMHgwKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyODE0OlxcdFxcdFxcdFxcdHB3c2ZbMF0gPSBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgKyB0eGFnY19iYl90cCAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODE1LVxcdFxcdFxcdFxcdFxcdCAgdHhhZ2NfYmIgKyBpbmlfZGlmZiArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODE2LVxcdFxcdFxcdFxcdFxcdCAgdHNzaV9pbmZvLVxcdTAwM2VleHRyYV9vZnN0W3BhdGhdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgxNzpcXHRcXHRcXHRcXHRwd3NmWzFdID0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICsgdHhhZ2NfYmJfdHAgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgxOC1cXHRcXHRcXHRcXHRcXHQgIHR4YWdjX2JiICsgaW5pX2RpZmYgK1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODIwLVxcdFxcdFxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyODIxOlxcdFxcdFxcdFxcdHB3c2ZbMF0gPSBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgKyBpbmlfZGlmZiArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODIyLVxcdFxcdFxcdFxcdFxcdCAgdHNzaV9pbmZvLVxcdTAwM2VleHRyYV9vZnN0W3BhdGhdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgyMzpcXHRcXHRcXHRcXHRwd3NmWzFdID0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICsgaW5pX2RpZmYgK1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgyNC1cXHRcXHRcXHRcXHRcXHQgIHRzc2lfaW5mby1cXHUwMDNlZXh0cmFfb2ZzdFtwYXRoXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgyNy1cXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgyODpcXHRcXHRcXHRwd3NmWzBdID0gKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArIGRlbHRhX3RoZXJbcGF0aF0pIFxcdTAwMjYgMHgxZmY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyODI5OlxcdFxcdFxcdHB3c2ZbMV0gPSAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICsgZGVsdGFfdGhlcltwYXRoXSkgXFx1MDAyNiAweDFmZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI4MzAtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0xNjg4PXN0YXRpYyB2b2lkIF9kcGtfb25vZmYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgYm9vbCBvZmYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE2OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxNjkzOlxcdHZhbCA9IGRway1cXHUwMDNlaXNfZHBrX2VuYWJsZSBcXHUwMDI2XFx1MDAyNiAhb2ZmIFxcdTAwMjZcXHUwMDI2IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE2OTQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTE3NTE9c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE3NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxNzU5OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9IGNoYW4tXFx1MDAzZWJhbmRfdHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE3NjA6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXFx1MDAzZWNoYW5uZWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxNzYxOlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVxcdTAwM2ViYW5kX3dpZHRoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTc2Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTc2Ny1cXHRcXHQgICAgc3RyX29uX29mZihydHdkZXYtXFx1MDAzZWRiY2NfZW4pLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc2ODpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcXFwiMkdcXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE3Njk6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAxID8gXFxcIjVHXFxcIiA6IFxcXCI2R1xcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxNzcwOlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc3MTpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXFxcIjIwTVxcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc3MjpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAxID8gXFxcIjQwTVxcXCIgOiBcXFwiODBNXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xNzczLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MTg3Nj1zdGF0aWMgdm9pZCBfZHBrX2dldF90aGVybWFsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTgga2lkeCwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxODg2OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGsgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgcGF0aCwgUlJfVE0sIFJSX1RNX1ZBTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xODg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTg4OC1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFxcXCJbRFBLXSB0aGVybWFsQERQSyA9IDB4JXhcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxODg5OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4OTAtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0xODkyPXN0YXRpYyB2b2lkIF9kcGtfcmZfc2V0dGluZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IGdhaW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4OTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxODk3OlxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTg5OC1cXHRcXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX01PRCwgUkZSRUdfTUFTSywgMHg1MDIyMCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5MTItXFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9SQ0tELCBSUl9SQ0tEX0JXLCAweDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTkxMzpcXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1RYQkIsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgKyAxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5MTQtXFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9CVEMsIFJSX0JUQ19SWEJCLCAweDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0xOTQ2PXZvaWQgX2Rwa190cGdfc2VsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsIHU4IGtpZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5NDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxOTUwOlxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfODApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xOTUxLVxcdFxcdHJ0dzg5X3BoeV93cml0ZTMyX2NscihydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTk1MjpcXHRlbHNlIGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfNDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xOTUzLVxcdFxcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xOTU3LVxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXFxcIltEUEtdIFRQR19TZWxlY3QgZm9yICVzXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTk1ODpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzgwID8gXFxcIjgwTVxcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTk1OTpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzQwID8gXFxcIjQwTVxcXCIgOiBcXFwiMjBNXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xOTYwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjM1NT1zdGF0aWMgdm9pZCBfZHBrX2lkbF9tcGEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yMzU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjM2MDpcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyBcXHUwMDNjIFJUVzg5X0NIQU5ORUxfV0lEVEhfODAgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjIzNjE6XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzVHKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjM2Mi1cXHRcXHRfZHBrX3NldF9tZHBkX3BhcmEocnR3ZGV2LCAweDIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yMzY5PXN0YXRpYyB2b2lkIF9kcGtfZmlsbF9yZXN1bHQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yMzgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjM4MzpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnR4YWdjX2RwayA9IHR4YWdjO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjM4NC1cXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UWEFHQ19SRksgKyAocGF0aCBcXHUwMDNjXFx1MDAzYyA4KSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjM4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjIzODc6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmID0gcHdzZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzODgtXFx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfRFBEX0JORCArIChwYXRoIFxcdTAwM2NcXHUwMDNjIDgpICsgKGtpZHggXFx1MDAzY1xcdTAwM2MgMiksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyMzk0OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uZ3MgPSBncztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzOTUtXFx0aWYgKGRway1cXHUwMDNlZHBrX2dzW3BoeV0gPT0gMHg3ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjQwOD1zdGF0aWMgYm9vbCBfZHBrX3JlbG9hZF9jaGVjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0MTktXFx0Zm9yIChpZHggPSAwOyBpZHggXFx1MDAzYyBSVFc4OV9EUEtfQktVUF9OVU07IGlkeCsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNDIwOlxcdFxcdGlmIChjdXJfYmFuZCAhPSBkcGstXFx1MDAzZWJwW3BhdGhdW2lkeF0uYmFuZCB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjQyMTpcXHRcXHQgICAgY3VyX2NoICE9IGRway1cXHUwMDNlYnBbcGF0aF1baWR4XS5jaClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0MjItXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTI0MzU9c3RhdGljIGJvb2wgX2Rwa19tYWluKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjQ3My1cXHRpZiAoIWlzX2ZhaWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNDc0OlxcdFxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9IHRydWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDc1LVxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI0NzY6XFx0XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gZmFsc2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDc3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yNDg0PXN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0OTktXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjUwMDpcXHRcXHRcXHRpZiAoIXJlbG9hZGVkW3BhdGhdIFxcdTAwMjZcXHUwMDI2IGRway1cXHUwMDNlYnBbcGF0aF1bMF0uY2gpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNTAxLVxcdFxcdFxcdFxcdGRway1cXHUwMDNlY3VyX2lkeFtwYXRoXSA9ICFkcGstXFx1MDAzZWN1cl9pZHhbcGF0aF07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTI1ODg9c3RhdGljIHZvaWQgX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2MDMtXFx0XFx0XFx0ICAgIFxcXCJbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2MDQ6XFx0XFx0XFx0ICAgIHBhdGgsIGtpZHgsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjYwNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjYxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2MTE6XFx0XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggXFx1MDAyNlxcdTAwMjYgY3VyX3RoZXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjEyOlxcdFxcdFxcdGRlbHRhX3RoZXJbcGF0aF0gPSBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrIC0gY3VyX3RoZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjYxNDpcXHRcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IFJUVzg5X0JBTkRfMkcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjE1LVxcdFxcdFxcdGRlbHRhX3RoZXJbcGF0aF0gPSBkZWx0YV90aGVyW3BhdGhdICogMyAvIDI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2NjEtXFx0XFx0XFx0aWYgKHRtcCA9PSAweDApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2NjI6XFx0XFx0XFx0XFx0cHdzZlswXSA9IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjYzLVxcdFxcdFxcdFxcdFxcdCAgdHhhZ2NfYmJfdHAgLSB0eGFnY19iYiArIGluaV9kaWZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjY2NDpcXHRcXHRcXHRcXHRwd3NmWzFdID0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2NjUtXFx0XFx0XFx0XFx0XFx0ICB0eGFnY19iYl90cCAtIHR4YWdjX2JiICsgaW5pX2RpZmY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjY2LVxcdFxcdFxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjY3OlxcdFxcdFxcdFxcdHB3c2ZbMF0gPSBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgKyBpbmlfZGlmZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2Njg6XFx0XFx0XFx0XFx0cHdzZlsxXSA9IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArIGluaV9kaWZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjY2OS1cXHRcXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2NzEtXFx0XFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2NzI6XFx0XFx0XFx0cHdzZlswXSA9IChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgKyBkZWx0YV90aGVyW3BhdGhdKSBcXHUwMDI2IDB4MWZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjY3MzpcXHRcXHRcXHRwd3NmWzFdID0gKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArIGRlbHRhX3RoZXJbcGF0aF0pIFxcdTAwMjYgMHgxZmY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjc0LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTEzNT1zdGF0aWMgdm9pZCBfcmZrX2dldF90aGVybWFsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTgga2lkeCwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTQ1OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGsgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgcGF0aCwgUlJfVE0sIFJSX1RNX1ZBTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE0Ny1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFxcXCJbRFBLXSB0aGVybWFsQERQSyA9IDB4JXhcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTQ4OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDktfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MTc5OD1zdGF0aWMgdm9pZCBfZHBrX29ub2ZmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsIGJvb2wgb2ZmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTgwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODAzOlxcdHZhbCA9IGRway1cXHUwMDNlaXNfZHBrX2VuYWJsZSBcXHUwMDI2XFx1MDAyNiAhb2ZmIFxcdTAwMjZcXHUwMDI2IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODA0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MTg2Mz1zdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg3MTpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPSBjaGFuLVxcdTAwM2ViYW5kX3R5cGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg3MjpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cXHUwMDNlY2hhbm5lbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODczOlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVxcdTAwM2ViYW5kX3dpZHRoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4NzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODc5LVxcdFxcdCAgICBzdHJfb25fb2ZmKHJ0d2Rldi1cXHUwMDNlZGJjY19lbiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg4MDpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcXFwiMkdcXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODgxOlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMSA/IFxcXCI1R1xcXCIgOiBcXFwiNkdcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjE4ODI6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg4MzpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXFxcIjIwTVxcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjE4ODQ6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMSA/IFxcXCI0ME1cXFwiIDogXFxcIjgwTVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4ODUtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MTk0Nz1zdGF0aWMgdm9pZCBfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBnYWluLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxOTUyOlxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE5NTMtXFx0XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9NT0QsIFJGUkVHX01BU0ssIDB4NTAyMjApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk2Ny1cXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX1JDS0QsIFJSX1JDS0RfQlcsIDB4MSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTk2ODpcXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1RYQkIsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgKyAxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xOTY5LVxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfQlRDLCBSUl9CVENfUlhCQiwgMHgwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTE5ODk9dm9pZCBfZHBrX3RwZ19zZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE5OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTk5MzpcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzgwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE5OTQtXFx0XFx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YsIDB4MCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTk5NTpcXHRlbHNlIGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfNDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk5Ni1cXHRcXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UUEdfTU9ELCBCX1RQR19NT0RfRiwgMHgyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTIwMDAtXFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUkZLLCBcXFwiW0RQS10gVFBHX1NlbGVjdCBmb3IgJXNcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjAwMTpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzgwID8gXFxcIjgwTVxcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjIwMDI6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFxcXCI0ME1cXFwiIDogXFxcIjIwTVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTIwMDMtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjQzMz1zdGF0aWMgdm9pZCBfZHBrX2lkbF9tcGEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNDM4OlxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3IFxcdTAwM2MgUlRXODlfQ0hBTk5FTF9XSURUSF84MCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI0Mzk6XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzVHKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI0NDAtXFx0XFx0X2Rwa19zZXRfbWRwZF9wYXJhKHJ0d2RldiwgcGF0aCwgMHgyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI0NDc9c3RhdGljIHZvaWQgX2Rwa19maWxsX3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI0NjA6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50eGFnY19kcGsgPSB0eGFnYztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDYxLVxcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RYQUdDX1JGSyArIChwYXRoIFxcdTAwM2NcXHUwMDNjIDgpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNDY0OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiA9IHB3c2Y7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ2NS1cXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQk5EICsgKHBhdGggXFx1MDAzY1xcdTAwM2MgOCkgKyAoa2lkeCBcXHUwMDNjXFx1MDAzYyAyKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI0NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjQ3MTpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmdzID0gZ3M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ3Mi1cXHRpZiAoZHBrLVxcdTAwM2VkcGtfZ3NbcGh5XSA9PSAweDdmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjQ4OD1zdGF0aWMgYm9vbCBfZHBrX3JlbG9hZF9jaGVjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDk5LVxcdGZvciAoaWR4ID0gMDsgaWR4IFxcdTAwM2MgUlRXODlfRFBLX0JLVVBfTlVNOyBpZHgrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI1MDA6XFx0XFx0aWYgKGN1cl9iYW5kICE9IGRway1cXHUwMDNlYnBbcGF0aF1baWR4XS5iYW5kIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjUwMTpcXHRcXHQgICAgY3VyX2NoICE9IGRway1cXHUwMDNlYnBbcGF0aF1baWR4XS5jaClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNTAyLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjUzMz1zdGF0aWMgYm9vbCBfZHBrX21haW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjU3MC1cXHRpZiAoIWlzX2ZhaWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjU3MTpcXHRcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnBhdGhfb2sgPSAxO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI1NzItXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI1NzM6XFx0XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNTc0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjU4Nj1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjU5OC1cXHRcXHRyZWxvYWRlZFtwYXRoXSA9IF9kcGtfcmVsb2FkX2NoZWNrKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjU5OTpcXHRcXHRpZiAoIXJlbG9hZGVkW3BhdGhdIFxcdTAwMjZcXHUwMDI2IGRway1cXHUwMDNlYnBbcGF0aF1bMF0uY2ggIT0gMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjAwLVxcdFxcdFxcdGRway1cXHUwMDNlY3VyX2lkeFtwYXRoXSA9ICFkcGstXFx1MDAzZWN1cl9pZHhbcGF0aF07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0yNjY4PXN0YXRpYyB2b2lkIF9kcGtfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjY4My1cXHRcXHRcXHQgICAgXFxcIltEUEtfVFJLXSA9PT09PT09PT09PT09PT09W1MlZFslZF0gKENIICVkKV09PT09PT09PT09PT09PT09XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2ODQ6XFx0XFx0XFx0ICAgIHBhdGgsIGtpZHgsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2ODUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2OTE6XFx0XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggXFx1MDAyNlxcdTAwMjYgY3VyX3RoZXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjY5MjpcXHRcXHRcXHRkZWx0YV90aGVyW3BhdGhdID0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayAtIGN1cl90aGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2OTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjY5NDpcXHRcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IFJUVzg5X0JBTkRfMkcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjY5NS1cXHRcXHRcXHRkZWx0YV90aGVyW3BhdGhdID0gZGVsdGFfdGhlcltwYXRoXSAqIDMgLyAyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjc0MS1cXHRcXHRcXHRpZiAodG1wID09IDB4MCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDI6XFx0XFx0XFx0XFx0cHdzZlswXSA9IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjc0My1cXHRcXHRcXHRcXHRcXHQgIHR4YWdjX2JiX3RwIC0gdHhhZ2NfYmIgKyBpbmlfZGlmZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNzQ0OlxcdFxcdFxcdFxcdHB3c2ZbMV0gPSBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgK1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDUtXFx0XFx0XFx0XFx0XFx0ICB0eGFnY19iYl90cCAtIHR4YWdjX2JiICsgaW5pX2RpZmY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjc0Ni1cXHRcXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDc6XFx0XFx0XFx0XFx0cHdzZlswXSA9IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArIGluaV9kaWZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDg6XFx0XFx0XFx0XFx0cHdzZlsxXSA9IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArIGluaV9kaWZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDktXFx0XFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NTAtXFx0XFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNzUxOlxcdFxcdFxcdHB3c2ZbMF0gPSAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICsgZGVsdGFfdGhlcltwYXRoXSkgXFx1MDAyNiAweDFmZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNzUyOlxcdFxcdFxcdHB3c2ZbMV0gPSAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICsgZGVsdGFfdGhlcltwYXRoXSkgXFx1MDAyNiAweDFmZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNzUzLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MTkwNz1zdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMTkxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MTY6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID0gY2hhbi1cXHUwMDNlYmFuZF90eXBlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MTkxNzpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cXHUwMDNlY2hhbm5lbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MTg6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXFx1MDAzZWJhbmRfd2lkdGg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTE5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTI0LVxcdFxcdCAgICBzdHJfb25fb2ZmKHJ0d2Rldi1cXHUwMDNlZGJjY19lbiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoxOTI1OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMCA/IFxcXCIyR1xcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MTkyNjpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDEgPyBcXFwiNUdcXFwiIDogXFxcIjZHXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5Mjc6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoxOTI4OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IDAgPyBcXFwiMjBNXFxcIiA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoxOTI5OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IDEgPyBcXFwiNDBNXFxcIiA6IFxcXCI4ME1cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTE5MzAtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYz0yMDYzPXN0YXRpYyB2b2lkIF9kcGtfcmZfc2V0dGluZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IGdhaW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTIwNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoyMDY4OlxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjA2OS1cXHRcXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX01PRCwgUkZSRUdfTUFTSyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjA4OS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6NTYuMDE0MDUwODc4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg5NTY3MjE4MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgRnVuY3Rpb25hbCBCdWcgRml4IGFuZCBpdHMgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIGNvZGUgY2hhbmdlIHdoZXJlIGBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYndgIGFuZCBgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoYCBzZWVtIHRvIGhhdmUgYmVlbiBtaXhlZCB1cC4gVGhlIGJhbmR3aWR0aCBzZXR0aW5nLCBgYndgLCBpcyB1c2VkIHRvIGNvbmZpZ3VyZSBoYXJkd2FyZSByZWdpc3RlcnMgaW4gYF9kcGtfdHBnX3NlbGAsIGFuZCB0aGUgY2hhbm5lbCBudW1iZXIsIGBjaGAsIGlzIHVzZWQgaW4gYF9kcGtfcmVsb2FkX2NoZWNrYCBhbmQgYF9kcGtfdHJhY2tgIGZvciBjaGFubmVsIG1hdGNoaW5nLiBTd2FwcGluZyB0aGVzZSB2YXJpYWJsZXMgaGFzIGNsZWFybHkgaW50cm9kdWNlZCBlcnJvcnMg4oCTIGluY29ycmVjdCBoYXJkd2FyZSBjb25maWd1cmF0aW9uIGFuZCBsb2dpYyBmYWlsdXJlcy4gSXQncyBhIGZ1bmRhbWVudGFsIGZ1bmN0aW9uYWwgY2hhbmdlLlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb246IElzIHRoaXMgc29tZXRoaW5nIHdlIGNhbiBhbmQgc2hvdWxkIGZ1eno/IEFic29sdXRlbHkuIEl04oCZcyBhIGZ1bmN0aW9uYWwgYnVnIGZpeC4gVGhpcyBmaXggaXMgaGFwcGVuaW5nIGluIGEgZHJpdmVyIHRoYXQgaW50ZXJmYWNlcyB3aXRoIGhhcmR3YXJlLCBhbmQgdGhhdCBkcml2ZXIgaXMgYWNjZXNzaWJsZSB2aWEgVVNCLiBUaGF0J3MgYSBwZXJmZWN0IHRhcmdldCBmb3IgZnV6emluZy4gU28sIGBXb3J0aEZ1enppbmc9dHJ1ZWAgaXMgdGhlIHJpZ2h0IGNhbGwgaGVyZS5cblxuTm93LCBsZXQncyBmaWd1cmUgb3V0IHdoZXJlIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMuIFRoZSBhZmZlY3RlZCBmdW5jdGlvbiwgYXQgdGhlIGhlYXJ0IG9mIHRoaXMsIGlzIGBfZHBrX2luZm9ybWF0aW9uYC4gSG93ZXZlciwgd2FpdCBhIG1pbnV0ZSwgaXQncyBhIHN0YXRpYyBmdW5jdGlvbi4gVGhhdCBtZWFucyBpdCBjYW4ndCBiZSBjYWxsZWQgZGlyZWN0bHkuIEkgbmVlZCB0byB0cmFjZSB0aGUgY2FsbGluZyBjaGFpbiB0byBmaWd1cmUgb3V0IHRoZSByaWdodCBlbnRyeSBwb2ludHMuIExldCdzIHNlZS4uLiBgX2Rwa19jYWxfc2VsZWN0YCBjYWxscyBgX2Rwa19pbmZvcm1hdGlvbmAuIEFuZCB0aGVuIGBfZHBrYCBjYWxscyBgX2Rwa19jYWxfc2VsZWN0YC4gT2theSwgYW5kIHRoZW4gYHJ0dzg4NTFiX3Jma190cmFja2AgY2FsbHMgYF9kcGtgLCBhbmQgYHJ0dzg4NTFiX3Jma19jaGFubmVsYCBjYWxscyBgX2Rwa2AuIEFyZSBgcnR3ODg1MWJfcmZrX3RyYWNrYCBhbmQgYHJ0dzg4NTFiX3Jma19jaGFubmVsYCBzdGF0aWMgb3Igbm9uLXN0YXRpYz8gTmVlZCB0byBtYWtlIHN1cmUgdGhvc2UgYXJlbid0IHN0YXRpYy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc3MzAsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjA6MDQuOTcwNzc0OTIyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzYyMzczNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4ODUxYl9yZmtfdHJhY2tcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jPTE3OTI9c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX3NjYW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjE4MDA6c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTgwMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM9MjQ5Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfb3BzIHJ0dzg4NTFiX2NoaXBfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1MTQtXFx0LnJma19zY2FuXFx0XFx0PSBydHc4ODUxYl9yZmtfc2NhbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjUxNTpcXHQucmZrX3RyYWNrXFx0XFx0PSBydHc4ODUxYl9yZmtfdHJhY2ssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1MTYtXFx0LnBvd2VyX3RyaW1cXHRcXHQ9IHJ0dzg4NTFiX3Bvd2VyX3RyaW0sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjA1LjAyNDQwMzQ1N1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Njk1NzU1MTUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGlubmVyIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIGEgUG90ZW50aWFsbHkgU3RhdGljIENvbmRpdGlvbioqXG5cbkhtbSwgdGhpbmdzIHNlZW0uLi4gc3R1Y2suIFwiU3RhdGljLFwiIEkgdGhpbmsuIExldCBtZSBpbW1lZGlhdGVseSBjaGVjayB0aGUgcmVsZXZhbnQgaGVhZGVyIGZpbGUsIGxpa2VseSB0aGUgZGVmaW5pdGlvbiBmaWxlLCBpbiB0aGlzIGluc3RhbmNlLCBpdCBpcyBgcnR3ODg1MWJfcmZrLmhgLiBUaGlzIGlzIG15IHR5cGljYWwgaW5pdGlhbCBkaWFnbm9zdGljIHN0ZXAgd2hlbiBJIHN1c3BlY3Qgc29tZXRoaW5nIGlzIGZyb3plbiBpbiBwbGFjZS4gSSB3YW50IHRvIHNlZSB3aGF0IGZ1bmN0aW9ucyBhcmUgYmVpbmcgZXhwb3J0ZWQ7IHRoaXMgd2lsbCBnaXZlIG1lIGNsdWVzIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLiBUaGlzIGFsbG93cyBtZSB0byBpbW1lZGlhdGVseSBrbm93IHRoZSBhY2Nlc3NpYmxlIGludGVyZmFjZSwgd2hpY2ggd2lsbCBhbGxvdyBtZSB0byBuYXJyb3cgZG93biB0aGUgc291cmNlIG9mIHRoZSBhcHBhcmVudCBcInN0YXRpY1wiIG5hdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDkwNDEsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDoxMC43MjAxNjE4MTdaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NDE3NDg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIi4qXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxOi8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjovKiBDb3B5cmlnaHQoYykgMjAyMi0yMDIzICBSZWFsdGVrIENvcnBvcmF0aW9uXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDozOiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6NDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjU6I2lmbmRlZiBfX1JUVzg5Xzg4NTFCX1JGS19IX19cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjY6I2RlZmluZSBfX1JUVzg5Xzg4NTFCX1JGS19IX19cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjc6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDo4OiNpbmNsdWRlIFxcXCJjb3JlLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDo5OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTA6dm9pZCBydHc4ODUxYl9hYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxMTp2b2lkIHJ0dzg4NTFiX2xja19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxMjp2b2lkIHJ0dzg4NTFiX2xja190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTM6dm9pZCBydHc4ODUxYl9yY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjE0OnZvaWQgcnR3ODg1MWJfZGFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTU6dm9pZCBydHc4ODUxYl9pcWsoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjE2OlxcdFxcdCAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxNzp2b2lkIHJ0dzg4NTFiX3J4X2RjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHlfaWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTg6XFx0XFx0ICAgICBlbnVtIHJ0dzg5X2NoYW5jdHhfaWR4IGNoYW5jdHhfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjE5OnZvaWQgcnR3ODg1MWJfZHBrX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjIwOnZvaWQgcnR3ODg1MWJfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoyMTpcXHRcXHQgIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjI6dm9pZCBydHc4ODUxYl9kcGtfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjIzOnZvaWQgcnR3ODg1MWJfdHNzaShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoyNDpcXHRcXHQgICBib29sIGh3dHhfZW4sIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjU6dm9pZCBydHc4ODUxYl90c3NpX3NjYW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjY6XFx0XFx0XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NoYW4gKmNoYW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6Mjc6dm9pZCBydHc4ODUxYl93aWZpX3NjYW5fbm90aWZ5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBzY2FuX3N0YXJ0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6Mjg6XFx0XFx0XFx0ICAgICAgIGVudW0gcnR3ODlfcGh5X2lkeCBwaHlfaWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6Mjk6XFx0XFx0XFx0ICAgICAgIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MzA6dm9pZCBydHc4ODUxYl9zZXRfY2hhbm5lbF9yZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDozMTpcXHRcXHRcXHQgICAgIGNvbnN0IHN0cnVjdCBydHc4OV9jaGFuICpjaGFuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MzI6XFx0XFx0XFx0ICAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDozMzpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjM0OiNlbmRpZlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDoxMC43Njg1ODM5NTJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU3NTU5MTA0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEtleSBGdW5jdGlvbnMgaW4gcnR3ODg1MWJfcmZrLmMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgZXhwb3J0ZWQgZnVuY3Rpb25zIGhlcmUuIFdlJ3ZlIGdvdCBgcnR3ODg1MWJfZHBrYCwgYHJ0dzg4NTFiX2Rwa190cmFja2AsIGBydHc4ODUxYl9kcGtfaW5pdGAsIGFuZCBgcnR3ODg1MWJfc2V0X2NoYW5uZWxfcmZgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgbGV0J3MgZHJpbGwgZG93biBpbnRvIGBydHc4ODUxYl9yZmsuY2AgYW5kIHNwZWNpZmljYWxseSBleGFtaW5lIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYC4gVGhvc2UgYXJlIHRoZSBjb3JlIGZ1bmN0aW9ucyBJIHdhbnQgdG8gdW5kZXJzdGFuZCBpbiB0aGUgY29udGV4dCBvZiBSRiBjYWxpYnJhdGlvbiBhbmQgb3BlcmF0aW9uLiBLbm93aW5nIHdoYXQgdGhlc2UgZnVuY3Rpb25zIGRvLCBhbmQgaG93IHRoZXkgaW50ZXJhY3QsIHdpbGwgYmUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgRFBLIChEYXRhIFBhY2tldCBLZXk/KSBmdW5jdGlvbmFsaXR5IHdpdGhpbiB0aGlzIGRyaXZlci5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA5NjUsIk91dHB1dFRva2VucyI6NTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjA6MTUuMzQ0MTc3NjE5WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTAzNzk1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4ODUxYl9kcGtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTMyOTQ9c3RhdGljIHZvaWQgcnR3ODg1MWJfYnlfcmF0ZV9kcGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0zMjk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MzMwMDp2b2lkIHJ0dzg4NTFiX2Rwa19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTMzMDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0zNDM1PXZvaWQgcnR3ODg1MWJfcnhfZGNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTM0NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzozNDUxOnZvaWQgcnR3ODg1MWJfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0zNDUyLVxcdFxcdCAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMzQ2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjM0Njk6dm9pZCBydHc4ODUxYl9kcGtfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMzQ3MC17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjE1LjM5MzIyMDI4NFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzEzODY4NDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBSZWFsdGVrIFdpRmkgRHJpdmVyIEVudHJ5IFBvaW50cyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgcnR3ODg1MWJfZHBrYCBhbmQgYHJ0dzg4NTFiX2Rwa190cmFja2AgZnVuY3Rpb25zLiBUaG9zZSBzZWVtIGxpa2UgdGhlIGNydWNpYWwgZW50cnkgcG9pbnRzIHRvIGZvY3VzIG9uLiBXYWl0IGEgc2Vjb25kLCBgcnR3ODg1MWJfZHBrYCBnZXRzIGNhbGxlZCB3aGVuIHRoZSBjaGFubmVsIGNoYW5nZXMsIHRoYXQncyBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBlbHNlIGluIHRoaXMgZHJpdmVyIHRyaWdnZXJzIGEgY2hhbm5lbCBjaGFuZ2UuIExldCdzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBjb2RlLCBJIHNlZSBgcnR3ODg1MWJfc2V0X2NoYW5uZWxfcmZgIGFuZCBgcnR3ODg1MWJfcmZrX2NoYW5uZWxgLiBIbW0sIGBydHc4ODUxYl9yZmtfY2hhbm5lbGAgaXMgc3RhdGljIGluIGBydHc4ODUxYi5jYCwgYnV0IGl0ICpkb2VzKiBjYWxsIGBydHc4ODUxYl9kcGtgLCB3aGljaCBpcyBpbXBvcnRhbnQuIEFoISBJIHNlZSBub3csIGBydHc4ODUxYl9yZmtfY2hhbm5lbGAgaXMgYXNzaWduZWQgdG8gYHJma19jaGFubmVsYCB3aXRoaW4gYHJ0dzg4NTFiX2NoaXBfb3BzYC4gVGhhdCBtZWFucyB0aGF0IHRoZSBnZW5lcmljIG1hYzgwMjExIG9wZXJhdGlvbnMgbGlrZSBgcnR3ODlfbWFjODAyMTFfY29uZmlnYCBhbmQgYHJ0dzg5X21hYzgwMjExX2FkZF9pbnRlcmZhY2VgIHNob3VsZCBiZSB0aGUga2V5LCBhcyB0aGV5IHdpbGwgdW5kb3VidGVkbHkgYmUgdXNlZCB0byB0cmlnZ2VyIGNoYW5uZWwgY2hhbmdlcy4gU28sIEkgY2FuIGhpdCB0aGlzIGNvZGUgYnkgZnV6emluZyBzdGFuZGFyZCBtYWM4MDIxMSBvcGVyYXRpb25zIHZpYSBuZXRsaW5rLiBUaGF0J3MgZ29vZCwgdGhhdCBnaXZlcyBtZSBhIGNsZWFyIHBhdGguIEknbGwgZGVmaW5pdGVseSBhZGQgYm90aCBgcnR3ODg1MWJfZHBrYCBhbmQgYHJ0dzg4NTFiX2Rwa190cmFja2AgdG8gbXkgYEZvY3VzU3ltYm9sc2AuXG5cbk5vdywgSSBuZWVkIHRvIGNoZWNrIHRoZSByZXF1aXJlZCBjb25maWdzIGZvciB0aGlzIGRyaXZlciB0byBmdW5jdGlvbi4gTGV0J3Mgc2VlLi4uIEknbSB0aGlua2luZyBJJ2xsIG5lZWQgYENPTkZJR19SVFc4OV9DT1JFYCwgYENPTkZJR19SVFc4OV84ODUxQmAsIGFuZCBgQ09ORklHX1JUVzg5Xzg4NTFCVWAgZm9yIFVTQiBzdXBwb3J0LiBJJ2xsIG5lZWQgYENPTkZJR19SVFc4OV9VU0JgIGFzIHdlbGwuIFdhaXQgYSBtaW51dGUsIGFtIEkgZ29pbmcgdG8gbmVlZCB0byBleHBsaWNpdGx5IHNlbGVjdCAqZWl0aGVyKiBgQ09ORklHX1JUVzg5Xzg4NTFCYCBvciBgQ09ORklHX1JUVzg5Xzg4NTFCVWA/IExldCBtZSBxdWlja2x5IGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ2AgZm9yIHRoZSBgUlRXODlfODg1MUJgIHN5bWJvbC4gVGhhdCBzaG91bGQgY2xlYXIgaXQgdXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxODg2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjIzLjcwNzA5MDc2NFoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwMjYxNzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlJUVzg5Xzg4NTFCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9MjA9Y29uZmlnIFJUVzg5X1VTQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMzpjb25maWcgUlRXODlfODg1MUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjQtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz00ND1jb25maWcgUlRXODlfODkyMkRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDc6Y29uZmlnIFJUVzg5Xzg4NTFCRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00OC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUxQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTEtXFx0c2VsZWN0IFJUVzg5X1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1MjpcXHRzZWxlY3QgUlRXODlfODg1MUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02Mi1cXHRzZWxlY3QgUlRXODlfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjYzOlxcdHNlbGVjdCBSVFc4OV84ODUxQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02NC1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjIzLjg5NzM1Nzk3NFoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3OTEyNzgzMzUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IFJlYXNvbmluZyBvbiBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIgY29uZmlndXJhdGlvbnMuIEl0IHNlZW1zIGxpa2UgYFJUVzg5Xzg4NTFCVWAgc2VsZWN0cyBib3RoIGBSVFc4OV9VU0JgIGFuZCBgUlRXODlfODg1MUJgLiAgUmlnaHQgYXdheSwgSSB0aGluayB3ZSBzaG91bGQgZW5hYmxlIGJvdGggYFJUVzg5Xzg4NTFCVWAgYW5kIGBSVFc4OV84ODUxQkVgIHRvIGNvdmVyIGJvdGggVVNCIGFuZCBQQ0kgaW50ZXJmYWNlcy5cblxuQnV0IGhvbGQgb24sIGBSVFc4OV84ODUxQkVgIGlzIGZvciBQQ0ksIHdoaWNoIHBvc2VzIGEgZnV6emluZyBjb25jZXJuIGluIHN5emthbGxlciB1bmxlc3Mgd2UndmUgZ290IFBDSSBmdXp6aW5nIGNhcGFiaWxpdHkuIFN5emthbGxlciAqZG9lcyogaGF2ZSBzb21lIFBDSSBmdXp6aW5nIGZ1bmN0aW9uYWxpdHksIHNvIGl0J3MgYSBnb29kIGlkZWEgdG8gZW5hYmxlIGl0LiBJIGNhbid0IHJlY2FsbCBpZiB3ZSB1c2UgaXQsIGJ1dCBiZXN0IHByYWN0aWNlIGlzIHRvIGFsd2F5cyBlbmFibGUgc3VjaCBmdW5jdGlvbmFsaXR5LlxuXG5BaGEsIGBSVFc4OV84ODUxQlVgIGlzIHRoZSBVU0Igb25lLiBUaGF0J3MgZGVmaW5pdGVseSBmdXp6YWJsZSB0aHJvdWdoIGBkdW1teV9oY2RgLiAgU28sIHRoYXQncyBzdHJhaWdodGZvcndhcmQgLSB3ZSBhYnNvbHV0ZWx5IHdhbnQgdG8gYWRkIGBSVFc4OV84ODUxQlVgIHRvIGBFbmFibGVDb25maWdzYC5cblxuV2FpdCBhIG1pbnV0ZSwgYFJUVzg5Xzg4NTFCYCBpcyBhIGhpZGRlbiB0cmlzdGF0ZTsgd2hpY2ggbWVhbnMgd2UgbXVzdCBleHBsaWNpdGx5IGVuYWJsZSAqZWl0aGVyKiBgUlRXODlfODg1MUJVYCBvciBgUlRXODlfODg1MUJFYC4gVGhlcmVmb3JlLCBzaW5jZSB3ZSdyZSBjb3ZlcmluZyBib3RoIFVTQiBhbmQgUENJLCBsZXQncyBhZGQgKmJvdGgqIGBSVFc4OV84ODUxQlVgIGFuZCBgUlRXODlfODg1MUJFYC5cblxuQWxzbywgYm90aCBvZiB0aGVzZSBtb2R1bGVzIHNlbGVjdCBgUlRXODlfQ09SRWAsIHNvIHRoYXQncyBjb3ZlcmVkLlxuXG5Pa2F5LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB3ZSBkaWRuJ3Qgb3Zlcmxvb2sgc29tZXRoaW5nIGZ1bmRhbWVudGFsLiBXaGF0IGFib3V0IHRoZSBzdGFuZGFyZCBzdWJzeXN0ZW1zIGBNQUM4MDIxMWAgYW5kIGBDRkc4MDIxMWA/IEFyZSB3ZSBoYW5kbGluZyB0aGVtIG9yIGRvIHdlIG5lZWQgdG8gc3BlY2lmeSB0aGVtPyBJdCdzIGdlbmVyYWxseSB0aGUgY2FzZSB0aGF0IHRoZXNlIGFyZSBlbmFibGVkLlxuXG5GaW5hbGx5LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCByZWFsbHkgZG91YmxlLWNoZWNrIGlmIGBSVFc4OV84ODUxQlVgIGRlcGVuZHMgb24gYW55dGhpbmcgZWxzZSB0aGF0IG1pZ2h0IHJlcXVpcmUgYXR0ZW50aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzQ0NCwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDozMS44MTAxNDQ4MTVaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MTc1OTIzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODlfODg1MUJVXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9NDc9Y29uZmlnIFJUVzg5Xzg4NTFCRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjA6MzIuMDUxOTA5MjFaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA1NzQyMDEwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgcmVxdWVzdCwgZm9ybWF0dGVkIGZvciBhIGRvbWFpbiBleHBlcnQgbGlrZSBteXNlbGY6XG5cbioqVW5kZXJzdGFuZGluZyB0aGUgYFJUVzg5Xzg4NTFCVWAgQmxvY2sqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGluLiBJIG5lZWQgdG8gZ2V0IGEgY29tcHJlaGVuc2l2ZSB2aWV3IG9mIHRoZSBgUlRXODlfODg1MUJVYCBibG9jay4gSSBuZWVkICphbGwqIHRoZSBpbmZvcm1hdGlvbiAtIHRoZSB3aG9sZSBlbmNoaWxhZGEsIHNvIHRvIHNwZWFrLiBVbmRlcnN0YW5kaW5nIGEgc2luZ2xlIGJsb2NrIGxpa2UgdGhpcyBpcyBlc3NlbnRpYWwgZm9yIGFueSBnb29kIGVuZ2luZWVyLiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gbGVhcm4hXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU0NDQ5LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjA6MzYuMTA5MzMzMzgxWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTI4NTE4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODlfODg1MUJVXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9NDc9Y29uZmlnIFJUVzg5Xzg4NTFCRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjA6MzYuMTU0NjIyNzE2WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMzE5OTI3NzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIHRoZSBMYWJ5cmludGggb2YgQ29kZSoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEJlZm9yZSBJIGV2ZW4gKnRoaW5rKiBhYm91dCBzdGFydGluZyBkb3duIGFueSBzcGVjaWZpYyBwYXRoLCBJIG5lZWQgdG8gdGFrZSBhIHN0ZXAgYmFjayBhbmQgbWFrZSBzdXJlIEknbSBhcHByb2FjaGluZyB0aGlzIHByb2JsZW0gc3lzdGVtYXRpY2FsbHkuIEl0J3MgdG9vIGVhc3kgdG8gZ2V0IGxvc3QgaW4gdGhlIHdlZWRzLiBJIG5lZWQgdG8gYmUgc3RyYXRlZ2ljLiBSaWdodCBub3csIEknbSB0aGlua2luZyBhYm91dCBzaWZ0aW5nIHRocm91Z2ggdGhlIHJlbGV2YW50IGRhdGEgZWZmaWNpZW50bHksIGFuZCB0aGF0IG1lYW5zIEkgbmVlZCB0byB1c2Ugc29tZSByb2J1c3QgdG9vbHMuIEknbSBnb2luZyB0byBoYXZlIHRvIHVzZSBlaXRoZXIgYHJlYWQtZmlsZWAgdG8gYnJpbmcgdGhlIGRhdGEgaW4gYW5kIGV4YW1pbmUgaXQgaW4gbW9yZSBkZXRhaWwuIE9yLCBwZXJoYXBzIG1vcmUgc3RyYXRlZ2ljYWxseSwgSSBjYW4gdXNlIGBncmVwcGVyYCBhbmQgZXhhbWluZSB0aGUgY29udGV4dCBvZiB0aGUgaGl0cyBpdCByZXR1cm5zIHRvIGJldHRlciB1bmRlcnN0YW5kIGhvdyB0aGluZ3MgYXJlIHdvcmtpbmcgdG9nZXRoZXIuIFRoZSBzcGVjaWZpYyBkZXRhaWxzIG9mIHRoZSB0YXNrIGF0IGhhbmQgd2lsbCBkaWN0YXRlIHdoaWNoIGFwcHJvYWNoIGlzIGJlc3QsIGJ1dCBlaXRoZXIgd2F5LCBJIGNhbid0IGp1c3QgZGl2ZSBpbiBibGluZGx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDc3MSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjQwLjE4NjYxODg5OFoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUyMTg5MzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFJUVzg5Xzg4NTFCVVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTQ3PWNvbmZpZyBSVFc4OV84ODUxQkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTg6Y29uZmlnIFJUVzg5Xzg4NTFCVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01OS1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjQwLjIzMTg0MjA4M1oiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzY5MjI4NDI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd246XG5cbioqRGlyZWN0IFBhdGggdG8gQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCB0aGlua2luZyBhYm91dCB0aGlzIGRyaXZlciBjb25maWd1cmF0aW9uLi4uIEkgZG9uJ3QgbmVlZCB0byBvdmVyY29tcGxpY2F0ZSB0aGluZ3MuIEl0IGp1c3QgY2xpY2tlZCDigJMgSSBjYW4gYWJzb2x1dGVseSB1dGlsaXplIGByZWFkLWZpbGVgIGRpcmVjdGx5IG9uIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdgLiBUaGF0J3MgdGhlIGtleS4gTm8gbmVlZCB0byBtZXNzIGFyb3VuZCB3aXRoIGFueSBpbnRlcm1lZGlhcnkgc3RlcHMgb3IgcGFyc2luZyBub25zZW5zZS4gVGhpcyBpcyBhIGNvbmZpZ3VyYXRpb24gZmlsZSwgYWZ0ZXIgYWxsLCBhbmQgYHJlYWQtZmlsZWAgaXMgcGVyZmVjdCBmb3IgcHVsbGluZyBpbiB0aGUgc3BlY2lmaWNzLiBUaGlzIGFwcHJvYWNoIHdpbGwgb2ZmZXIgdGhlIG1vc3QgZGlyZWN0IHZpZXcgaW50byB0aG9zZSBvcHRpb25zLiBOb3csIEkgY2FuIGltbWVkaWF0ZWx5IGFuYWx5emUgdGhhdCBzcGVjaWZpYyBjb25maWcgZmlsZSFcblxuXG4iLCJJbnB1dFRva2VucyI6NTUxNzQsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDo0NC42MDEwNzQxODFaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzYyNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDQwLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDQwOlxcdFxcbiAgNDE6XFx0Y29uZmlnIFJUVzg5Xzg5MjJBXFxuICA0MjpcXHRcXHR0cmlzdGF0ZVxcbiAgNDM6XFx0XFxuICA0NDpcXHRjb25maWcgUlRXODlfODkyMkRcXG4gIDQ1OlxcdFxcdHRyaXN0YXRlXFxuICA0NjpcXHRcXG4gIDQ3OlxcdGNvbmZpZyBSVFc4OV84ODUxQkVcXG4gIDQ4OlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4gIDQ5OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICA1MDpcXHRcXHRzZWxlY3QgUlRXODlfQ09SRVxcbiAgNTE6XFx0XFx0c2VsZWN0IFJUVzg5X1BDSVxcbiAgNTI6XFx0XFx0c2VsZWN0IFJUVzg5Xzg4NTFCXFxuICA1MzpcXHRcXHRoZWxwXFxuICA1NDpcXHRcXHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUxQkUgY2hpcHNldFxcbiAgNTU6XFx0XFxuICA1NjpcXHRcXHQgIDgwMi4xMWF4IFBDSWUgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcbiAgNTc6XFx0XFxuICA1ODpcXHRjb25maWcgUlRXODlfODg1MUJVXFxuICA1OTpcXHRcXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuICA2MDpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiAgNjE6XFx0XFx0c2VsZWN0IFJUVzg5X0NPUkVcXG4gIDYyOlxcdFxcdHNlbGVjdCBSVFc4OV9VU0JcXG4gIDYzOlxcdFxcdHNlbGVjdCBSVFc4OV84ODUxQlxcbiAgNjQ6XFx0XFx0aGVscFxcbiAgNjU6XFx0XFx0ICBTZWxlY3QgdGhpcyBvcHRpb24gd2lsbCBlbmFibGUgc3VwcG9ydCBmb3IgODg1MUJVIGNoaXBzZXRcXG4gIDY2OlxcdFxcbiAgNjc6XFx0XFx0ICA4MDIuMTFheCBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcbiAgNjg6XFx0XFxuICA2OTpcXHRjb25maWcgUlRXODlfODg1MkFFXFxuICA3MDpcXHRcXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuICA3MTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgNzI6XFx0XFx0c2VsZWN0IFJUVzg5X0NPUkVcXG4gIDczOlxcdFxcdHNlbGVjdCBSVFc4OV9QQ0lcXG4gIDc0OlxcdFxcdHNlbGVjdCBSVFc4OV84ODUyQVxcbiAgNzU6XFx0XFx0aGVscFxcbiAgNzY6XFx0XFx0ICBTZWxlY3QgdGhpcyBvcHRpb24gd2lsbCBlbmFibGUgc3VwcG9ydCBmb3IgODg1MkFFIGNoaXBzZXRcXG4gIDc3OlxcdFxcbiAgNzg6XFx0XFx0ICA4MDIuMTFheCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXG4gIDc5OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDo0NC42MDExNTE3NDFaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTEzOTY0MjEwNDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIgY2hhbmdlIGFuZCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucy4gRmlyc3QsIGl0IHNlZW1zIGxpa2Ugd2UncmUgZGVhbGluZyB3aXRoIGVuYWJsaW5nIHNvbWUgbmV3IGNvbmZpZ3VyYXRpb25zLiBgUlRXODlfODg1MUJVYCByZWxpZXMgb24gdGhlIGBVU0JgIGJ1cywgd2hpbGUgYFJUVzg5Xzg4NTFCRWAgdXNlcyBgUENJYC4gIFNvLCBJIHNob3VsZCBhZGQgYm90aCBvZiB0aG9zZSB0byB0aGUgYEVuYWJsZUNvbmZpZ3NgIGxpc3QuIE1pZ2h0IGFzIHdlbGwgdGhyb3cgYFJUVzg5X0NPUkVgIGluIHRoZXJlIHRvbywgZXZlbiB0aG91Z2ggaXQncyBhbHJlYWR5IHNlbGVjdGVkIOKAkyBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LCB5b3Uga25vdz8gQWgsIHdhaXQgYSBtaW51dGUsIGBSVFc4OV84ODUxQmAgaXMgdGhlIGFjdHVhbCB1bmRlcmx5aW5nIGNoaXAgY29uZmlndXJhdGlvbiwgYnV0IGl0J3MgaGlkZGVuICh0cmlzdGF0ZSkuIFRoZSBwcmltYXJ5IG9uZSB0byBlbmFibGUgdGhlbiBpcyBgUlRXODlfODg1MUJVYC4gR290IGl0LlxuXG5Ob3csIGxldCdzIGRpdmUgaW50byB0aGUgY29kZSBpdHNlbGYuIEknbSBmb2N1c2luZyBvbiB0aGUgc3ltYm9scyByZWxhdGVkIHRvIHRoaXMgRFBLIChEeW5hbWljIFBhY2tldCBLZXJuZWwpIGluZm9ybWF0aW9uLiBUaGUgZGlmZiBJIHNlZSBjZW50ZXJzIG9uIGBydHc4ODUxYl9yZmsuY2AuIExldCdzIHNlZS4uLkkgc2VlIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYCBhcyB0aGUga2V5IGZ1bmN0aW9ucyBoZXJlLiBUaGVzZSBhcmUgdGhlIG5vbi1zdGF0aWMgb25lcyB0aGF0IHVsdGltYXRlbHkgY2FsbCBgX2Rwa19pbmZvcm1hdGlvbmAuIEhtbSwgaG9sZCBvbi4gYF9kcGtfaW5mb3JtYXRpb25gIGlzIGFjdHVhbGx5IGNhbGxlZCBmcm9tIG90aGVyIGBydHc4ODUyYCB2YXJpYW50cyB0b28gKGBydHc4ODUyYV9yZmsuY2AsIGV0Yy4pLiBCdXQgdGhlICpwYXRjaCogb25seSBtb2RpZmllcyBgcnR3ODg1MWJfcmZrLmNgLiBTbywgSSByZWFsbHkgb25seSBuZWVkIHRvIGNvbmNlbnRyYXRlIG9uIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYCBpbiB0aGUgY29udGV4dCBvZiB0aGlzIHNwZWNpZmljIHBhdGNoLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0J3MgdmVyaWZ5IHRoYXQgdGhvc2UgdHdvIGFyZSB0aGUgY29ycmVjdCBzeW1ib2xzIHRvIGZvY3VzIG9uLiBZZXAsIHRoZXkgYXJlIGV4cG9ydGVkIChub24tc3RhdGljKSwgd2hpY2ggbWVhbnMgdGhleSdyZSBwdWJsaWMsIGFuZCB0aGV5IGRvIGluZGVlZCBjYWxsIGBfZHBrX2luZm9ybWF0aW9uYCB2aWEgYF9kcGtgIGFuZCBgX2Rwa19jYWxfc2VsZWN0YC4gT2theSwgSSBzZWUgdGhhdCBgcnR3ODg1MWJfZHBrX2luaXRgIGFsc28gZXhpc3RzLiBCdXQgaXMgaXQgdXNlZCBoZXJlPyBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGF0IGZ1bmN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTk3NSwiT3V0cHV0VG9rZW5zIjo1OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjU1Ljk5NzU3NTU1OVoiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcwNjAyMTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3ODg1MWJfZHBrX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTMyOTQ9c3RhdGljIHZvaWQgcnR3ODg1MWJfYnlfcmF0ZV9kcGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0zMjk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MzMwMDp2b2lkIHJ0dzg4NTFiX2Rwa19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTMzMDEte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDo1Ni4wNDQ2NDE0NjRaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk3MzgxMjAzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYHJ0dzg4NTFiX2Rwa19pbml0YCBmdW5jdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2UgYW5kIGhvdyBpdCBmaXRzIGludG8gdGhlIGJyb2FkZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVyLiBBcyBhbiBleHBlcnQsIEknbSBhbHJlYWR5IGFudGljaXBhdGluZyB0aGlzIGZ1bmN0aW9uIGxpa2VseSBoYW5kbGVzIHRoZSBpbml0aWFsaXphdGlvbiBwaGFzZSBmb3IgdGhlIERpc3BsYXlQb3J0IEtleSAoRFBLKSBmdW5jdGlvbmFsaXR5IHdpdGhpbiB0aGUgUmVhbHRlayBSVEw4ODUxQiBXaS1GaSBjaGlwc2V0LiBJJ2xsIG5lZWQgdG8gbG9vayBmb3Iga2V5IGRhdGEgc3RydWN0dXJlcywgcmVnaXN0ZXIgYWNjZXNzZXMsIGFuZCB0aGUgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBpbnZvbHZlZC4gU3BlY2lmaWNhbGx5LCBJJ20gZXhwZWN0aW5nIHRvIHNlZSBjb25maWd1cmF0aW9uIG9mIERQSy1yZWxhdGVkIGhhcmR3YXJlLCBwb3RlbnRpYWxseSBpbmNsdWRpbmc6XG5cbiogICAqKktleSBnZW5lcmF0aW9uIG9yIGxvYWRpbmc6KiogVGhpcyBpcyBjcml0aWNhbDsgdGhlIGZ1bmN0aW9uIHdpbGwgZWl0aGVyIGdlbmVyYXRlLCBsb2FkLCBvciByZWNlaXZlIHRoZSBpbml0aWFsIERQSy4gVGhpcyBpcyBteSB0b3AgcHJpb3JpdHkuXG4qICAgKipEUEsgcmVnaXN0ZXIgaW5pdGlhbGl6YXRpb246KiogSXQncyBwcmFjdGljYWxseSBndWFyYW50ZWVkIHRoYXQgdGhlcmUgYXJlIHNwZWNpZmljIHJlZ2lzdGVycyBjb250cm9sbGluZyB0aGUgRFBLIGZlYXR1cmUuIEknbGwgYmUgc2VhcmNoaW5nIGZvciB0aGVpciBhZGRyZXNzZXMgYW5kIHRoZWlyIGludGVuZGVkIGNvbmZpZ3VyYXRpb25zLlxuKiAgICoqU2VjdXJpdHkgQ29udGV4dCBTZXR1cDoqKiBEZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLCB0aGUgZnVuY3Rpb24gbWF5IGJlIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHVwIHNlY3VyaXR5IGNvbnRleHRzIGxpa2UgYXV0aGVudGljYXRpb24gb3Iga2V5IGRlcml2YXRpb24sIHNvIGl0IGNhbiBzZWN1cmVseSBleGNoYW5nZSB0aGUgRFBLLiBJJ2xsIHNlYXJjaCBmb3IgY3J5cHRvZ3JhcGhpYyBmdW5jdGlvbnMsIHRvby5cbiogICAqKlBvd2VyIGFuZCBDbG9jayBDb250cm9sOioqIFVzdWFsbHksIHRoZSBEUEsgcmVsYXRlZCBibG9jayBpcyBwb3dlcmVkIGRvd24gb3IgaW4gbG93LXBvd2VyIHN0YXRlLiBTbywgSSB3aWxsIGNoZWNrIHRoZSBjbG9jayBhbmQgcG93ZXIgbWFuYWdlbWVudCBmdW5jdGlvbnMuXG4qICAgKipFcnJvciBIYW5kbGluZzoqKiBJdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgaW5pdGlhbGl6YXRpb24gZmFpbHVyZXMgYXJlIGhhbmRsZWQuIEknbGwgbG9vayBmb3IgZXJyb3IgY29kZXMsIHJldHVybiB2YWx1ZXMsIGFuZCBsb2dnaW5nLlxuXG5NeSBnb2FsIGlzIHRvIGdyYXNwIHRoZSBpbml0aWFsaXphdGlvbiBmbG93LCBwaW5wb2ludCBhbnkgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyBvciBhcmVhcyBmb3Igb3B0aW1pemF0aW9uLCBhbmQgdWx0aW1hdGVseSBhc3Nlc3MgaG93IGVmZmVjdGl2ZWx5IGl0IGludGVncmF0ZXMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NzQyOSwiT3V0cHV0VG9rZW5zIjo1NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIxOjAxLjAxODQ1NzUzWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4OTU1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDMzMDAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjMzMDA6XFx0dm9pZCBydHc4ODUxYl9kcGtfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuMzMwMTpcXHR7XFxuMzMwMjpcXHRcXHRydHc4ODUxYl9ieV9yYXRlX2RwZChydHdkZXYpO1xcbjMzMDM6XFx0fVxcbjMzMDQ6XFx0XFxuMzMwNTpcXHR2b2lkIHJ0dzg4NTFiX2FhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbjMzMDY6XFx0e1xcbjMzMDc6XFx0XFx0dTMyIHRtcDA1LCB0bXBkMywgaWJbNF07XFxuMzMwODpcXHRcXHR1MzIgdG1wO1xcbjMzMDk6XFx0XFx0aW50IHJldDtcXG4zMzEwOlxcdFxcdGludCByZWs7XFxuMzMxMTpcXHRcXHRpbnQgaTtcXG4zMzEyOlxcdFxcbjMzMTM6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUkZLLCBcXFwiW0xDS11ETyBBQUNLXFxcXG5cXFwiKTtcXG4zMzE0OlxcdFxcbjMzMTU6XFx0XFx0dG1wMDUgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9SU1YxLCBSRlJFR19NQVNLKTtcXG4zMzE2OlxcdFxcdHRtcGQzID0gcnR3ODlfcmVhZF9yZihydHdkZXYsIFJGX1BBVEhfQSwgUlJfTENLX1RSRywgUkZSRUdfTUFTSyk7XFxuMzMxNzpcXHRcXHRydHc4OV93cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUlJfTU9ELCBSUl9NT0RfTUFTSywgMHgzKTtcXG4zMzE4OlxcdFxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9SU1YxLCBSRlJFR19NQVNLLCAweDApO1xcbjMzMTk6XFx0XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX0xDS19UUkcsIFJSX0xDS19TVCwgMHgwKTtcXG4zMzIwOlxcdFxcbjMzMjE6XFx0XFx0Zm9yIChyZWsgPSAwOyByZWsgXFx1MDAzYyA0OyByZWsrKykge1xcbjMzMjI6XFx0XFx0XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX0FBQ0ssIFJGUkVHX01BU0ssIDB4ODIwMWUpO1xcbjMzMjM6XFx0XFx0XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX0FBQ0ssIFJGUkVHX01BU0ssIDB4ODIwMWYpO1xcbjMzMjQ6XFx0XFx0XFx0ZnNsZWVwKDEwMCk7XFxuMzMyNTpcXHRcXG4zMzI2OlxcdFxcdFxcdHJldCA9IHJlYWRfcG9sbF90aW1lb3V0X2F0b21pYyhydHc4OV9yZWFkX3JmLCB0bXAsIHRtcCxcXG4zMzI3OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICAxLCAxMDAwLCBmYWxzZSxcXG4zMzI4OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBydHdkZXYsIFJGX1BBVEhfQSwgMHhkMCwgQklUKDE2KSk7XFxuMzMyOTpcXHRcXHRcXHRpZiAocmV0KVxcbjMzMzA6XFx0XFx0XFx0XFx0cnR3ODlfd2FybihydHdkZXYsIFxcXCJbTENLXUFBQ0sgdGltZW91dFxcXFxuXFxcIik7XFxuMzMzMTpcXHRcXG4zMzMyOlxcdFxcdFxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9WQ0ksIFJSX1ZDSV9PTiwgMHgxKTtcXG4zMzMzOlxcdFxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyA0OyBpKyspIHtcXG4zMzM0OlxcdFxcdFxcdFxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9WQ08sIFJSX1ZDT19TRUwsIGkpO1xcbjMzMzU6XFx0XFx0XFx0XFx0aWJbaV0gPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9JQkQsIFJSX0lCRF9WQUwpO1xcbjMzMzY6XFx0XFx0XFx0fVxcbjMzMzc6XFx0XFx0XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX1ZDSSwgUlJfVkNJX09OLCAweDApO1xcbjMzMzg6XFx0XFxuMzMzOTpcXHRcXHRcXHRpZiAoaWJbMF0gIT0gMCBcXHUwMDI2XFx1MDAyNiBpYlsxXSAhPSAwIFxcdTAwMjZcXHUwMDI2IGliWzJdICE9IDAgXFx1MDAyNlxcdTAwMjYgaWJbM10gIT0gMClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjE6MDEuMDE4NjQ5NjFaIiwiU2VxIjozMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU2NTg4MDYwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBjb2RlIHNuaXBwZXQ6XG5cbioqRGVlcCBEaXZlIGludG8gcnR3ODg1MWIncyBEUEQgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgcnR3ODg1MWJfZHBrX2luaXRgIGFuZCBJIHNlZSB0aGF0IGFsbCBpdCdzIGRvaW5nIGlzIGNhbGxpbmcgYHJ0dzg4NTFiX2J5X3JhdGVfZHBkYC4gVGhhdCdzIGEga2V5IG9ic2VydmF0aW9uLiBUaGlzIG1lYW5zLCBhcyBmYXIgYXMgSSBjYW4gdGVsbCBmcm9tIHRoaXMgc25pcHBldCBhbG9uZSwgaXQgKmRvZXNuJ3QqIGRpcmVjdGx5IGludm9rZSBgX2Rwa19pbmZvcm1hdGlvbmAsIHdoaWNoIGlzIHNvbWV0aGluZyB0byBrZWVwIGluIG1pbmQuIFdlIG5lZWQgdG8gdmVyaWZ5IHdoZXJlIGFuZCBob3cgYF9kcGtfaW5mb3JtYXRpb25gIGlzIGFjdHVhbGx5IHV0aWxpemVkIHdpdGhpbiB0aGUgRFBEIGZyYW1ld29yayBvZiB0aGlzIGRyaXZlci5cblxuTXkgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIHRob3JvdWdobHkgZXhhbWluZSBgcnR3ODg1MWJfZHBrYCBhbmQgYHJ0dzg4NTFiX2Rwa190cmFja2AgdG8gdW5kZXJzdGFuZCB0aGUgZGF0YSBmbG93IGFuZCBkZXRlcm1pbmUgdGhlIGZ1bGwgcGljdHVyZSBvZiB0aGUgZGlnaXRhbCBwcmUtZGlzdG9ydGlvbiBwcm9jZXNzIHdpdGhpbiB0aGUgYHJ0dzg4NTFiYCBkcml2ZXIuIFRoYXQgd2lsbCBoZWxwIHNoZWQgbGlnaHQgb24gdGhlIGZ1bmN0aW9uIHRoYXQncyBiZWluZyBjYWxsZWQsIGFuZCByZXZlYWwgdGhlIGxvY2F0aW9uIG9mIHRoZSBjYWxsIGZvciBgX2Rwa19pbmZvcm1hdGlvbmAgaWYgaXQgZXhpc3RzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODgyMywiT3V0cHV0VG9rZW5zIjo1NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjE6MDYuNTg0NTMzNjg1WiIsIlNlcSI6MzQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MDE3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDM0NTAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjM0NTA6XFx0XFxuMzQ1MTpcXHR2b2lkIHJ0dzg4NTFiX2RwayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHlfaWR4LFxcbjM0NTI6XFx0XFx0XFx0ICBlbnVtIHJ0dzg5X2NoYW5jdHhfaWR4IGNoYW5jdHhfaWR4KVxcbjM0NTM6XFx0e1xcbjM0NTQ6XFx0XFx0dTggcGh5X21hcCA9IHJ0dzg5X2J0Y19waHltYXAocnR3ZGV2LCBwaHlfaWR4LCAwLCBjaGFuY3R4X2lkeCk7XFxuMzQ1NTpcXHRcXHR1MzIgdHhfZW47XFxuMzQ1NjpcXHRcXG4zNDU3OlxcdFxcdHJ0dzg5X2J0Y19udGZ5X3dsX3JmayhydHdkZXYsIHBoeV9tYXAsIEJUQ19XUkZLVF9EUEssIEJUQ19XUkZLX1NUQVJUKTtcXG4zNDU4OlxcdFxcdHJ0dzg5X2NoaXBfc3RvcF9zY2hfdHgocnR3ZGV2LCBwaHlfaWR4LCBcXHUwMDI2dHhfZW4sIFJUVzg5X1NDSF9UWF9TRUxfQUxMKTtcXG4zNDU5OlxcdFxcdF93YWl0X3J4X21vZGUocnR3ZGV2LCBfa3BhdGgocnR3ZGV2LCBwaHlfaWR4KSk7XFxuMzQ2MDpcXHRcXG4zNDYxOlxcdFxcdHJ0d2Rldi1cXHUwMDNlZHBrLmlzX2Rwa19lbmFibGUgPSB0cnVlO1xcbjM0NjI6XFx0XFx0cnR3ZGV2LVxcdTAwM2VkcGsuaXNfZHBrX3JlbG9hZF9lbiA9IGZhbHNlO1xcbjM0NjM6XFx0XFx0X2RwayhydHdkZXYsIHBoeV9pZHgsIGZhbHNlLCBjaGFuY3R4X2lkeCk7XFxuMzQ2NDpcXHRcXG4zNDY1OlxcdFxcdHJ0dzg5X2NoaXBfcmVzdW1lX3NjaF90eChydHdkZXYsIHBoeV9pZHgsIHR4X2VuKTtcXG4zNDY2OlxcdFxcdHJ0dzg5X2J0Y19udGZ5X3dsX3JmayhydHdkZXYsIHBoeV9tYXAsIEJUQ19XUkZLVF9EUEssIEJUQ19XUkZLX1NUT1ApO1xcbjM0Njc6XFx0fVxcbjM0Njg6XFx0XFxuMzQ2OTpcXHR2b2lkIHJ0dzg4NTFiX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuMzQ3MDpcXHR7XFxuMzQ3MTpcXHRcXHRfZHBrX3RyYWNrKHJ0d2Rldik7XFxuMzQ3MjpcXHR9XFxuMzQ3MzpcXHRcXG4zNDc0OlxcdHZvaWQgcnR3ODg1MWJfdHNzaShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuMzQ3NTpcXHRcXHRcXHQgICBib29sIGh3dHhfZW4sIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpXFxuMzQ3NjpcXHR7XFxuMzQ3NzpcXHRcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2hhbiAqY2hhbiA9IHJ0dzg5X2NoYW5fZ2V0KHJ0d2RldiwgY2hhbmN0eF9pZHgpO1xcbjM0Nzg6XFx0XFx0dTggcGh5X21hcCA9IHJ0dzg5X2J0Y19waHltYXAocnR3ZGV2LCBwaHksIFJGX0EsIGNoYW5jdHhfaWR4KTtcXG4zNDc5OlxcdFxcdHU4IGk7XFxuMzQ4MDpcXHRcXG4zNDgxOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1RTU0ksIFxcXCJbVFNTSV0gJXM6IHBoeT0lZFxcXFxuXFxcIiwgX19mdW5jX18sIHBoeSk7XFxuMzQ4MjpcXHRcXHRydHc4OV9idGNfbnRmeV93bF9yZmsocnR3ZGV2LCBwaHlfbWFwLCBCVENfV1JGS1RfSVFLLCBCVENfV1JGS19PTkVTSE9UX1NUQVJUKTtcXG4zNDgzOlxcdFxcbjM0ODQ6XFx0XFx0X3Rzc2lfZGlzYWJsZShydHdkZXYsIHBoeSk7XFxuMzQ4NTpcXHRcXG4zNDg2OlxcdFxcdGZvciAoaSA9IFJGX1BBVEhfQTsgaSBcXHUwMDNjIFJGX1BBVEhfTlVNXzg4NTFCOyBpKyspIHtcXG4zNDg3OlxcdFxcdFxcdF90c3NpX3NldF9zeXMocnR3ZGV2LCBwaHksIGksIGNoYW4pO1xcbjM0ODg6XFx0XFx0XFx0X3Rzc2lfaW5pX3R4cHdyX2N0cmxfYmIocnR3ZGV2LCBwaHksIGkpO1xcbjM0ODk6XFx0XFx0XFx0X3Rzc2lfaW5pX3R4cHdyX2N0cmxfYmJfaGVfdGIocnR3ZGV2LCBwaHksIGkpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMTowNi41ODQ3MDY1MzVaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODgxNjU2MDAxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgUmVsZXZhbnQgQ29kZSoqXG5cbk9rYXksIHNvIEkndmUgdHJhY2VkIHRocm91Z2ggdGhlIGNvZGUuIEkgc2VlIHRoYXQgYHJ0dzg4NTFiX2Rwa2AgbWFrZXMgYSBjYWxsIHRvIGBfZHBrYCwgc3BlY2lmaWNhbGx5IHdpdGggdGhlIGFyZ3VtZW50cyBgcnR3ZGV2YCwgYHBoeV9pZHhgLCBgZmFsc2VgLCBhbmQgYGNoYW5jdHhfaWR4YC4gVGhhdCBgX2Rwa2AgZnVuY3Rpb24gdGhlbiBjYWxscyBgX2Rwa19jYWxfc2VsZWN0YCwgd2hpY2ggZmluYWxseSBnZXRzIGRvd24gdG8gYF9kcGtfaW5mb3JtYXRpb25gLiBUaGF0J3Mgb25lIHBhdGguIE9uIHRoZSBvdGhlciBoYW5kLCBgcnR3ODg1MWJfZHBrX3RyYWNrYCBjYWxscyBgX2Rwa190cmFja2AsIGFuZCB0aGF0IGZ1bmN0aW9uIHV0aWxpemVzIGBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2hgLiBUaGlzIGxvb2tzIHByb21pc2luZy4gQm90aCBzZWVtIHRvIGJlIGludm9sdmVkIGluIGtleSBwYXJ0cyBvZiB0aGUgRFBLIHByb2Nlc3MuXG5cbkdpdmVuIHRoaXMsIEkgYW0gZ29pbmcgdG8gbWFyayBgcnR3ODg1MWJfZHBrYCBhbmQgYHJ0dzg4NTFiX2Rwa190cmFja2AgYXMgdGhlIHRhcmdldCBzeW1ib2xzIGZvciBmdXp6aW5nLlxuXG5NeSBkZWNpc2lvbiBjYW4gYmUgc3VtbWFyaXplZCBhczpcblxuKiAgICoqV29ydGhGdXp6aW5nOioqIFRydWUgLSB0aGlzIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enplciBpbnB1dC5cbiogICAqKkZvY3VzU3ltYm9sczoqKiBgW1wicnR3ODg1MWJfZHBrXCIsIFwicnR3ODg1MWJfZHBrX3RyYWNrXCJdYCAtIFRoZXNlIGFyZSB0aGUgbW9zdCByZWxldmFudCBzeW1ib2xzIHRvIHRhcmdldC5cbiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYFtcIlJUVzg5Xzg4NTFCVVwiLCBcIlJUVzg5Xzg4NTFCRVwiXWAgLSBJIGJlbGlldmUgdGhlIGRyaXZlciBjb25maWd1cmF0aW9ucyBmb3IgVVNCICg4ODUxQlUpIGFuZCBQQ0ktRSAoODg1MUJFKSBhcmUgcmVsZXZhbnQuXG4qICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIGFkZHJlc3NlcyBhIGJ1ZyBpbiB0aGUgRFBLIGNhbGlicmF0aW9uIGxvZ2ljLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBjaGFubmVsIGFuZCBiYW5kd2lkdGggdmFsdWUgc3dhcHBpbmcgd2l0aGluIHRoZSBydHc4OSBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiBhbmQgdHJhY2tpbmcgbG9naWMgd2l0aGluIHRoZSBkcml2ZXIsIHdoaWNoIGlzIHdoYXQgbWFrZXMgaXQgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gVGhlIFVTQiBjb25maWd1cmF0aW9uIGlzIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZywgZ2l2ZW4gdGhlIGFiaWxpdHkgdG8gdXNlIGEgYGR1bW15X2hjZGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwMTYyLCJPdXRwdXRUb2tlbnMiOjE0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIxOjE1LjQwMTI3MDQ4OVoiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MzcxNDcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OV84ODUxQlVcIixcbiAgICBcIlJUVzg5Xzg4NTFCRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg4NTFiX2Rwa1wiLFxuICAgIFwicnR3ODg1MWJfZHBrX3RyYWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBmdW5jdGlvbmFsIGJ1ZyBpbiB0aGUgRFBLIChEaWdpdGFsIFByZS1EaXN0b3J0aW9uKSBjYWxpYnJhdGlvbiBsb2dpYyBvZiB0aGUgcnR3ODkgZHJpdmVyIHdoZXJlIGNoYW5uZWwgYW5kIGJhbmR3aWR0aCB2YWx1ZXMgd2VyZSBzd2FwcGVkLiBUaGlzIGFmZmVjdHMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiBhbmQgdHJhY2tpbmcgbG9naWMuIFRoZSBkcml2ZXIgc3VwcG9ydHMgVVNCICg4ODUxQlUpIGFuZCBjYW4gYmUgZnV6emVkIHZpYSBkdW1teV9oY2QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRXODlfODg1MUJVXCIsXG4gICAgXCJSVFc4OV84ODUxQkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHc4ODUxYl9kcGtcIixcbiAgICBcInJ0dzg4NTFiX2Rwa190cmFja1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgZnVuY3Rpb25hbCBidWcgaW4gdGhlIERQSyAoRGlnaXRhbCBQcmUtRGlzdG9ydGlvbikgY2FsaWJyYXRpb24gbG9naWMgb2YgdGhlIHJ0dzg5IGRyaXZlciB3aGVyZSBjaGFubmVsIGFuZCBiYW5kd2lkdGggdmFsdWVzIHdlcmUgc3dhcHBlZC4gVGhpcyBhZmZlY3RzIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gYW5kIHRyYWNraW5nIGxvZ2ljLiBUaGUgZHJpdmVyIHN1cHBvcnRzIFVTQiAoODg1MUJVKSBhbmQgY2FuIGJlIGZ1enplZCB2aWEgZHVtbXlfaGNkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowdlspn[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-07 09:45:21 +0000 UTC FinishedAt: 2026-08-07 10:21:16 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89_8851BU", "RTW89_8851BE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89_8851BU", "RTW89_8851BE" ], "series_id": "585bc4f2-2b1e-461d-9d6c-b93a9fec8c32" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtw8851b_dpk", "rtw8851b_dpk_track" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUxQkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4ODUxYl9kcGsmIzM0OywKICAgICYjMzQ7cnR3ODg1MWJfZHBrX3RyYWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZnVuY3Rpb25hbCBidWcgaW4gdGhlIERQSyAoRGlnaXRhbCBQcmUtRGlzdG9ydGlvbikgY2FsaWJyYXRpb24gbG9naWMgb2YgdGhlIHJ0dzg5IGRyaXZlciB3aGVyZSBjaGFubmVsIGFuZCBiYW5kd2lkdGggdmFsdWVzIHdlcmUgc3dhcHBlZC4gVGhpcyBhZmZlY3RzIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gYW5kIHRyYWNraW5nIGxvZ2ljLiBUaGUgZHJpdmVyIHN1cHBvcnRzIFVTQiAoODg1MUJVKSBhbmQgY2FuIGJlIGZ1enplZCB2aWEgZHVtbXlfaGNkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjE5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMDI3ODM5MzM5Nzc4MTdlZjA4NWU5MWRiODUzYzJjYzYyNzNmMGVhOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMTA6MTk6MTcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmNcbmluZGV4IGM2M2YwZTYzNjRkYWQuLjcxMzQyNDYxZjJiMzAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXG5AQCAtMTg5NSw4ICYjNDM7MTg5NSw4IEBAIHN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuIFx0dTgga2lkeCA9IGRway1cdTAwM2VjdXJfaWR4W3BhdGhdO1xuIFxuIFx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPSBjaGFuLVx1MDAzZWJhbmRfdHlwZTtcbi1cdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXHUwMDNlYmFuZF93aWR0aDtcbi1cdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXHUwMDNlY2hhbm5lbDtcbiYjNDM7XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggPSBjaGFuLVx1MDAzZWNoYW5uZWw7XG4mIzQzO1x0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID0gY2hhbi1cdTAwM2ViYW5kX3dpZHRoO1xuIFxuIFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUkZLLFxuIFx0XHQgICAgXCYjMzQ7W0RQS10gUyVkWyVkXSAoUEhZJWQpOiBUU1NJICVzLyBEQkNDICVzLyAlcy8gQ0glZC8gJXNcXG5cJiMzNDssXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MTk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUxQkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4ODUxYl9kcGsmIzM0OywKICAgICYjMzQ7cnR3ODg1MWJfZHBrX3RyYWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZnVuY3Rpb25hbCBidWcgaW4gdGhlIERQSyAoRGlnaXRhbCBQcmUtRGlzdG9ydGlvbikgY2FsaWJyYXRpb24gbG9naWMgb2YgdGhlIHJ0dzg5IGRyaXZlciB3aGVyZSBjaGFubmVsIGFuZCBiYW5kd2lkdGggdmFsdWVzIHdlcmUgc3dhcHBlZC4gVGhpcyBhZmZlY3RzIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gYW5kIHRyYWNraW5nIGxvZ2ljLiBUaGUgZHJpdmVyIHN1cHBvcnRzIFVTQiAoODg1MUJVKSBhbmQgY2FuIGJlIGZ1enplZCB2aWEgZHVtbXlfaGNkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMDI3ODM5MzM5Nzc4MTdlZjA4NWU5MWRiODUzYzJjYzYyNzNmMGVhOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDcgMTA6MTk6MTcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYwppbmRleCBjNjNmMGU2MzY0ZGFkLi43MTM0MjQ2MWYyYjMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMKQEAgLTE4OTUsOCAmIzQzOzE4OTUsOCBAQCBzdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSwKIAl1OCBraWR4ID0gZHBrLSZndDtjdXJfaWR4W3BhdGhdOwogCiAJZHBrLSZndDticFtwYXRoXVtraWR4XS5iYW5kID0gY2hhbi0mZ3Q7YmFuZF90eXBlOwotCWRway0mZ3Q7YnBbcGF0aF1ba2lkeF0uY2ggPSBjaGFuLSZndDtiYW5kX3dpZHRoOwotCWRway0mZ3Q7YnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLSZndDtjaGFubmVsOwomIzQzOwlkcGstJmd0O2JwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi0mZ3Q7Y2hhbm5lbDsKJiM0MzsJZHBrLSZndDticFtwYXRoXVtraWR4XS5idyA9IGNoYW4tJmd0O2JhbmRfd2lkdGg7CiAKIAlydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssCiAJCSAgICAmIzM0O1tEUEtdIFMlZFslZF0gKFBIWSVkKTogVFNTSSAlcy8gREJDQyAlcy8gJXMvIENIJWQvICVzXG4mIzM0OywKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIzNAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDI4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSZWFsdGVrIFdpLUZpIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBmb3IgYHJ0dzg4NTFiX3Jmay5jYCB3aXRoaW4gdGhlIFJlYWx0ZWsgYHJ0dzg5YCBXaS1GaSBkcml2ZXIuIEl0IHNlZW1zIGxpa2UgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGJ1ZyBmaXgg4oCTIGBjaGFuLSZndDtiYW5kX3dpZHRoYCBhbmQgYGNoYW4tJmd0O2NoYW5uZWxgIHdlcmUgZ2V0dGluZyBtaXhlZCB1cCBkdXJpbmcgYXNzaWdubWVudCB0byBgZHBrLSZndDticGAuIEJ1dCBpcyB0aGlzIHNvbWV0aGluZyB3b3J0aCBkZWRpY2F0aW5nIHRpbWUgdG8/IEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGl0JiMzOTtzIGV2ZW4gKnJlYWNoYWJsZSogYW5kIGlmIGZ1enppbmcgaXQgbWFrZXMgc2Vuc2UuCgpSaWdodCwgc28gaXQmIzM5O3MgYSBSZWFsdGVrIGRyaXZlciwgYHJ0dzg5YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGNoZWNrIGlmIG1hYzgwMjExX2h3c2ltIGlzIGFwcGxpY2FibGUsIGJ1dCBpdCBsb29rcyBsaWtlIHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIsIHNvIHRoYXQmIzM5O3MgcHJvYmFibHkgbm90IGdvaW5nIHRvIHdvcmsuIEFoLCBgcnR3ODlgLi4uIHRoYXQmIzM5O3MgUENJL1VTQiBmb3IgUmVhbHRlayA4MDIuMTFheCBkZXZpY2VzLCBpc24mIzM5O3QgaXQ/IFRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXMsIGNhbiBJIGV2ZW4gdGVzdCB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IEhhcmR3YXJlIGRyaXZlcnMsIHBhcnRpY3VsYXJseSBXaS1GaSBvbmVzLCBhcmUgYSBwYWluLiBNb3N0IG9mIHRoZSB0aW1lLCBJIG5lZWQgYWN0dWFsIHBoeXNpY2FsIGhhcmR3YXJlIGZvciBkcml2ZXJzIGxpa2UgYHJ0dzg5YCwgYGl3bHdpZmlgLCBgYXRoMTBrYCwgb3IgYGF0aDExa2AgdW5sZXNzIHRoZXkgaGF2ZSBhIFVTQiBpbnRlcmZhY2UuIFVTQiBjYW4gc29tZXRpbWVzIGJlIGVtdWxhdGVkIHdpdGggYGR1bW15X2hjZGAgb3IgYHJhdy1nYWRnZXRgLiBQQ0kmIzM5O3MgZ2VuZXJhbGx5IGV2ZW4gbW9yZSBwcm9ibGVtYXRpYyB3aXRob3V0IHByb3BlciBlbXVsYXRpb24uIEJ1dC4uLiB3YWl0IGEgbWludXRlLCBJIHJlbWVtYmVyIGBydHc4OWAgYWN0dWFsbHkgc3VwcG9ydHMgKmJvdGgqIFBDSSAqYW5kKiBVU0IuIE5vdyB0aGF0JiMzOTtzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBUaGF0IGNoYW5nZXMgdGhpbmdzIGRyYW1hdGljYWxseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHc4OSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA4MDQzMCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTI9bWVudWNvbmZpZyBSVFc4OVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy04LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjk6XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgcnR3ODkuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTE5MD1jb25maWcgUlRXODlfREVCVUdNU0dcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxOTE6XHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODkgZGVidWcgbWVzc2FnZSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTkyLVx0ZGVwZW5kcyBvbiBSVFc4OV9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTE5OT1jb25maWcgUlRXODlfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIwMDpcdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OSBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMDEtXHRkZXBlbmRzIG9uIFJUVzg5X0NPUkUgXHUwMDI2XHUwMDI2IENGRzgwMjExX0RFQlVHRlNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX1JUVzg5X0NPUkUpICYjNDM7PSBydHc4OV9jb3JlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDpydHc4OV9jb3JlLXkgJiM0Mzs9IGNvcmUubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01LVx0XHRtYWM4MDIxMS5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MjM6cnR3ODlfY29yZS0kKENPTkZJR19QTSkgJiM0Mzs9IHdvdy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToyNTpvYmotJChDT05GSUdfUlRXODlfODg1MUIpICYjNDM7PSBydHc4OV84ODUxYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjI2OnJ0dzg5Xzg4NTFiLW9ianMgOj0gcnR3ODg1MWIubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0yNy1cdFx0ICAgIHJ0dzg4NTFiX3RhYmxlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfUlRXODlfODg1MUJFKSAmIzQzOz0gcnR3ODlfODg1MWJlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MzI6cnR3ODlfODg1MWJlLW9ianMgOj0gcnR3ODg1MWJlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19SVFc4OV84ODUxQlUpICYjNDM7PSBydHc4OV84ODUxYnUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozNTpydHc4OV84ODUxYnUtb2JqcyA6PSBydHc4ODUxYnUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6Mzc6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJBKSAmIzQzOz0gcnR3ODlfODg1MmEub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozODpydHc4OV84ODUyYS1vYmpzIDo9IHJ0dzg4NTJhLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzktXHRcdCAgICBydHc4ODUyYV90YWJsZS5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDM6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJBRSkgJiM0Mzs9IHJ0dzg5Xzg4NTJhZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjQ0OnJ0dzg5Xzg4NTJhZS1vYmpzIDo9IHJ0dzg4NTJhZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo0NjpvYmotJChDT05GSUdfUlRXODlfODg1MkFVKSAmIzQzOz0gcnR3ODlfODg1MmF1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDc6cnR3ODlfODg1MmF1LW9ianMgOj0gcnR3ODg1MmF1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19SVFc4OV84ODUyQl9DT01NT04pICYjNDM7PSBydHc4OV84ODUyYl9jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo1MDpydHc4OV84ODUyYl9jb21tb24tb2JqcyA6PSBydHc4ODUyYl9jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NTI6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCKSAmIzQzOz0gcnR3ODlfODg1MmIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo1MzpydHc4OV84ODUyYi1vYmpzIDo9IHJ0dzg4NTJiLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNTQtXHRcdCAgICBydHc4ODUyYl90YWJsZS5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NTg6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCRSkgJiM0Mzs9IHJ0dzg5Xzg4NTJiZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjU5OnJ0dzg5Xzg4NTJiZS1vYmpzIDo9IHJ0dzg4NTJiZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2MTpvYmotJChDT05GSUdfUlRXODlfODg1MkJVKSAmIzQzOz0gcnR3ODlfODg1MmJ1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NjI6cnR3ODlfODg1MmJ1LW9ianMgOj0gcnR3ODg1MmJ1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjY0Om9iai0kKENPTkZJR19SVFc4OV84ODUyQlQpICYjNDM7PSBydHc4OV84ODUyYnQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2NTpydHc4OV84ODUyYnQtb2JqcyA6PSBydHc4ODUyYnQubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS02Ni1cdFx0ICAgIHJ0dzg4NTJidF9yZmsubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjY5Om9iai0kKENPTkZJR19SVFc4OV84ODUyQlRFKSAmIzQzOz0gcnR3ODlfODg1MmJ0ZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjcwOnJ0dzg5Xzg4NTJidGUtb2JqcyA6PSBydHc4ODUyYnRlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjcyOm9iai0kKENPTkZJR19SVFc4OV84ODUyQykgJiM0Mzs9IHJ0dzg5Xzg4NTJjLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NzM6cnR3ODlfODg1MmMtb2JqcyA6PSBydHc4ODUyYy5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTc0LVx0XHQgICAgcnR3ODg1MmNfdGFibGUubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjc4Om9iai0kKENPTkZJR19SVFc4OV84ODUyQ0UpICYjNDM7PSBydHc4OV84ODUyY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo3OTpydHc4OV84ODUyY2Utb2JqcyA6PSBydHc4ODUyY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS04MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJDVSkgJiM0Mzs9IHJ0dzg5Xzg4NTJjdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjgyOnJ0dzg5Xzg4NTJjdS1vYmpzIDo9IHJ0dzg4NTJjdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4NDpvYmotJChDT05GSUdfUlRXODlfODkyMkEpICYjNDM7PSBydHc4OV84OTIyYS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjg1OnJ0dzg5Xzg5MjJhLW9ianMgOj0gcnR3ODkyMmEubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4NjpcdFx0ICAgIHJ0dzg5MjJhX3Jmay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTg3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4ODpvYmotJChDT05GSUdfUlRXODlfODkyMkFFKSAmIzQzOz0gcnR3ODlfODkyMmFlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODk6cnR3ODlfODkyMmFlLW9ianMgOj0gcnR3ODkyMmFlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjkxOm9iai0kKENPTkZJR19SVFc4OV84OTIyQVUpICYjNDM7PSBydHc4OV84OTIyYXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo5MjpydHc4OV84OTIyYXUtb2JqcyA6PSBydHc4OTIyYXUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTQ6b2JqLSQoQ09ORklHX1JUVzg5Xzg5MjJEKSAmIzQzOz0gcnR3ODlfODkyMmQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo5NTpydHc4OV84OTIyZC1vYmpzIDo9IHJ0dzg5MjJkLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTY6XHRcdCAgICBydHc4OTIyZF9yZmsub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTg6b2JqLSQoQ09ORklHX1JUVzg5Xzg5MjJERSkgJiM0Mzs9IHJ0dzg5Xzg5MjJkZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjk5OnJ0dzg5Xzg5MjJkZS1vYmpzIDo9IHJ0dzg5MjJkZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTEwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MTAxOnJ0dzg5X2NvcmUtJChDT05GSUdfUlRXODlfREVCVUcpICYjNDM7PSBkZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwMjpydHc4OV9jb3JlLSQoQ09ORklHX1JUVzg5X0xFRFMpICYjNDM7PSBsZWQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToxMDM6cnR3ODlfY29yZS0kKENPTkZJR19SVFc4OV9MRURTX01DKSAmIzQzOz0gbGVkX21jLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMTA0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToxMDU6b2JqLSQoQ09ORklHX1JUVzg5X1BDSSkgJiM0Mzs9IHJ0dzg5X3BjaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwNjpydHc4OV9wY2kteSA6PSBwY2kubyBwY2lfYmUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0xMDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwODpvYmotJChDT05GSUdfUlRXODlfVVNCKSAmIzQzOz0gcnR3ODlfdXNiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MTA5OnJ0dzg5X3VzYi15IDo9IHVzYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTExMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjExOnN0YXRpYyBjb25zdCBndWlkX3QgcnR3ODlfZ3VpZCA9IEdVSURfSU5JVCgweEQyQThDM0U4LCAweDRCNjksIDB4NEYwMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEyLVx0XHRcdFx0XHQgICAweDgyLCAweEJELCAweEZFLCAweDg2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTU6c3RhdGljIHUzMiBydHc4OV9hY3BpX3RyYXZlcnNhbF9vYmplY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTYtXHRcdFx0XHQgICAgICAgY29uc3QgdW5pb24gYWNwaV9vYmplY3QgKm9iaiwgdTggKnBvcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMi1cdFx0aWYgKHVubGlrZWx5KG9iai1cdTAwM2VidWZmZXIubGVuZ3RoID09IDApKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMzpcdFx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQtXHRcdFx0XHQgICAgXCYjMzQ7JXM6IGludmFsaWQgYnVmZmVyIHR5cGVcXG5cJiMzNDssIF9fZnVuY19fKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NC1cdFx0aWYgKHVubGlrZWx5KG9iai1cdTAwM2VwYWNrYWdlLmNvdW50ID09IDApKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NTpcdFx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDYtXHRcdFx0XHQgICAgXCYjMzQ7JXM6IGludmFsaWQgcGFja2FnZSB0eXBlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NDpcdFx0XHRzdWJfbGVuID0gcnR3ODlfYWNwaV90cmF2ZXJzYWxfb2JqZWN0KHJ0d2RldiwgZWxtLCB0bXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTUtXHRcdFx0aWYgKHVubGlrZWx5KHN1Yl9sZW4gPT0gMCkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjEtXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjI6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiB1bmhhbmRsZWQgdHlwZTogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02My1cdFx0XHQgICAgX19mdW5jX18sIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczOnN0YXRpYyB1MzIgcnR3ODlfYWNwaV9jYWxjdWxhdGVfb2JqZWN0X2xlbmd0aChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03NC1cdFx0XHRcdFx0ICAgICAgY29uc3QgdW5pb24gYWNwaV9vYmplY3QgKm9iailcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTc1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjc2Olx0cmV0dXJuIHJ0dzg5X2FjcGlfdHJhdmVyc2FsX29iamVjdChydHdkZXYsIG9iaiwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjc5OnN0YXRpYyBzdHJ1Y3QgcnR3ODlfYWNwaV9kYXRhICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjgwOnJ0dzg5X2FjcGlfZXZhbHVhdGVfbWV0aG9kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgY29uc3QgY2hhciAqbWV0aG9kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtODEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtODItXHRzdHJ1Y3QgYWNwaV9idWZmZXIgYnVmID0ge0FDUElfQUxMT0NBVEVfQlVGRkVSLCBOVUxMfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjgzOlx0c3RydWN0IHJ0dzg5X2FjcGlfZGF0YSAqZGF0YSA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy04NC1cdGFjcGlfaGFuZGxlIHJvb3QsIGhhbmRsZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05MC1cdGlmICghcm9vdCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6OTE6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05Mi1cdFx0XHQgICAgXCYjMzQ7YWNwaSAoJXMpOiBmYWlsZWQgdG8gZ2V0IHJvb3RcXG5cJiMzNDssIG1ldGhvZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtOTctXHRpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjk4Olx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtOTktXHRcdFx0ICAgIFwmIzM0O2FjcGkgKCVzKTogZmFpbGVkIHRvIGdldCBoYW5kbGVcXG5cJiMzNDssIG1ldGhvZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTA0LVx0aWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxMDU6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMDYtXHRcdFx0ICAgIFwmIzM0O2FjcGkgKCVzKTogZmFpbGVkIHRvIGV2YWx1YXRlIG9iamVjdFxcblwmIzM0OywgbWV0aG9kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMTAtXHRvYmogPSBidWYucG9pbnRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjExMTpcdGxlbiA9IHJ0dzg5X2FjcGlfY2FsY3VsYXRlX29iamVjdF9sZW5ndGgocnR3ZGV2LCBvYmopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTEyLVx0aWYgKHVubGlrZWx5KGxlbiA9PSAwKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTEzOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTE0LVx0XHRcdCAgICBcJiMzNDthY3BpICglcyk6IGZhaWxlZCB0byB0cmF2ZXJzYWwgb2JqIGxlblxcblwmIzM0OywgbWV0aG9kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMjItXHRkYXRhLVx1MDAzZWxlbiA9IGxlbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEyMzpcdHJ0dzg5X2FjcGlfdHJhdmVyc2FsX29iamVjdChydHdkZXYsIG9iaiwgZGF0YS1cdTAwM2VidWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTI0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTEzMD1zdGF0aWNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEzMTppbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3ZhbHVlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEzMi1cdFx0XHQgICAgIHU4ICp2YWx1ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMzQtXHRpZiAob2JqLVx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0lOVEVHRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEzNTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEzNi1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGludGVnZXIgYnV0IHR5cGU6ICVkXFxuXCYjMzQ7LCBvYmotXHUwMDNldHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTQ0OnN0YXRpYyBib29sIGNoa19hY3BpX3BvbGljeV82Z2h6X3NpZyhjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoeiAqcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MTUxPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTUyOmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHooc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTUzLVx0XHRcdFx0ICAgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE1NDpcdFx0XHRcdCAgIHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6ICoqcG9saWN5XzZnaHopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNTUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTU2Olx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5XzZnaHogKnB0cjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE1Ny1cdHUzMiBleHBlY3RfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2MC1cdGlmIChvYmotXHUwMDNldHlwZSAhPSBBQ1BJX1RZUEVfQlVGRkVSKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNjE6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNjItXHRcdFx0ICAgIFwmIzM0O2FjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxuXCYjMzQ7LCBvYmotXHUwMDNldHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTY3LVx0aWYgKGxlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNjg6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTY5LVx0XHRcdCAgICBfX2Z1bmNfXywgbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzQtXHRpZiAoIWNoa19hY3BpX3BvbGljeV82Z2h6X3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNzU6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzYtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE4MC1cdGlmIChsZW4gXHUwMDNjIGV4cGVjdF9sZW4pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE4MTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7JXM6IGV4cGVjdCAldSBidXQgbGVuZ3RoOiAldVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE4Mi1cdFx0XHQgICAgX19mdW5jX18sIGV4cGVjdF9sZW4sIGxlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTg5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTkwOlx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7cG9saWN5XzZnaHo6IFwmIzM0OywgKnBvbGljeV82Z2h6LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTkxLVx0XHQgICAgICAgZXhwZWN0X2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTk1OnN0YXRpYyBib29sIGNoa19hY3BpX3BvbGljeV82Z2h6X3NwX3NpZyhjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoel9zcCAqcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE5Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MjAzPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjA0OmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfc3Aoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjA1LVx0XHRcdFx0ICAgICAgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIwNjpcdFx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6X3NwICoqcG9saWN5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjA3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIwODpcdGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6X3NwICpwdHI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMDktXHR1MzIgYnVmX2xlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMTEtXHRpZiAob2JqLVx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjEyOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjEzLVx0XHRcdCAgICBcJiMzNDthY3BpOiBleHBlY3QgYnVmZmVyIGJ1dCB0eXBlOiAlZFxcblwmIzM0Oywgb2JqLVx1MDAzZXR5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxOC1cdGlmIChidWZfbGVuIFx1MDAzYyBzaXplb2YoKnB0cikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIxOTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXCYjMzQ7JXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjAtXHRcdFx0ICAgIF9fZnVuY19fLCBidWZfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjUtXHRpZiAoIWNoa19hY3BpX3BvbGljeV82Z2h6X3NwX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyMjY6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjctXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIzNDpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV82Z2h6X3NwOiBcJiMzNDssICpwb2xpY3ksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzUtXHRcdCAgICAgICBzaXplb2YoKnB0cikpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIzOTpzdGF0aWMgYm9vbCBjaGtfYWNwaV9wb2xpY3lfNmdoel92bHBfc2lnKGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6X3ZscCAqcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI0MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MjQ3PXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjQ4OmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfdmxwKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI0OS1cdFx0XHRcdCAgICAgICB1bmlvbiBhY3BpX29iamVjdCAqb2JqLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjUwOlx0XHRcdFx0ICAgICAgIHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6X3ZscCAqKnBvbGljeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1MS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNTI6XHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoel92bHAgKnB0cjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1My1cdHUzMiBidWZfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1NS1cdGlmIChvYmotXHUwMDNldHlwZSAhPSBBQ1BJX1RZUEVfQlVGRkVSKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNTY6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNTctXHRcdFx0ICAgIFwmIzM0O2FjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxuXCYjMzQ7LCBvYmotXHUwMDNldHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjYyLVx0aWYgKGJ1Zl9sZW4gXHUwMDNjIHNpemVvZigqcHRyKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjYzOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcJiMzNDslczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2NC1cdFx0XHQgICAgX19mdW5jX18sIGJ1Zl9sZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2OS1cdGlmICghY2hrX2FjcGlfcG9saWN5XzZnaHpfdmxwX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNzA6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzEtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI3ODpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV82Z2h6X3ZscDogXCYjMzQ7LCAqcG9saWN5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjc5LVx0XHQgICAgICAgc2l6ZW9mKCpwdHIpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyODM6c3RhdGljIGJvb2wgY2hrX2FjcGlfcG9saWN5X3Rhc19zaWcoY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3RhcyAqcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI4NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjkxOnN0YXRpYyBpbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV90YXMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjkyLVx0XHRcdFx0XHQgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI5MzpcdFx0XHRcdFx0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV90YXMgKipwb2xpY3kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yOTQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mjk1Olx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3RhcyAqcHRyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjk2LVx0dTMyIGJ1Zl9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjk4LVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI5OTpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMwMC1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMDUtXHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMDY6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzA3LVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzEyLVx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfdGFzX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMTM6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMTQtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMyMTpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV90YXM6IFwmIzM0OywgKnBvbGljeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyMi1cdFx0ICAgICAgIHNpemVvZigqcHRyKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzI2PXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzI3OmJvb2wgY2hrX2FjcGlfcG9saWN5X3JlZ19ydWxlc19zaWcoY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3JlZ19ydWxlcyAqcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzM1PXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzM2OmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5X3JlZ19ydWxlcyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMzctXHRcdFx0XHRcdHVuaW9uIGFjcGlfb2JqZWN0ICpvYmosXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMzg6XHRcdFx0XHRcdHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV9yZWdfcnVsZXMgKipwb2xpY3kpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMzkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzQwOlx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3JlZ19ydWxlcyAqcHRyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQxLVx0dTMyIGJ1Zl9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQzLVx0aWYgKG9iai1cdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM0NDpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM0NS1cdFx0XHQgICAgXCYjMzQ7YWNwaTogZXhwZWN0IGJ1ZmZlciBidXQgdHlwZTogJWRcXG5cJiMzNDssIG9iai1cdTAwM2V0eXBlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTAtXHRpZiAoYnVmX2xlbiBcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNTE6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzUyLVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzU3LVx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfcmVnX3J1bGVzX3NpZyhwdHIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNTg6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBiYWQgc2lnbmF0dXJlXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTktXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM2NjpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O3BvbGljeV9yZWdfcnVsZXM6IFwmIzM0OywgKnBvbGljeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM2Ny1cdFx0ICAgICAgIHNpemVvZigqcHRyKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzcxOmludCBydHc4OV9hY3BpX2V2YWx1YXRlX2RzbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNzI6XHRcdFx0ICAgIGVudW0gcnR3ODlfYWNwaV9kc21fZnVuYyBmdW5jLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzczOlx0XHRcdCAgICBzdHJ1Y3QgcnR3ODlfYWNwaV9kc21fcmVzdWx0ICpyZXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM3ODpcdG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKHJ0d2Rldi1cdTAwM2VkZXYpLCBcdTAwMjZydHc4OV9ndWlkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzc5LVx0XHRcdFx0MCwgZnVuYywgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODAtXHRpZiAoIW9iaikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzgxOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzgyLVx0XHRcdCAgICBcJiMzNDthY3BpIGRzbSBmYWlsIHRvIGV2YWx1YXRlIGZ1bmM6ICVkXFxuXCYjMzQ7LCBmdW5jKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODYtXHRpZiAoZnVuYyA9PSBSVFc4OV9BQ1BJX0RTTV9GVU5DXzZHX0JQKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mzg3Olx0XHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHoocnR3ZGV2LCBvYmosXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODgtXHRcdFx0XHRcdFx0ICAgICBcdTAwMjZyZXMtXHUwMDNldS5wb2xpY3lfNmdoeik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODktXHRlbHNlIGlmIChmdW5jID09IFJUVzg5X0FDUElfRFNNX0ZVTkNfNkdIWl9TUF9TVVApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTA6XHRcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel9zcChydHdkZXYsIG9iaixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5MS1cdFx0XHRcdFx0XHRcdFx1MDAyNnJlcy1cdTAwM2V1LnBvbGljeV82Z2h6X3NwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5Mi1cdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ182R0haX1ZMUF9TVVApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTM6XHRcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfNmdoel92bHAocnR3ZGV2LCBvYmosXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTQtXHRcdFx0XHRcdFx0XHQgXHUwMDI2cmVzLVx1MDAzZXUucG9saWN5XzZnaHpfdmxwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5NS1cdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ19UQVNfRU4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTY6XHRcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfdGFzKHJ0d2Rldiwgb2JqLCBcdTAwMjZyZXMtXHUwMDNldS5wb2xpY3lfdGFzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5Ny1cdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ19SRUdfUlVMRVNfRU4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTg6XHRcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfcmVnX3J1bGVzKHJ0d2Rldiwgb2JqLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk5LVx0XHRcdFx0XHRcdFx0ICBcdTAwMjZyZXMtXHUwMDNldS5wb2xpY3lfcmVnX3J1bGVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQwMC1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQwMTpcdFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3ZhbHVlKHJ0d2Rldiwgb2JqLCBcdTAwMjZyZXMtXHUwMDNldS52YWx1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MDItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDA3OmludCBydHc4OV9hY3BpX2V2YWx1YXRlX3J0YWcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDA4Olx0XHRcdCAgICAgc3RydWN0IHJ0dzg5X2FjcGlfcnRhZ19yZXN1bHQgKnJlcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQwOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MTA6XHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9kYXRhICpkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDExLVx0dTMyIGJ1Zl9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDE0Olx0ZGF0YSA9IHJ0dzg5X2FjcGlfZXZhbHVhdGVfbWV0aG9kKHJ0d2RldiwgXCYjMzQ7UlRBR1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MTUtXHRpZiAoIWRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDE5LVx0aWYgKGJ1Zl9sZW4gIT0gc2l6ZW9mKCpyZXMpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MjA6XHRcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0OyVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDIxLVx0XHRcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDI2Olx0KnJlcyA9ICooc3RydWN0IHJ0dzg5X2FjcGlfcnRhZ19yZXN1bHQgKilkYXRhLVx1MDAzZWJ1ZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQyODpcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFwmIzM0O2FudGVubmFfZ2FpbjogXCYjMzQ7LCByZXMsIHNpemVvZigqcmVzKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MjktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDM1OmVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBydHc4OV9hY3BpX3Nhcl9nZXRfc3ViYmFuZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzYtXHRcdFx0XHRcdFx0ICAgICAgIHUzMiBjZW50ZXJfZnJlcSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzktXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDQwOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDQxLVx0XHRcdCAgICBcJiMzNDtjZW50ZXIgZnJlcSAldSB0byBBQ1BJIFNBUiBzdWJiYW5kIGlzIHVuaGFuZGxlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjYtXHQgKiBhbmQgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzgsIHNvIGRpcmVjdGx5IGRlc2NyaWJlIGl0IHdpdGhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ2NzpcdCAqIHN0cnVjdCBydHc4OV82Z2h6X3NwYW4uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjgtXHQgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NzU6ZW51bSBydHc4OV9iYW5kIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmRfdG9fYmFuZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NzY6XHRcdFx0XHRcdCAgICAgICBlbnVtIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmQgc3ViYmFuZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ3Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDc5LVx0ZGVmYXVsdDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4MDpcdFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ4MS1cdFx0XHQgICAgXCYjMzQ7QUNQSSBTQVIgc3ViYmFuZCAldSB0byBiYW5kIGlzIHVuaGFuZGxlZFxcblwmIzM0Oywgc3ViYmFuZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTA4OnN0YXRpYyB1OCBydHc4OV9hY3BpX3Nhcl9yZnBhdGhfdG9faHBfYW50aWR4KGVudW0gcnR3ODlfcmZfcGF0aCByZnBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01MDkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTUxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUxOTpzdGF0aWMgdTggcnR3ODlfYWNwaV9zYXJfcmZwYXRoX3RvX3J0X2FudGlkeChlbnVtIHJ0dzg5X3JmX3BhdGggcmZwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTIwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MzA6c3RhdGljIHMxNiBydHc4OV9hY3BpX3Nhcl9ub3JtYWxpemVfaHBfdmFsKHU4IHYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01MzEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU0NDpzdGF0aWMgczE2IHJ0dzg5X2FjcGlfc2FyX25vcm1hbGl6ZV9ydF92YWwodTggdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NTU2PXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTU3OnZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zdGRfbGVnYWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU1ODpcdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9zYXJfcmVjb2duaXRpb24gKnJlYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU1OS1cdFx0XHRcdCAgICBjb25zdCB2b2lkICpjb250ZW50LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTYwOlx0XHRcdFx0ICAgIHN0cnVjdCBydHc4OV9zYXJfZW50cnlfZnJvbV9hY3BpICplbnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTYyOlx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3N0ZF9sZWdhY3kgKnB0ciA9IGNvbnRlbnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NjM6XHRlbnVtIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmQgc3ViYmFuZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2NDpcdGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTY1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTU3OT1zdGF0aWNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4MDp2b2lkIHJ0dzg5X2FjcGlfc2FyX2xvYWRfc3RkX2hhc182Z2h6KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4MTpcdFx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3Nhcl9yZWNvZ25pdGlvbiAqcmVjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTgyLVx0XHRcdFx0ICAgICAgY29uc3Qgdm9pZCAqY29udGVudCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4MzpcdFx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV9zYXJfZW50cnlfZnJvbV9hY3BpICplbnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01ODQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTg1Olx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3N0ZF9oYXNfNmdoeiAqcHRyID0gY29udGVudDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4NjpcdGVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBzdWJiYW5kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTg3Olx0ZW51bSBydHc4OV9yZl9wYXRoIHBhdGg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01ODgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NjAwPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjAxOnZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zbWxfbGVnYWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYwMjpcdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9zYXJfcmVjb2duaXRpb24gKnJlYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTYwMy1cdFx0XHRcdCAgICBjb25zdCB2b2lkICpjb250ZW50LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjA0Olx0XHRcdFx0ICAgIHN0cnVjdCBydHc4OV9zYXJfZW50cnlfZnJvbV9hY3BpICplbnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MDUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjA2Olx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3NtbF9sZWdhY3kgKnB0ciA9IGNvbnRlbnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MDc6XHRlbnVtIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmQgc3ViYmFuZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYwODpcdGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjA5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTYyMz1zdGF0aWNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyNDp2b2lkIHJ0dzg5X2FjcGlfc2FyX2xvYWRfc21sX2hhc182Z2h6KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyNTpcdFx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3Nhcl9yZWNvZ25pdGlvbiAqcmVjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjI2LVx0XHRcdFx0ICAgICAgY29uc3Qgdm9pZCAqY29udGVudCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyNzpcdFx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV9zYXJfZW50cnlfZnJvbV9hY3BpICplbnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02Mjgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjI5Olx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3NtbF9oYXNfNmdoeiAqcHRyID0gY29udGVudDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYzMDpcdGVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBzdWJiYW5kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjMxOlx0ZW51bSBydHc4OV9yZl9wYXRoIHBhdGg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjQ0OnN0YXRpYyBzMTYgcnR3ODlfYWNwaV9nZW9fc2FyX25vcm1hbGl6ZV9kZWx0YShzOCBkZWx0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTY0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjUzOnN0YXRpYyBlbnVtIHJ0dzg5X2FjcGlfZ2VvX3Nhcl9yZWdkX2hwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2NTQ6cnR3ODlfYWNwaV9nZW9fc2FyX3JlZ2RfY29udmVydF9ocF9pZHgoZW51bSBydHc4OV9yZWd1bGF0aW9uX3R5cGUgcmVnZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTY1NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Njc1OnN0YXRpYyBlbnVtIHJ0dzg5X2FjcGlfZ2VvX3Nhcl9yZWdkX3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2NzY6cnR3ODlfYWNwaV9nZW9fc2FyX3JlZ2RfY29udmVydF9ydF9pZHgoZW51bSBydHc4OV9yZWd1bGF0aW9uX3R5cGUgcmVnZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTY3Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NzAwPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzAxOnZvaWQgcnR3ODlfYWNwaV9nZW9fc2FyX2xvYWRfYnlfaHAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzAyOlx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfZ2VvX3Nhcl9ocF92YWwgKnB0cixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjcwMzpcdFx0XHRcdCAgIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLCBzMTYgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcwNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MDU6XHR1OCBhbnRpZHggPSBydHc4OV9hY3BpX3Nhcl9yZnBhdGhfdG9faHBfYW50aWR4KHBhdGgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzA2Olx0czE2IGRlbHRhID0gcnR3ODlfYWNwaV9nZW9fc2FyX25vcm1hbGl6ZV9kZWx0YShwdHItXHUwMDNlZGVsdGFbYW50aWR4XSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MDc6XHRzMTYgbWF4ID0gcnR3ODlfYWNwaV9zYXJfbm9ybWFsaXplX2hwX3ZhbChwdHItXHUwMDNlbWF4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcwOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz03MTI9c3RhdGljXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MTM6dm9pZCBydHc4OV9hY3BpX2dlb19zYXJfbG9hZF9ieV9ydChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MTQ6XHRcdFx0XHQgICBjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9nZW9fc2FyX3J0X3ZhbCAqcHRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzE1LVx0XHRcdFx0ICAgczE2ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03MTYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzE3Olx0czE2IGRlbHRhID0gcnR3ODlfYWNwaV9nZW9fc2FyX25vcm1hbGl6ZV9kZWx0YShwdHItXHUwMDNlZGVsdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzE4Olx0czE2IG1heCA9IHJ0dzg5X2FjcGlfc2FyX25vcm1hbGl6ZV9ydF92YWwocHRyLVx1MDAzZW1heCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03MTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NzIzPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzI0OnZvaWQgcnR3ODlfYWNwaV9nZW9fc2FyX2xvYWRfaHBfbGVnYWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcyNS1cdFx0XHRcdCAgICAgICBjb25zdCB2b2lkICpjb250ZW50LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzI2Olx0XHRcdFx0ICAgICAgIGVudW0gcnR3ODlfcmVndWxhdGlvbl90eXBlIHJlZ2QsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3Mjc6XHRcdFx0XHQgICAgICAgc3RydWN0IHJ0dzg5X3Nhcl9lbnRyeV9mcm9tX2FjcGkgKmVudClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcyOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3Mjk6XHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9nZW9fc2FyX2hwX2xlZ2FjeSAqcHRyID0gY29udGVudDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczMDpcdGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX2dlb19zYXJfaHBfbGVnYWN5X2VudHJ5ICpwdHJfZW50O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzMxOlx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfZ2VvX3Nhcl9ocF92YWwgKnB0cl9lbnRfdmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzMyOlx0ZW51bSBydHc4OV9hY3BpX2dlb19zYXJfcmVnZF9ocCBnZW9faWR4ID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczMzpcdFx0cnR3ODlfYWNwaV9nZW9fc2FyX3JlZ2RfY29udmVydF9ocF9pZHgocmVnZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MzQ6XHRlbnVtIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmQgc3ViYmFuZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczNTpcdGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzM2Olx0ZW51bSBydHc4OV9iYW5kIGJhbmQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03MzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzQwLVx0Zm9yIChzdWJiYW5kID0gMDsgc3ViYmFuZCBcdTAwM2MgTlVNX09GX1JUVzg5X0FDUElfU0FSX1NVQkJBTkQ7IHN1YmJhbmQmIzQzOyYjNDM7KSB7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODk5MwoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDI3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWx0ZWsgcnR3ODkgV2lyZWxlc3MgRHJpdmVyIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBSZWFsdGVrIHJ0dzg5IHdpcmVsZXNzIGRyaXZlciwgYW5kIGl0JiMzOTtzIHN0cnVjdHVyZWQgaW4gYSBwcmV0dHkgc3RhbmRhcmQgd2F5LCB3aXRoIGRpZmZlcmVudCBjb21wb25lbnRzIGxpa2UgYHJ0dzg5X2NvcmVgLCBgcnR3ODlfODg1MWJgLCBhbmQgc2VwYXJhdGUgbW9kdWxlcyBmb3IgUENJIGFuZCBVU0IgKGBydHc4OV9wY2lgLCBgcnR3ODlfdXNiYCkuIFRoYXQmIzM5O3MgaW1tZWRpYXRlbHkgaW50ZXJlc3RpbmcgYmVjYXVzZSB0aGUgVVNCIHN1cHBvcnQgb3BlbnMgdXAgc29tZSBmdXp6aW5nIHBvc3NpYmlsaXRpZXMgd2l0aCBzeXprYWxsZXIuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBJIGNvdWxkIHVzZSBgZHVtbXlfaGNkYCBhbmQgYHJhdy1nYWRnZXRgIHRvIHRhcmdldCBpdC4KCk5vdywgbXkgZm9jdXMgaXMgb24gd2hldGhlciBhIHBhcnRpY3VsYXIgZmlsZSwgYHJ0dzg4NTFiX3Jmay5jYCwgaXMgYnVpbHQgaW50byB0aGUgVVNCIGNvbXBvbmVudC4gSSBzZWUgdGhhdCBpdCYjMzk7cyBsaXN0ZWQgYXMgcGFydCBvZiB0aGUgYHJ0dzg5Xzg4NTFiYCBidWlsZDogYHJ0dzg5Xzg4NTFiLW9ianMgOj0gcnR3ODg1MWIubyBydHc4ODUxYl90YWJsZS5vIHJ0dzg4NTFiX3Jmay5vYC4gUmlnaHQsIHNvIGl0JiMzOTtzIGNvbXBpbGVkIGludG8gYHJ0dzg5Xzg4NTFiLm9gLCBub3QgZGlyZWN0bHkgaW50byBhIFVTQi1zcGVjaWZpYyBtb2R1bGUuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBtb2R1bGUgKmlzKiBjb21waWxlZCB3aGVuIFVTQiBzdXBwb3J0IGlzIGVuYWJsZWQuCgpUbyBjb25maXJtIHRoYXQsIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0aGUgYE1ha2VmaWxlYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9gIGFuZCB2ZXJpZnkgdGhhdCBgcnR3ODg1MWJfcmZrLm9gIGlzIGluZGVlZCBpbmNsdWRlZCB3aGVuIHRoZSBVU0IgY29tcG9uZW50IGlzIGJ1aWx0LiBJJiMzOTttIGdvaW5nIHRvIHRyYWNrIHRoYXQgZG93biBhbmQgY29uZmlybSB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg4NTFiX3JmayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU9MjY9cnR3ODlfODg1MWItb2JqcyA6PSBydHc4ODUxYi5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTI3LVx0XHQgICAgcnR3ODg1MWJfdGFibGUubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToyODpcdFx0ICAgIHJ0dzg4NTFiX3Jmay5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjI5Olx0XHQgICAgcnR3ODg1MWJfcmZrX3RhYmxlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTExLSNpbmNsdWRlIFwmIzM0O3J0dzg4NTFiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoxMjojaW5jbHVkZSBcJiMzNDtydHc4ODUxYl9yZmsuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjEzOiNpbmNsdWRlIFwmIzM0O3J0dzg4NTFiX3Jma190YWJsZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTQtI2luY2x1ZGUgXCYjMzQ7cnR3ODg1MWJfdGFibGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYz0yNTE9c3RhdGljIGNvbnN0IHN0cnVjdCBydHc4OV9ycnNyX2NmZ3MgcnR3ODg1MWJfcnJzcl9jZmdzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0yNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjU2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3ODlfcmZraWxsX3JlZ3MgcnR3ODg1MWJfcmZraWxsX3JlZ3MgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjU3LVx0LnBpbm11eCA9IHtSX0FYX0dQSU84XzE1X0ZVTkNfU0VMLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYz0xNzMyPXN0YXRpYyB2b2lkIHJ0dzg4NTFiX3NldF9jaGFubmVsX2hlbHAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGVudGVyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjE3NTQ6c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3NTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjE3Njc6c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX2NoYW5uZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3NjgtXHRcdFx0XHQgc3RydWN0IHJ0dzg5X3ZpZl9saW5rICpydHd2aWZfbGluaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoxNzg1OnN0YXRpYyB2b2lkIHJ0dzg4NTFiX3Jma19iYW5kX2NoYW5nZWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3ODYtXHRcdFx0XHQgICAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoxNzkyOnN0YXRpYyB2b2lkIHJ0dzg4NTFiX3Jma19zY2FuKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzkzLVx0XHRcdCAgICAgIHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MTgwMDpzdGF0aWMgdm9pZCBydHc4ODUxYl9yZmtfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE4MDEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYz0yNDkzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3ODlfY2hpcF9vcHMgcnR3ODg1MWJfY2hpcF9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1MDktXHQucmZrX2h3X2luaXRcdFx0PSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjI1MTA6XHQucmZrX2luaXRcdFx0PSBydHc4ODUxYl9yZmtfaW5pdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0yNTExLVx0LnJma19pbml0X2xhdGVcdFx0PSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjI1MTI6XHQucmZrX2NoYW5uZWxcdFx0PSBydHc4ODUxYl9yZmtfY2hhbm5lbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoyNTEzOlx0LnJma19iYW5kX2NoYW5nZWRcdD0gcnR3ODg1MWJfcmZrX2JhbmRfY2hhbmdlZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoyNTE0Olx0LnJma19zY2FuXHRcdD0gcnR3ODg1MWJfcmZrX3NjYW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjUxNTpcdC5yZmtfdHJhY2tcdFx0PSBydHc4ODUxYl9yZmtfdHJhY2ssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjUxNi1cdC5wb3dlcl90cmltXHRcdD0gcnR3ODg1MWJfcG93ZXJfdHJpbSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM9MjU3NT1jb25zdCBzdHJ1Y3QgcnR3ODlfY2hpcF9pbmZvIHJ0dzg4NTFiX2NoaXBfaW5mbyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjcxOS1cdC5ic3NfY2xyX21hcF9yZWdcdD0gUl9CU1NfQ0xSX01BUF9WMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoyNzIwOlx0LnJma2lsbF9pbml0XHRcdD0gXHUwMDI2cnR3ODg1MWJfcmZraWxsX3JlZ3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjcyMS1cdC5yZmtpbGxfZ2V0XHRcdD0ge1JfQVhfR1BJT19FWFRfQ1RSTCwgQl9BWF9HUElPX0lOXzl9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTAtI2luY2x1ZGUgXCYjMzQ7cnR3ODg1MWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxMTojaW5jbHVkZSBcJiMzNDtydHc4ODUxYl9yZmsuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxMjojaW5jbHVkZSBcJiMzNDtydHc4ODUxYl9yZmtfdGFibGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xMy0jaW5jbHVkZSBcJiMzNDtydHc4ODUxYl90YWJsZS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmtfdGFibGUuYy00LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmtfdGFibGUuYzo1OiNpbmNsdWRlIFwmIzM0O3J0dzg4NTFiX3Jma190YWJsZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jma190YWJsZS5jLTYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE5MDkKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA2NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIHJ0dzg5IERyaXZlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBydHc4OWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaXRzIGJ1aWxkIGNvbmZpZ3VyYXRpb25zLiBJIHNlZSB0aGF0IGl0IGNhbiBiZSBidWlsdCB3aXRoIGBDT05GSUdfUlRXODlfVVNCYCBhbmQgYENPTkZJR19SVFc4OV84ODUxQmAgZW5hYmxlZC4gSW50ZXJlc3RpbmcsIGEgVVNCIGNvbmZpZ3VyYXRpb24gYW5kIGEgc3BlY2lmaWMgY2hpcHNldC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIGNvbmZpZ3VyYXRpb25zIGltcGFjdCB0aGUgZHJpdmVyJiMzOTtzIGJlaGF2aW9yLiBUaGUgcmVsZXZhbnQgZnVuY3Rpb24gaGVyZSBzZWVtcyB0byBiZSBgX2Rwa19pbmZvcm1hdGlvbmAuIFJpZ2h0LCBsZXQmIzM5O3MgdHJhY2UgdGhpcy4gSSBuZWVkIHRvIHNlZSBleGFjdGx5IHdoZXJlIGBfZHBrX2luZm9ybWF0aW9uYCBpcyBjYWxsZWQgd2l0aGluIHRoZSBkcml2ZXImIzM5O3MgY29kZS4gVGhhdCB3aWxsIHRlbGwgbWUgaG93IHRoZSBVU0Igb3IgY2hpcHNldC1zcGVjaWZpYyBhc3BlY3RzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGlzIGNvbnRleHQuIFRpbWUgdG8gcHVsbCB1cCB0aGUgc291cmNlIGFuZCBkaWcgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X2Rwa19pbmZvcm1hdGlvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MTg4MD1zdGF0aWMgdm9pZCBfZHBrX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE4ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE4ODk6c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE4OTAtXHRcdFx0ICAgICBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTI2MDk9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBmb3JjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2MjYtXHRcdF9kcGtfYmt1cF9yZihydHdkZXYsIGRwa19yZl9yZWcsIHJmX2JrdXAsIHBhdGgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNjI3Olx0XHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2MjgtXHRcdF9kcGtfaW5pdChydHdkZXYsIHBhdGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MTg2MD1zdGF0aWMgdm9pZCBfZHBrX3J4X2RjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0xODY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoxODY5OnN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0xODcwLVx0XHRcdCAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI2MTA9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBmb3JjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI2NTItXHRcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIFx1MDAyNmJhY2t1cF9yZl92YWxbcGF0aF1bMF0sIHBhdGgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNjUzOlx0XHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI2NTQtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0xNzQ0PXN0YXRpYyB2b2lkIF9kcGtfcnhfZGNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE3NTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE3NTE6c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE3NTItXHRcdFx0ICAgICBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTI0ODQ9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBmb3JjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI1MTQtXHRcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIFx1MDAyNmJhY2t1cF9yZl92YWxbcGF0aF1bMF0sIHBhdGgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNTE1Olx0XHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI1MTYtXHRcdGlmIChydHdkZXYtXHUwMDNlaXNfdHNzaV9tb2RlW3BhdGhdKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTE4NTI9c3RhdGljIHZvaWQgX2Rwa19yeF9kY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4NjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODYzOnN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTg2NC1cdFx0XHQgICAgIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLCBlbnVtIHJ0dzg5X2NoYW5jdHhfaWR4IGNoYW5jdHhfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI1ODY9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjA5LVx0XHRfcmZrX2JhY2t1cF9yZl9yZWcocnR3ZGV2LCBiYWNrdXBfcmZfdmFsW3BhdGhdLCBwYXRoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2MTA6XHRcdF9kcGtfaW5mb3JtYXRpb24ocnR3ZGV2LCBwaHksIHBhdGgsIGNoYW5jdHhfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2MTEtXHRcdGlmIChydHdkZXYtXHUwMDNlaXNfdHNzaV9tb2RlW3BhdGhdKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MTg3Mz1zdGF0aWMgdTggX2Rwa19vbmVfc2hvdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoxOTA3OnN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTA4LVx0XHRcdCAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jPTI2OTY9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBmb3JjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTI3MzEtXHRcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIGJhY2t1cF9yZl92YWxbcGF0aF0sIHBhdGgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoyNzMyOlx0XHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTI3MzMtXHRcdF9kcGtfaW5pdChydHdkZXYsIHBhdGgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MzY1CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIHByb3ZpZGVkIGluZm9ybWF0aW9uOgoKKipUcmFjaW5nIHRoZSBSRiBDYWxpYnJhdGlvbiBQYXRoKioKCk9rYXksIHNvIEkgc2VlIHRoYXQgYF9kcGtfaW5mb3JtYXRpb25gIGlzIGJlaW5nIGNhbGxlZCBieSBgX2Rwa19jYWxfc2VsZWN0YC4gR2l2ZW4gdGhhdCB0aGVzZSBhcmUgb2J2aW91c2x5IGludGVybmFsIGZ1bmN0aW9uIG5hbWVzLCBhbmQgdGhlIGNvbnRleHQgc3VnZ2VzdHMgUkYgY2FsaWJyYXRpb24gaXMgaW52b2x2ZWQsIG15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIG1vZHVsZSByZWxhdGVkIHRvIFJGIGNhbGlicmF0aW9uIHJvdXRpbmVzLiBNeSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBwaW5wb2ludCB0aGUgb3JpZ2luIG9mIGBfZHBrX2NhbF9zZWxlY3RgLiBVbmRlcnN0YW5kaW5nICppdHMqIGNhbGxpbmcgY29udGV4dCB3aWxsIGdpdmUgbWUgYSBjbGVhcmVyIHBpY3R1cmUgb2YgdGhlIGxhcmdlciBjYWxpYnJhdGlvbiB3b3JrZmxvdywgaW5jbHVkaW5nIHRoZSBmdW5jdGlvbiYjMzk7cyByZXNwb25zaWJpbGl0eSBhbmQgdGhlIGRhdGEgaXQgY29uc3VtZXMuIEkgbmVlZCB0byB0cmFjZSBiYWNrIGZyb20gYF9kcGtfY2FsX3NlbGVjdGAgdG8gaWRlbnRpZnkgaXRzIHBhcmVudCBmdW5jdGlvbihzKSB0byB1bmRlcnN0YW5kIHRoZSBsYXJnZXIgY29udGV4dC4gVGhpcyB3aWxsIGdpdmUgbWUgYSBnb29kIHVuZGVyc3RhbmRpbmcgb2Ygd2hlcmUgYF9kcGtfaW5mb3JtYXRpb25gIGZpdHMgaW50byB0aGUgd2hvbGUgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X2Rwa19jYWxfc2VsZWN0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0yNTcxPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNjA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNjA5OnN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2MTAtXHRcdFx0ICAgIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIHU4IGtwYXRoLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjY2OD1zdGF0aWMgdm9pZCBfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSwgYm9vbCBmb3JjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI2NzU6XHRfZHBrX2NhbF9zZWxlY3QocnR3ZGV2LCBmb3JjZSwgcGh5LCBfa3BhdGgocnR3ZGV2LCBwaHkpLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2NzYtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjU3MD1zdGF0aWMgYm9vbCBfZHBrX21haW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjYwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjYxMDpzdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjExLVx0XHRcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI3MTI9c3RhdGljIHZvaWQgX2RwayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNzIyLVx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNzIzOlx0XHRfZHBrX2NhbF9zZWxlY3QocnR3ZGV2LCBmb3JjZSwgcGh5LCBfa3BhdGgocnR3ZGV2LCBwaHkpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNzI0LVx0XHRcdFx0Y2hhbmN0eF9pZHgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjQzNT1zdGF0aWMgYm9vbCBfZHBrX21haW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjQ4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjQ4NDpzdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDg1LVx0XHRcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTI1NzQ9c3RhdGljIHZvaWQgX2RwayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIGJvb2wgZm9yY2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNTg0LVx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNTg1Olx0XHRfZHBrX2NhbF9zZWxlY3QocnR3ZGV2LCBmb3JjZSwgcGh5LCBSRl9BQiwgY2hhbmN0eF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNTg2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0yNTMzPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjU4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI1ODY6c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI1ODctXHRcdFx0ICAgIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIHU4IGtwYXRoLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTM4NTk9dm9pZCBydHc4ODUyYnRfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMzg2Ny1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjM4Njg6XHRcdF9kcGtfY2FsX3NlbGVjdChydHdkZXYsIHBoeV9pZHgsIFJGX0FCLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0zODY5LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jPTI2ODg9c3RhdGljIHZvaWQgX2Rwa19kcmZfZGlyZWN0X2NudHJsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggcGF0aCwgYm9vbCBpc19ieWJiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjY5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MjY5NjpzdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0yNjk3LVx0XHRcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jPTI4MDE9c3RhdGljIHZvaWQgX2RwayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIGJvb2wgZm9yY2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0yODExLVx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoyODEyOlx0XHRfZHBrX2NhbF9zZWxlY3QocnR3ZGV2LCBmb3JjZSwgcGh5LCBfa3BhdGgocnR3ZGV2LCBwaHkpLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTI4MTMtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2Njk0CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNDkxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJ1ZyBGaXgqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSSBzZWUgdGhhdCBgX2Rwa2AgaXMgdHJpZ2dlcmVkIGJ5IGBydHc4ODUxYl9yZmtfdHJhY2tgIGFuZCBgcnR3ODg1MWJfcmZrX2NoYW5uZWxgLCBhbmQgaW1wb3J0YW50bHksIHRoZXNlIGZ1bmN0aW9ucyBhcmUgaG9va2VkIHVwIHRvIHRoZSBgcnR3ODg1MWJfY2hpcF9vcHNgIHN0cnVjdHVyZS4gVGhhdCB0ZWxscyBtZSB0aGVzZSBhcmUgZGVmaW5pdGVseSBleGVjdXRlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gb3Igd2hlbiB0aGUgY2hhbm5lbCBjaGFuZ2VzLCB3aGljaCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIE5vdywgdGhlIGRyaXZlciBzdXBwb3J0cyBVU0IsIHdoaWNoIG1lYW5zIEkgY2FuIGxldmVyYWdlIGBkdW1teV9oY2RgIGFuZCBgcmF3LWdhZGdldGAgZm9yIGZ1enppbmcuCgpCdXQgaG9sZCBvbiwgaXMgVVNCIHN1cHBvcnQgZXZlbiByZWxldmFudCB0byB0aGUgYDg4NTFiYCBzcGVjaWZpY2FsbHk/IExldCBtZSBjb25maXJtLiBBaCwgeWVzLCB0aGUgYE1ha2VmaWxlYCBjb25maXJtcyB0aGUgYHJ0dzg5Xzg4NTFidWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYHJ0dzg4NTFidS5vYCwgaXMgaW5jbHVkZWQgYmFzZWQgb24gdGhlIGBDT05GSUdfUlRXODlfODg1MUJVYCBmbGFnLiBUaGF0IG1lYW5zIGl04oCZcyByZWFjaGFibGUgdmlhIGEgVVNCIGZ1enppbmcgc2V0dXAsIHBlcmZlY3QuCgpOb3cgdG8gdGhlIGNvcmUgb2YgdGhlIGZpeC4gSXQmIzM5O3MgYSBzaW1wbGUgc3dhcDogYGNoYW4tJmd0O2JhbmRfd2lkdGhgIGFuZCBgY2hhbi0mZ3Q7Y2hhbm5lbGAgYXJlIHN3YXBwZWQgaW4gdGhlIGFzc2lnbm1lbnQgdG8gYGRway0mZ3Q7YnBgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgYml0IG9mIGEgZGF0YSBjb3JydXB0aW9uIGlzc3VlLiBUaGlzIGJ1ZyBkaXJlY3RseSBpbXBhY3RzIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGBkcGstJmd0O2JwW3BhdGhdW2tpZHhdLmNoYCBhbmQgYGJ3YC4gSSBzdXNwZWN0IHRoZXNlIHZhbHVlcyBmZWVkIGludG8gdGhlIERQSyAoRGlnaXRhbCBQcmUtRGlzdG9ydGlvbikgY2FsaWJyYXRpb24gbG9naWMgbGF0ZXIgb24uIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIHRoaXMgY291bGQgcG90ZW50aWFsbHkgaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiBwZXJmb3JtYW5jZSBvciBldmVuIGludHJvZHVjZSBpbnN0YWJpbGl0eSBpZiB0aGUgRFBLIGlzIHNlbnNpdGl2ZSB0byB0aGVzZSB2YWx1ZXMuCgpHaXZlbiB0aGF0IGl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBkcml2ZXIgSSAqY2FuKiBmdXp6IHZpYSBVU0IsIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nIHllcyAtIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggaW52ZXN0aWdhdGluZy4gSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBkb3duc3RyZWFtIHVzZSBvZiB0aG9zZSB2YWx1ZXMgdG8gc2VlIHRoZSBmdWxsIGltcGFjdC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgZXhhY3RseSB3aGF0IGBfZHBrYCBkb2VzLiBPaywgdGhhdCBmdW5jdGlvbiBpcyBzaW1wbGU6IGl0IHN0b3JlcyBjaGFubmVsIGFuZCBiYW5kd2lkdGggaW5mbyBpbiBgZHBrLSZndDticGAuIEkgc2hvdWxkIGxvb2sgYXQgYWxsIHVzZXMgb2YgYGRway0mZ3Q7YnBgIHRvIHVuZGVyc3RhbmQgdGhlIGRhdGEgZmxvdywgYW5kIGlkZW50aWZ5IGlmIHRoZXkgaGF2ZSBhbnkgc2VjdXJpdHkgaW1wbGljYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcGstXHUwMDNlYnAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjE1IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTE4NjM9c3RhdGljIHZvaWQgX2Rwa19vbm9mZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTg3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg3MTpcdHZhbCA9IGRway1cdTAwM2Vpc19kcGtfZW5hYmxlICogb2ZmX3JldmVyc2UgKiBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTg3Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTE4ODA9c3RhdGljIHZvaWQgX2Rwa19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xODg1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxODg2Olx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnBhdGhfb2sgPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xODg3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTE4ODk9c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xODk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxODk3Olx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPSBjaGFuLVx1MDAzZWJhbmRfdHlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg5ODpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXHUwMDNlY2hhbm5lbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg5OTpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXHUwMDNlYmFuZF93aWR0aDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTkwMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5MDUtXHRcdCAgICBzdHJfb25fb2ZmKHJ0d2Rldi1cdTAwM2VkYmNjX2VuKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkwNjpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcJiMzNDsyR1wmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5MDc6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAxID8gXCYjMzQ7NUdcJiMzNDsgOiBcJiMzNDs2R1wmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkwODpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkwOTpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXCYjMzQ7MjBNXCYjMzQ7IDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkxMDpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAxID8gXCYjMzQ7NDBNXCYjMzQ7IDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkxMTpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAyID8gXCYjMzQ7ODBNXCYjMzQ7IDogXCYjMzQ7MTYwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5MTItfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MTk5Mj1zdGF0aWMgdm9pZCBfZHBrX3RwZ19zZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5OTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5OTY6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfODApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTk5Ny1cdFx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YsIDB4MCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5OTgtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19TRUwsIE1BU0tEV09SRCwgMHhmZmUwZmEwMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5OTk6XHR9IGVsc2UgaWYgKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzQwKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwMDAtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjAwNy1cdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXCYjMzQ7W0RQS10gVFBHIFNlbGVjdCBmb3IgJXNcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwMDg6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MCA/IFwmIzM0OzgwTVwmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwMDk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzIwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwMTAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjA3Mz1zdGF0aWMgdm9pZCBfZHBrX3BhcmFfcXVlcnkoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwOTE6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrID0gKHBhcmEgXHUwMDNlXHUwMDNlIDEwKSBcdTAwMjYgMHgzZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjA5MjpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayA9IChwYXJhIFx1MDAzZVx1MDAzZSAyNikgXHUwMDI2IDB4M2Y7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwOTMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMDk1LVx0XHQgICAgXCYjMzQ7W0RQS10gdGhlcm1hbC8gdHhhZ2NfUkYgKEslZCkgPSAweCV4LyAweCV4XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMDk2Olx0XHQgICAgZHBrLVx1MDAzZWN1cl9rX3NldCwgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMDk3Olx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnR4YWdjX2Rwayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwOTgtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjIyMj1zdGF0aWMgdm9pZCBfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIyMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIyMjY6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMjI3LVx0XHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX01PRCwgUkZSRUdfTUFTSywgMHg1MDUyMSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMjM4LVx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9SQ0tELCBSUl9SQ0tEX0JXLCAweDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMjM5Olx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9CVEMsIFJSX0JUQ19UWEJCLCBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgJiM0MzsgMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIyNDAtXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1JYQkIsIDB4MCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0yMzM1PXN0YXRpYyB1OCBfZHBrX2FnYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMzY0LVx0XHRcdGlmIChhZ2NfY250ID09IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjM2NTpcdFx0XHRcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMzY2LVx0XHRcdFx0XHRfZHBrX2J5cGFzc19yeGlxYyhydHdkZXYsIHBhdGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjUxNz1zdGF0aWMgdm9pZCBfZHBrX2dhaW5fbm9ybWFsaXplKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI1NDQ6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uZ3MgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNTQ1LVx0XHRydHc4OV9waHlfcmVhZDMyX21hc2socnR3ZGV2LCByZWdba2lkeF1bY3VyX2tfc2V0XSAmIzQzOyAocGF0aCBcdTAwM2NcdTAwM2MgOCksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0yNTQ5PXN0YXRpYyB2b2lkIF9kcGtfb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjU1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjU1OTpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjU2MDpcdFx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnBhdGhfb2sgfCBCSVQoZHBrLVx1MDAzZWN1cl9rX3NldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjItXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFwmIzM0O1tEUEtdIFMlZFslZF0gcGF0aF9vayA9IDB4JXhcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI1NjM6XHRcdCAgICBwYXRoLCBraWR4LCBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjUtXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQ0gwQSAmIzQzOyAocGF0aCBcdTAwM2NcdTAwM2MgOCkgJiM0MzsgKGtpZHggXHUwMDNjXHUwMDNjIDIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNTY2Olx0XHRcdCAgICAgICBCX0RQRF9NRU4sIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjU2Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTI2Nzg9c3RhdGljIHZvaWQgX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNjkyLVx0XHRcdCAgICBcJiMzNDtbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjY5MzpcdFx0XHQgICAgcGF0aCwga2lkeCwgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjY5NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI3MTI6XHRcdGRlbHRhX3RoZXIgPSBjdXJfdGhlciAtIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjcxMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MTctXHRcdFx0ICAgIFwmIzM0O1tEUEtfVFJLXSBleHRyYSBkZWx0YV90aGVyID0gJWQgKDB4JXggLyAweCV4QGspXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNzE4Olx0XHRcdCAgICBkZWx0YV90aGVyLCBjdXJfdGhlciwgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjcxOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MjEtXHRcdFx0ICAgIFwmIzM0O1tEUEtfVFJLXSBkZWx0YV90eGFnYyA9ICVkICgweCV4IC8gMHgleEBrKVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjcyMjpcdFx0XHQgICAgdHhhZ2NfcmYgLSBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNzIzOlx0XHRcdCAgICB0eGFnY19yZiwgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnR4YWdjX2Rwayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MjQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0xODY5PXN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMTg3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MTg3NzpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID0gY2hhbi1cdTAwM2ViYW5kX3R5cGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4Nzg6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggPSBjaGFuLVx1MDAzZWNoYW5uZWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4Nzk6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVx1MDAzZWJhbmRfd2lkdGg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTE4ODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0xODg1LVx0XHQgICAgc3RyX29uX29mZihydHdkZXYtXHUwMDNlZGJjY19lbiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4ODY6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAwID8gXCYjMzQ7MkdcJiMzNDsgOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoxODg3Olx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMSA/IFwmIzM0OzVHXCYjMzQ7IDogXCYjMzQ7NkdcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4ODg6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4ODk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMCA/IFwmIzM0OzIwTVwmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4OTA6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMSA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzgwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTE4OTEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjAzMz1zdGF0aWMgdm9pZCBfZHBrX2dldF90aGVybWFsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTgga2lkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIwMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwMzg6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGsgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDM5LVx0XHRld21hX3RoZXJtYWxfcmVhZChcdTAwMjZydHdkZXYtXHUwMDNlcGh5c3RhdC5hdmdfdGhlcm1hbFtwYXRoXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDQxLVx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUkZLLCBcJiMzNDtbRFBLXSB0aGVybWFsQERQSyA9IDB4JXhcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNDI6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDQzLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTIwNTU9c3RhdGljIHZvaWQgX2Rwa19yZl9zZXR0aW5nKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggZ2Fpbixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIwNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNjA6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDYxLVx0XHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX01PRCwgUlJfTU9EX0RQSywgMHgyODBiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIwNzEtXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX1JDS0QsIFJSX1JDS0RfQlcsIDB4MSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNzI6XHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1RYQkIsIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyAmIzQzOyAxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjA3My1cdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfQlRDLCBSUl9CVENfUlhCQiwgMHgwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTIxMzc9dm9pZCBfZHBrX3RwZ19zZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIxNDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNDE6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfODApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIxNDItXHRcdHJ0dzg5X3BoeV93cml0ZTMyX2NscihydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyMTQzOlx0ZWxzZSBpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfNDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIxNDQtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjE0OC1cdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXCYjMzQ7W0RQS10gVFBHX1NlbGVjdCBmb3IgJXNcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNDk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MCA/IFwmIzM0OzgwTVwmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNTA6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzIwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTIxNTEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjUwOD1zdGF0aWMgdm9pZCBfZHBrX2ZpbGxfcmVzdWx0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1MjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1MjM6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrID0gdHhhZ2M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1MjQtXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UWEFHQ19SRksgJiM0MzsgKHBhdGggXHUwMDNjXHUwMDNjIDgpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjUyNzpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmID0gcHdzZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUyOC1cdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX0RQRF9CTkQgJiM0MzsgKHBhdGggXHUwMDNjXHUwMDNjIDgpICYjNDM7IChraWR4IFx1MDAzY1x1MDAzYyAyKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1MzQ6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uZ3MgPSBncztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUzNS1cdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX0RQRF9DSDBBICYjNDM7IChwYXRoIFx1MDAzY1x1MDAzYyA4KSAmIzQzOyAoa2lkeCBcdTAwM2NcdTAwM2MgMiksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNTQzPXN0YXRpYyBib29sIF9kcGtfcmVsb2FkX2NoZWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1NTQtXHRmb3IgKGlkeCA9IDA7IGlkeCBcdTAwM2MgUlRXODlfRFBLX0JLVVBfTlVNOyBpZHgmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1NTU6XHRcdGlmIChjdXJfYmFuZCAhPSBkcGstXHUwMDNlYnBbcGF0aF1baWR4XS5iYW5kIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1NTY6XHRcdCAgICBjdXJfY2ggIT0gZHBrLVx1MDAzZWJwW3BhdGhdW2lkeF0uY2gpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1NTctXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNTcwPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNTk5LVx0aWYgKCFpc19mYWlsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNjAwOlx0XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9IHRydWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI2MDEtXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI2MDI6XHRcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gZmFsc2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI2MDMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNjEwPXN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjI4LVx0XHRcdFx0XHRcdFx0ICAgY2hhbmN0eF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNjI5Olx0XHRcdGlmICghcmVsb2FkZWRbcGF0aF0gXHUwMDI2XHUwMDI2IGRway1cdTAwM2VicFtwYXRoXVswXS5jaCAhPSAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjMwLVx0XHRcdFx0ZHBrLVx1MDAzZWN1cl9pZHhbcGF0aF0gPSAhZHBrLVx1MDAzZWN1cl9pZHhbcGF0aF07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNzI3PXN0YXRpYyB2b2lkIF9kcGtfb25vZmYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjczMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjczMzpcdHZhbCA9IGRway1cdTAwM2Vpc19kcGtfZW5hYmxlIFx1MDAyNlx1MDAyNiAhb2ZmIFx1MDAyNlx1MDAyNiBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjczNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI3NDI9c3RhdGljIHZvaWQgX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNzU3LVx0XHRcdCAgICBcJiMzNDtbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6Mjc1ODpcdFx0XHQgICAgcGF0aCwga2lkeCwgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjc1OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3NjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3NjU6XHRcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggIT0gMCBcdTAwMjZcdTAwMjYgY3VyX3RoZXIgIT0gMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6Mjc2NjpcdFx0XHRkZWx0YV90aGVyW3BhdGhdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrIC0gY3VyX3RoZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3NjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3Njg6XHRcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNzY5LVx0XHRcdGRlbHRhX3RoZXJbcGF0aF0gPSBkZWx0YV90aGVyW3BhdGhdICogMyAvIDI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODEzLVx0XHRcdFx0XHRcdCAgQl9QMF9UWERQRCkgPT0gMHgwKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI4MTQ6XHRcdFx0XHRwd3NmWzBdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgdHhhZ2NfYmJfdHAgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODE1LVx0XHRcdFx0XHQgIHR4YWdjX2JiICYjNDM7IGluaV9kaWZmICYjNDM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI4MTYtXHRcdFx0XHRcdCAgdHNzaV9pbmZvLVx1MDAzZWV4dHJhX29mc3RbcGF0aF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI4MTc6XHRcdFx0XHRwd3NmWzFdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgdHhhZ2NfYmJfdHAgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODE4LVx0XHRcdFx0XHQgIHR4YWdjX2JiICYjNDM7IGluaV9kaWZmICYjNDM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODIwLVx0XHRcdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI4MjE6XHRcdFx0XHRwd3NmWzBdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgaW5pX2RpZmYgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgyMi1cdFx0XHRcdFx0ICB0c3NpX2luZm8tXHUwMDNlZXh0cmFfb2ZzdFtwYXRoXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgyMzpcdFx0XHRcdHB3c2ZbMV0gPSBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiAmIzQzOyBpbmlfZGlmZiAmIzQzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODI0LVx0XHRcdFx0XHQgIHRzc2lfaW5mby1cdTAwM2VleHRyYV9vZnN0W3BhdGhdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgyNy1cdFx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgyODpcdFx0XHRwd3NmWzBdID0gKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICYjNDM7IGRlbHRhX3RoZXJbcGF0aF0pIFx1MDAyNiAweDFmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgyOTpcdFx0XHRwd3NmWzFdID0gKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICYjNDM7IGRlbHRhX3RoZXJbcGF0aF0pIFx1MDAyNiAweDFmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgzMC1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MTY4OD1zdGF0aWMgdm9pZCBfZHBrX29ub2ZmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsIGJvb2wgb2ZmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTY5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTY5MzpcdHZhbCA9IGRway1cdTAwM2Vpc19kcGtfZW5hYmxlIFx1MDAyNlx1MDAyNiAhb2ZmIFx1MDAyNlx1MDAyNiBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTY5NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTE3NTE9c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xNzU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxNzU5Olx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPSBjaGFuLVx1MDAzZWJhbmRfdHlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc2MDpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXHUwMDNlY2hhbm5lbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc2MTpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXHUwMDNlYmFuZF93aWR0aDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTc2Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE3NjctXHRcdCAgICBzdHJfb25fb2ZmKHJ0d2Rldi1cdTAwM2VkYmNjX2VuKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc2ODpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcJiMzNDsyR1wmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE3Njk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAxID8gXCYjMzQ7NUdcJiMzNDsgOiBcJiMzNDs2R1wmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc3MDpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc3MTpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXCYjMzQ7MjBNXCYjMzQ7IDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc3MjpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAxID8gXCYjMzQ7NDBNXCYjMzQ7IDogXCYjMzQ7ODBNXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTc3My19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0xODc2PXN0YXRpYyB2b2lkIF9kcGtfZ2V0X3RoZXJtYWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBraWR4LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4ODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE4ODY6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGsgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgcGF0aCwgUlJfVE0sIFJSX1RNX1ZBTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4ODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4ODgtXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFwmIzM0O1tEUEtdIHRoZXJtYWxARFBLID0gMHgleFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTg4OTpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2Rwayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4OTAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MTg5Mj1zdGF0aWMgdm9pZCBfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBnYWluLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTg5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTg5NzpcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4OTgtXHRcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfTU9ELCBSRlJFR19NQVNLLCAweDUwMjIwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5MTItXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX1JDS0QsIFJSX1JDS0RfQlcsIDB4MSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE5MTM6XHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1RYQkIsIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyAmIzQzOyAxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTkxNC1cdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfQlRDLCBSUl9CVENfUlhCQiwgMHgwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTE5NDY9dm9pZCBfZHBrX3RwZ19zZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5NDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE5NTA6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfODApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5NTEtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX2NscihydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxOTUyOlx0ZWxzZSBpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfNDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5NTMtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTk1Ny1cdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXCYjMzQ7W0RQS10gVFBHX1NlbGVjdCBmb3IgJXNcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE5NTg6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MCA/IFwmIzM0OzgwTVwmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE5NTk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzIwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5NjAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjM1NT1zdGF0aWMgdm9pZCBfZHBrX2lkbF9tcGEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjM1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjM2MDpcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgXHUwMDNjIFJUVzg5X0NIQU5ORUxfV0lEVEhfODAgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjIzNjE6XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF81RylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjM2Mi1cdFx0X2Rwa19zZXRfbWRwZF9wYXJhKHJ0d2RldiwgMHgyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTIzNjk9c3RhdGljIHZvaWQgX2Rwa19maWxsX3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yMzgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyMzgzOlx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnR4YWdjX2RwayA9IHR4YWdjO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yMzg0LVx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfVFhBR0NfUkZLICYjNDM7IChwYXRoIFx1MDAzY1x1MDAzYyA4KSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjIzODc6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiA9IHB3c2Y7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzODgtXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQk5EICYjNDM7IChwYXRoIFx1MDAzY1x1MDAzYyA4KSAmIzQzOyAoa2lkeCBcdTAwM2NcdTAwM2MgMiksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yMzkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyMzk0Olx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmdzID0gZ3M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzOTUtXHRpZiAoZHBrLVx1MDAzZWRwa19nc1twaHldID09IDB4N2YpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yNDA4PXN0YXRpYyBib29sIF9kcGtfcmVsb2FkX2NoZWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0MTktXHRmb3IgKGlkeCA9IDA7IGlkeCBcdTAwM2MgUlRXODlfRFBLX0JLVVBfTlVNOyBpZHgmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI0MjA6XHRcdGlmIChjdXJfYmFuZCAhPSBkcGstXHUwMDNlYnBbcGF0aF1baWR4XS5iYW5kIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI0MjE6XHRcdCAgICBjdXJfY2ggIT0gZHBrLVx1MDAzZWJwW3BhdGhdW2lkeF0uY2gpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0MjItXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yNDM1PXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDczLVx0aWYgKCFpc19mYWlsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNDc0Olx0XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9IHRydWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0NzUtXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI0NzY6XHRcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gZmFsc2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0NzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yNDg0PXN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDk5LVx0XHRcdFx0XHRcdFx0ICAgY2hhbmN0eF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNTAwOlx0XHRcdGlmICghcmVsb2FkZWRbcGF0aF0gXHUwMDI2XHUwMDI2IGRway1cdTAwM2VicFtwYXRoXVswXS5jaClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjUwMS1cdFx0XHRcdGRway1cdTAwM2VjdXJfaWR4W3BhdGhdID0gIWRway1cdTAwM2VjdXJfaWR4W3BhdGhdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjU4OD1zdGF0aWMgdm9pZCBfZHBrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2MDMtXHRcdFx0ICAgIFwmIzM0O1tEUEtfVFJLXSA9PT09PT09PT09PT09PT09W1MlZFslZF0gKENIICVkKV09PT09PT09PT09PT09PT09XFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjA0Olx0XHRcdCAgICBwYXRoLCBraWR4LCBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjA1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjYxMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjYxMTpcdFx0aWYgKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCBcdTAwMjZcdTAwMjYgY3VyX3RoZXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2MTI6XHRcdFx0ZGVsdGFfdGhlcltwYXRoXSA9IGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayAtIGN1cl90aGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjE0Olx0XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjYxNS1cdFx0XHRkZWx0YV90aGVyW3BhdGhdID0gZGVsdGFfdGhlcltwYXRoXSAqIDMgLyAyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjY2MS1cdFx0XHRpZiAodG1wID09IDB4MCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjYyOlx0XHRcdFx0cHdzZlswXSA9IGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICYjNDM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2NjMtXHRcdFx0XHRcdCAgdHhhZ2NfYmJfdHAgLSB0eGFnY19iYiAmIzQzOyBpbmlfZGlmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjY2NDpcdFx0XHRcdHB3c2ZbMV0gPSBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiAmIzQzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjY1LVx0XHRcdFx0XHQgIHR4YWdjX2JiX3RwIC0gdHhhZ2NfYmIgJiM0MzsgaW5pX2RpZmY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2NjYtXHRcdFx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjY2NzpcdFx0XHRcdHB3c2ZbMF0gPSBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiAmIzQzOyBpbmlfZGlmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjY2ODpcdFx0XHRcdHB3c2ZbMV0gPSBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiAmIzQzOyBpbmlfZGlmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjY2OS1cdFx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjcxLVx0XHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjcyOlx0XHRcdHB3c2ZbMF0gPSAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgZGVsdGFfdGhlcltwYXRoXSkgXHUwMDI2IDB4MWZmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjczOlx0XHRcdHB3c2ZbMV0gPSAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgZGVsdGFfdGhlcltwYXRoXSkgXHUwMDI2IDB4MWZmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjc0LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MTM1PXN0YXRpYyB2b2lkIF9yZmtfZ2V0X3RoZXJtYWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBraWR4LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxNDU6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGsgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgcGF0aCwgUlJfVE0sIFJSX1RNX1ZBTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDctXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFwmIzM0O1tEUEtdIHRoZXJtYWxARFBLID0gMHgleFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjE0ODpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2Rwayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDktfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTE3OTg9c3RhdGljIHZvaWQgX2Rwa19vbm9mZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLCBib29sIG9mZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTgwMzpcdHZhbCA9IGRway1cdTAwM2Vpc19kcGtfZW5hYmxlIFx1MDAyNlx1MDAyNiAhb2ZmIFx1MDAyNlx1MDAyNiBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4MDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MTg2Mz1zdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg3MTpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID0gY2hhbi1cdTAwM2ViYW5kX3R5cGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODcyOlx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cdTAwM2VjaGFubmVsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg3MzpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXHUwMDNlYmFuZF93aWR0aDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4NzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTg3OS1cdFx0ICAgIHN0cl9vbl9vZmYocnR3ZGV2LVx1MDAzZWRiY2NfZW4pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg4MDpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcJiMzNDsyR1wmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODgxOlx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMSA/IFwmIzM0OzVHXCYjMzQ7IDogXCYjMzQ7NkdcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODgyOlx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg4MzpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXCYjMzQ7MjBNXCYjMzQ7IDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjE4ODQ6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMSA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzgwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODg1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0xOTQ3PXN0YXRpYyB2b2lkIF9kcGtfcmZfc2V0dGluZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IGdhaW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjE5NTI6XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk1My1cdFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9NT0QsIFJGUkVHX01BU0ssIDB4NTAyMjApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE5NjctXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX1JDS0QsIFJSX1JDS0RfQlcsIDB4MSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxOTY4Olx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9CVEMsIFJSX0JUQ19UWEJCLCBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgJiM0MzsgMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xOTY5LVx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9CVEMsIFJSX0JUQ19SWEJCLCAweDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTE5ODk9dm9pZCBfZHBrX3RwZ19zZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xOTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTk5MzpcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE5OTQtXHRcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTk5NTpcdGVsc2UgaWYgKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzQwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk5Ni1cdFx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YsIDB4Mik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjAwMC1cdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXCYjMzQ7W0RQS10gVFBHX1NlbGVjdCBmb3IgJXNcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyMDAxOlx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfODAgPyBcJiMzNDs4ME1cJiMzNDsgOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjAwMjpcdFx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzQwID8gXCYjMzQ7NDBNXCYjMzQ7IDogXCYjMzQ7MjBNXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTIwMDMtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI0MzM9c3RhdGljIHZvaWQgX2Rwa19pZGxfbXBhKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjQzODpcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgXHUwMDNjIFJUVzg5X0NIQU5ORUxfV0lEVEhfODAgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNDM5Olx0ICAgIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IFJUVzg5X0JBTkRfNUcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDQwLVx0XHRfZHBrX3NldF9tZHBkX3BhcmEocnR3ZGV2LCBwYXRoLCAweDIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI0NDc9c3RhdGljIHZvaWQgX2Rwa19maWxsX3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI0NjA6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrID0gdHhhZ2M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDYxLVx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfVFhBR0NfUkZLICYjNDM7IChwYXRoIFx1MDAzY1x1MDAzYyA4KSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjQ2NDpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmID0gcHdzZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI0NjUtXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQk5EICYjNDM7IChwYXRoIFx1MDAzY1x1MDAzYyA4KSAmIzQzOyAoa2lkeCBcdTAwM2NcdTAwM2MgMiksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI0NzE6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uZ3MgPSBncztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI0NzItXHRpZiAoZHBrLVx1MDAzZWRwa19nc1twaHldID09IDB4N2YpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjQ4OD1zdGF0aWMgYm9vbCBfZHBrX3JlbG9hZF9jaGVjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ5OS1cdGZvciAoaWR4ID0gMDsgaWR4IFx1MDAzYyBSVFc4OV9EUEtfQktVUF9OVU07IGlkeCYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI1MDA6XHRcdGlmIChjdXJfYmFuZCAhPSBkcGstXHUwMDNlYnBbcGF0aF1baWR4XS5iYW5kIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNTAxOlx0XHQgICAgY3VyX2NoICE9IGRway1cdTAwM2VicFtwYXRoXVtpZHhdLmNoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjUwMi1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0yNTMzPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjU3MC1cdGlmICghaXNfZmFpbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI1NzE6XHRcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gMTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI1NzItXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNTczOlx0XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9IDA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNTc0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI1ODY9c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNTk4LVx0XHRyZWxvYWRlZFtwYXRoXSA9IF9kcGtfcmVsb2FkX2NoZWNrKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNTk5Olx0XHRpZiAoIXJlbG9hZGVkW3BhdGhdIFx1MDAyNlx1MDAyNiBkcGstXHUwMDNlYnBbcGF0aF1bMF0uY2ggIT0gMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2MDAtXHRcdFx0ZHBrLVx1MDAzZWN1cl9pZHhbcGF0aF0gPSAhZHBrLVx1MDAzZWN1cl9pZHhbcGF0aF07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjY2OD1zdGF0aWMgdm9pZCBfZHBrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjgzLVx0XHRcdCAgICBcJiMzNDtbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2ODQ6XHRcdFx0ICAgIHBhdGgsIGtpZHgsIGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjg1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNjkxOlx0XHRpZiAoZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoIFx1MDAyNlx1MDAyNiBjdXJfdGhlcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2OTI6XHRcdFx0ZGVsdGFfdGhlcltwYXRoXSA9IGRway1cdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayAtIGN1cl90aGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjY5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2OTQ6XHRcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjY5NS1cdFx0XHRkZWx0YV90aGVyW3BhdGhdID0gZGVsdGFfdGhlcltwYXRoXSAqIDMgLyAyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDEtXHRcdFx0aWYgKHRtcCA9PSAweDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDI6XHRcdFx0XHRwd3NmWzBdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDMtXHRcdFx0XHRcdCAgdHhhZ2NfYmJfdHAgLSB0eGFnY19iYiAmIzQzOyBpbmlfZGlmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDQ6XHRcdFx0XHRwd3NmWzFdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDUtXHRcdFx0XHRcdCAgdHhhZ2NfYmJfdHAgLSB0eGFnY19iYiAmIzQzOyBpbmlfZGlmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDYtXHRcdFx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDc6XHRcdFx0XHRwd3NmWzBdID0gZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgJiM0MzsgaW5pX2RpZmY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNzQ4Olx0XHRcdFx0cHdzZlsxXSA9IGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICYjNDM7IGluaV9kaWZmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjc0OS1cdFx0XHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNzUwLVx0XHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6Mjc1MTpcdFx0XHRwd3NmWzBdID0gKGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICYjNDM7IGRlbHRhX3RoZXJbcGF0aF0pIFx1MDAyNiAweDFmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NTI6XHRcdFx0cHdzZlsxXSA9IChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiAmIzQzOyBkZWx0YV90aGVyW3BhdGhdKSBcdTAwMjYgMHgxZmY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNzUzLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYz0xOTA3PXN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMTkxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MTkxNjpcdGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID0gY2hhbi1cdTAwM2ViYW5kX3R5cGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MTc6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggPSBjaGFuLVx1MDAzZWNoYW5uZWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MTg6XHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVx1MDAzZWJhbmRfd2lkdGg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTE5MTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTI0LVx0XHQgICAgc3RyX29uX29mZihydHdkZXYtXHUwMDNlZGJjY19lbiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MjU6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAwID8gXCYjMzQ7MkdcJiMzNDsgOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoxOTI2Olx0XHQgICAgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMSA/IFwmIzM0OzVHXCYjMzQ7IDogXCYjMzQ7NkdcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5Mjc6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5Mjg6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMCA/IFwmIzM0OzIwTVwmIzM0OyA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5Mjk6XHRcdCAgICBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMSA/IFwmIzM0OzQwTVwmIzM0OyA6IFwmIzM0OzgwTVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTE5MzAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MjA2Mz1zdGF0aWMgdm9pZCBfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBnYWluLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjA2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MjA2ODpcdGlmIChkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTIwNjktXHRcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfTU9ELCBSRlJFR19NQVNLLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjA4OS1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzczMAoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDQ1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBGdW5jdGlvbmFsIEJ1ZyBGaXggYW5kIGl0cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBjb2RlIGNoYW5nZSB3aGVyZSBgZHBrLSZndDticFtwYXRoXVtraWR4XS5id2AgYW5kIGBkcGstJmd0O2JwW3BhdGhdW2tpZHhdLmNoYCBzZWVtIHRvIGhhdmUgYmVlbiBtaXhlZCB1cC4gVGhlIGJhbmR3aWR0aCBzZXR0aW5nLCBgYndgLCBpcyB1c2VkIHRvIGNvbmZpZ3VyZSBoYXJkd2FyZSByZWdpc3RlcnMgaW4gYF9kcGtfdHBnX3NlbGAsIGFuZCB0aGUgY2hhbm5lbCBudW1iZXIsIGBjaGAsIGlzIHVzZWQgaW4gYF9kcGtfcmVsb2FkX2NoZWNrYCBhbmQgYF9kcGtfdHJhY2tgIGZvciBjaGFubmVsIG1hdGNoaW5nLiBTd2FwcGluZyB0aGVzZSB2YXJpYWJsZXMgaGFzIGNsZWFybHkgaW50cm9kdWNlZCBlcnJvcnMg4oCTIGluY29ycmVjdCBoYXJkd2FyZSBjb25maWd1cmF0aW9uIGFuZCBsb2dpYyBmYWlsdXJlcy4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBmdW5jdGlvbmFsIGNoYW5nZS4KCk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbjogSXMgdGhpcyBzb21ldGhpbmcgd2UgY2FuIGFuZCBzaG91bGQgZnV6ej8gQWJzb2x1dGVseS4gSXTigJlzIGEgZnVuY3Rpb25hbCBidWcgZml4LiBUaGlzIGZpeCBpcyBoYXBwZW5pbmcgaW4gYSBkcml2ZXIgdGhhdCBpbnRlcmZhY2VzIHdpdGggaGFyZHdhcmUsIGFuZCB0aGF0IGRyaXZlciBpcyBhY2Nlc3NpYmxlIHZpYSBVU0IuIFRoYXQmIzM5O3MgYSBwZXJmZWN0IHRhcmdldCBmb3IgZnV6emluZy4gU28sIGBXb3J0aEZ1enppbmc9dHJ1ZWAgaXMgdGhlIHJpZ2h0IGNhbGwgaGVyZS4KCk5vdywgbGV0JiMzOTtzIGZpZ3VyZSBvdXQgd2hlcmUgdG8gZm9jdXMgb3VyIGZ1enppbmcgZWZmb3J0cy4gVGhlIGFmZmVjdGVkIGZ1bmN0aW9uLCBhdCB0aGUgaGVhcnQgb2YgdGhpcywgaXMgYF9kcGtfaW5mb3JtYXRpb25gLiBIb3dldmVyLCB3YWl0IGEgbWludXRlLCBpdCYjMzk7cyBhIHN0YXRpYyBmdW5jdGlvbi4gVGhhdCBtZWFucyBpdCBjYW4mIzM5O3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGxpbmcgY2hhaW4gdG8gZmlndXJlIG91dCB0aGUgcmlnaHQgZW50cnkgcG9pbnRzLiBMZXQmIzM5O3Mgc2VlLi4uIGBfZHBrX2NhbF9zZWxlY3RgIGNhbGxzIGBfZHBrX2luZm9ybWF0aW9uYC4gQW5kIHRoZW4gYF9kcGtgIGNhbGxzIGBfZHBrX2NhbF9zZWxlY3RgLiBPa2F5LCBhbmQgdGhlbiBgcnR3ODg1MWJfcmZrX3RyYWNrYCBjYWxscyBgX2Rwa2AsIGFuZCBgcnR3ODg1MWJfcmZrX2NoYW5uZWxgIGNhbGxzIGBfZHBrYC4gQXJlIGBydHc4ODUxYl9yZmtfdHJhY2tgIGFuZCBgcnR3ODg1MWJfcmZrX2NoYW5uZWxgIHN0YXRpYyBvciBub24tc3RhdGljPyBOZWVkIHRvIG1ha2Ugc3VyZSB0aG9zZSBhcmVuJiMzOTt0IHN0YXRpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODg1MWJfcmZrX3RyYWNrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jPTE3OTI9c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX3NjYW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjE4MDA6c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xODAxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM9MjQ5Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfb3BzIHJ0dzg4NTFiX2NoaXBfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0yNTE0LVx0LnJma19zY2FuXHRcdD0gcnR3ODg1MWJfcmZrX3NjYW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjUxNTpcdC5yZmtfdHJhY2tcdFx0PSBydHc4ODUxYl9yZmtfdHJhY2ssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjUxNi1cdC5wb3dlcl90cmltXHRcdD0gcnR3ODg1MWJfcG93ZXJfdHJpbSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDkwNDEKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGlubmVyIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbGx5IFN0YXRpYyBDb25kaXRpb24qKgoKSG1tLCB0aGluZ3Mgc2VlbS4uLiBzdHVjay4gJiMzNDtTdGF0aWMsJiMzNDsgSSB0aGluay4gTGV0IG1lIGltbWVkaWF0ZWx5IGNoZWNrIHRoZSByZWxldmFudCBoZWFkZXIgZmlsZSwgbGlrZWx5IHRoZSBkZWZpbml0aW9uIGZpbGUsIGluIHRoaXMgaW5zdGFuY2UsIGl0IGlzIGBydHc4ODUxYl9yZmsuaGAuIFRoaXMgaXMgbXkgdHlwaWNhbCBpbml0aWFsIGRpYWdub3N0aWMgc3RlcCB3aGVuIEkgc3VzcGVjdCBzb21ldGhpbmcgaXMgZnJvemVuIGluIHBsYWNlLiBJIHdhbnQgdG8gc2VlIHdoYXQgZnVuY3Rpb25zIGFyZSBiZWluZyBleHBvcnRlZDsgdGhpcyB3aWxsIGdpdmUgbWUgY2x1ZXMgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuIFRoaXMgYWxsb3dzIG1lIHRvIGltbWVkaWF0ZWx5IGtub3cgdGhlIGFjY2Vzc2libGUgaW50ZXJmYWNlLCB3aGljaCB3aWxsIGFsbG93IG1lIHRvIG5hcnJvdyBkb3duIHRoZSBzb3VyY2Ugb2YgdGhlIGFwcGFyZW50ICYjMzQ7c3RhdGljJiMzNDsgbmF0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDsuKiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxOi8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoyOi8qIENvcHlyaWdodChjKSAyMDIyLTIwMjMgIFJlYWx0ZWsgQ29ycG9yYXRpb25cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MzogKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6NDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6NTojaWZuZGVmIF9fUlRXODlfODg1MUJfUkZLX0hfX1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDo2OiNkZWZpbmUgX19SVFc4OV84ODUxQl9SRktfSF9fXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjc6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjg6I2luY2x1ZGUgXCYjMzQ7Y29yZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjk6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjEwOnZvaWQgcnR3ODg1MWJfYWFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxMTp2b2lkIHJ0dzg4NTFiX2xja19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjEyOnZvaWQgcnR3ODg1MWJfbGNrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjEzOnZvaWQgcnR3ODg1MWJfcmNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjE0OnZvaWQgcnR3ODg1MWJfZGFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxNTp2b2lkIHJ0dzg4NTFiX2lxayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHlfaWR4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxNjpcdFx0ICBlbnVtIHJ0dzg5X2NoYW5jdHhfaWR4IGNoYW5jdHhfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTc6dm9pZCBydHc4ODUxYl9yeF9kY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTg6XHRcdCAgICAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjE5OnZvaWQgcnR3ODg1MWJfZHBrX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjA6dm9pZCBydHc4ODUxYl9kcGsoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjE6XHRcdCAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjIyOnZvaWQgcnR3ODg1MWJfZHBrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjIzOnZvaWQgcnR3ODg1MWJfdHNzaShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjI0Olx0XHQgICBib29sIGh3dHhfZW4sIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoyNTp2b2lkIHJ0dzg4NTFiX3Rzc2lfc2NhbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjI2Olx0XHRcdGNvbnN0IHN0cnVjdCBydHc4OV9jaGFuICpjaGFuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6Mjc6dm9pZCBydHc4ODUxYl93aWZpX3NjYW5fbm90aWZ5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBzY2FuX3N0YXJ0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoyODpcdFx0XHQgICAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjI5Olx0XHRcdCAgICAgICBlbnVtIHJ0dzg5X2NoYW5jdHhfaWR4IGNoYW5jdHhfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MzA6dm9pZCBydHc4ODUxYl9zZXRfY2hhbm5lbF9yZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjMxOlx0XHRcdCAgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2NoYW4gKmNoYW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjMyOlx0XHRcdCAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDozMzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MzQ6I2VuZGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwOTY1CgkJCQkJCQlvdXRwdXQ6IDU2CgkJCQkJCQl0aG91Z2h0czogMTExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS2V5IEZ1bmN0aW9ucyBpbiBydHc4ODUxYl9yZmsuYyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGV4cG9ydGVkIGZ1bmN0aW9ucyBoZXJlLiBXZSYjMzk7dmUgZ290IGBydHc4ODUxYl9kcGtgLCBgcnR3ODg1MWJfZHBrX3RyYWNrYCwgYHJ0dzg4NTFiX2Rwa19pbml0YCwgYW5kIGBydHc4ODUxYl9zZXRfY2hhbm5lbF9yZmAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQmIzM5O3MgZHJpbGwgZG93biBpbnRvIGBydHc4ODUxYl9yZmsuY2AgYW5kIHNwZWNpZmljYWxseSBleGFtaW5lIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYC4gVGhvc2UgYXJlIHRoZSBjb3JlIGZ1bmN0aW9ucyBJIHdhbnQgdG8gdW5kZXJzdGFuZCBpbiB0aGUgY29udGV4dCBvZiBSRiBjYWxpYnJhdGlvbiBhbmQgb3BlcmF0aW9uLiBLbm93aW5nIHdoYXQgdGhlc2UgZnVuY3Rpb25zIGRvLCBhbmQgaG93IHRoZXkgaW50ZXJhY3QsIHdpbGwgYmUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgRFBLIChEYXRhIFBhY2tldCBLZXk/KSBmdW5jdGlvbmFsaXR5IHdpdGhpbiB0aGlzIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODg1MWJfZHBrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTMyOTQ9c3RhdGljIHZvaWQgcnR3ODg1MWJfYnlfcmF0ZV9kcGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMzI5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MzMwMDp2b2lkIHJ0dzg4NTFiX2Rwa19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMzMwMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0zNDM1PXZvaWQgcnR3ODg1MWJfcnhfZGNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0zNDUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzozNDUxOnZvaWQgcnR3ODg1MWJfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTM0NTItXHRcdCAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTM0NjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjM0Njk6dm9pZCBydHc4ODUxYl9kcGtfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0zNDcwLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTE4ODYKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiA0MjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJlYWx0ZWsgV2lGaSBEcml2ZXIgRW50cnkgUG9pbnRzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgYHJ0dzg4NTFiX2Rwa2AgYW5kIGBydHc4ODUxYl9kcGtfdHJhY2tgIGZ1bmN0aW9ucy4gVGhvc2Ugc2VlbSBsaWtlIHRoZSBjcnVjaWFsIGVudHJ5IHBvaW50cyB0byBmb2N1cyBvbi4gV2FpdCBhIHNlY29uZCwgYHJ0dzg4NTFiX2Rwa2AgZ2V0cyBjYWxsZWQgd2hlbiB0aGUgY2hhbm5lbCBjaGFuZ2VzLCB0aGF0JiMzOTtzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGVsc2UgaW4gdGhpcyBkcml2ZXIgdHJpZ2dlcnMgYSBjaGFubmVsIGNoYW5nZS4gTGV0JiMzOTtzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBjb2RlLCBJIHNlZSBgcnR3ODg1MWJfc2V0X2NoYW5uZWxfcmZgIGFuZCBgcnR3ODg1MWJfcmZrX2NoYW5uZWxgLiBIbW0sIGBydHc4ODUxYl9yZmtfY2hhbm5lbGAgaXMgc3RhdGljIGluIGBydHc4ODUxYi5jYCwgYnV0IGl0ICpkb2VzKiBjYWxsIGBydHc4ODUxYl9kcGtgLCB3aGljaCBpcyBpbXBvcnRhbnQuIEFoISBJIHNlZSBub3csIGBydHc4ODUxYl9yZmtfY2hhbm5lbGAgaXMgYXNzaWduZWQgdG8gYHJma19jaGFubmVsYCB3aXRoaW4gYHJ0dzg4NTFiX2NoaXBfb3BzYC4gVGhhdCBtZWFucyB0aGF0IHRoZSBnZW5lcmljIG1hYzgwMjExIG9wZXJhdGlvbnMgbGlrZSBgcnR3ODlfbWFjODAyMTFfY29uZmlnYCBhbmQgYHJ0dzg5X21hYzgwMjExX2FkZF9pbnRlcmZhY2VgIHNob3VsZCBiZSB0aGUga2V5LCBhcyB0aGV5IHdpbGwgdW5kb3VidGVkbHkgYmUgdXNlZCB0byB0cmlnZ2VyIGNoYW5uZWwgY2hhbmdlcy4gU28sIEkgY2FuIGhpdCB0aGlzIGNvZGUgYnkgZnV6emluZyBzdGFuZGFyZCBtYWM4MDIxMSBvcGVyYXRpb25zIHZpYSBuZXRsaW5rLiBUaGF0JiMzOTtzIGdvb2QsIHRoYXQgZ2l2ZXMgbWUgYSBjbGVhciBwYXRoLiBJJiMzOTtsbCBkZWZpbml0ZWx5IGFkZCBib3RoIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYCB0byBteSBgRm9jdXNTeW1ib2xzYC4KCk5vdywgSSBuZWVkIHRvIGNoZWNrIHRoZSByZXF1aXJlZCBjb25maWdzIGZvciB0aGlzIGRyaXZlciB0byBmdW5jdGlvbi4gTGV0JiMzOTtzIHNlZS4uLiBJJiMzOTttIHRoaW5raW5nIEkmIzM5O2xsIG5lZWQgYENPTkZJR19SVFc4OV9DT1JFYCwgYENPTkZJR19SVFc4OV84ODUxQmAsIGFuZCBgQ09ORklHX1JUVzg5Xzg4NTFCVWAgZm9yIFVTQiBzdXBwb3J0LiBJJiMzOTtsbCBuZWVkIGBDT05GSUdfUlRXODlfVVNCYCBhcyB3ZWxsLiBXYWl0IGEgbWludXRlLCBhbSBJIGdvaW5nIHRvIG5lZWQgdG8gZXhwbGljaXRseSBzZWxlY3QgKmVpdGhlciogYENPTkZJR19SVFc4OV84ODUxQmAgb3IgYENPTkZJR19SVFc4OV84ODUxQlVgPyBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGUgS2NvbmZpZyBmaWxlIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdgIGZvciB0aGUgYFJUVzg5Xzg4NTFCYCBzeW1ib2wuIFRoYXQgc2hvdWxkIGNsZWFyIGl0IHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtSVFc4OV84ODUxQiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9MjA9Y29uZmlnIFJUVzg5X1VTQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMzpjb25maWcgUlRXODlfODg1MUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTQ0PWNvbmZpZyBSVFc4OV84OTIyRFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0Nzpjb25maWcgUlRXODlfODg1MUJFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01MS1cdHNlbGVjdCBSVFc4OV9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1MjpcdHNlbGVjdCBSVFc4OV84ODUxQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTUzLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02Mi1cdHNlbGVjdCBSVFc4OV9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo2MzpcdHNlbGVjdCBSVFc4OV84ODUxQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTY0LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzQ0NAoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDMzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBSZWFzb25pbmcgb24gUmVhbHRlayBXaXJlbGVzcyBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIgY29uZmlndXJhdGlvbnMuIEl0IHNlZW1zIGxpa2UgYFJUVzg5Xzg4NTFCVWAgc2VsZWN0cyBib3RoIGBSVFc4OV9VU0JgIGFuZCBgUlRXODlfODg1MUJgLiAgUmlnaHQgYXdheSwgSSB0aGluayB3ZSBzaG91bGQgZW5hYmxlIGJvdGggYFJUVzg5Xzg4NTFCVWAgYW5kIGBSVFc4OV84ODUxQkVgIHRvIGNvdmVyIGJvdGggVVNCIGFuZCBQQ0kgaW50ZXJmYWNlcy4KCkJ1dCBob2xkIG9uLCBgUlRXODlfODg1MUJFYCBpcyBmb3IgUENJLCB3aGljaCBwb3NlcyBhIGZ1enppbmcgY29uY2VybiBpbiBzeXprYWxsZXIgdW5sZXNzIHdlJiMzOTt2ZSBnb3QgUENJIGZ1enppbmcgY2FwYWJpbGl0eS4gU3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWUgUENJIGZ1enppbmcgZnVuY3Rpb25hbGl0eSwgc28gaXQmIzM5O3MgYSBnb29kIGlkZWEgdG8gZW5hYmxlIGl0LiBJIGNhbiYjMzk7dCByZWNhbGwgaWYgd2UgdXNlIGl0LCBidXQgYmVzdCBwcmFjdGljZSBpcyB0byBhbHdheXMgZW5hYmxlIHN1Y2ggZnVuY3Rpb25hbGl0eS4KCkFoYSwgYFJUVzg5Xzg4NTFCVWAgaXMgdGhlIFVTQiBvbmUuIFRoYXQmIzM5O3MgZGVmaW5pdGVseSBmdXp6YWJsZSB0aHJvdWdoIGBkdW1teV9oY2RgLiAgU28sIHRoYXQmIzM5O3Mgc3RyYWlnaHRmb3J3YXJkIC0gd2UgYWJzb2x1dGVseSB3YW50IHRvIGFkZCBgUlRXODlfODg1MUJVYCB0byBgRW5hYmxlQ29uZmlnc2AuCgpXYWl0IGEgbWludXRlLCBgUlRXODlfODg1MUJgIGlzIGEgaGlkZGVuIHRyaXN0YXRlOyB3aGljaCBtZWFucyB3ZSBtdXN0IGV4cGxpY2l0bHkgZW5hYmxlICplaXRoZXIqIGBSVFc4OV84ODUxQlVgIG9yIGBSVFc4OV84ODUxQkVgLiBUaGVyZWZvcmUsIHNpbmNlIHdlJiMzOTtyZSBjb3ZlcmluZyBib3RoIFVTQiBhbmQgUENJLCBsZXQmIzM5O3MgYWRkICpib3RoKiBgUlRXODlfODg1MUJVYCBhbmQgYFJUVzg5Xzg4NTFCRWAuCgpBbHNvLCBib3RoIG9mIHRoZXNlIG1vZHVsZXMgc2VsZWN0IGBSVFc4OV9DT1JFYCwgc28gdGhhdCYjMzk7cyBjb3ZlcmVkLgoKT2theSwgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHdlIGRpZG4mIzM5O3Qgb3Zlcmxvb2sgc29tZXRoaW5nIGZ1bmRhbWVudGFsLiBXaGF0IGFib3V0IHRoZSBzdGFuZGFyZCBzdWJzeXN0ZW1zIGBNQUM4MDIxMWAgYW5kIGBDRkc4MDIxMWA/IEFyZSB3ZSBoYW5kbGluZyB0aGVtIG9yIGRvIHdlIG5lZWQgdG8gc3BlY2lmeSB0aGVtPyBJdCYjMzk7cyBnZW5lcmFsbHkgdGhlIGNhc2UgdGhhdCB0aGVzZSBhcmUgZW5hYmxlZC4KCkZpbmFsbHksIGp1c3QgdG8gYmUgdGhvcm91Z2gsIEkgc2hvdWxkIHJlYWxseSBkb3VibGUtY2hlY2sgaWYgYFJUVzg5Xzg4NTFCVWAgZGVwZW5kcyBvbiBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgcmVxdWlyZSBhdHRlbnRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBSVFc4OV84ODUxQlUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTQ3PWNvbmZpZyBSVFc4OV84ODUxQkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTg6Y29uZmlnIFJUVzg5Xzg4NTFCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ0NDkKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHJlcXVlc3QsIGZvcm1hdHRlZCBmb3IgYSBkb21haW4gZXhwZXJ0IGxpa2UgbXlzZWxmOgoKKipVbmRlcnN0YW5kaW5nIHRoZSBgUlRXODlfODg1MUJVYCBCbG9jayoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbi4gSSBuZWVkIHRvIGdldCBhIGNvbXByZWhlbnNpdmUgdmlldyBvZiB0aGUgYFJUVzg5Xzg4NTFCVWAgYmxvY2suIEkgbmVlZCAqYWxsKiB0aGUgaW5mb3JtYXRpb24gLSB0aGUgd2hvbGUgZW5jaGlsYWRhLCBzbyB0byBzcGVhay4gVW5kZXJzdGFuZGluZyBhIHNpbmdsZSBibG9jayBsaWtlIHRoaXMgaXMgZXNzZW50aWFsIGZvciBhbnkgZ29vZCBlbmdpbmVlci4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBsZWFybiEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg5Xzg4NTFCVSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9NDc9Y29uZmlnIFJUVzg5Xzg4NTFCRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDc3MQoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipOYXZpZ2F0aW5nIHRoZSBMYWJ5cmludGggb2YgQ29kZSoqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBCZWZvcmUgSSBldmVuICp0aGluayogYWJvdXQgc3RhcnRpbmcgZG93biBhbnkgc3BlY2lmaWMgcGF0aCwgSSBuZWVkIHRvIHRha2UgYSBzdGVwIGJhY2sgYW5kIG1ha2Ugc3VyZSBJJiMzOTttIGFwcHJvYWNoaW5nIHRoaXMgcHJvYmxlbSBzeXN0ZW1hdGljYWxseS4gSXQmIzM5O3MgdG9vIGVhc3kgdG8gZ2V0IGxvc3QgaW4gdGhlIHdlZWRzLiBJIG5lZWQgdG8gYmUgc3RyYXRlZ2ljLiBSaWdodCBub3csIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgc2lmdGluZyB0aHJvdWdoIHRoZSByZWxldmFudCBkYXRhIGVmZmljaWVudGx5LCBhbmQgdGhhdCBtZWFucyBJIG5lZWQgdG8gdXNlIHNvbWUgcm9idXN0IHRvb2xzLiBJJiMzOTttIGdvaW5nIHRvIGhhdmUgdG8gdXNlIGVpdGhlciBgcmVhZC1maWxlYCB0byBicmluZyB0aGUgZGF0YSBpbiBhbmQgZXhhbWluZSBpdCBpbiBtb3JlIGRldGFpbC4gT3IsIHBlcmhhcHMgbW9yZSBzdHJhdGVnaWNhbGx5LCBJIGNhbiB1c2UgYGdyZXBwZXJgIGFuZCBleGFtaW5lIHRoZSBjb250ZXh0IG9mIHRoZSBoaXRzIGl0IHJldHVybnMgdG8gYmV0dGVyIHVuZGVyc3RhbmQgaG93IHRoaW5ncyBhcmUgd29ya2luZyB0b2dldGhlci4gVGhlIHNwZWNpZmljIGRldGFpbHMgb2YgdGhlIHRhc2sgYXQgaGFuZCB3aWxsIGRpY3RhdGUgd2hpY2ggYXBwcm9hY2ggaXMgYmVzdCwgYnV0IGVpdGhlciB3YXksIEkgY2FuJiMzOTt0IGp1c3QgZGl2ZSBpbiBibGluZGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODlfODg1MUJVJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz00Nz1jb25maWcgUlRXODlfODg1MUJFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU4OmNvbmZpZyBSVFc4OV84ODUxQlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01OS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MUJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1MTc0CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKkRpcmVjdCBQYXRoIHRvIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHRoaW5raW5nIGFib3V0IHRoaXMgZHJpdmVyIGNvbmZpZ3VyYXRpb24uLi4gSSBkb24mIzM5O3QgbmVlZCB0byBvdmVyY29tcGxpY2F0ZSB0aGluZ3MuIEl0IGp1c3QgY2xpY2tlZCDigJMgSSBjYW4gYWJzb2x1dGVseSB1dGlsaXplIGByZWFkLWZpbGVgIGRpcmVjdGx5IG9uIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdgLiBUaGF0JiMzOTtzIHRoZSBrZXkuIE5vIG5lZWQgdG8gbWVzcyBhcm91bmQgd2l0aCBhbnkgaW50ZXJtZWRpYXJ5IHN0ZXBzIG9yIHBhcnNpbmcgbm9uc2Vuc2UuIFRoaXMgaXMgYSBjb25maWd1cmF0aW9uIGZpbGUsIGFmdGVyIGFsbCwgYW5kIGByZWFkLWZpbGVgIGlzIHBlcmZlY3QgZm9yIHB1bGxpbmcgaW4gdGhlIHNwZWNpZmljcy4gVGhpcyBhcHByb2FjaCB3aWxsIG9mZmVyIHRoZSBtb3N0IGRpcmVjdCB2aWV3IGludG8gdGhvc2Ugb3B0aW9ucy4gTm93LCBJIGNhbiBpbW1lZGlhdGVseSBhbmFseXplIHRoYXQgc3BlY2lmaWMgY29uZmlnIGZpbGUhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA0MDpcdFxuICA0MTpcdGNvbmZpZyBSVFc4OV84OTIyQVxuICA0MjpcdFx0dHJpc3RhdGVcbiAgNDM6XHRcbiAgNDQ6XHRjb25maWcgUlRXODlfODkyMkRcbiAgNDU6XHRcdHRyaXN0YXRlXG4gIDQ2Olx0XG4gIDQ3Olx0Y29uZmlnIFJUVzg5Xzg4NTFCRVxuICA0ODpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbiAgNDk6XHRcdGRlcGVuZHMgb24gUENJXG4gIDUwOlx0XHRzZWxlY3QgUlRXODlfQ09SRVxuICA1MTpcdFx0c2VsZWN0IFJUVzg5X1BDSVxuICA1MjpcdFx0c2VsZWN0IFJUVzg5Xzg4NTFCXG4gIDUzOlx0XHRoZWxwXG4gIDU0Olx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUxQkUgY2hpcHNldFxuICA1NTpcdFxuICA1NjpcdFx0ICA4MDIuMTFheCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcbiAgNTc6XHRcbiAgNTg6XHRjb25maWcgUlRXODlfODg1MUJVXG4gIDU5Olx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuICA2MDpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgNjE6XHRcdHNlbGVjdCBSVFc4OV9DT1JFXG4gIDYyOlx0XHRzZWxlY3QgUlRXODlfVVNCXG4gIDYzOlx0XHRzZWxlY3QgUlRXODlfODg1MUJcbiAgNjQ6XHRcdGhlbHBcbiAgNjU6XHRcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4NTFCVSBjaGlwc2V0XG4gIDY2Olx0XG4gIDY3Olx0XHQgIDgwMi4xMWF4IFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXG4gIDY4Olx0XG4gIDY5Olx0Y29uZmlnIFJUVzg5Xzg4NTJBRVxuICA3MDpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbiAgNzE6XHRcdGRlcGVuZHMgb24gUENJXG4gIDcyOlx0XHRzZWxlY3QgUlRXODlfQ09SRVxuICA3MzpcdFx0c2VsZWN0IFJUVzg5X1BDSVxuICA3NDpcdFx0c2VsZWN0IFJUVzg5Xzg4NTJBXG4gIDc1Olx0XHRoZWxwXG4gIDc2Olx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUyQUUgY2hpcHNldFxuICA3NzpcdFxuICA3ODpcdFx0ICA4MDIuMTFheCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcbiAgNzk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTU5NzUKCQkJCQkJCW91dHB1dDogNTgKCQkJCQkJCXRob3VnaHRzOiA2ODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciBjaGFuZ2UgYW5kIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zLiBGaXJzdCwgaXQgc2VlbXMgbGlrZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGVuYWJsaW5nIHNvbWUgbmV3IGNvbmZpZ3VyYXRpb25zLiBgUlRXODlfODg1MUJVYCByZWxpZXMgb24gdGhlIGBVU0JgIGJ1cywgd2hpbGUgYFJUVzg5Xzg4NTFCRWAgdXNlcyBgUENJYC4gIFNvLCBJIHNob3VsZCBhZGQgYm90aCBvZiB0aG9zZSB0byB0aGUgYEVuYWJsZUNvbmZpZ3NgIGxpc3QuIE1pZ2h0IGFzIHdlbGwgdGhyb3cgYFJUVzg5X0NPUkVgIGluIHRoZXJlIHRvbywgZXZlbiB0aG91Z2ggaXQmIzM5O3MgYWxyZWFkeSBzZWxlY3RlZCDigJMgYmV0dGVyIHNhZmUgdGhhbiBzb3JyeSwgeW91IGtub3c/IEFoLCB3YWl0IGEgbWludXRlLCBgUlRXODlfODg1MUJgIGlzIHRoZSBhY3R1YWwgdW5kZXJseWluZyBjaGlwIGNvbmZpZ3VyYXRpb24sIGJ1dCBpdCYjMzk7cyBoaWRkZW4gKHRyaXN0YXRlKS4gVGhlIHByaW1hcnkgb25lIHRvIGVuYWJsZSB0aGVuIGlzIGBSVFc4OV84ODUxQlVgLiBHb3QgaXQuCgpOb3csIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIGNvZGUgaXRzZWxmLiBJJiMzOTttIGZvY3VzaW5nIG9uIHRoZSBzeW1ib2xzIHJlbGF0ZWQgdG8gdGhpcyBEUEsgKER5bmFtaWMgUGFja2V0IEtlcm5lbCkgaW5mb3JtYXRpb24uIFRoZSBkaWZmIEkgc2VlIGNlbnRlcnMgb24gYHJ0dzg4NTFiX3Jmay5jYC4gTGV0JiMzOTtzIHNlZS4uLkkgc2VlIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYCBhcyB0aGUga2V5IGZ1bmN0aW9ucyBoZXJlLiBUaGVzZSBhcmUgdGhlIG5vbi1zdGF0aWMgb25lcyB0aGF0IHVsdGltYXRlbHkgY2FsbCBgX2Rwa19pbmZvcm1hdGlvbmAuIEhtbSwgaG9sZCBvbi4gYF9kcGtfaW5mb3JtYXRpb25gIGlzIGFjdHVhbGx5IGNhbGxlZCBmcm9tIG90aGVyIGBydHc4ODUyYCB2YXJpYW50cyB0b28gKGBydHc4ODUyYV9yZmsuY2AsIGV0Yy4pLiBCdXQgdGhlICpwYXRjaCogb25seSBtb2RpZmllcyBgcnR3ODg1MWJfcmZrLmNgLiBTbywgSSByZWFsbHkgb25seSBuZWVkIHRvIGNvbmNlbnRyYXRlIG9uIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYCBpbiB0aGUgY29udGV4dCBvZiB0aGlzIHNwZWNpZmljIHBhdGNoLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCYjMzk7cyB2ZXJpZnkgdGhhdCB0aG9zZSB0d28gYXJlIHRoZSBjb3JyZWN0IHN5bWJvbHMgdG8gZm9jdXMgb24uIFllcCwgdGhleSBhcmUgZXhwb3J0ZWQgKG5vbi1zdGF0aWMpLCB3aGljaCBtZWFucyB0aGV5JiMzOTtyZSBwdWJsaWMsIGFuZCB0aGV5IGRvIGluZGVlZCBjYWxsIGBfZHBrX2luZm9ybWF0aW9uYCB2aWEgYF9kcGtgIGFuZCBgX2Rwa19jYWxfc2VsZWN0YC4gT2theSwgSSBzZWUgdGhhdCBgcnR3ODg1MWJfZHBrX2luaXRgIGFsc28gZXhpc3RzLiBCdXQgaXMgaXQgdXNlZCBoZXJlPyBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGF0IGZ1bmN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHc4ODUxYl9kcGtfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0zMjk0PXN0YXRpYyB2b2lkIHJ0dzg4NTFiX2J5X3JhdGVfZHBkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTMyOTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjMzMDA6dm9pZCBydHc4ODUxYl9kcGtfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTMzMDEte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzQyOQoJCQkJCQkJb3V0cHV0OiA1NQoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYHJ0dzg4NTFiX2Rwa19pbml0YCBmdW5jdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2UgYW5kIGhvdyBpdCBmaXRzIGludG8gdGhlIGJyb2FkZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVyLiBBcyBhbiBleHBlcnQsIEkmIzM5O20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgdGhpcyBmdW5jdGlvbiBsaWtlbHkgaGFuZGxlcyB0aGUgaW5pdGlhbGl6YXRpb24gcGhhc2UgZm9yIHRoZSBEaXNwbGF5UG9ydCBLZXkgKERQSykgZnVuY3Rpb25hbGl0eSB3aXRoaW4gdGhlIFJlYWx0ZWsgUlRMODg1MUIgV2ktRmkgY2hpcHNldC4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGZvciBrZXkgZGF0YSBzdHJ1Y3R1cmVzLCByZWdpc3RlciBhY2Nlc3NlcywgYW5kIHRoZSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGludm9sdmVkLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZXhwZWN0aW5nIHRvIHNlZSBjb25maWd1cmF0aW9uIG9mIERQSy1yZWxhdGVkIGhhcmR3YXJlLCBwb3RlbnRpYWxseSBpbmNsdWRpbmc6CgoqICAgKipLZXkgZ2VuZXJhdGlvbiBvciBsb2FkaW5nOioqIFRoaXMgaXMgY3JpdGljYWw7IHRoZSBmdW5jdGlvbiB3aWxsIGVpdGhlciBnZW5lcmF0ZSwgbG9hZCwgb3IgcmVjZWl2ZSB0aGUgaW5pdGlhbCBEUEsuIFRoaXMgaXMgbXkgdG9wIHByaW9yaXR5LgoqICAgKipEUEsgcmVnaXN0ZXIgaW5pdGlhbGl6YXRpb246KiogSXQmIzM5O3MgcHJhY3RpY2FsbHkgZ3VhcmFudGVlZCB0aGF0IHRoZXJlIGFyZSBzcGVjaWZpYyByZWdpc3RlcnMgY29udHJvbGxpbmcgdGhlIERQSyBmZWF0dXJlLiBJJiMzOTtsbCBiZSBzZWFyY2hpbmcgZm9yIHRoZWlyIGFkZHJlc3NlcyBhbmQgdGhlaXIgaW50ZW5kZWQgY29uZmlndXJhdGlvbnMuCiogICAqKlNlY3VyaXR5IENvbnRleHQgU2V0dXA6KiogRGVwZW5kaW5nIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiwgdGhlIGZ1bmN0aW9uIG1heSBiZSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB1cCBzZWN1cml0eSBjb250ZXh0cyBsaWtlIGF1dGhlbnRpY2F0aW9uIG9yIGtleSBkZXJpdmF0aW9uLCBzbyBpdCBjYW4gc2VjdXJlbHkgZXhjaGFuZ2UgdGhlIERQSy4gSSYjMzk7bGwgc2VhcmNoIGZvciBjcnlwdG9ncmFwaGljIGZ1bmN0aW9ucywgdG9vLgoqICAgKipQb3dlciBhbmQgQ2xvY2sgQ29udHJvbDoqKiBVc3VhbGx5LCB0aGUgRFBLIHJlbGF0ZWQgYmxvY2sgaXMgcG93ZXJlZCBkb3duIG9yIGluIGxvdy1wb3dlciBzdGF0ZS4gU28sIEkgd2lsbCBjaGVjayB0aGUgY2xvY2sgYW5kIHBvd2VyIG1hbmFnZW1lbnQgZnVuY3Rpb25zLgoqICAgKipFcnJvciBIYW5kbGluZzoqKiBJdCYjMzk7cyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGluaXRpYWxpemF0aW9uIGZhaWx1cmVzIGFyZSBoYW5kbGVkLiBJJiMzOTtsbCBsb29rIGZvciBlcnJvciBjb2RlcywgcmV0dXJuIHZhbHVlcywgYW5kIGxvZ2dpbmcuCgpNeSBnb2FsIGlzIHRvIGdyYXNwIHRoZSBpbml0aWFsaXphdGlvbiBmbG93LCBwaW5wb2ludCBhbnkgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyBvciBhcmVhcyBmb3Igb3B0aW1pemF0aW9uLCBhbmQgdWx0aW1hdGVseSBhc3Nlc3MgaG93IGVmZmVjdGl2ZWx5IGl0IGludGVncmF0ZXMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzMzAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzMzMDA6XHR2b2lkIHJ0dzg4NTFiX2Rwa19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbjMzMDE6XHR7XG4zMzAyOlx0XHRydHc4ODUxYl9ieV9yYXRlX2RwZChydHdkZXYpO1xuMzMwMzpcdH1cbjMzMDQ6XHRcbjMzMDU6XHR2b2lkIHJ0dzg4NTFiX2FhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuMzMwNjpcdHtcbjMzMDc6XHRcdHUzMiB0bXAwNSwgdG1wZDMsIGliWzRdO1xuMzMwODpcdFx0dTMyIHRtcDtcbjMzMDk6XHRcdGludCByZXQ7XG4zMzEwOlx0XHRpbnQgcmVrO1xuMzMxMTpcdFx0aW50IGk7XG4zMzEyOlx0XG4zMzEzOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFwmIzM0O1tMQ0tdRE8gQUFDS1xcblwmIzM0Oyk7XG4zMzE0Olx0XG4zMzE1Olx0XHR0bXAwNSA9IHJ0dzg5X3JlYWRfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX1JTVjEsIFJGUkVHX01BU0spO1xuMzMxNjpcdFx0dG1wZDMgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9MQ0tfVFJHLCBSRlJFR19NQVNLKTtcbjMzMTc6XHRcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9NT0QsIFJSX01PRF9NQVNLLCAweDMpO1xuMzMxODpcdFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX1JTVjEsIFJGUkVHX01BU0ssIDB4MCk7XG4zMzE5Olx0XHRydHc4OV93cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUlJfTENLX1RSRywgUlJfTENLX1NULCAweDApO1xuMzMyMDpcdFxuMzMyMTpcdFx0Zm9yIChyZWsgPSAwOyByZWsgXHUwMDNjIDQ7IHJlayYjNDM7JiM0MzspIHtcbjMzMjI6XHRcdFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX0FBQ0ssIFJGUkVHX01BU0ssIDB4ODIwMWUpO1xuMzMyMzpcdFx0XHRydHc4OV93cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUlJfQUFDSywgUkZSRUdfTUFTSywgMHg4MjAxZik7XG4zMzI0Olx0XHRcdGZzbGVlcCgxMDApO1xuMzMyNTpcdFxuMzMyNjpcdFx0XHRyZXQgPSByZWFkX3BvbGxfdGltZW91dF9hdG9taWMocnR3ODlfcmVhZF9yZiwgdG1wLCB0bXAsXG4zMzI3Olx0XHRcdFx0XHRcdCAgICAgICAxLCAxMDAwLCBmYWxzZSxcbjMzMjg6XHRcdFx0XHRcdFx0ICAgICAgIHJ0d2RldiwgUkZfUEFUSF9BLCAweGQwLCBCSVQoMTYpKTtcbjMzMjk6XHRcdFx0aWYgKHJldClcbjMzMzA6XHRcdFx0XHRydHc4OV93YXJuKHJ0d2RldiwgXCYjMzQ7W0xDS11BQUNLIHRpbWVvdXRcXG5cJiMzNDspO1xuMzMzMTpcdFxuMzMzMjpcdFx0XHRydHc4OV93cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUlJfVkNJLCBSUl9WQ0lfT04sIDB4MSk7XG4zMzMzOlx0XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIDQ7IGkmIzQzOyYjNDM7KSB7XG4zMzM0Olx0XHRcdFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX1ZDTywgUlJfVkNPX1NFTCwgaSk7XG4zMzM1Olx0XHRcdFx0aWJbaV0gPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9JQkQsIFJSX0lCRF9WQUwpO1xuMzMzNjpcdFx0XHR9XG4zMzM3Olx0XHRcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9WQ0ksIFJSX1ZDSV9PTiwgMHgwKTtcbjMzMzg6XHRcbjMzMzk6XHRcdFx0aWYgKGliWzBdICE9IDAgXHUwMDI2XHUwMDI2IGliWzFdICE9IDAgXHUwMDI2XHUwMDI2IGliWzJdICE9IDAgXHUwMDI2XHUwMDI2IGliWzNdICE9IDApXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4ODIzCgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIGNvZGUgc25pcHBldDoKCioqRGVlcCBEaXZlIGludG8gcnR3ODg1MWImIzM5O3MgRFBEIEluaXRpYWxpemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgcnR3ODg1MWJfZHBrX2luaXRgIGFuZCBJIHNlZSB0aGF0IGFsbCBpdCYjMzk7cyBkb2luZyBpcyBjYWxsaW5nIGBydHc4ODUxYl9ieV9yYXRlX2RwZGAuIFRoYXQmIzM5O3MgYSBrZXkgb2JzZXJ2YXRpb24uIFRoaXMgbWVhbnMsIGFzIGZhciBhcyBJIGNhbiB0ZWxsIGZyb20gdGhpcyBzbmlwcGV0IGFsb25lLCBpdCAqZG9lc24mIzM5O3QqIGRpcmVjdGx5IGludm9rZSBgX2Rwa19pbmZvcm1hdGlvbmAsIHdoaWNoIGlzIHNvbWV0aGluZyB0byBrZWVwIGluIG1pbmQuIFdlIG5lZWQgdG8gdmVyaWZ5IHdoZXJlIGFuZCBob3cgYF9kcGtfaW5mb3JtYXRpb25gIGlzIGFjdHVhbGx5IHV0aWxpemVkIHdpdGhpbiB0aGUgRFBEIGZyYW1ld29yayBvZiB0aGlzIGRyaXZlci4KCk15IGltbWVkaWF0ZSBuZXh0IHN0ZXAgaXMgY2xlYXI6IEkgbmVlZCB0byB0aG9yb3VnaGx5IGV4YW1pbmUgYHJ0dzg4NTFiX2Rwa2AgYW5kIGBydHc4ODUxYl9kcGtfdHJhY2tgIHRvIHVuZGVyc3RhbmQgdGhlIGRhdGEgZmxvdyBhbmQgZGV0ZXJtaW5lIHRoZSBmdWxsIHBpY3R1cmUgb2YgdGhlIGRpZ2l0YWwgcHJlLWRpc3RvcnRpb24gcHJvY2VzcyB3aXRoaW4gdGhlIGBydHc4ODUxYmAgZHJpdmVyLiBUaGF0IHdpbGwgaGVscCBzaGVkIGxpZ2h0IG9uIHRoZSBmdW5jdGlvbiB0aGF0JiMzOTtzIGJlaW5nIGNhbGxlZCwgYW5kIHJldmVhbCB0aGUgbG9jYXRpb24gb2YgdGhlIGNhbGwgZm9yIGBfZHBrX2luZm9ybWF0aW9uYCBpZiBpdCBleGlzdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEwOjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDM0NTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MzQ1MDpcdFxuMzQ1MTpcdHZvaWQgcnR3ODg1MWJfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXG4zNDUyOlx0XHRcdCAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcbjM0NTM6XHR7XG4zNDU0Olx0XHR1OCBwaHlfbWFwID0gcnR3ODlfYnRjX3BoeW1hcChydHdkZXYsIHBoeV9pZHgsIDAsIGNoYW5jdHhfaWR4KTtcbjM0NTU6XHRcdHUzMiB0eF9lbjtcbjM0NTY6XHRcbjM0NTc6XHRcdHJ0dzg5X2J0Y19udGZ5X3dsX3JmayhydHdkZXYsIHBoeV9tYXAsIEJUQ19XUkZLVF9EUEssIEJUQ19XUkZLX1NUQVJUKTtcbjM0NTg6XHRcdHJ0dzg5X2NoaXBfc3RvcF9zY2hfdHgocnR3ZGV2LCBwaHlfaWR4LCBcdTAwMjZ0eF9lbiwgUlRXODlfU0NIX1RYX1NFTF9BTEwpO1xuMzQ1OTpcdFx0X3dhaXRfcnhfbW9kZShydHdkZXYsIF9rcGF0aChydHdkZXYsIHBoeV9pZHgpKTtcbjM0NjA6XHRcbjM0NjE6XHRcdHJ0d2Rldi1cdTAwM2VkcGsuaXNfZHBrX2VuYWJsZSA9IHRydWU7XG4zNDYyOlx0XHRydHdkZXYtXHUwMDNlZHBrLmlzX2Rwa19yZWxvYWRfZW4gPSBmYWxzZTtcbjM0NjM6XHRcdF9kcGsocnR3ZGV2LCBwaHlfaWR4LCBmYWxzZSwgY2hhbmN0eF9pZHgpO1xuMzQ2NDpcdFxuMzQ2NTpcdFx0cnR3ODlfY2hpcF9yZXN1bWVfc2NoX3R4KHJ0d2RldiwgcGh5X2lkeCwgdHhfZW4pO1xuMzQ2NjpcdFx0cnR3ODlfYnRjX250Znlfd2xfcmZrKHJ0d2RldiwgcGh5X21hcCwgQlRDX1dSRktUX0RQSywgQlRDX1dSRktfU1RPUCk7XG4zNDY3Olx0fVxuMzQ2ODpcdFxuMzQ2OTpcdHZvaWQgcnR3ODg1MWJfZHBrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbjM0NzA6XHR7XG4zNDcxOlx0XHRfZHBrX3RyYWNrKHJ0d2Rldik7XG4zNDcyOlx0fVxuMzQ3MzpcdFxuMzQ3NDpcdHZvaWQgcnR3ODg1MWJfdHNzaShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4zNDc1Olx0XHRcdCAgIGJvb2wgaHd0eF9lbiwgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcbjM0NzY6XHR7XG4zNDc3Olx0XHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2hhbiAqY2hhbiA9IHJ0dzg5X2NoYW5fZ2V0KHJ0d2RldiwgY2hhbmN0eF9pZHgpO1xuMzQ3ODpcdFx0dTggcGh5X21hcCA9IHJ0dzg5X2J0Y19waHltYXAocnR3ZGV2LCBwaHksIFJGX0EsIGNoYW5jdHhfaWR4KTtcbjM0Nzk6XHRcdHU4IGk7XG4zNDgwOlx0XG4zNDgxOlx0XHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19UU1NJLCBcJiMzNDtbVFNTSV0gJXM6IHBoeT0lZFxcblwmIzM0OywgX19mdW5jX18sIHBoeSk7XG4zNDgyOlx0XHRydHc4OV9idGNfbnRmeV93bF9yZmsocnR3ZGV2LCBwaHlfbWFwLCBCVENfV1JGS1RfSVFLLCBCVENfV1JGS19PTkVTSE9UX1NUQVJUKTtcbjM0ODM6XHRcbjM0ODQ6XHRcdF90c3NpX2Rpc2FibGUocnR3ZGV2LCBwaHkpO1xuMzQ4NTpcdFxuMzQ4NjpcdFx0Zm9yIChpID0gUkZfUEFUSF9BOyBpIFx1MDAzYyBSRl9QQVRIX05VTV84ODUxQjsgaSYjNDM7JiM0MzspIHtcbjM0ODc6XHRcdFx0X3Rzc2lfc2V0X3N5cyhydHdkZXYsIHBoeSwgaSwgY2hhbik7XG4zNDg4Olx0XHRcdF90c3NpX2luaV90eHB3cl9jdHJsX2JiKHJ0d2RldiwgcGh5LCBpKTtcbjM0ODk6XHRcdFx0X3Rzc2lfaW5pX3R4cHdyX2N0cmxfYmJfaGVfdGIocnR3ZGV2LCBwaHksIGkpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMDoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MDE2MgoJCQkJCQkJb3V0cHV0OiAxNDgKCQkJCQkJCXRob3VnaHRzOiAyNzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJlbGV2YW50IENvZGUqKgoKT2theSwgc28gSSYjMzk7dmUgdHJhY2VkIHRocm91Z2ggdGhlIGNvZGUuIEkgc2VlIHRoYXQgYHJ0dzg4NTFiX2Rwa2AgbWFrZXMgYSBjYWxsIHRvIGBfZHBrYCwgc3BlY2lmaWNhbGx5IHdpdGggdGhlIGFyZ3VtZW50cyBgcnR3ZGV2YCwgYHBoeV9pZHhgLCBgZmFsc2VgLCBhbmQgYGNoYW5jdHhfaWR4YC4gVGhhdCBgX2Rwa2AgZnVuY3Rpb24gdGhlbiBjYWxscyBgX2Rwa19jYWxfc2VsZWN0YCwgd2hpY2ggZmluYWxseSBnZXRzIGRvd24gdG8gYF9kcGtfaW5mb3JtYXRpb25gLiBUaGF0JiMzOTtzIG9uZSBwYXRoLiBPbiB0aGUgb3RoZXIgaGFuZCwgYHJ0dzg4NTFiX2Rwa190cmFja2AgY2FsbHMgYF9kcGtfdHJhY2tgLCBhbmQgdGhhdCBmdW5jdGlvbiB1dGlsaXplcyBgZHBrLSZndDticFtwYXRoXVtraWR4XS5jaGAuIFRoaXMgbG9va3MgcHJvbWlzaW5nLiBCb3RoIHNlZW0gdG8gYmUgaW52b2x2ZWQgaW4ga2V5IHBhcnRzIG9mIHRoZSBEUEsgcHJvY2Vzcy4KCkdpdmVuIHRoaXMsIEkgYW0gZ29pbmcgdG8gbWFyayBgcnR3ODg1MWJfZHBrYCBhbmQgYHJ0dzg4NTFiX2Rwa190cmFja2AgYXMgdGhlIHRhcmdldCBzeW1ib2xzIGZvciBmdXp6aW5nLgoKTXkgZGVjaXNpb24gY2FuIGJlIHN1bW1hcml6ZWQgYXM6CgoqICAgKipXb3J0aEZ1enppbmc6KiogVHJ1ZSAtIHRoaXMgY2hhbmdlIGlzIGRlZmluaXRlbHkgd29ydGggZnV6emVyIGlucHV0LgoqICAgKipGb2N1c1N5bWJvbHM6KiogYFsmIzM0O3J0dzg4NTFiX2RwayYjMzQ7LCAmIzM0O3J0dzg4NTFiX2Rwa190cmFjayYjMzQ7XWAgLSBUaGVzZSBhcmUgdGhlIG1vc3QgcmVsZXZhbnQgc3ltYm9scyB0byB0YXJnZXQuCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYFsmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LCAmIzM0O1JUVzg5Xzg4NTFCRSYjMzQ7XWAgLSBJIGJlbGlldmUgdGhlIGRyaXZlciBjb25maWd1cmF0aW9ucyBmb3IgVVNCICg4ODUxQlUpIGFuZCBQQ0ktRSAoODg1MUJFKSBhcmUgcmVsZXZhbnQuCiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgYnVnIGluIHRoZSBEUEsgY2FsaWJyYXRpb24gbG9naWMsIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIGNoYW5uZWwgYW5kIGJhbmR3aWR0aCB2YWx1ZSBzd2FwcGluZyB3aXRoaW4gdGhlIHJ0dzg5IGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBoYXJkd2FyZSBjb25maWd1cmF0aW9uIGFuZCB0cmFja2luZyBsb2dpYyB3aXRoaW4gdGhlIGRyaXZlciwgd2hpY2ggaXMgd2hhdCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBUaGUgVVNCIGNvbmZpZ3VyYXRpb24gaXMgcGFydGljdWxhcmx5IGludGVyZXN0aW5nLCBnaXZlbiB0aGUgYWJpbGl0eSB0byB1c2UgYSBgZHVtbXlfaGNkYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTA6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUxQkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4ODUxYl9kcGsmIzM0OywKICAgICYjMzQ7cnR3ODg1MWJfZHBrX3RyYWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZnVuY3Rpb25hbCBidWcgaW4gdGhlIERQSyAoRGlnaXRhbCBQcmUtRGlzdG9ydGlvbikgY2FsaWJyYXRpb24gbG9naWMgb2YgdGhlIHJ0dzg5IGRyaXZlciB3aGVyZSBjaGFubmVsIGFuZCBiYW5kd2lkdGggdmFsdWVzIHdlcmUgc3dhcHBlZC4gVGhpcyBhZmZlY3RzIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gYW5kIHRyYWNraW5nIGxvZ2ljLiBUaGUgZHJpdmVyIHN1cHBvcnRzIFVTQiAoODg1MUJVKSBhbmQgY2FuIGJlIGZ1enplZCB2aWEgZHVtbXlfaGNkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtSVFc4OV84ODUxQlUmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MUJFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnR3ODg1MWJfZHBrJiMzNDssCiAgICAmIzM0O3J0dzg4NTFiX2Rwa190cmFjayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGZ1bmN0aW9uYWwgYnVnIGluIHRoZSBEUEsgKERpZ2l0YWwgUHJlLURpc3RvcnRpb24pIGNhbGlicmF0aW9uIGxvZ2ljIG9mIHRoZSBydHc4OSBkcml2ZXIgd2hlcmUgY2hhbm5lbCBhbmQgYmFuZHdpZHRoIHZhbHVlcyB3ZXJlIHN3YXBwZWQuIFRoaXMgYWZmZWN0cyBoYXJkd2FyZSBjb25maWd1cmF0aW9uIGFuZCB0cmFja2luZyBsb2dpYy4gVGhlIGRyaXZlciBzdXBwb3J0cyBVU0IgKDg4NTFCVSkgYW5kIGNhbiBiZSBmdXp6ZWQgdmlhIGR1bW15X2hjZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjE5OjE4LjY5NzU2MzY5N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjc4MjA5MDM5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OV84ODUxQlVcIixcbiAgICBcIlJUVzg5Xzg4NTFCRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg4NTFiX2Rwa1wiLFxuICAgIFwicnR3ODg1MWJfZHBrX3RyYWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBmdW5jdGlvbmFsIGJ1ZyBpbiB0aGUgRFBLIChEaWdpdGFsIFByZS1EaXN0b3J0aW9uKSBjYWxpYnJhdGlvbiBsb2dpYyBvZiB0aGUgcnR3ODkgZHJpdmVyIHdoZXJlIGNoYW5uZWwgYW5kIGJhbmR3aWR0aCB2YWx1ZXMgd2VyZSBzd2FwcGVkLiBUaGlzIGFmZmVjdHMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiBhbmQgdHJhY2tpbmcgbG9naWMuIFRoZSBkcml2ZXIgc3VwcG9ydHMgVVNCICg4ODUxQlUpIGFuZCBjYW4gYmUgZnV6emVkIHZpYSBkdW1teV9oY2QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjE5OjE4LjY5NzU3MDkyN1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzUwNzY5NDU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMDI3ODM5MzM5Nzc4MTdlZjA4NWU5MWRiODUzYzJjYzYyNzNmMGVhOFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyA3IDEwOjE5OjE3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXFxuaW5kZXggYzYzZjBlNjM2NGRhZC4uNzEzNDI0NjFmMmIzMCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuY1xcbkBAIC0xODk1LDggKzE4OTUsOCBAQCBzdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4gXFx0dTgga2lkeCA9IGRway1cXHUwMDNlY3VyX2lkeFtwYXRoXTtcXG4gXFxuIFxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9IGNoYW4tXFx1MDAzZWJhbmRfdHlwZTtcXG4tXFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXFx1MDAzZWJhbmRfd2lkdGg7XFxuLVxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVxcdTAwM2VjaGFubmVsO1xcbitcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cXHUwMDNlY2hhbm5lbDtcXG4rXFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXFx1MDAzZWJhbmRfd2lkdGg7XFxuIFxcbiBcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssXFxuIFxcdFxcdCAgICBcXFwiW0RQS10gUyVkWyVkXSAoUEhZJWQpOiBUU1NJICVzLyBEQkNDICVzLyAlcy8gQ0glZC8gJXNcXFxcblxcXCIsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjE5OjE5LjA0OTA2NjQ5MVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjExNjQzMDU3ODQ4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OV84ODUxQlVcIixcbiAgICBcIlJUVzg5Xzg4NTFCRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg4NTFiX2Rwa1wiLFxuICAgIFwicnR3ODg1MWJfZHBrX3RyYWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBmdW5jdGlvbmFsIGJ1ZyBpbiB0aGUgRFBLIChEaWdpdGFsIFByZS1EaXN0b3J0aW9uKSBjYWxpYnJhdGlvbiBsb2dpYyBvZiB0aGUgcnR3ODkgZHJpdmVyIHdoZXJlIGNoYW5uZWwgYW5kIGJhbmR3aWR0aCB2YWx1ZXMgd2VyZSBzd2FwcGVkLiBUaGlzIGFmZmVjdHMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiBhbmQgdHJhY2tpbmcgbG9naWMuIFRoZSBkcml2ZXIgc3VwcG9ydHMgVVNCICg4ODUxQlUpIGFuZCBjYW4gYmUgZnV6emVkIHZpYSBkdW1teV9oY2QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDAyNzgzOTMzOTc3ODE3ZWYwODVlOTFkYjg1M2MyY2M2MjczZjBlYThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyA3IDEwOjE5OjE3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmNcbmluZGV4IGM2M2YwZTYzNjRkYWQuLjcxMzQyNDYxZjJiMzAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXG5AQCAtMTg5NSw4ICsxODk1LDggQEAgc3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXG4gXHR1OCBraWR4ID0gZHBrLVx1MDAzZWN1cl9pZHhbcGF0aF07XG4gXG4gXHRkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9IGNoYW4tXHUwMDNlYmFuZF90eXBlO1xuLVx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cdTAwM2ViYW5kX3dpZHRoO1xuLVx0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID0gY2hhbi1cdTAwM2VjaGFubmVsO1xuK1x0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cdTAwM2VjaGFubmVsO1xuK1x0ZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID0gY2hhbi1cdTAwM2ViYW5kX3dpZHRoO1xuIFxuIFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUkZLLFxuIFx0XHQgICAgXCJbRFBLXSBTJWRbJWRdIChQSFklZCk6IFRTU0kgJXMvIERCQ0MgJXMvICVzLyBDSCVkLyAlc1xcblwiLFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6MTkuMDQ5MDY3OTAxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjcxODk2Nzc5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSZWFsdGVrIFdpLUZpIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggZm9yIGBydHc4ODUxYl9yZmsuY2Agd2l0aGluIHRoZSBSZWFsdGVrIGBydHc4OWAgV2ktRmkgZHJpdmVyLiBJdCBzZWVtcyBsaWtlIGEgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBidWcgZml4IOKAkyBgY2hhbi1cdTAwM2ViYW5kX3dpZHRoYCBhbmQgYGNoYW4tXHUwMDNlY2hhbm5lbGAgd2VyZSBnZXR0aW5nIG1peGVkIHVwIGR1cmluZyBhc3NpZ25tZW50IHRvIGBkcGstXHUwMDNlYnBgLiBCdXQgaXMgdGhpcyBzb21ldGhpbmcgd29ydGggZGVkaWNhdGluZyB0aW1lIHRvPyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCdzIGV2ZW4gKnJlYWNoYWJsZSogYW5kIGlmIGZ1enppbmcgaXQgbWFrZXMgc2Vuc2UuXG5cblJpZ2h0LCBzbyBpdCdzIGEgUmVhbHRlayBkcml2ZXIsIGBydHc4OWAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjaGVjayBpZiBtYWM4MDIxMV9od3NpbSBpcyBhcHBsaWNhYmxlLCBidXQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLCBzbyB0aGF0J3MgcHJvYmFibHkgbm90IGdvaW5nIHRvIHdvcmsuIEFoLCBgcnR3ODlgLi4uIHRoYXQncyBQQ0kvVVNCIGZvciBSZWFsdGVrIDgwMi4xMWF4IGRldmljZXMsIGlzbid0IGl0PyBUaGUgcXVlc3Rpb24gdGhlbiBiZWNvbWVzLCBjYW4gSSBldmVuIHRlc3QgdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBIYXJkd2FyZSBkcml2ZXJzLCBwYXJ0aWN1bGFybHkgV2ktRmkgb25lcywgYXJlIGEgcGFpbi4gTW9zdCBvZiB0aGUgdGltZSwgSSBuZWVkIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZSBmb3IgZHJpdmVycyBsaWtlIGBydHc4OWAsIGBpd2x3aWZpYCwgYGF0aDEwa2AsIG9yIGBhdGgxMWtgIHVubGVzcyB0aGV5IGhhdmUgYSBVU0IgaW50ZXJmYWNlLiBVU0IgY2FuIHNvbWV0aW1lcyBiZSBlbXVsYXRlZCB3aXRoIGBkdW1teV9oY2RgIG9yIGByYXctZ2FkZ2V0YC4gUENJJ3MgZ2VuZXJhbGx5IGV2ZW4gbW9yZSBwcm9ibGVtYXRpYyB3aXRob3V0IHByb3BlciBlbXVsYXRpb24uIEJ1dC4uLiB3YWl0IGEgbWludXRlLCBJIHJlbWVtYmVyIGBydHc4OWAgYWN0dWFsbHkgc3VwcG9ydHMgKmJvdGgqIFBDSSAqYW5kKiBVU0IuIE5vdyB0aGF0J3MgaW50ZXJlc3RpbmcuIEkgbmVlZCB0byBjb25maXJtIHRoYXQuIFRoYXQgY2hhbmdlcyB0aGluZ3MgZHJhbWF0aWNhbGx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjM0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6MjUuNzY4MDM4MDM3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3Njc0NjYxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4OVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDgwNDMwIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9Mj1tZW51Y29uZmlnIFJUVzg5XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6OTpcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBydHc4OS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9MTkwPWNvbmZpZyBSVFc4OV9ERUJVR01TR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxOTE6XFx0Ym9vbCBcXFwiUmVhbHRlayBydHc4OSBkZWJ1ZyBtZXNzYWdlIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE5Mi1cXHRkZXBlbmRzIG9uIFJUVzg5X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz0xOTk9Y29uZmlnIFJUVzg5X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjAwOlxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODkgZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMDEtXFx0ZGVwZW5kcyBvbiBSVFc4OV9DT1JFIFxcdTAwMjZcXHUwMDI2IENGRzgwMjExX0RFQlVHRlNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX1JUVzg5X0NPUkUpICs9IHJ0dzg5X2NvcmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDpydHc4OV9jb3JlLXkgKz0gY29yZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTUtXFx0XFx0bWFjODAyMTEubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MjM6cnR3ODlfY29yZS0kKENPTkZJR19QTSkgKz0gd293Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTFCKSArPSBydHc4OV84ODUxYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToyNjpydHc4OV84ODUxYi1vYmpzIDo9IHJ0dzg4NTFiLm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMjctXFx0XFx0ICAgIHJ0dzg4NTFiX3RhYmxlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0zMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjMxOm9iai0kKENPTkZJR19SVFc4OV84ODUxQkUpICs9IHJ0dzg5Xzg4NTFiZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozMjpydHc4OV84ODUxYmUtb2JqcyA6PSBydHc4ODUxYmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozNDpvYmotJChDT05GSUdfUlRXODlfODg1MUJVKSArPSBydHc4OV84ODUxYnUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MzU6cnR3ODlfODg1MWJ1LW9ianMgOj0gcnR3ODg1MWJ1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6Mzc6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJBKSArPSBydHc4OV84ODUyYS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTozODpydHc4OV84ODUyYS1vYmpzIDo9IHJ0dzg4NTJhLm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzktXFx0XFx0ICAgIHJ0dzg4NTJhX3RhYmxlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjQzOm9iai0kKENPTkZJR19SVFc4OV84ODUyQUUpICs9IHJ0dzg5Xzg4NTJhZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo0NDpydHc4OV84ODUyYWUtb2JqcyA6PSBydHc4ODUyYWUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo0NjpvYmotJChDT05GSUdfUlRXODlfODg1MkFVKSArPSBydHc4OV84ODUyYXUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDc6cnR3ODlfODg1MmF1LW9ianMgOj0gcnR3ODg1MmF1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NDk6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCX0NPTU1PTikgKz0gcnR3ODlfODg1MmJfY29tbW9uLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjUwOnJ0dzg5Xzg4NTJiX2NvbW1vbi1vYmpzIDo9IHJ0dzg4NTJiX2NvbW1vbi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS01MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjUyOm9iai0kKENPTkZJR19SVFc4OV84ODUyQikgKz0gcnR3ODlfODg1MmIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NTM6cnR3ODlfODg1MmItb2JqcyA6PSBydHc4ODUyYi5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTU0LVxcdFxcdCAgICBydHc4ODUyYl90YWJsZS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo1ODpvYmotJChDT05GSUdfUlRXODlfODg1MkJFKSArPSBydHc4OV84ODUyYmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NTk6cnR3ODlfODg1MmJlLW9ianMgOj0gcnR3ODg1MmJlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NjE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJCVSkgKz0gcnR3ODlfODg1MmJ1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjYyOnJ0dzg5Xzg4NTJidS1vYmpzIDo9IHJ0dzg4NTJidS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS02My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjY0Om9iai0kKENPTkZJR19SVFc4OV84ODUyQlQpICs9IHJ0dzg5Xzg4NTJidC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2NTpydHc4OV84ODUyYnQtb2JqcyA6PSBydHc4ODUyYnQubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS02Ni1cXHRcXHQgICAgcnR3ODg1MmJ0X3Jmay5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo2OTpvYmotJChDT05GSUdfUlRXODlfODg1MkJURSkgKz0gcnR3ODlfODg1MmJ0ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo3MDpydHc4OV84ODUyYnRlLW9ianMgOj0gcnR3ODg1MmJ0ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjcyOm9iai0kKENPTkZJR19SVFc4OV84ODUyQykgKz0gcnR3ODlfODg1MmMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6NzM6cnR3ODlfODg1MmMtb2JqcyA6PSBydHc4ODUyYy5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTc0LVxcdFxcdCAgICBydHc4ODUyY190YWJsZS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo3ODpvYmotJChDT05GSUdfUlRXODlfODg1MkNFKSArPSBydHc4OV84ODUyY2Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6Nzk6cnR3ODlfODg1MmNlLW9ianMgOj0gcnR3ODg1MmNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODE6b2JqLSQoQ09ORklHX1JUVzg5Xzg4NTJDVSkgKz0gcnR3ODlfODg1MmN1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjgyOnJ0dzg5Xzg4NTJjdS1vYmpzIDo9IHJ0dzg4NTJjdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS04My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjg0Om9iai0kKENPTkZJR19SVFc4OV84OTIyQSkgKz0gcnR3ODlfODkyMmEub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODU6cnR3ODlfODkyMmEtb2JqcyA6PSBydHc4OTIyYS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjg2OlxcdFxcdCAgICBydHc4OTIyYV9yZmsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo4ODpvYmotJChDT05GSUdfUlRXODlfODkyMkFFKSArPSBydHc4OV84OTIyYWUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6ODk6cnR3ODlfODkyMmFlLW9ianMgOj0gcnR3ODkyMmFlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTE6b2JqLSQoQ09ORklHX1JUVzg5Xzg5MjJBVSkgKz0gcnR3ODlfODkyMmF1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjkyOnJ0dzg5Xzg5MjJhdS1vYmpzIDo9IHJ0dzg5MjJhdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS05My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjk0Om9iai0kKENPTkZJR19SVFc4OV84OTIyRCkgKz0gcnR3ODlfODkyMmQub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTU6cnR3ODlfODkyMmQtb2JqcyA6PSBydHc4OTIyZC5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjk2OlxcdFxcdCAgICBydHc4OTIyZF9yZmsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZTo5ODpvYmotJChDT05GSUdfUlRXODlfODkyMkRFKSArPSBydHc4OV84OTIyZGUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6OTk6cnR3ODlfODkyMmRlLW9ianMgOj0gcnR3ODkyMmRlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTEwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwMTpydHc4OV9jb3JlLSQoQ09ORklHX1JUVzg5X0RFQlVHKSArPSBkZWJ1Zy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToxMDI6cnR3ODlfY29yZS0kKENPTkZJR19SVFc4OV9MRURTKSArPSBsZWQub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MTAzOnJ0dzg5X2NvcmUtJChDT05GSUdfUlRXODlfTEVEU19NQykgKz0gbGVkX21jLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlLTEwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwNTpvYmotJChDT05GSUdfUlRXODlfUENJKSArPSBydHc4OV9wY2kub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6MTA2OnJ0dzg5X3BjaS15IDo9IHBjaS5vIHBjaV9iZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZS0xMDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZToxMDg6b2JqLSQoQ09ORklHX1JUVzg5X1VTQikgKz0gcnR3ODlfdXNiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjEwOTpydHc4OV91c2IteSA6PSB1c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMTEwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTE6c3RhdGljIGNvbnN0IGd1aWRfdCBydHc4OV9ndWlkID0gR1VJRF9JTklUKDB4RDJBOEMzRTgsIDB4NEI2OSwgMHg0RjAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEyLVxcdFxcdFxcdFxcdFxcdCAgIDB4ODIsIDB4QkQsIDB4RkUsIDB4ODYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNTpzdGF0aWMgdTMyIHJ0dzg5X2FjcGlfdHJhdmVyc2FsX29iamVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTYtXFx0XFx0XFx0XFx0ICAgICAgIGNvbnN0IHVuaW9uIGFjcGlfb2JqZWN0ICpvYmosIHU4ICpwb3MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMi1cXHRcXHRpZiAodW5saWtlbHkob2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoID09IDApKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzM6XFx0XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNC1cXHRcXHRcXHRcXHQgICAgXFxcIiVzOiBpbnZhbGlkIGJ1ZmZlciB0eXBlXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NC1cXHRcXHRpZiAodW5saWtlbHkob2JqLVxcdTAwM2VwYWNrYWdlLmNvdW50ID09IDApKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDU6XFx0XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00Ni1cXHRcXHRcXHRcXHQgICAgXFxcIiVzOiBpbnZhbGlkIHBhY2thZ2UgdHlwZVxcXFxuXFxcIiwgX19mdW5jX18pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTQ6XFx0XFx0XFx0c3ViX2xlbiA9IHJ0dzg5X2FjcGlfdHJhdmVyc2FsX29iamVjdChydHdkZXYsIGVsbSwgdG1wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NS1cXHRcXHRcXHRpZiAodW5saWtlbHkoc3ViX2xlbiA9PSAwKSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTYxLVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjI6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiB1bmhhbmRsZWQgdHlwZTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjMtXFx0XFx0XFx0ICAgIF9fZnVuY19fLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzM6c3RhdGljIHUzMiBydHc4OV9hY3BpX2NhbGN1bGF0ZV9vYmplY3RfbGVuZ3RoKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03NC1cXHRcXHRcXHRcXHRcXHQgICAgICBjb25zdCB1bmlvbiBhY3BpX29iamVjdCAqb2JqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTc1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3NjpcXHRyZXR1cm4gcnR3ODlfYWNwaV90cmF2ZXJzYWxfb2JqZWN0KHJ0d2Rldiwgb2JqLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03Ny19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Nzk6c3RhdGljIHN0cnVjdCBydHc4OV9hY3BpX2RhdGEgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjgwOnJ0dzg5X2FjcGlfZXZhbHVhdGVfbWV0aG9kKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgY29uc3QgY2hhciAqbWV0aG9kKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTgxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy04Mi1cXHRzdHJ1Y3QgYWNwaV9idWZmZXIgYnVmID0ge0FDUElfQUxMT0NBVEVfQlVGRkVSLCBOVUxMfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo4MzpcXHRzdHJ1Y3QgcnR3ODlfYWNwaV9kYXRhICpkYXRhID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy04NC1cXHRhY3BpX2hhbmRsZSByb290LCBoYW5kbGU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05MC1cXHRpZiAoIXJvb3QpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo5MTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTkyLVxcdFxcdFxcdCAgICBcXFwiYWNwaSAoJXMpOiBmYWlsZWQgdG8gZ2V0IHJvb3RcXFxcblxcXCIsIG1ldGhvZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy05Ny1cXHRpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo5ODpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTk5LVxcdFxcdFxcdCAgICBcXFwiYWNwaSAoJXMpOiBmYWlsZWQgdG8gZ2V0IGhhbmRsZVxcXFxuXFxcIiwgbWV0aG9kKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEwNC1cXHRpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxMDU6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMDYtXFx0XFx0XFx0ICAgIFxcXCJhY3BpICglcyk6IGZhaWxlZCB0byBldmFsdWF0ZSBvYmplY3RcXFxcblxcXCIsIG1ldGhvZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMTAtXFx0b2JqID0gYnVmLnBvaW50ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTExOlxcdGxlbiA9IHJ0dzg5X2FjcGlfY2FsY3VsYXRlX29iamVjdF9sZW5ndGgocnR3ZGV2LCBvYmopO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTExMi1cXHRpZiAodW5saWtlbHkobGVuID09IDApKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTEzOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTE0LVxcdFxcdFxcdCAgICBcXFwiYWNwaSAoJXMpOiBmYWlsZWQgdG8gdHJhdmVyc2FsIG9iaiBsZW5cXFxcblxcXCIsIG1ldGhvZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMjItXFx0ZGF0YS1cXHUwMDNlbGVuID0gbGVuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEyMzpcXHRydHc4OV9hY3BpX3RyYXZlcnNhbF9vYmplY3QocnR3ZGV2LCBvYmosIGRhdGEtXFx1MDAzZWJ1Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTI0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MTMwPXN0YXRpY1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEzMTppbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3ZhbHVlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMzItXFx0XFx0XFx0ICAgICB1OCAqdmFsdWUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xMzQtXFx0aWYgKG9iai1cXHUwMDNldHlwZSAhPSBBQ1BJX1RZUEVfSU5URUdFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjEzNTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTEzNi1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBpbnRlZ2VyIGJ1dCB0eXBlOiAlZFxcXFxuXFxcIiwgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNDQ6c3RhdGljIGJvb2wgY2hrX2FjcGlfcG9saWN5XzZnaHpfc2lnKGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6ICpwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE0NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0xNTE9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTUyOmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHooc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE1My1cXHRcXHRcXHRcXHQgICB1bmlvbiBhY3BpX29iamVjdCAqb2JqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE1NDpcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoeiAqKnBvbGljeV82Z2h6KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE1NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MTU2OlxcdGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6ICpwdHI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTU3LVxcdHUzMiBleHBlY3RfbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTYwLVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE2MTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2Mi1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTY3LVxcdGlmIChsZW4gXFx1MDAzYyBzaXplb2YoKnB0cikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxNjg6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE2OS1cXHRcXHRcXHQgICAgX19mdW5jX18sIGxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzQtXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfNmdoel9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjE3NTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xNzYtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0xODAtXFx0aWYgKGxlbiBcXHUwMDNjIGV4cGVjdF9sZW4pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxODE6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBleHBlY3QgJXUgYnV0IGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTgyLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgZXhwZWN0X2xlbiwgbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE4OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxOTA6XFx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcInBvbGljeV82Z2h6OiBcXFwiLCAqcG9saWN5XzZnaHosXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMTkxLVxcdFxcdCAgICAgICBleHBlY3RfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE5NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoxOTU6c3RhdGljIGJvb2wgY2hrX2FjcGlfcG9saWN5XzZnaHpfc3Bfc2lnKGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV82Z2h6X3NwICpwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTE5Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yMDM9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjA0OmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfc3Aoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIwNS1cXHRcXHRcXHRcXHQgICAgICB1bmlvbiBhY3BpX29iamVjdCAqb2JqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIwNjpcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoel9zcCAqKnBvbGljeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMDcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIwODpcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoel9zcCAqcHRyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIwOS1cXHR1MzIgYnVmX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxMS1cXHRpZiAob2JqLVxcdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyMTI6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMTMtXFx0XFx0XFx0ICAgIFxcXCJhY3BpOiBleHBlY3QgYnVmZmVyIGJ1dCB0eXBlOiAlZFxcXFxuXFxcIiwgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTIxOC1cXHRpZiAoYnVmX2xlbiBcXHUwMDNjIHNpemVvZigqcHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIxOTpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjIwLVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjUtXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfNmdoel9zcF9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjIyNjpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMjctXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjM0OlxcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCJwb2xpY3lfNmdoel9zcDogXFxcIiwgKnBvbGljeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzUtXFx0XFx0ICAgICAgIHNpemVvZigqcHRyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjM5OnN0YXRpYyBib29sIGNoa19hY3BpX3BvbGljeV82Z2h6X3ZscF9zaWcoY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5XzZnaHpfdmxwICpwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI0MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz0yNDc9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjQ4OmludCBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHpfdmxwKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNDktXFx0XFx0XFx0XFx0ICAgICAgIHVuaW9uIGFjcGlfb2JqZWN0ICpvYmosXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjUwOlxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfNmdoel92bHAgKipwb2xpY3kpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjUxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyNTI6XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5XzZnaHpfdmxwICpwdHI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjUzLVxcdHUzMiBidWZfbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjU1LVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI1NjpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI1Ny1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjYyLVxcdGlmIChidWZfbGVuIFxcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjYzOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNjQtXFx0XFx0XFx0ICAgIF9fZnVuY19fLCBidWZfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI2OS1cXHRpZiAoIWNoa19hY3BpX3BvbGljeV82Z2h6X3ZscF9zaWcocHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI3MDpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGJhZCBzaWduYXR1cmVcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzEtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mjc4OlxcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCJwb2xpY3lfNmdoel92bHA6IFxcXCIsICpwb2xpY3ksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjc5LVxcdFxcdCAgICAgICBzaXplb2YoKnB0cikpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjI4MzpzdGF0aWMgYm9vbCBjaGtfYWNwaV9wb2xpY3lfdGFzX3NpZyhjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfdGFzICpwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI4NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0yOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MjkxOnN0YXRpYyBpbnQgcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV90YXMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI5Mi1cXHRcXHRcXHRcXHRcXHQgdW5pb24gYWNwaV9vYmplY3QgKm9iaixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyOTM6XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV90YXMgKipwb2xpY3kpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMjk0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyOTU6XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3RhcyAqcHRyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI5Ni1cXHR1MzIgYnVmX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTI5OC1cXHRpZiAob2JqLVxcdTAwM2V0eXBlICE9IEFDUElfVFlQRV9CVUZGRVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzoyOTk6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMDAtXFx0XFx0XFx0ICAgIFxcXCJhY3BpOiBleHBlY3QgYnVmZmVyIGJ1dCB0eXBlOiAlZFxcXFxuXFxcIiwgb2JqLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMwNS1cXHRpZiAoYnVmX2xlbiBcXHUwMDNjIHNpemVvZigqcHRyKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMwNjpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwiJXM6IGludmFsaWQgYnVmZmVyIGxlbmd0aDogJXVcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzA3LVxcdFxcdFxcdCAgICBfX2Z1bmNfXywgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMTItXFx0aWYgKCFjaGtfYWNwaV9wb2xpY3lfdGFzX3NpZyhwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzEzOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogYmFkIHNpZ25hdHVyZVxcXFxuXFxcIiwgX19mdW5jX18pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMxNC1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTMyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMjE6XFx0cnR3ODlfaGV4X2R1bXAocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcInBvbGljeV90YXM6IFxcXCIsICpwb2xpY3ksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzIyLVxcdFxcdCAgICAgICBzaXplb2YoKnB0cikpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9MzI2PXN0YXRpY1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjMyNzpib29sIGNoa19hY3BpX3BvbGljeV9yZWdfcnVsZXNfc2lnKGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3BvbGljeV9yZWdfcnVsZXMgKnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTMzNT1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMzY6aW50IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfcmVnX3J1bGVzKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMzctXFx0XFx0XFx0XFx0XFx0dW5pb24gYWNwaV9vYmplY3QgKm9iaixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozMzg6XFx0XFx0XFx0XFx0XFx0c3RydWN0IHJ0dzg5X2FjcGlfcG9saWN5X3JlZ19ydWxlcyAqKnBvbGljeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zMzkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM0MDpcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9wb2xpY3lfcmVnX3J1bGVzICpwdHI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQxLVxcdHUzMiBidWZfbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzQzLVxcdGlmIChvYmotXFx1MDAzZXR5cGUgIT0gQUNQSV9UWVBFX0JVRkZFUikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM0NDpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM0NS1cXHRcXHRcXHQgICAgXFxcImFjcGk6IGV4cGVjdCBidWZmZXIgYnV0IHR5cGU6ICVkXFxcXG5cXFwiLCBvYmotXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzUwLVxcdGlmIChidWZfbGVuIFxcdTAwM2Mgc2l6ZW9mKCpwdHIpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzUxOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCIlczogaW52YWxpZCBidWZmZXIgbGVuZ3RoOiAldVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNTItXFx0XFx0XFx0ICAgIF9fZnVuY19fLCBidWZfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM1Ny1cXHRpZiAoIWNoa19hY3BpX3BvbGljeV9yZWdfcnVsZXNfc2lnKHB0cikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNTg6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBiYWQgc2lnbmF0dXJlXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzU5LVxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM2NjpcXHRydHc4OV9oZXhfZHVtcChydHdkZXYsIFJUVzg5X0RCR19BQ1BJLCBcXFwicG9saWN5X3JlZ19ydWxlczogXFxcIiwgKnBvbGljeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNjctXFx0XFx0ICAgICAgIHNpemVvZigqcHRyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzcxOmludCBydHc4OV9hY3BpX2V2YWx1YXRlX2RzbShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6MzcyOlxcdFxcdFxcdCAgICBlbnVtIHJ0dzg5X2FjcGlfZHNtX2Z1bmMgZnVuYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozNzM6XFx0XFx0XFx0ICAgIHN0cnVjdCBydHc4OV9hY3BpX2RzbV9yZXN1bHQgKnJlcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zNzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM3ODpcXHRvYmogPSBhY3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShydHdkZXYtXFx1MDAzZWRldiksIFxcdTAwMjZydHc4OV9ndWlkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM3OS1cXHRcXHRcXHRcXHQwLCBmdW5jLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODAtXFx0aWYgKCFvYmopIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozODE6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zODItXFx0XFx0XFx0ICAgIFxcXCJhY3BpIGRzbSBmYWlsIHRvIGV2YWx1YXRlIGZ1bmM6ICVkXFxcXG5cXFwiLCBmdW5jKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM4Ni1cXHRpZiAoZnVuYyA9PSBSVFc4OV9BQ1BJX0RTTV9GVU5DXzZHX0JQKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjM4NzpcXHRcXHRyZXQgPSBydHc4OV9hY3BpX2RzbV9nZXRfcG9saWN5XzZnaHoocnR3ZGV2LCBvYmosXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzg4LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgXFx1MDAyNnJlcy1cXHUwMDNldS5wb2xpY3lfNmdoeik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzg5LVxcdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ182R0haX1NQX1NVUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTA6XFx0XFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV82Z2h6X3NwKHJ0d2Rldiwgb2JqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5MS1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHUwMDI2cmVzLVxcdTAwM2V1LnBvbGljeV82Z2h6X3NwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTItXFx0ZWxzZSBpZiAoZnVuYyA9PSBSVFc4OV9BQ1BJX0RTTV9GVU5DXzZHSFpfVkxQX1NVUClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTM6XFx0XFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV82Z2h6X3ZscChydHdkZXYsIG9iaixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IFxcdTAwMjZyZXMtXFx1MDAzZXUucG9saWN5XzZnaHpfdmxwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy0zOTUtXFx0ZWxzZSBpZiAoZnVuYyA9PSBSVFc4OV9BQ1BJX0RTTV9GVU5DX1RBU19FTilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzozOTY6XFx0XFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3BvbGljeV90YXMocnR3ZGV2LCBvYmosIFxcdTAwMjZyZXMtXFx1MDAzZXUucG9saWN5X3Rhcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtMzk3LVxcdGVsc2UgaWYgKGZ1bmMgPT0gUlRXODlfQUNQSV9EU01fRlVOQ19SRUdfUlVMRVNfRU4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6Mzk4OlxcdFxcdHJldCA9IHJ0dzg5X2FjcGlfZHNtX2dldF9wb2xpY3lfcmVnX3J1bGVzKHJ0d2Rldiwgb2JqLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTM5OS1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgIFxcdTAwMjZyZXMtXFx1MDAzZXUucG9saWN5X3JlZ19ydWxlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDAwLVxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MDE6XFx0XFx0cmV0ID0gcnR3ODlfYWNwaV9kc21fZ2V0X3ZhbHVlKHJ0d2Rldiwgb2JqLCBcXHUwMDI2cmVzLVxcdTAwM2V1LnZhbHVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MDItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDA3OmludCBydHc4OV9hY3BpX2V2YWx1YXRlX3J0YWcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQwODpcXHRcXHRcXHQgICAgIHN0cnVjdCBydHc4OV9hY3BpX3J0YWdfcmVzdWx0ICpyZXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDA5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MTA6XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfZGF0YSAqZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MTEtXFx0dTMyIGJ1Zl9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDE0OlxcdGRhdGEgPSBydHc4OV9hY3BpX2V2YWx1YXRlX21ldGhvZChydHdkZXYsIFxcXCJSVEFHXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDE1LVxcdGlmICghZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQxOS1cXHRpZiAoYnVmX2xlbiAhPSBzaXplb2YoKnJlcykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0MjA6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSwgXFxcIiVzOiBpbnZhbGlkIGJ1ZmZlciBsZW5ndGg6ICV1XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQyMS1cXHRcXHRcXHQgICAgX19mdW5jX18sIGJ1Zl9sZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQyNjpcXHQqcmVzID0gKihzdHJ1Y3QgcnR3ODlfYWNwaV9ydGFnX3Jlc3VsdCAqKWRhdGEtXFx1MDAzZWJ1ZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDI4OlxcdHJ0dzg5X2hleF9kdW1wKHJ0d2RldiwgUlRXODlfREJHX0FDUEksIFxcXCJhbnRlbm5hX2dhaW46IFxcXCIsIHJlcywgc2l6ZW9mKCpyZXMpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MjktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDM1OmVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBydHc4OV9hY3BpX3Nhcl9nZXRfc3ViYmFuZChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDM2LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICB1MzIgY2VudGVyX2ZyZXEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00MzktXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0NDA6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfQUNQSSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NDEtXFx0XFx0XFx0ICAgIFxcXCJjZW50ZXIgZnJlcSAldSB0byBBQ1BJIFNBUiBzdWJiYW5kIGlzIHVuaGFuZGxlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ2Ni1cXHQgKiBhbmQgUlRXODlfQUNQSV9TQVJfNkdIWl9TVUJCQU5EXzgsIHNvIGRpcmVjdGx5IGRlc2NyaWJlIGl0IHdpdGhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo0Njc6XFx0ICogc3RydWN0IHJ0dzg5XzZnaHpfc3Bhbi5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NjgtXFx0ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy00NzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NDc1OmVudW0gcnR3ODlfYmFuZCBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kX3RvX2JhbmQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ3NjpcXHRcXHRcXHRcXHRcXHQgICAgICAgZW51bSBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kIHN1YmJhbmQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNDc3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ3OS1cXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjQ4MDpcXHRcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19BQ1BJLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTQ4MS1cXHRcXHRcXHQgICAgXFxcIkFDUEkgU0FSIHN1YmJhbmQgJXUgdG8gYmFuZCBpcyB1bmhhbmRsZWRcXFxcblxcXCIsIHN1YmJhbmQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjUwODpzdGF0aWMgdTggcnR3ODlfYWNwaV9zYXJfcmZwYXRoX3RvX2hwX2FudGlkeChlbnVtIHJ0dzg5X3JmX3BhdGggcmZwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTUwOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01MTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTE5OnN0YXRpYyB1OCBydHc4OV9hY3BpX3Nhcl9yZnBhdGhfdG9fcnRfYW50aWR4KGVudW0gcnR3ODlfcmZfcGF0aCByZnBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTUyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1MzA6c3RhdGljIHMxNiBydHc4OV9hY3BpX3Nhcl9ub3JtYWxpemVfaHBfdmFsKHU4IHYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NDQ6c3RhdGljIHMxNiBydHc4OV9hY3BpX3Nhcl9ub3JtYWxpemVfcnRfdmFsKHU4IHYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTU1Nj1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NTc6dm9pZCBydHc4OV9hY3BpX3Nhcl9sb2FkX3N0ZF9sZWdhY3koc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU1ODpcXHRcXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3JlY29nbml0aW9uICpyZWMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNTU5LVxcdFxcdFxcdFxcdCAgICBjb25zdCB2b2lkICpjb250ZW50LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2MDpcXHRcXHRcXHRcXHQgICAgc3RydWN0IHJ0dzg5X3Nhcl9lbnRyeV9mcm9tX2FjcGkgKmVudClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01NjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU2MjpcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9zYXJfc3RkX2xlZ2FjeSAqcHRyID0gY29udGVudDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1NjM6XFx0ZW51bSBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kIHN1YmJhbmQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTY0OlxcdGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU2NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTU3OT1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo1ODA6dm9pZCBydHc4OV9hY3BpX3Nhcl9sb2FkX3N0ZF9oYXNfNmdoeihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTgxOlxcdFxcdFxcdFxcdCAgICAgIGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3Nhcl9yZWNvZ25pdGlvbiAqcmVjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU4Mi1cXHRcXHRcXHRcXHQgICAgICBjb25zdCB2b2lkICpjb250ZW50LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4MzpcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcnR3ODlfc2FyX2VudHJ5X2Zyb21fYWNwaSAqZW50KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTU4NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTg1OlxcdGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3Nhcl9zdGRfaGFzXzZnaHogKnB0ciA9IGNvbnRlbnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NTg2OlxcdGVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBzdWJiYW5kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjU4NzpcXHRlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy01ODgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz02MDA9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjAxOnZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zbWxfbGVnYWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MDI6XFx0XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX3Nhcl9yZWNvZ25pdGlvbiAqcmVjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTYwMy1cXHRcXHRcXHRcXHQgICAgY29uc3Qgdm9pZCAqY29udGVudCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MDQ6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHc4OV9zYXJfZW50cnlfZnJvbV9hY3BpICplbnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjA1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MDY6XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfc2FyX3NtbF9sZWdhY3kgKnB0ciA9IGNvbnRlbnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjA3OlxcdGVudW0gcnR3ODlfYWNwaV9zYXJfc3ViYmFuZCBzdWJiYW5kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYwODpcXHRlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz02MjM9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NjI0OnZvaWQgcnR3ODlfYWNwaV9zYXJfbG9hZF9zbWxfaGFzXzZnaHooc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyNTpcXHRcXHRcXHRcXHQgICAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9zYXJfcmVjb2duaXRpb24gKnJlYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02MjYtXFx0XFx0XFx0XFx0ICAgICAgY29uc3Qgdm9pZCAqY29udGVudCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2Mjc6XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHJ0dzg5X3Nhcl9lbnRyeV9mcm9tX2FjcGkgKmVudClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02Mjgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYyOTpcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9zYXJfc21sX2hhc182Z2h6ICpwdHIgPSBjb250ZW50O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjYzMDpcXHRlbnVtIHJ0dzg5X2FjcGlfc2FyX3N1YmJhbmQgc3ViYmFuZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2MzE6XFx0ZW51bSBydHc4OV9yZl9wYXRoIHBhdGg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjMyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjY0NDpzdGF0aWMgczE2IHJ0dzg5X2FjcGlfZ2VvX3Nhcl9ub3JtYWxpemVfZGVsdGEoczggZGVsdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTY1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2NTM6c3RhdGljIGVudW0gcnR3ODlfYWNwaV9nZW9fc2FyX3JlZ2RfaHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo2NTQ6cnR3ODlfYWNwaV9nZW9fc2FyX3JlZ2RfY29udmVydF9ocF9pZHgoZW51bSBydHc4OV9yZWd1bGF0aW9uX3R5cGUgcmVnZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy02NTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNjc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjY3NTpzdGF0aWMgZW51bSBydHc4OV9hY3BpX2dlb19zYXJfcmVnZF9ydFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjY3NjpydHc4OV9hY3BpX2dlb19zYXJfcmVnZF9jb252ZXJ0X3J0X2lkeChlbnVtIHJ0dzg5X3JlZ3VsYXRpb25fdHlwZSByZWdkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTY3Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYz03MDA9c3RhdGljXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzAxOnZvaWQgcnR3ODlfYWNwaV9nZW9fc2FyX2xvYWRfYnlfaHAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjcwMjpcXHRcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9nZW9fc2FyX2hwX3ZhbCAqcHRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjcwMzpcXHRcXHRcXHRcXHQgICBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgczE2ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzA0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MDU6XFx0dTggYW50aWR4ID0gcnR3ODlfYWNwaV9zYXJfcmZwYXRoX3RvX2hwX2FudGlkeChwYXRoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MDY6XFx0czE2IGRlbHRhID0gcnR3ODlfYWNwaV9nZW9fc2FyX25vcm1hbGl6ZV9kZWx0YShwdHItXFx1MDAzZWRlbHRhW2FudGlkeF0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjcwNzpcXHRzMTYgbWF4ID0gcnR3ODlfYWNwaV9zYXJfbm9ybWFsaXplX2hwX3ZhbChwdHItXFx1MDAzZW1heCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzA4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM9NzEyPXN0YXRpY1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjcxMzp2b2lkIHJ0dzg5X2FjcGlfZ2VvX3Nhcl9sb2FkX2J5X3J0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MTQ6XFx0XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfZ2VvX3Nhcl9ydF92YWwgKnB0cixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03MTUtXFx0XFx0XFx0XFx0ICAgczE2ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmMtNzE2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MTc6XFx0czE2IGRlbHRhID0gcnR3ODlfYWNwaV9nZW9fc2FyX25vcm1hbGl6ZV9kZWx0YShwdHItXFx1MDAzZWRlbHRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MTg6XFx0czE2IG1heCA9IHJ0dzg5X2FjcGlfc2FyX25vcm1hbGl6ZV9ydF92YWwocHRyLVxcdTAwM2VtYXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jPTcyMz1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MjQ6dm9pZCBydHc4OV9hY3BpX2dlb19zYXJfbG9hZF9ocF9sZWdhY3koc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcyNS1cXHRcXHRcXHRcXHQgICAgICAgY29uc3Qgdm9pZCAqY29udGVudCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MjY6XFx0XFx0XFx0XFx0ICAgICAgIGVudW0gcnR3ODlfcmVndWxhdGlvbl90eXBlIHJlZ2QsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzI3OlxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcnR3ODlfc2FyX2VudHJ5X2Zyb21fYWNwaSAqZW50KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jLTcyOC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzI5OlxcdGNvbnN0IHN0cnVjdCBydHc4OV9hY3BpX2dlb19zYXJfaHBfbGVnYWN5ICpwdHIgPSBjb250ZW50O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczMDpcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfYWNwaV9nZW9fc2FyX2hwX2xlZ2FjeV9lbnRyeSAqcHRyX2VudDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MzE6XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2FjcGlfZ2VvX3Nhcl9ocF92YWwgKnB0cl9lbnRfdmFsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczMjpcXHRlbnVtIHJ0dzg5X2FjcGlfZ2VvX3Nhcl9yZWdkX2hwIGdlb19pZHggPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczMzpcXHRcXHRydHc4OV9hY3BpX2dlb19zYXJfcmVnZF9jb252ZXJ0X2hwX2lkeChyZWdkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYzo3MzQ6XFx0ZW51bSBydHc4OV9hY3BpX3Nhcl9zdWJiYW5kIHN1YmJhbmQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9hY3BpLmM6NzM1OlxcdGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvYWNwaS5jOjczNjpcXHRlbnVtIHJ0dzg5X2JhbmQgYmFuZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03MzctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2FjcGkuYy03NDAtXFx0Zm9yIChzdWJiYW5kID0gMDsgc3ViYmFuZCBcXHUwMDNjIE5VTV9PRl9SVFc4OV9BQ1BJX1NBUl9TVUJCQU5EOyBzdWJiYW5kKyspIHtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6MjYuMDQ0Nzg5Nzg5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA2MjQ0NzA2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJlYWx0ZWsgcnR3ODkgV2lyZWxlc3MgRHJpdmVyIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgUmVhbHRlayBydHc4OSB3aXJlbGVzcyBkcml2ZXIsIGFuZCBpdCdzIHN0cnVjdHVyZWQgaW4gYSBwcmV0dHkgc3RhbmRhcmQgd2F5LCB3aXRoIGRpZmZlcmVudCBjb21wb25lbnRzIGxpa2UgYHJ0dzg5X2NvcmVgLCBgcnR3ODlfODg1MWJgLCBhbmQgc2VwYXJhdGUgbW9kdWxlcyBmb3IgUENJIGFuZCBVU0IgKGBydHc4OV9wY2lgLCBgcnR3ODlfdXNiYCkuIFRoYXQncyBpbW1lZGlhdGVseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZSBVU0Igc3VwcG9ydCBvcGVucyB1cCBzb21lIGZ1enppbmcgcG9zc2liaWxpdGllcyB3aXRoIHN5emthbGxlci4gU3BlY2lmaWNhbGx5LCBJJ20gdGhpbmtpbmcgSSBjb3VsZCB1c2UgYGR1bW15X2hjZGAgYW5kIGByYXctZ2FkZ2V0YCB0byB0YXJnZXQgaXQuXG5cbk5vdywgbXkgZm9jdXMgaXMgb24gd2hldGhlciBhIHBhcnRpY3VsYXIgZmlsZSwgYHJ0dzg4NTFiX3Jmay5jYCwgaXMgYnVpbHQgaW50byB0aGUgVVNCIGNvbXBvbmVudC4gSSBzZWUgdGhhdCBpdCdzIGxpc3RlZCBhcyBwYXJ0IG9mIHRoZSBgcnR3ODlfODg1MWJgIGJ1aWxkOiBgcnR3ODlfODg1MWItb2JqcyA6PSBydHc4ODUxYi5vIHJ0dzg4NTFiX3RhYmxlLm8gcnR3ODg1MWJfcmZrLm9gLiBSaWdodCwgc28gaXQncyBjb21waWxlZCBpbnRvIGBydHc4OV84ODUxYi5vYCwgbm90IGRpcmVjdGx5IGludG8gYSBVU0Itc3BlY2lmaWMgbW9kdWxlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgbW9kdWxlICppcyogY29tcGlsZWQgd2hlbiBVU0Igc3VwcG9ydCBpcyBlbmFibGVkLlxuXG5UbyBjb25maXJtIHRoYXQsIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0aGUgYE1ha2VmaWxlYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9gIGFuZCB2ZXJpZnkgdGhhdCBgcnR3ODg1MWJfcmZrLm9gIGlzIGluZGVlZCBpbmNsdWRlZCB3aGVuIHRoZSBVU0IgY29tcG9uZW50IGlzIGJ1aWx0LiBJJ20gZ29pbmcgdG8gdHJhY2sgdGhhdCBkb3duIGFuZCBjb25maXJtIHRoaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4OTkzLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjE5OjMyLjEwNzIzOTUyM1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDA1ODQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4ODUxYl9yZmtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9NYWtlZmlsZT0yNj1ydHc4OV84ODUxYi1vYmpzIDo9IHJ0dzg4NTFiLm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMjctXFx0XFx0ICAgIHJ0dzg4NTFiX3RhYmxlLm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGU6Mjg6XFx0XFx0ICAgIHJ0dzg4NTFiX3Jmay5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L01ha2VmaWxlOjI5OlxcdFxcdCAgICBydHc4ODUxYl9yZmtfdGFibGUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvTWFrZWZpbGUtMzAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTEtI2luY2x1ZGUgXFxcInJ0dzg4NTFiLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjEyOiNpbmNsdWRlIFxcXCJydHc4ODUxYl9yZmsuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MTM6I2luY2x1ZGUgXFxcInJ0dzg4NTFiX3Jma190YWJsZS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNC0jaW5jbHVkZSBcXFwicnR3ODg1MWJfdGFibGUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYz0yNTE9c3RhdGljIGNvbnN0IHN0cnVjdCBydHc4OV9ycnNyX2NmZ3MgcnR3ODg1MWJfcnJzcl9jZmdzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjU2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3ODlfcmZraWxsX3JlZ3MgcnR3ODg1MWJfcmZraWxsX3JlZ3MgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1Ny1cXHQucGlubXV4ID0ge1JfQVhfR1BJTzhfMTVfRlVOQ19TRUwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM9MTczMj1zdGF0aWMgdm9pZCBydHc4ODUxYl9zZXRfY2hhbm5lbF9oZWxwKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBlbnRlcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoxNzU0OnN0YXRpYyB2b2lkIHJ0dzg4NTFiX3Jma19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc1NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MTc2NzpzdGF0aWMgdm9pZCBydHc4ODUxYl9yZmtfY2hhbm5lbChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3NjgtXFx0XFx0XFx0XFx0IHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MTc4NTpzdGF0aWMgdm9pZCBydHc4ODUxYl9yZmtfYmFuZF9jaGFuZ2VkKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc4Ni1cXHRcXHRcXHRcXHQgICAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYy0xNzkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoxNzkyOnN0YXRpYyB2b2lkIHJ0dzg4NTFiX3Jma19zY2FuKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTc5My1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjE4MDA6c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTgwMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM9MjQ5Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfb3BzIHJ0dzg4NTFiX2NoaXBfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1MDktXFx0LnJma19od19pbml0XFx0XFx0PSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoyNTEwOlxcdC5yZmtfaW5pdFxcdFxcdD0gcnR3ODg1MWJfcmZrX2luaXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1MTEtXFx0LnJma19pbml0X2xhdGVcXHRcXHQ9IE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjI1MTI6XFx0LnJma19jaGFubmVsXFx0XFx0PSBydHc4ODUxYl9yZmtfY2hhbm5lbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjUxMzpcXHQucmZrX2JhbmRfY2hhbmdlZFxcdD0gcnR3ODg1MWJfcmZrX2JhbmRfY2hhbmdlZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjUxNDpcXHQucmZrX3NjYW5cXHRcXHQ9IHJ0dzg4NTFiX3Jma19zY2FuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYzoyNTE1OlxcdC5yZmtfdHJhY2tcXHRcXHQ9IHJ0dzg4NTFiX3Jma190cmFjayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjUxNi1cXHQucG93ZXJfdHJpbVxcdFxcdD0gcnR3ODg1MWJfcG93ZXJfdHJpbSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWIuYz0yNTc1PWNvbnN0IHN0cnVjdCBydHc4OV9jaGlwX2luZm8gcnR3ODg1MWJfY2hpcF9pbmZvID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI3MTktXFx0LmJzc19jbHJfbWFwX3JlZ1xcdD0gUl9CU1NfQ0xSX01BUF9WMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjcyMDpcXHQucmZraWxsX2luaXRcXHRcXHQ9IFxcdTAwMjZydHc4ODUxYl9yZmtpbGxfcmVncyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMjcyMS1cXHQucmZraWxsX2dldFxcdFxcdD0ge1JfQVhfR1BJT19FWFRfQ1RSTCwgQl9BWF9HUElPX0lOXzl9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xMC0jaW5jbHVkZSBcXFwicnR3ODg1MWIuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjExOiNpbmNsdWRlIFxcXCJydHc4ODUxYl9yZmsuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjEyOiNpbmNsdWRlIFxcXCJydHc4ODUxYl9yZmtfdGFibGUuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTEzLSNpbmNsdWRlIFxcXCJydHc4ODUxYl90YWJsZS5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmtfdGFibGUuYy00LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrX3RhYmxlLmM6NTojaW5jbHVkZSBcXFwicnR3ODg1MWJfcmZrX3RhYmxlLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmtfdGFibGUuYy02LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoxOTozMi4xNTczMDU4MjdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDQwNDA5Mjg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgcnR3ODkgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBydHc4OWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaXRzIGJ1aWxkIGNvbmZpZ3VyYXRpb25zLiBJIHNlZSB0aGF0IGl0IGNhbiBiZSBidWlsdCB3aXRoIGBDT05GSUdfUlRXODlfVVNCYCBhbmQgYENPTkZJR19SVFc4OV84ODUxQmAgZW5hYmxlZC4gSW50ZXJlc3RpbmcsIGEgVVNCIGNvbmZpZ3VyYXRpb24gYW5kIGEgc3BlY2lmaWMgY2hpcHNldC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIGNvbmZpZ3VyYXRpb25zIGltcGFjdCB0aGUgZHJpdmVyJ3MgYmVoYXZpb3IuIFRoZSByZWxldmFudCBmdW5jdGlvbiBoZXJlIHNlZW1zIHRvIGJlIGBfZHBrX2luZm9ybWF0aW9uYC4gUmlnaHQsIGxldCdzIHRyYWNlIHRoaXMuIEkgbmVlZCB0byBzZWUgZXhhY3RseSB3aGVyZSBgX2Rwa19pbmZvcm1hdGlvbmAgaXMgY2FsbGVkIHdpdGhpbiB0aGUgZHJpdmVyJ3MgY29kZS4gVGhhdCB3aWxsIHRlbGwgbWUgaG93IHRoZSBVU0Igb3IgY2hpcHNldC1zcGVjaWZpYyBhc3BlY3RzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGlzIGNvbnRleHQuIFRpbWUgdG8gcHVsbCB1cCB0aGUgc291cmNlIGFuZCBkaWcgaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxOTA5LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6MzcuNTk3NzE3MjM1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNDU5OTk1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9kcGtfaW5mb3JtYXRpb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0xODgwPXN0YXRpYyB2b2lkIF9kcGtfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg4OTpzdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE4OTAtXFx0XFx0XFx0ICAgICBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjYwOT1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNjI2LVxcdFxcdF9kcGtfYmt1cF9yZihydHdkZXYsIGRwa19yZl9yZWcsIHJmX2JrdXAsIHBhdGgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjYyNzpcXHRcXHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNjI4LVxcdFxcdF9kcGtfaW5pdChydHdkZXYsIHBhdGgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0xODYwPXN0YXRpYyB2b2lkIF9kcGtfcnhfZGNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMTg2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4Njk6c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0xODcwLVxcdFxcdFxcdCAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjYxMD1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjUyLVxcdFxcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIFxcdTAwMjZiYWNrdXBfcmZfdmFsW3BhdGhdWzBdLCBwYXRoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI2NTM6XFx0XFx0X2Rwa19pbmZvcm1hdGlvbihydHdkZXYsIHBoeSwgcGF0aCwgY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjY1NC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTE3NDQ9c3RhdGljIHZvaWQgX2Rwa19yeF9kY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xNzUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc1MTpzdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE3NTItXFx0XFx0XFx0ICAgICBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjQ4ND1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNTE0LVxcdFxcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIFxcdTAwMjZiYWNrdXBfcmZfdmFsW3BhdGhdWzBdLCBwYXRoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI1MTU6XFx0XFx0X2Rwa19pbmZvcm1hdGlvbihydHdkZXYsIHBoeSwgcGF0aCwgY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjUxNi1cXHRcXHRpZiAocnR3ZGV2LVxcdTAwM2Vpc190c3NpX21vZGVbcGF0aF0pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0xODUyPXN0YXRpYyB2b2lkIF9kcGtfcnhfZGNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4NjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg2MzpzdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODY0LVxcdFxcdFxcdCAgICAgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0yNTg2PXN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjA5LVxcdFxcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIGJhY2t1cF9yZl92YWxbcGF0aF0sIHBhdGgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2MTA6XFx0XFx0X2Rwa19pbmZvcm1hdGlvbihydHdkZXYsIHBoeSwgcGF0aCwgY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2MTEtXFx0XFx0aWYgKHJ0d2Rldi1cXHUwMDNlaXNfdHNzaV9tb2RlW3BhdGhdKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYz0xODczPXN0YXRpYyB1OCBfZHBrX29uZV9zaG90KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMTkwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MDc6c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTA4LVxcdFxcdFxcdCAgICAgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MjY5Nj1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0yNzMxLVxcdFxcdF9yZmtfYmFja3VwX3JmX3JlZyhydHdkZXYsIGJhY2t1cF9yZl92YWxbcGF0aF0sIHBhdGgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MjczMjpcXHRcXHRfZHBrX2luZm9ybWF0aW9uKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0yNzMzLVxcdFxcdF9kcGtfaW5pdChydHdkZXYsIHBhdGgpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoxOTozNy42NTAxODI5NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMjQ3MTczMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgaW5mb3JtYXRpb246XG5cbioqVHJhY2luZyB0aGUgUkYgQ2FsaWJyYXRpb24gUGF0aCoqXG5cbk9rYXksIHNvIEkgc2VlIHRoYXQgYF9kcGtfaW5mb3JtYXRpb25gIGlzIGJlaW5nIGNhbGxlZCBieSBgX2Rwa19jYWxfc2VsZWN0YC4gR2l2ZW4gdGhhdCB0aGVzZSBhcmUgb2J2aW91c2x5IGludGVybmFsIGZ1bmN0aW9uIG5hbWVzLCBhbmQgdGhlIGNvbnRleHQgc3VnZ2VzdHMgUkYgY2FsaWJyYXRpb24gaXMgaW52b2x2ZWQsIG15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2UncmUgZGVhbGluZyB3aXRoIGEgbW9kdWxlIHJlbGF0ZWQgdG8gUkYgY2FsaWJyYXRpb24gcm91dGluZXMuIE15IG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIHBpbnBvaW50IHRoZSBvcmlnaW4gb2YgYF9kcGtfY2FsX3NlbGVjdGAuIFVuZGVyc3RhbmRpbmcgKml0cyogY2FsbGluZyBjb250ZXh0IHdpbGwgZ2l2ZSBtZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgbGFyZ2VyIGNhbGlicmF0aW9uIHdvcmtmbG93LCBpbmNsdWRpbmcgdGhlIGZ1bmN0aW9uJ3MgcmVzcG9uc2liaWxpdHkgYW5kIHRoZSBkYXRhIGl0IGNvbnN1bWVzLiBJIG5lZWQgdG8gdHJhY2UgYmFjayBmcm9tIGBfZHBrX2NhbF9zZWxlY3RgIHRvIGlkZW50aWZ5IGl0cyBwYXJlbnQgZnVuY3Rpb24ocykgdG8gdW5kZXJzdGFuZCB0aGUgbGFyZ2VyIGNvbnRleHQuIFRoaXMgd2lsbCBnaXZlIG1lIGEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIHdoZXJlIGBfZHBrX2luZm9ybWF0aW9uYCBmaXRzIGludG8gdGhlIHdob2xlIHByb2Nlc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MzY1LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6NDEuNjc0OTAzNzgzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDE2MjgyNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfZHBrX2NhbF9zZWxlY3RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0yNTcxPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2MDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNjA5OnN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNjEwLVxcdFxcdFxcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjY2OD1zdGF0aWMgdm9pZCBfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSwgYm9vbCBmb3JjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjY3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI2NzU6XFx0X2Rwa19jYWxfc2VsZWN0KHJ0d2RldiwgZm9yY2UsIHBoeSwgX2twYXRoKHJ0d2RldiwgcGh5KSwgY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjY3Ni19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI1NzA9c3RhdGljIGJvb2wgX2Rwa19tYWluKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjYwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI2MTA6c3RhdGljIHZvaWQgX2Rwa19jYWxfc2VsZWN0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBmb3JjZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI2MTEtXFx0XFx0XFx0ICAgIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIHU4IGtwYXRoLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNzEyPXN0YXRpYyB2b2lkIF9kcGsoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNzIyLVxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3MjM6XFx0XFx0X2Rwa19jYWxfc2VsZWN0KHJ0d2RldiwgZm9yY2UsIHBoeSwgX2twYXRoKHJ0d2RldiwgcGh5KSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3MjQtXFx0XFx0XFx0XFx0Y2hhbmN0eF9pZHgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yNDM1PXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0ODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNDg0OnN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDg1LVxcdFxcdFxcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjU3ND1zdGF0aWMgdm9pZCBfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSwgYm9vbCBmb3JjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjU4NC1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNTg1OlxcdFxcdF9kcGtfY2FsX3NlbGVjdChydHdkZXYsIGZvcmNlLCBwaHksIFJGX0FCLCBjaGFuY3R4X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNTg2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI1MzM9c3RhdGljIGJvb2wgX2Rwa19tYWluKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI1ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjU4NjpzdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI1ODctXFx0XFx0XFx0ICAgIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksIHU4IGtwYXRoLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9Mzg1OT12b2lkIHJ0dzg4NTJidF9kcGsoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTM4NjctXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjM4Njg6XFx0XFx0X2Rwa19jYWxfc2VsZWN0KHJ0d2RldiwgcGh5X2lkeCwgUkZfQUIsIGNoYW5jdHhfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0zODY5LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MjY4OD1zdGF0aWMgdm9pZCBfZHBrX2RyZl9kaXJlY3RfY250cmwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBwYXRoLCBib29sIGlzX2J5YmIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTI2OTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoyNjk2OnN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0yNjk3LVxcdFxcdFxcdCAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LCB1OCBrcGF0aCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MjgwMT1zdGF0aWMgdm9pZCBfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSwgYm9vbCBmb3JjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjgxMS1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoyODEyOlxcdFxcdF9kcGtfY2FsX3NlbGVjdChydHdkZXYsIGZvcmNlLCBwaHksIF9rcGF0aChydHdkZXYsIHBoeSksIGNoYW5jdHhfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTI4MTMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjE5OjQxLjcyNTA3MjIzOFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDIzODMwODA1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBCdWcgRml4KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJIHNlZSB0aGF0IGBfZHBrYCBpcyB0cmlnZ2VyZWQgYnkgYHJ0dzg4NTFiX3Jma190cmFja2AgYW5kIGBydHc4ODUxYl9yZmtfY2hhbm5lbGAsIGFuZCBpbXBvcnRhbnRseSwgdGhlc2UgZnVuY3Rpb25zIGFyZSBob29rZWQgdXAgdG8gdGhlIGBydHc4ODUxYl9jaGlwX29wc2Agc3RydWN0dXJlLiBUaGF0IHRlbGxzIG1lIHRoZXNlIGFyZSBkZWZpbml0ZWx5IGV4ZWN1dGVkIGR1cmluZyBpbml0aWFsaXphdGlvbiBvciB3aGVuIHRoZSBjaGFubmVsIGNoYW5nZXMsIHdoaWNoIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gTm93LCB0aGUgZHJpdmVyIHN1cHBvcnRzIFVTQiwgd2hpY2ggbWVhbnMgSSBjYW4gbGV2ZXJhZ2UgYGR1bW15X2hjZGAgYW5kIGByYXctZ2FkZ2V0YCBmb3IgZnV6emluZy5cblxuQnV0IGhvbGQgb24sIGlzIFVTQiBzdXBwb3J0IGV2ZW4gcmVsZXZhbnQgdG8gdGhlIGA4ODUxYmAgc3BlY2lmaWNhbGx5PyBMZXQgbWUgY29uZmlybS4gQWgsIHllcywgdGhlIGBNYWtlZmlsZWAgY29uZmlybXMgdGhlIGBydHc4OV84ODUxYnVgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGBydHc4ODUxYnUub2AsIGlzIGluY2x1ZGVkIGJhc2VkIG9uIHRoZSBgQ09ORklHX1JUVzg5Xzg4NTFCVWAgZmxhZy4gVGhhdCBtZWFucyBpdOKAmXMgcmVhY2hhYmxlIHZpYSBhIFVTQiBmdXp6aW5nIHNldHVwLCBwZXJmZWN0LlxuXG5Ob3cgdG8gdGhlIGNvcmUgb2YgdGhlIGZpeC4gSXQncyBhIHNpbXBsZSBzd2FwOiBgY2hhbi1cdTAwM2ViYW5kX3dpZHRoYCBhbmQgYGNoYW4tXHUwMDNlY2hhbm5lbGAgYXJlIHN3YXBwZWQgaW4gdGhlIGFzc2lnbm1lbnQgdG8gYGRway1cdTAwM2VicGAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBiaXQgb2YgYSBkYXRhIGNvcnJ1cHRpb24gaXNzdWUuIFRoaXMgYnVnIGRpcmVjdGx5IGltcGFjdHMgdGhlIHZhbHVlcyBzdG9yZWQgaW4gYGRway1cdTAwM2VicFtwYXRoXVtraWR4XS5jaGAgYW5kIGBid2AuIEkgc3VzcGVjdCB0aGVzZSB2YWx1ZXMgZmVlZCBpbnRvIHRoZSBEUEsgKERpZ2l0YWwgUHJlLURpc3RvcnRpb24pIGNhbGlicmF0aW9uIGxvZ2ljIGxhdGVyIG9uLiBUaGF0J3MgaW50ZXJlc3RpbmcsIHRoaXMgY291bGQgcG90ZW50aWFsbHkgaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiBwZXJmb3JtYW5jZSBvciBldmVuIGludHJvZHVjZSBpbnN0YWJpbGl0eSBpZiB0aGUgRFBLIGlzIHNlbnNpdGl2ZSB0byB0aGVzZSB2YWx1ZXMuXG5cbkdpdmVuIHRoYXQgaXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgZHJpdmVyIEkgKmNhbiogZnV6eiB2aWEgVVNCLCB0aGUgYW5zd2VyIGlzIGEgcmVzb3VuZGluZyB5ZXMgLSBpdCdzIGRlZmluaXRlbHkgd29ydGggaW52ZXN0aWdhdGluZy4gSSdsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRvd25zdHJlYW0gdXNlIG9mIHRob3NlIHZhbHVlcyB0byBzZWUgdGhlIGZ1bGwgaW1wYWN0LiBJIG5lZWQgdG8gZmlndXJlIG91dCBleGFjdGx5IHdoYXQgYF9kcGtgIGRvZXMuIE9rLCB0aGF0IGZ1bmN0aW9uIGlzIHNpbXBsZTogaXQgc3RvcmVzIGNoYW5uZWwgYW5kIGJhbmR3aWR0aCBpbmZvIGluIGBkcGstXHUwMDNlYnBgLiBJIHNob3VsZCBsb29rIGF0IGFsbCB1c2VzIG9mIGBkcGstXHUwMDNlYnBgIHRvIHVuZGVyc3RhbmQgdGhlIGRhdGEgZmxvdywgYW5kIGlkZW50aWZ5IGlmIHRoZXkgaGF2ZSBhbnkgc2VjdXJpdHkgaW1wbGljYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjY5NCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoxOTo1NS45NjMzODMyMTRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjYyNjc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRway1cXHUwMDNlYnBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MTUgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MTg2Mz1zdGF0aWMgdm9pZCBfZHBrX29ub2ZmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE4NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxODcxOlxcdHZhbCA9IGRway1cXHUwMDNlaXNfZHBrX2VuYWJsZSAqIG9mZl9yZXZlcnNlICogZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTg3Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MTg4MD1zdGF0aWMgdm9pZCBfZHBrX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTg4NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE4ODY6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE4ODctfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0xODg5PXN0YXRpYyB2b2lkIF9kcGtfaW5mb3JtYXRpb24oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xODk2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg5NzpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPSBjaGFuLVxcdTAwM2ViYW5kX3R5cGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxODk4OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggPSBjaGFuLVxcdTAwM2VjaGFubmVsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTg5OTpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID0gY2hhbi1cXHUwMDNlYmFuZF93aWR0aDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5MDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5MDUtXFx0XFx0ICAgIHN0cl9vbl9vZmYocnR3ZGV2LVxcdTAwM2VkYmNjX2VuKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5MDY6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAwID8gXFxcIjJHXFxcIiA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoxOTA3OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMSA/IFxcXCI1R1xcXCIgOiBcXFwiNkdcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTkwODpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5jaCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5MDk6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMCA/IFxcXCIyME1cXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5MTA6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMSA/IFxcXCI0ME1cXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjE5MTE6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMiA/IFxcXCI4ME1cXFwiIDogXFxcIjE2ME1cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTE5MTItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0xOTkyPXN0YXRpYyB2b2lkIF9kcGtfdHBnX3NlbChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLCB1OCBraWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xOTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTk5NjpcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzgwKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0xOTk3LVxcdFxcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMTk5OC1cXHRcXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UUEdfU0VMLCBNQVNLRFdPUkQsIDB4ZmZlMGZhMDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MTk5OTpcXHR9IGVsc2UgaWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjAwMC1cXHRcXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UUEdfTU9ELCBCX1RQR19NT0RfRiwgMHgyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjAwNy1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFxcXCJbRFBLXSBUUEcgU2VsZWN0IGZvciAlc1xcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwMDg6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MCA/IFxcXCI4ME1cXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwMDk6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFxcXCI0ME1cXFwiIDogXFxcIjIwTVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjAxMC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTIwNzM9c3RhdGljIHZvaWQgX2Rwa19wYXJhX3F1ZXJ5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsIHU4IGtpZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIwOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMDkxOlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrID0gKHBhcmEgXFx1MDAzZVxcdTAwM2UgMTApIFxcdTAwMjYgMHgzZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIwOTI6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayA9IChwYXJhIFxcdTAwM2VcXHUwMDNlIDI2KSBcXHUwMDI2IDB4M2Y7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMDkzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMDk1LVxcdFxcdCAgICBcXFwiW0RQS10gdGhlcm1hbC8gdHhhZ2NfUkYgKEslZCkgPSAweCV4LyAweCV4XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjA5NjpcXHRcXHQgICAgZHBrLVxcdTAwM2VjdXJfa19zZXQsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMDk3OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnR4YWdjX2Rwayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMDk4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjIyMj1zdGF0aWMgdm9pZCBfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjIyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjIyMjY6XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yMjI3LVxcdFxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfTU9ELCBSRlJFR19NQVNLLCAweDUwNTIxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjIzOC1cXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX1JDS0QsIFJSX1JDS0RfQlcsIDB4MSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMjM5OlxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfQlRDLCBSUl9CVENfVFhCQiwgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyArIDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjI0MC1cXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1JYQkIsIDB4MCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTIzMzU9c3RhdGljIHU4IF9kcGtfYWdjKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjM2NC1cXHRcXHRcXHRpZiAoYWdjX2NudCA9PSAwKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyMzY1OlxcdFxcdFxcdFxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTIzNjYtXFx0XFx0XFx0XFx0XFx0X2Rwa19ieXBhc3NfcnhpcWMocnR3ZGV2LCBwYXRoKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM9MjUxNz1zdGF0aWMgdm9pZCBfZHBrX2dhaW5fbm9ybWFsaXplKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjU0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI1NDQ6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5ncyA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNTQ1LVxcdFxcdHJ0dzg5X3BoeV9yZWFkMzJfbWFzayhydHdkZXYsIHJlZ1traWR4XVtjdXJfa19zZXRdICsgKHBhdGggXFx1MDAzY1xcdTAwM2MgOCksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTI1NDk9c3RhdGljIHZvaWQgX2Rwa19vbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNTU5OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNTYwOlxcdFxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayB8IEJJVChkcGstXFx1MDAzZWN1cl9rX3NldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjU2Mi1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFxcXCJbRFBLXSBTJWRbJWRdIHBhdGhfb2sgPSAweCV4XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjU2MzpcXHRcXHQgICAgcGF0aCwga2lkeCwgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0yNTY1LVxcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX0RQRF9DSDBBICsgKHBhdGggXFx1MDAzY1xcdTAwM2MgOCkgKyAoa2lkeCBcXHUwMDNjXFx1MDAzYyAyKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI1NjY6XFx0XFx0XFx0ICAgICAgIEJfRFBEX01FTiwgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI1NjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTI2Nzg9c3RhdGljIHZvaWQgX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI2OTItXFx0XFx0XFx0ICAgIFxcXCJbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI2OTM6XFx0XFx0XFx0ICAgIHBhdGgsIGtpZHgsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjY5NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMjcxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI3MTI6XFx0XFx0ZGVsdGFfdGhlciA9IGN1cl90aGVyIC0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MTctXFx0XFx0XFx0ICAgIFxcXCJbRFBLX1RSS10gZXh0cmEgZGVsdGFfdGhlciA9ICVkICgweCV4IC8gMHgleEBrKVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjI3MTg6XFx0XFx0XFx0ICAgIGRlbHRhX3RoZXIsIGN1cl90aGVyLCBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MjEtXFx0XFx0XFx0ICAgIFxcXCJbRFBLX1RSS10gZGVsdGFfdHhhZ2MgPSAlZCAoMHgleCAvIDB4JXhAaylcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzoyNzIyOlxcdFxcdFxcdCAgICB0eGFnY19yZiAtIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MjcyMzpcXHRcXHRcXHQgICAgdHhhZ2NfcmYsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTI3MjQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTE4Njk9c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTE4NzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoxODc3OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9IGNoYW4tXFx1MDAzZWJhbmRfdHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4Nzg6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXFx1MDAzZWNoYW5uZWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoxODc5OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVxcdTAwM2ViYW5kX3dpZHRoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMTg4MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMTg4NS1cXHRcXHQgICAgc3RyX29uX29mZihydHdkZXYtXFx1MDAzZWRiY2NfZW4pLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MTg4NjpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcXFwiMkdcXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjE4ODc6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAxID8gXFxcIjVHXFxcIiA6IFxcXCI2R1xcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoxODg4OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MTg4OTpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXFxcIjIwTVxcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MTg5MDpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAxID8gXFxcIjQwTVxcXCIgOiBcXFwiODBNXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0xODkxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjAzMz1zdGF0aWMgdm9pZCBfZHBrX2dldF90aGVybWFsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTgga2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjAzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwMzg6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDM5LVxcdFxcdGV3bWFfdGhlcm1hbF9yZWFkKFxcdTAwMjZydHdkZXYtXFx1MDAzZXBoeXN0YXQuYXZnX3RoZXJtYWxbcGF0aF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDQxLVxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXFxcIltEUEtdIHRoZXJtYWxARFBLID0gMHgleFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNDI6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjA0My19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTIwNTU9c3RhdGljIHZvaWQgX2Rwa19yZl9zZXR0aW5nKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggZ2FpbixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjA1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNjA6XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDYxLVxcdFxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfTU9ELCBSUl9NT0RfRFBLLCAweDI4MGIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDcxLVxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfUkNLRCwgUlJfUkNLRF9CVywgMHgxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIwNzI6XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9CVEMsIFJSX0JUQ19UWEJCLCBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ICsgMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMDczLVxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfQlRDLCBSUl9CVENfUlhCQiwgMHgwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjEzNz12b2lkIF9kcGtfdHBnX3NlbChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcmZfcGF0aCBwYXRoLCB1OCBraWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yMTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjE0MTpcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzgwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjE0Mi1cXHRcXHRydHc4OV9waHlfd3JpdGUzMl9jbHIocnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNDM6XFx0ZWxzZSBpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzQwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjE0NC1cXHRcXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UUEdfTU9ELCBCX1RQR19NT0RfRiwgMHgyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjE0OC1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFxcXCJbRFBLXSBUUEdfU2VsZWN0IGZvciAlc1xcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNDk6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF84MCA/IFxcXCI4ME1cXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjIxNTA6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFxcXCI0ME1cXFwiIDogXFxcIjIwTVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjE1MS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI1MDg9c3RhdGljIHZvaWQgX2Rwa19maWxsX3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1MjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNTIzOlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udHhhZ2NfZHBrID0gdHhhZ2M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNTI0LVxcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RYQUdDX1JGSyArIChwYXRoIFxcdTAwM2NcXHUwMDNjIDgpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjUyNzpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgPSBwd3NmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUyOC1cXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQk5EICsgKHBhdGggXFx1MDAzY1xcdTAwM2MgOCkgKyAoa2lkeCBcXHUwMDNjXFx1MDAzYyAyKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1MzQ6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5ncyA9IGdzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjUzNS1cXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQ0gwQSArIChwYXRoIFxcdTAwM2NcXHUwMDNjIDgpICsgKGtpZHggXFx1MDAzY1xcdTAwM2MgMiksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI1NDM9c3RhdGljIGJvb2wgX2Rwa19yZWxvYWRfY2hlY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNTU0LVxcdGZvciAoaWR4ID0gMDsgaWR4IFxcdTAwM2MgUlRXODlfRFBLX0JLVVBfTlVNOyBpZHgrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjU1NTpcXHRcXHRpZiAoY3VyX2JhbmQgIT0gZHBrLVxcdTAwM2VicFtwYXRoXVtpZHhdLmJhbmQgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI1NTY6XFx0XFx0ICAgIGN1cl9jaCAhPSBkcGstXFx1MDAzZWJwW3BhdGhdW2lkeF0uY2gpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNTU3LVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYz0yNTcwPXN0YXRpYyBib29sIF9kcGtfbWFpbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI1OTktXFx0aWYgKCFpc19mYWlsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjYwMDpcXHRcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnBhdGhfb2sgPSB0cnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjYwMS1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNjAyOlxcdFxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjYwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM9MjYxMD1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBib29sIGZvcmNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjI4LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIGNoYW5jdHhfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI2Mjk6XFx0XFx0XFx0aWYgKCFyZWxvYWRlZFtwYXRoXSBcXHUwMDI2XFx1MDAyNiBkcGstXFx1MDAzZWJwW3BhdGhdWzBdLmNoICE9IDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yNjMwLVxcdFxcdFxcdFxcdGRway1cXHUwMDNlY3VyX2lkeFtwYXRoXSA9ICFkcGstXFx1MDAzZWN1cl9pZHhbcGF0aF07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI3Mjc9c3RhdGljIHZvaWQgX2Rwa19vbm9mZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyNzMzOlxcdHZhbCA9IGRway1cXHUwMDNlaXNfZHBrX2VuYWJsZSBcXHUwMDI2XFx1MDAyNiAhb2ZmIFxcdTAwMjZcXHUwMDI2IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3MzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jPTI3NDI9c3RhdGljIHZvaWQgX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI3NTctXFx0XFx0XFx0ICAgIFxcXCJbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3NTg6XFx0XFx0XFx0ICAgIHBhdGgsIGtpZHgsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjc1OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjc2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3NjU6XFx0XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggIT0gMCBcXHUwMDI2XFx1MDAyNiBjdXJfdGhlciAhPSAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6Mjc2NjpcXHRcXHRcXHRkZWx0YV90aGVyW3BhdGhdID0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayAtIGN1cl90aGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjc2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jOjI3Njg6XFx0XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzJHKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjc2OS1cXHRcXHRcXHRkZWx0YV90aGVyW3BhdGhdID0gZGVsdGFfdGhlcltwYXRoXSAqIDMgLyAyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODEzLVxcdFxcdFxcdFxcdFxcdFxcdCAgQl9QMF9UWERQRCkgPT0gMHgwKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyODE0OlxcdFxcdFxcdFxcdHB3c2ZbMF0gPSBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgKyB0eGFnY19iYl90cCAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODE1LVxcdFxcdFxcdFxcdFxcdCAgdHhhZ2NfYmIgKyBpbmlfZGlmZiArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODE2LVxcdFxcdFxcdFxcdFxcdCAgdHNzaV9pbmZvLVxcdTAwM2VleHRyYV9vZnN0W3BhdGhdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgxNzpcXHRcXHRcXHRcXHRwd3NmWzFdID0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICsgdHhhZ2NfYmJfdHAgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgxOC1cXHRcXHRcXHRcXHRcXHQgIHR4YWdjX2JiICsgaW5pX2RpZmYgK1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODIwLVxcdFxcdFxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyODIxOlxcdFxcdFxcdFxcdHB3c2ZbMF0gPSBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgKyBpbmlfZGlmZiArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYy0yODIyLVxcdFxcdFxcdFxcdFxcdCAgdHNzaV9pbmZvLVxcdTAwM2VleHRyYV9vZnN0W3BhdGhdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgyMzpcXHRcXHRcXHRcXHRwd3NmWzFdID0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICsgaW5pX2RpZmYgK1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgyNC1cXHRcXHRcXHRcXHRcXHQgIHRzc2lfaW5mby1cXHUwMDNlZXh0cmFfb2ZzdFtwYXRoXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmMtMjgyNy1cXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmFfcmZrLmM6MjgyODpcXHRcXHRcXHRwd3NmWzBdID0gKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArIGRlbHRhX3RoZXJbcGF0aF0pIFxcdTAwMjYgMHgxZmY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYV9yZmsuYzoyODI5OlxcdFxcdFxcdHB3c2ZbMV0gPSAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICsgZGVsdGFfdGhlcltwYXRoXSkgXFx1MDAyNiAweDFmZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhX3Jmay5jLTI4MzAtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0xNjg4PXN0YXRpYyB2b2lkIF9kcGtfb25vZmYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgYm9vbCBvZmYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE2OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxNjkzOlxcdHZhbCA9IGRway1cXHUwMDNlaXNfZHBrX2VuYWJsZSBcXHUwMDI2XFx1MDAyNiAhb2ZmIFxcdTAwMjZcXHUwMDI2IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE2OTQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTE3NTE9c3RhdGljIHZvaWQgX2Rwa19pbmZvcm1hdGlvbihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE3NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxNzU5OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9IGNoYW4tXFx1MDAzZWJhbmRfdHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE3NjA6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5jaCA9IGNoYW4tXFx1MDAzZWNoYW5uZWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxNzYxOlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVxcdTAwM2ViYW5kX3dpZHRoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTc2Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTc2Ny1cXHRcXHQgICAgc3RyX29uX29mZihydHdkZXYtXFx1MDAzZWRiY2NfZW4pLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc2ODpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcXFwiMkdcXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjE3Njk6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSAxID8gXFxcIjVHXFxcIiA6IFxcXCI2R1xcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxNzcwOlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc3MTpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXFxcIjIwTVxcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTc3MjpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAxID8gXFxcIjQwTVxcXCIgOiBcXFwiODBNXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xNzczLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MTg3Nj1zdGF0aWMgdm9pZCBfZHBrX2dldF90aGVybWFsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTgga2lkeCwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxODg2OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGsgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgcGF0aCwgUlJfVE0sIFJSX1RNX1ZBTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xODg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTg4OC1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFxcXCJbRFBLXSB0aGVybWFsQERQSyA9IDB4JXhcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxODg5OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4OTAtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0xODkyPXN0YXRpYyB2b2lkIF9kcGtfcmZfc2V0dGluZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IGdhaW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE4OTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxODk3OlxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMTg5OC1cXHRcXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX01PRCwgUkZSRUdfTUFTSywgMHg1MDIyMCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5MTItXFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9SQ0tELCBSUl9SQ0tEX0JXLCAweDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTkxMzpcXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1RYQkIsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgKyAxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5MTQtXFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9CVEMsIFJSX0JUQ19SWEJCLCAweDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0xOTQ2PXZvaWQgX2Rwa190cGdfc2VsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsIHU4IGtpZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTE5NDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoxOTUwOlxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfODApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xOTUxLVxcdFxcdHJ0dzg5X3BoeV93cml0ZTMyX2NscihydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTk1MjpcXHRlbHNlIGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfNDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xOTUzLVxcdFxcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RQR19NT0QsIEJfVFBHX01PRF9GLCAweDIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xOTU3LVxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JGSywgXFxcIltEUEtdIFRQR19TZWxlY3QgZm9yICVzXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTk1ODpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzgwID8gXFxcIjgwTVxcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MTk1OTpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzQwID8gXFxcIjQwTVxcXCIgOiBcXFwiMjBNXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0xOTYwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjM1NT1zdGF0aWMgdm9pZCBfZHBrX2lkbF9tcGEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yMzU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjM2MDpcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyBcXHUwMDNjIFJUVzg5X0NIQU5ORUxfV0lEVEhfODAgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjIzNjE6XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzVHKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjM2Mi1cXHRcXHRfZHBrX3NldF9tZHBkX3BhcmEocnR3ZGV2LCAweDIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yMzY5PXN0YXRpYyB2b2lkIF9kcGtfZmlsbF9yZXN1bHQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yMzgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjM4MzpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnR4YWdjX2RwayA9IHR4YWdjO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjM4NC1cXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UWEFHQ19SRksgKyAocGF0aCBcXHUwMDNjXFx1MDAzYyA4KSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjM4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjIzODc6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmID0gcHdzZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzODgtXFx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfRFBEX0JORCArIChwYXRoIFxcdTAwM2NcXHUwMDNjIDgpICsgKGtpZHggXFx1MDAzY1xcdTAwM2MgMiksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyMzk0OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uZ3MgPSBncztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTIzOTUtXFx0aWYgKGRway1cXHUwMDNlZHBrX2dzW3BoeV0gPT0gMHg3ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM9MjQwOD1zdGF0aWMgYm9vbCBfZHBrX3JlbG9hZF9jaGVjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0MTktXFx0Zm9yIChpZHggPSAwOyBpZHggXFx1MDAzYyBSVFc4OV9EUEtfQktVUF9OVU07IGlkeCsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNDIwOlxcdFxcdGlmIChjdXJfYmFuZCAhPSBkcGstXFx1MDAzZWJwW3BhdGhdW2lkeF0uYmFuZCB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjQyMTpcXHRcXHQgICAgY3VyX2NoICE9IGRway1cXHUwMDNlYnBbcGF0aF1baWR4XS5jaClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0MjItXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTI0MzU9c3RhdGljIGJvb2wgX2Rwa19tYWluKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjQ3My1cXHRpZiAoIWlzX2ZhaWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNDc0OlxcdFxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vayA9IHRydWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDc1LVxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI0NzY6XFx0XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gZmFsc2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNDc3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYz0yNDg0PXN0YXRpYyB2b2lkIF9kcGtfY2FsX3NlbGVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGJvb2wgZm9yY2UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI0OTktXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjUwMDpcXHRcXHRcXHRpZiAoIXJlbG9hZGVkW3BhdGhdIFxcdTAwMjZcXHUwMDI2IGRway1cXHUwMDNlYnBbcGF0aF1bMF0uY2gpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNTAxLVxcdFxcdFxcdFxcdGRway1cXHUwMDNlY3VyX2lkeFtwYXRoXSA9ICFkcGstXFx1MDAzZWN1cl9pZHhbcGF0aF07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jPTI1ODg9c3RhdGljIHZvaWQgX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2MDMtXFx0XFx0XFx0ICAgIFxcXCJbRFBLX1RSS10gPT09PT09PT09PT09PT09PVtTJWRbJWRdIChDSCAlZCldPT09PT09PT09PT09PT09PVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2MDQ6XFx0XFx0XFx0ICAgIHBhdGgsIGtpZHgsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjYwNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjYxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2MTE6XFx0XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggXFx1MDAyNlxcdTAwMjYgY3VyX3RoZXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjEyOlxcdFxcdFxcdGRlbHRhX3RoZXJbcGF0aF0gPSBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrIC0gY3VyX3RoZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjYxNDpcXHRcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IFJUVzg5X0JBTkRfMkcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjE1LVxcdFxcdFxcdGRlbHRhX3RoZXJbcGF0aF0gPSBkZWx0YV90aGVyW3BhdGhdICogMyAvIDI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2NjEtXFx0XFx0XFx0aWYgKHRtcCA9PSAweDApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2NjI6XFx0XFx0XFx0XFx0cHdzZlswXSA9IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjYzLVxcdFxcdFxcdFxcdFxcdCAgdHhhZ2NfYmJfdHAgLSB0eGFnY19iYiArIGluaV9kaWZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjY2NDpcXHRcXHRcXHRcXHRwd3NmWzFdID0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2NjUtXFx0XFx0XFx0XFx0XFx0ICB0eGFnY19iYl90cCAtIHR4YWdjX2JiICsgaW5pX2RpZmY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjY2LVxcdFxcdFxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYzoyNjY3OlxcdFxcdFxcdFxcdHB3c2ZbMF0gPSBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgKyBpbmlfZGlmZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2Njg6XFx0XFx0XFx0XFx0cHdzZlsxXSA9IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArIGluaV9kaWZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmMtMjY2OS1cXHRcXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jLTI2NzEtXFx0XFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJiX3Jmay5jOjI2NzI6XFx0XFx0XFx0cHdzZlswXSA9IChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgKyBkZWx0YV90aGVyW3BhdGhdKSBcXHUwMDI2IDB4MWZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJfcmZrLmM6MjY3MzpcXHRcXHRcXHRwd3NmWzFdID0gKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArIGRlbHRhX3RoZXJbcGF0aF0pIFxcdTAwMjYgMHgxZmY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYl9yZmsuYy0yNjc0LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTEzNT1zdGF0aWMgdm9pZCBfcmZrX2dldF90aGVybWFsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTgga2lkeCwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTQ1OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0udGhlcl9kcGsgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgcGF0aCwgUlJfVE0sIFJSX1RNX1ZBTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE0Ny1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SRkssIFxcXCJbRFBLXSB0aGVybWFsQERQSyA9IDB4JXhcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTQ4OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnRoZXJfZHBrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xNDktfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MTc5OD1zdGF0aWMgdm9pZCBfZHBrX29ub2ZmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9yZl9wYXRoIHBhdGgsIGJvb2wgb2ZmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTgwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODAzOlxcdHZhbCA9IGRway1cXHUwMDNlaXNfZHBrX2VuYWJsZSBcXHUwMDI2XFx1MDAyNiAhb2ZmIFxcdTAwMjZcXHUwMDI2IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucGF0aF9vaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODA0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MTg2Mz1zdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg3MTpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPSBjaGFuLVxcdTAwM2ViYW5kX3R5cGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg3MjpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cXHUwMDNlY2hhbm5lbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODczOlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPSBjaGFuLVxcdTAwM2ViYW5kX3dpZHRoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4NzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xODc5LVxcdFxcdCAgICBzdHJfb25fb2ZmKHJ0d2Rldi1cXHUwMDNlZGJjY19lbiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg4MDpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDAgPyBcXFwiMkdcXFwiIDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxODgxOlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMSA/IFxcXCI1R1xcXCIgOiBcXFwiNkdcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjE4ODI6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTg4MzpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSAwID8gXFxcIjIwTVxcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjE4ODQ6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gMSA/IFxcXCI0ME1cXFwiIDogXFxcIjgwTVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE4ODUtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MTk0Nz1zdGF0aWMgdm9pZCBfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBnYWluLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoxOTUyOlxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE5NTMtXFx0XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBwYXRoLCBSUl9NT0QsIFJGUkVHX01BU0ssIDB4NTAyMjApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk2Ny1cXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX1JDS0QsIFJSX1JDS0RfQlcsIDB4MSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTk2ODpcXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX0JUQywgUlJfQlRDX1RYQkIsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgKyAxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0xOTY5LVxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgcGF0aCwgUlJfQlRDLCBSUl9CVENfUlhCQiwgMHgwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTE5ODk9dm9pZCBfZHBrX3RwZ19zZWwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3JmX3BhdGggcGF0aCwgdTgga2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE5OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTk5MzpcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzgwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTE5OTQtXFx0XFx0cnR3ODlfcGh5X3dyaXRlMzJfbWFzayhydHdkZXYsIFJfVFBHX01PRCwgQl9UUEdfTU9EX0YsIDB4MCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MTk5NTpcXHRlbHNlIGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IFJUVzg5X0NIQU5ORUxfV0lEVEhfNDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMTk5Ni1cXHRcXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9UUEdfTU9ELCBCX1RQR19NT0RfRiwgMHgyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTIwMDAtXFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUkZLLCBcXFwiW0RQS10gVFBHX1NlbGVjdCBmb3IgJXNcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjAwMTpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9PSBSVFc4OV9DSEFOTkVMX1dJRFRIXzgwID8gXFxcIjgwTVxcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjIwMDI6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYncgPT0gUlRXODlfQ0hBTk5FTF9XSURUSF80MCA/IFxcXCI0ME1cXFwiIDogXFxcIjIwTVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTIwMDMtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjQzMz1zdGF0aWMgdm9pZCBfZHBrX2lkbF9tcGEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNDM4OlxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3IFxcdTAwM2MgUlRXODlfQ0hBTk5FTF9XSURUSF84MCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI0Mzk6XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uYmFuZCA9PSBSVFc4OV9CQU5EXzVHKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI0NDAtXFx0XFx0X2Rwa19zZXRfbWRwZF9wYXJhKHJ0d2RldiwgcGF0aCwgMHgyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jPTI0NDc9c3RhdGljIHZvaWQgX2Rwa19maWxsX3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI0NjA6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50eGFnY19kcGsgPSB0eGFnYztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDYxLVxcdHJ0dzg5X3BoeV93cml0ZTMyX21hc2socnR3ZGV2LCBSX1RYQUdDX1JGSyArIChwYXRoIFxcdTAwM2NcXHUwMDNjIDgpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNDY0OlxcdGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiA9IHB3c2Y7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ2NS1cXHRydHc4OV9waHlfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUl9EUERfQk5EICsgKHBhdGggXFx1MDAzY1xcdTAwM2MgOCkgKyAoa2lkeCBcXHUwMDNjXFx1MDAzYyAyKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI0NzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjQ3MTpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmdzID0gZ3M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjQ3Mi1cXHRpZiAoZHBrLVxcdTAwM2VkcGtfZ3NbcGh5XSA9PSAweDdmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjQ4OD1zdGF0aWMgYm9vbCBfZHBrX3JlbG9hZF9jaGVjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNDk5LVxcdGZvciAoaWR4ID0gMDsgaWR4IFxcdTAwM2MgUlRXODlfRFBLX0JLVVBfTlVNOyBpZHgrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI1MDA6XFx0XFx0aWYgKGN1cl9iYW5kICE9IGRway1cXHUwMDNlYnBbcGF0aF1baWR4XS5iYW5kIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjUwMTpcXHRcXHQgICAgY3VyX2NoICE9IGRway1cXHUwMDNlYnBbcGF0aF1baWR4XS5jaClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNTAyLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjUzMz1zdGF0aWMgYm9vbCBfZHBrX21haW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjU3MC1cXHRpZiAoIWlzX2ZhaWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjU3MTpcXHRcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnBhdGhfb2sgPSAxO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI1NzItXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI1NzM6XFx0XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wYXRoX29rID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNTc0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM9MjU4Nj1zdGF0aWMgdm9pZCBfZHBrX2NhbF9zZWxlY3Qoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjU5OC1cXHRcXHRyZWxvYWRlZFtwYXRoXSA9IF9kcGtfcmVsb2FkX2NoZWNrKHJ0d2RldiwgcGh5LCBwYXRoLCBjaGFuY3R4X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjU5OTpcXHRcXHRpZiAoIXJlbG9hZGVkW3BhdGhdIFxcdTAwMjZcXHUwMDI2IGRway1cXHUwMDNlYnBbcGF0aF1bMF0uY2ggIT0gMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjAwLVxcdFxcdFxcdGRway1cXHUwMDNlY3VyX2lkeFtwYXRoXSA9ICFkcGstXFx1MDAzZWN1cl9pZHhbcGF0aF07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYz0yNjY4PXN0YXRpYyB2b2lkIF9kcGtfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjY4My1cXHRcXHRcXHQgICAgXFxcIltEUEtfVFJLXSA9PT09PT09PT09PT09PT09W1MlZFslZF0gKENIICVkKV09PT09PT09PT09PT09PT09XFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2ODQ6XFx0XFx0XFx0ICAgIHBhdGgsIGtpZHgsIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2ODUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNjkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI2OTE6XFx0XFx0aWYgKGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2ggXFx1MDAyNlxcdTAwMjYgY3VyX3RoZXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjY5MjpcXHRcXHRcXHRkZWx0YV90aGVyW3BhdGhdID0gZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS50aGVyX2RwayAtIGN1cl90aGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI2OTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmM6MjY5NDpcXHRcXHRpZiAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IFJUVzg5X0JBTkRfMkcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjY5NS1cXHRcXHRcXHRkZWx0YV90aGVyW3BhdGhdID0gZGVsdGFfdGhlcltwYXRoXSAqIDMgLyAyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjc0MS1cXHRcXHRcXHRpZiAodG1wID09IDB4MCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDI6XFx0XFx0XFx0XFx0cHdzZlswXSA9IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjc0My1cXHRcXHRcXHRcXHRcXHQgIHR4YWdjX2JiX3RwIC0gdHhhZ2NfYmIgKyBpbmlfZGlmZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNzQ0OlxcdFxcdFxcdFxcdHB3c2ZbMV0gPSBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLnB3c2YgK1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDUtXFx0XFx0XFx0XFx0XFx0ICB0eGFnY19iYl90cCAtIHR4YWdjX2JiICsgaW5pX2RpZmY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnRfcmZrLmMtMjc0Ni1cXHRcXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDc6XFx0XFx0XFx0XFx0cHdzZlswXSA9IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArIGluaV9kaWZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jOjI3NDg6XFx0XFx0XFx0XFx0cHdzZlsxXSA9IGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0ucHdzZiArIGluaV9kaWZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NDktXFx0XFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ0X3Jmay5jLTI3NTAtXFx0XFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNzUxOlxcdFxcdFxcdHB3c2ZbMF0gPSAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICsgZGVsdGFfdGhlcltwYXRoXSkgXFx1MDAyNiAweDFmZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYzoyNzUyOlxcdFxcdFxcdHB3c2ZbMV0gPSAoZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5wd3NmICsgZGVsdGFfdGhlcltwYXRoXSkgXFx1MDAyNiAweDFmZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidF9yZmsuYy0yNzUzLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM9MTkwNz1zdGF0aWMgdm9pZCBfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMTkxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MTY6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID0gY2hhbi1cXHUwMDNlYmFuZF90eXBlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MTkxNzpcXHRkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoID0gY2hhbi1cXHUwMDNlY2hhbm5lbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5MTg6XFx0ZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5idyA9IGNoYW4tXFx1MDAzZWJhbmRfd2lkdGg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTE5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYy0xOTI0LVxcdFxcdCAgICBzdHJfb25fb2ZmKHJ0d2Rldi1cXHUwMDNlZGJjY19lbiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoxOTI1OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gMCA/IFxcXCIyR1xcXCIgOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmM6MTkyNjpcXHRcXHQgICAgZHBrLVxcdTAwM2VicFtwYXRoXVtraWR4XS5iYW5kID09IDEgPyBcXFwiNUdcXFwiIDogXFxcIjZHXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jOjE5Mjc6XFx0XFx0ICAgIGRway1cXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2gsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoxOTI4OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IDAgPyBcXFwiMjBNXFxcIiA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoxOTI5OlxcdFxcdCAgICBkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJ3ID09IDEgPyBcXFwiNDBNXFxcIiA6IFxcXCI4ME1cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTE5MzAtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYz0yMDYzPXN0YXRpYyB2b2lkIF9kcGtfcmZfc2V0dGluZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IGdhaW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjX3Jmay5jLTIwNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY19yZmsuYzoyMDY4OlxcdGlmIChkcGstXFx1MDAzZWJwW3BhdGhdW2tpZHhdLmJhbmQgPT0gUlRXODlfQkFORF8yRykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjA2OS1cXHRcXHRydHc4OV93cml0ZV9yZihydHdkZXYsIHBhdGgsIFJSX01PRCwgUkZSRUdfTUFTSyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmNfcmZrLmMtMjA4OS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MTk6NTYuMDE0MDUwODc4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg5NTY3MjE4MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgRnVuY3Rpb25hbCBCdWcgRml4IGFuZCBpdHMgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIGNvZGUgY2hhbmdlIHdoZXJlIGBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uYndgIGFuZCBgZHBrLVx1MDAzZWJwW3BhdGhdW2tpZHhdLmNoYCBzZWVtIHRvIGhhdmUgYmVlbiBtaXhlZCB1cC4gVGhlIGJhbmR3aWR0aCBzZXR0aW5nLCBgYndgLCBpcyB1c2VkIHRvIGNvbmZpZ3VyZSBoYXJkd2FyZSByZWdpc3RlcnMgaW4gYF9kcGtfdHBnX3NlbGAsIGFuZCB0aGUgY2hhbm5lbCBudW1iZXIsIGBjaGAsIGlzIHVzZWQgaW4gYF9kcGtfcmVsb2FkX2NoZWNrYCBhbmQgYF9kcGtfdHJhY2tgIGZvciBjaGFubmVsIG1hdGNoaW5nLiBTd2FwcGluZyB0aGVzZSB2YXJpYWJsZXMgaGFzIGNsZWFybHkgaW50cm9kdWNlZCBlcnJvcnMg4oCTIGluY29ycmVjdCBoYXJkd2FyZSBjb25maWd1cmF0aW9uIGFuZCBsb2dpYyBmYWlsdXJlcy4gSXQncyBhIGZ1bmRhbWVudGFsIGZ1bmN0aW9uYWwgY2hhbmdlLlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb246IElzIHRoaXMgc29tZXRoaW5nIHdlIGNhbiBhbmQgc2hvdWxkIGZ1eno/IEFic29sdXRlbHkuIEl04oCZcyBhIGZ1bmN0aW9uYWwgYnVnIGZpeC4gVGhpcyBmaXggaXMgaGFwcGVuaW5nIGluIGEgZHJpdmVyIHRoYXQgaW50ZXJmYWNlcyB3aXRoIGhhcmR3YXJlLCBhbmQgdGhhdCBkcml2ZXIgaXMgYWNjZXNzaWJsZSB2aWEgVVNCLiBUaGF0J3MgYSBwZXJmZWN0IHRhcmdldCBmb3IgZnV6emluZy4gU28sIGBXb3J0aEZ1enppbmc9dHJ1ZWAgaXMgdGhlIHJpZ2h0IGNhbGwgaGVyZS5cblxuTm93LCBsZXQncyBmaWd1cmUgb3V0IHdoZXJlIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMuIFRoZSBhZmZlY3RlZCBmdW5jdGlvbiwgYXQgdGhlIGhlYXJ0IG9mIHRoaXMsIGlzIGBfZHBrX2luZm9ybWF0aW9uYC4gSG93ZXZlciwgd2FpdCBhIG1pbnV0ZSwgaXQncyBhIHN0YXRpYyBmdW5jdGlvbi4gVGhhdCBtZWFucyBpdCBjYW4ndCBiZSBjYWxsZWQgZGlyZWN0bHkuIEkgbmVlZCB0byB0cmFjZSB0aGUgY2FsbGluZyBjaGFpbiB0byBmaWd1cmUgb3V0IHRoZSByaWdodCBlbnRyeSBwb2ludHMuIExldCdzIHNlZS4uLiBgX2Rwa19jYWxfc2VsZWN0YCBjYWxscyBgX2Rwa19pbmZvcm1hdGlvbmAuIEFuZCB0aGVuIGBfZHBrYCBjYWxscyBgX2Rwa19jYWxfc2VsZWN0YC4gT2theSwgYW5kIHRoZW4gYHJ0dzg4NTFiX3Jma190cmFja2AgY2FsbHMgYF9kcGtgLCBhbmQgYHJ0dzg4NTFiX3Jma19jaGFubmVsYCBjYWxscyBgX2Rwa2AuIEFyZSBgcnR3ODg1MWJfcmZrX3RyYWNrYCBhbmQgYHJ0dzg4NTFiX3Jma19jaGFubmVsYCBzdGF0aWMgb3Igbm9uLXN0YXRpYz8gTmVlZCB0byBtYWtlIHN1cmUgdGhvc2UgYXJlbid0IHN0YXRpYy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc3MzAsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjA6MDQuOTcwNzc0OTIyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzYyMzczNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4ODUxYl9yZmtfdHJhY2tcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jPTE3OTI9c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX3NjYW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTE3OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jOjE4MDA6c3RhdGljIHZvaWQgcnR3ODg1MWJfcmZrX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmMtMTgwMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM9MjQ5Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfb3BzIHJ0dzg4NTFiX2NoaXBfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1MTQtXFx0LnJma19zY2FuXFx0XFx0PSBydHc4ODUxYl9yZmtfc2NhbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiLmM6MjUxNTpcXHQucmZrX3RyYWNrXFx0XFx0PSBydHc4ODUxYl9yZmtfdHJhY2ssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYi5jLTI1MTYtXFx0LnBvd2VyX3RyaW1cXHRcXHQ9IHJ0dzg4NTFiX3Bvd2VyX3RyaW0sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjA1LjAyNDQwMzQ1N1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Njk1NzU1MTUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGlubmVyIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIGEgUG90ZW50aWFsbHkgU3RhdGljIENvbmRpdGlvbioqXG5cbkhtbSwgdGhpbmdzIHNlZW0uLi4gc3R1Y2suIFwiU3RhdGljLFwiIEkgdGhpbmsuIExldCBtZSBpbW1lZGlhdGVseSBjaGVjayB0aGUgcmVsZXZhbnQgaGVhZGVyIGZpbGUsIGxpa2VseSB0aGUgZGVmaW5pdGlvbiBmaWxlLCBpbiB0aGlzIGluc3RhbmNlLCBpdCBpcyBgcnR3ODg1MWJfcmZrLmhgLiBUaGlzIGlzIG15IHR5cGljYWwgaW5pdGlhbCBkaWFnbm9zdGljIHN0ZXAgd2hlbiBJIHN1c3BlY3Qgc29tZXRoaW5nIGlzIGZyb3plbiBpbiBwbGFjZS4gSSB3YW50IHRvIHNlZSB3aGF0IGZ1bmN0aW9ucyBhcmUgYmVpbmcgZXhwb3J0ZWQ7IHRoaXMgd2lsbCBnaXZlIG1lIGNsdWVzIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLiBUaGlzIGFsbG93cyBtZSB0byBpbW1lZGlhdGVseSBrbm93IHRoZSBhY2Nlc3NpYmxlIGludGVyZmFjZSwgd2hpY2ggd2lsbCBhbGxvdyBtZSB0byBuYXJyb3cgZG93biB0aGUgc291cmNlIG9mIHRoZSBhcHBhcmVudCBcInN0YXRpY1wiIG5hdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDkwNDEsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDoxMC43MjAxNjE4MTdaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NDE3NDg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIi4qXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxOi8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjovKiBDb3B5cmlnaHQoYykgMjAyMi0yMDIzICBSZWFsdGVrIENvcnBvcmF0aW9uXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDozOiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6NDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjU6I2lmbmRlZiBfX1JUVzg5Xzg4NTFCX1JGS19IX19cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjY6I2RlZmluZSBfX1JUVzg5Xzg4NTFCX1JGS19IX19cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjc6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDo4OiNpbmNsdWRlIFxcXCJjb3JlLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDo5OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTA6dm9pZCBydHc4ODUxYl9hYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxMTp2b2lkIHJ0dzg4NTFiX2xja19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxMjp2b2lkIHJ0dzg4NTFiX2xja190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTM6dm9pZCBydHc4ODUxYl9yY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjE0OnZvaWQgcnR3ODg1MWJfZGFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTU6dm9pZCBydHc4ODUxYl9pcWsoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjE2OlxcdFxcdCAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoxNzp2b2lkIHJ0dzg4NTFiX3J4X2RjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHlfaWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MTg6XFx0XFx0ICAgICBlbnVtIHJ0dzg5X2NoYW5jdHhfaWR4IGNoYW5jdHhfaWR4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjE5OnZvaWQgcnR3ODg1MWJfZHBrX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjIwOnZvaWQgcnR3ODg1MWJfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoyMTpcXHRcXHQgIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjI6dm9pZCBydHc4ODUxYl9kcGtfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjIzOnZvaWQgcnR3ODg1MWJfdHNzaShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDoyNDpcXHRcXHQgICBib29sIGh3dHhfZW4sIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjU6dm9pZCBydHc4ODUxYl90c3NpX3NjYW4oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MjY6XFx0XFx0XFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NoYW4gKmNoYW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6Mjc6dm9pZCBydHc4ODUxYl93aWZpX3NjYW5fbm90aWZ5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgYm9vbCBzY2FuX3N0YXJ0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6Mjg6XFx0XFx0XFx0ICAgICAgIGVudW0gcnR3ODlfcGh5X2lkeCBwaHlfaWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6Mjk6XFx0XFx0XFx0ICAgICAgIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MzA6dm9pZCBydHc4ODUxYl9zZXRfY2hhbm5lbF9yZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDozMTpcXHRcXHRcXHQgICAgIGNvbnN0IHN0cnVjdCBydHc4OV9jaGFuICpjaGFuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmg6MzI6XFx0XFx0XFx0ICAgICBlbnVtIHJ0dzg5X3BoeV9pZHggcGh5X2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuaDozMzpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5oOjM0OiNlbmRpZlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDoxMC43Njg1ODM5NTJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU3NTU5MTA0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEtleSBGdW5jdGlvbnMgaW4gcnR3ODg1MWJfcmZrLmMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgZXhwb3J0ZWQgZnVuY3Rpb25zIGhlcmUuIFdlJ3ZlIGdvdCBgcnR3ODg1MWJfZHBrYCwgYHJ0dzg4NTFiX2Rwa190cmFja2AsIGBydHc4ODUxYl9kcGtfaW5pdGAsIGFuZCBgcnR3ODg1MWJfc2V0X2NoYW5uZWxfcmZgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgbGV0J3MgZHJpbGwgZG93biBpbnRvIGBydHc4ODUxYl9yZmsuY2AgYW5kIHNwZWNpZmljYWxseSBleGFtaW5lIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYC4gVGhvc2UgYXJlIHRoZSBjb3JlIGZ1bmN0aW9ucyBJIHdhbnQgdG8gdW5kZXJzdGFuZCBpbiB0aGUgY29udGV4dCBvZiBSRiBjYWxpYnJhdGlvbiBhbmQgb3BlcmF0aW9uLiBLbm93aW5nIHdoYXQgdGhlc2UgZnVuY3Rpb25zIGRvLCBhbmQgaG93IHRoZXkgaW50ZXJhY3QsIHdpbGwgYmUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgRFBLIChEYXRhIFBhY2tldCBLZXk/KSBmdW5jdGlvbmFsaXR5IHdpdGhpbiB0aGlzIGRyaXZlci5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA5NjUsIk91dHB1dFRva2VucyI6NTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjA6MTUuMzQ0MTc3NjE5WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTAzNzk1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4ODUxYl9kcGtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTMyOTQ9c3RhdGljIHZvaWQgcnR3ODg1MWJfYnlfcmF0ZV9kcGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0zMjk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MzMwMDp2b2lkIHJ0dzg4NTFiX2Rwa19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTMzMDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYz0zNDM1PXZvaWQgcnR3ODg1MWJfcnhfZGNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTM0NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYzozNDUxOnZvaWQgcnR3ODg1MWJfZHBrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0zNDUyLVxcdFxcdCAgZW51bSBydHc4OV9jaGFuY3R4X2lkeCBjaGFuY3R4X2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMzQ2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jOjM0Njk6dm9pZCBydHc4ODUxYl9kcGtfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmMtMzQ3MC17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjE1LjM5MzIyMDI4NFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzEzODY4NDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBSZWFsdGVrIFdpRmkgRHJpdmVyIEVudHJ5IFBvaW50cyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgcnR3ODg1MWJfZHBrYCBhbmQgYHJ0dzg4NTFiX2Rwa190cmFja2AgZnVuY3Rpb25zLiBUaG9zZSBzZWVtIGxpa2UgdGhlIGNydWNpYWwgZW50cnkgcG9pbnRzIHRvIGZvY3VzIG9uLiBXYWl0IGEgc2Vjb25kLCBgcnR3ODg1MWJfZHBrYCBnZXRzIGNhbGxlZCB3aGVuIHRoZSBjaGFubmVsIGNoYW5nZXMsIHRoYXQncyBpbnRlcmVzdGluZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBlbHNlIGluIHRoaXMgZHJpdmVyIHRyaWdnZXJzIGEgY2hhbm5lbCBjaGFuZ2UuIExldCdzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBjb2RlLCBJIHNlZSBgcnR3ODg1MWJfc2V0X2NoYW5uZWxfcmZgIGFuZCBgcnR3ODg1MWJfcmZrX2NoYW5uZWxgLiBIbW0sIGBydHc4ODUxYl9yZmtfY2hhbm5lbGAgaXMgc3RhdGljIGluIGBydHc4ODUxYi5jYCwgYnV0IGl0ICpkb2VzKiBjYWxsIGBydHc4ODUxYl9kcGtgLCB3aGljaCBpcyBpbXBvcnRhbnQuIEFoISBJIHNlZSBub3csIGBydHc4ODUxYl9yZmtfY2hhbm5lbGAgaXMgYXNzaWduZWQgdG8gYHJma19jaGFubmVsYCB3aXRoaW4gYHJ0dzg4NTFiX2NoaXBfb3BzYC4gVGhhdCBtZWFucyB0aGF0IHRoZSBnZW5lcmljIG1hYzgwMjExIG9wZXJhdGlvbnMgbGlrZSBgcnR3ODlfbWFjODAyMTFfY29uZmlnYCBhbmQgYHJ0dzg5X21hYzgwMjExX2FkZF9pbnRlcmZhY2VgIHNob3VsZCBiZSB0aGUga2V5LCBhcyB0aGV5IHdpbGwgdW5kb3VidGVkbHkgYmUgdXNlZCB0byB0cmlnZ2VyIGNoYW5uZWwgY2hhbmdlcy4gU28sIEkgY2FuIGhpdCB0aGlzIGNvZGUgYnkgZnV6emluZyBzdGFuZGFyZCBtYWM4MDIxMSBvcGVyYXRpb25zIHZpYSBuZXRsaW5rLiBUaGF0J3MgZ29vZCwgdGhhdCBnaXZlcyBtZSBhIGNsZWFyIHBhdGguIEknbGwgZGVmaW5pdGVseSBhZGQgYm90aCBgcnR3ODg1MWJfZHBrYCBhbmQgYHJ0dzg4NTFiX2Rwa190cmFja2AgdG8gbXkgYEZvY3VzU3ltYm9sc2AuXG5cbk5vdywgSSBuZWVkIHRvIGNoZWNrIHRoZSByZXF1aXJlZCBjb25maWdzIGZvciB0aGlzIGRyaXZlciB0byBmdW5jdGlvbi4gTGV0J3Mgc2VlLi4uIEknbSB0aGlua2luZyBJJ2xsIG5lZWQgYENPTkZJR19SVFc4OV9DT1JFYCwgYENPTkZJR19SVFc4OV84ODUxQmAsIGFuZCBgQ09ORklHX1JUVzg5Xzg4NTFCVWAgZm9yIFVTQiBzdXBwb3J0LiBJJ2xsIG5lZWQgYENPTkZJR19SVFc4OV9VU0JgIGFzIHdlbGwuIFdhaXQgYSBtaW51dGUsIGFtIEkgZ29pbmcgdG8gbmVlZCB0byBleHBsaWNpdGx5IHNlbGVjdCAqZWl0aGVyKiBgQ09ORklHX1JUVzg5Xzg4NTFCYCBvciBgQ09ORklHX1JUVzg5Xzg4NTFCVWA/IExldCBtZSBxdWlja2x5IGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ2AgZm9yIHRoZSBgUlRXODlfODg1MUJgIHN5bWJvbC4gVGhhdCBzaG91bGQgY2xlYXIgaXQgdXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxODg2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjIzLjcwNzA5MDc2NFoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwMjYxNzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlJUVzg5Xzg4NTFCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9MjA9Y29uZmlnIFJUVzg5X1VTQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMzpjb25maWcgUlRXODlfODg1MUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjQtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz00ND1jb25maWcgUlRXODlfODkyMkRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDc6Y29uZmlnIFJUVzg5Xzg4NTFCRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00OC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUxQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTEtXFx0c2VsZWN0IFJUVzg5X1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1MjpcXHRzZWxlY3QgUlRXODlfODg1MUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02Mi1cXHRzZWxlY3QgUlRXODlfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjYzOlxcdHNlbGVjdCBSVFc4OV84ODUxQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02NC1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjIzLjg5NzM1Nzk3NFoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3OTEyNzgzMzUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IFJlYXNvbmluZyBvbiBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIgY29uZmlndXJhdGlvbnMuIEl0IHNlZW1zIGxpa2UgYFJUVzg5Xzg4NTFCVWAgc2VsZWN0cyBib3RoIGBSVFc4OV9VU0JgIGFuZCBgUlRXODlfODg1MUJgLiAgUmlnaHQgYXdheSwgSSB0aGluayB3ZSBzaG91bGQgZW5hYmxlIGJvdGggYFJUVzg5Xzg4NTFCVWAgYW5kIGBSVFc4OV84ODUxQkVgIHRvIGNvdmVyIGJvdGggVVNCIGFuZCBQQ0kgaW50ZXJmYWNlcy5cblxuQnV0IGhvbGQgb24sIGBSVFc4OV84ODUxQkVgIGlzIGZvciBQQ0ksIHdoaWNoIHBvc2VzIGEgZnV6emluZyBjb25jZXJuIGluIHN5emthbGxlciB1bmxlc3Mgd2UndmUgZ290IFBDSSBmdXp6aW5nIGNhcGFiaWxpdHkuIFN5emthbGxlciAqZG9lcyogaGF2ZSBzb21lIFBDSSBmdXp6aW5nIGZ1bmN0aW9uYWxpdHksIHNvIGl0J3MgYSBnb29kIGlkZWEgdG8gZW5hYmxlIGl0LiBJIGNhbid0IHJlY2FsbCBpZiB3ZSB1c2UgaXQsIGJ1dCBiZXN0IHByYWN0aWNlIGlzIHRvIGFsd2F5cyBlbmFibGUgc3VjaCBmdW5jdGlvbmFsaXR5LlxuXG5BaGEsIGBSVFc4OV84ODUxQlVgIGlzIHRoZSBVU0Igb25lLiBUaGF0J3MgZGVmaW5pdGVseSBmdXp6YWJsZSB0aHJvdWdoIGBkdW1teV9oY2RgLiAgU28sIHRoYXQncyBzdHJhaWdodGZvcndhcmQgLSB3ZSBhYnNvbHV0ZWx5IHdhbnQgdG8gYWRkIGBSVFc4OV84ODUxQlVgIHRvIGBFbmFibGVDb25maWdzYC5cblxuV2FpdCBhIG1pbnV0ZSwgYFJUVzg5Xzg4NTFCYCBpcyBhIGhpZGRlbiB0cmlzdGF0ZTsgd2hpY2ggbWVhbnMgd2UgbXVzdCBleHBsaWNpdGx5IGVuYWJsZSAqZWl0aGVyKiBgUlRXODlfODg1MUJVYCBvciBgUlRXODlfODg1MUJFYC4gVGhlcmVmb3JlLCBzaW5jZSB3ZSdyZSBjb3ZlcmluZyBib3RoIFVTQiBhbmQgUENJLCBsZXQncyBhZGQgKmJvdGgqIGBSVFc4OV84ODUxQlVgIGFuZCBgUlRXODlfODg1MUJFYC5cblxuQWxzbywgYm90aCBvZiB0aGVzZSBtb2R1bGVzIHNlbGVjdCBgUlRXODlfQ09SRWAsIHNvIHRoYXQncyBjb3ZlcmVkLlxuXG5Pa2F5LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB3ZSBkaWRuJ3Qgb3Zlcmxvb2sgc29tZXRoaW5nIGZ1bmRhbWVudGFsLiBXaGF0IGFib3V0IHRoZSBzdGFuZGFyZCBzdWJzeXN0ZW1zIGBNQUM4MDIxMWAgYW5kIGBDRkc4MDIxMWA/IEFyZSB3ZSBoYW5kbGluZyB0aGVtIG9yIGRvIHdlIG5lZWQgdG8gc3BlY2lmeSB0aGVtPyBJdCdzIGdlbmVyYWxseSB0aGUgY2FzZSB0aGF0IHRoZXNlIGFyZSBlbmFibGVkLlxuXG5GaW5hbGx5LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCByZWFsbHkgZG91YmxlLWNoZWNrIGlmIGBSVFc4OV84ODUxQlVgIGRlcGVuZHMgb24gYW55dGhpbmcgZWxzZSB0aGF0IG1pZ2h0IHJlcXVpcmUgYXR0ZW50aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzQ0NCwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDozMS44MTAxNDQ4MTVaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MTc1OTIzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODlfODg1MUJVXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9NDc9Y29uZmlnIFJUVzg5Xzg4NTFCRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjA6MzIuMDUxOTA5MjFaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA1NzQyMDEwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgcmVxdWVzdCwgZm9ybWF0dGVkIGZvciBhIGRvbWFpbiBleHBlcnQgbGlrZSBteXNlbGY6XG5cbioqVW5kZXJzdGFuZGluZyB0aGUgYFJUVzg5Xzg4NTFCVWAgQmxvY2sqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGluLiBJIG5lZWQgdG8gZ2V0IGEgY29tcHJlaGVuc2l2ZSB2aWV3IG9mIHRoZSBgUlRXODlfODg1MUJVYCBibG9jay4gSSBuZWVkICphbGwqIHRoZSBpbmZvcm1hdGlvbiAtIHRoZSB3aG9sZSBlbmNoaWxhZGEsIHNvIHRvIHNwZWFrLiBVbmRlcnN0YW5kaW5nIGEgc2luZ2xlIGJsb2NrIGxpa2UgdGhpcyBpcyBlc3NlbnRpYWwgZm9yIGFueSBnb29kIGVuZ2luZWVyLiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gbGVhcm4hXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU0NDQ5LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjA6MzYuMTA5MzMzMzgxWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTI4NTE4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODlfODg1MUJVXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9NDc9Y29uZmlnIFJUVzg5Xzg4NTFCRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjA6MzYuMTU0NjIyNzE2WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMzE5OTI3NzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIHRoZSBMYWJ5cmludGggb2YgQ29kZSoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEJlZm9yZSBJIGV2ZW4gKnRoaW5rKiBhYm91dCBzdGFydGluZyBkb3duIGFueSBzcGVjaWZpYyBwYXRoLCBJIG5lZWQgdG8gdGFrZSBhIHN0ZXAgYmFjayBhbmQgbWFrZSBzdXJlIEknbSBhcHByb2FjaGluZyB0aGlzIHByb2JsZW0gc3lzdGVtYXRpY2FsbHkuIEl0J3MgdG9vIGVhc3kgdG8gZ2V0IGxvc3QgaW4gdGhlIHdlZWRzLiBJIG5lZWQgdG8gYmUgc3RyYXRlZ2ljLiBSaWdodCBub3csIEknbSB0aGlua2luZyBhYm91dCBzaWZ0aW5nIHRocm91Z2ggdGhlIHJlbGV2YW50IGRhdGEgZWZmaWNpZW50bHksIGFuZCB0aGF0IG1lYW5zIEkgbmVlZCB0byB1c2Ugc29tZSByb2J1c3QgdG9vbHMuIEknbSBnb2luZyB0byBoYXZlIHRvIHVzZSBlaXRoZXIgYHJlYWQtZmlsZWAgdG8gYnJpbmcgdGhlIGRhdGEgaW4gYW5kIGV4YW1pbmUgaXQgaW4gbW9yZSBkZXRhaWwuIE9yLCBwZXJoYXBzIG1vcmUgc3RyYXRlZ2ljYWxseSwgSSBjYW4gdXNlIGBncmVwcGVyYCBhbmQgZXhhbWluZSB0aGUgY29udGV4dCBvZiB0aGUgaGl0cyBpdCByZXR1cm5zIHRvIGJldHRlciB1bmRlcnN0YW5kIGhvdyB0aGluZ3MgYXJlIHdvcmtpbmcgdG9nZXRoZXIuIFRoZSBzcGVjaWZpYyBkZXRhaWxzIG9mIHRoZSB0YXNrIGF0IGhhbmQgd2lsbCBkaWN0YXRlIHdoaWNoIGFwcHJvYWNoIGlzIGJlc3QsIGJ1dCBlaXRoZXIgd2F5LCBJIGNhbid0IGp1c3QgZGl2ZSBpbiBibGluZGx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDc3MSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjQwLjE4NjYxODg5OFoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUyMTg5MzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFJUVzg5Xzg4NTFCVVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTQ3PWNvbmZpZyBSVFc4OV84ODUxQkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTg6Y29uZmlnIFJUVzg5Xzg4NTFCVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01OS1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjQwLjIzMTg0MjA4M1oiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzY5MjI4NDI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd246XG5cbioqRGlyZWN0IFBhdGggdG8gQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCB0aGlua2luZyBhYm91dCB0aGlzIGRyaXZlciBjb25maWd1cmF0aW9uLi4uIEkgZG9uJ3QgbmVlZCB0byBvdmVyY29tcGxpY2F0ZSB0aGluZ3MuIEl0IGp1c3QgY2xpY2tlZCDigJMgSSBjYW4gYWJzb2x1dGVseSB1dGlsaXplIGByZWFkLWZpbGVgIGRpcmVjdGx5IG9uIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdgLiBUaGF0J3MgdGhlIGtleS4gTm8gbmVlZCB0byBtZXNzIGFyb3VuZCB3aXRoIGFueSBpbnRlcm1lZGlhcnkgc3RlcHMgb3IgcGFyc2luZyBub25zZW5zZS4gVGhpcyBpcyBhIGNvbmZpZ3VyYXRpb24gZmlsZSwgYWZ0ZXIgYWxsLCBhbmQgYHJlYWQtZmlsZWAgaXMgcGVyZmVjdCBmb3IgcHVsbGluZyBpbiB0aGUgc3BlY2lmaWNzLiBUaGlzIGFwcHJvYWNoIHdpbGwgb2ZmZXIgdGhlIG1vc3QgZGlyZWN0IHZpZXcgaW50byB0aG9zZSBvcHRpb25zLiBOb3csIEkgY2FuIGltbWVkaWF0ZWx5IGFuYWx5emUgdGhhdCBzcGVjaWZpYyBjb25maWcgZmlsZSFcblxuXG4iLCJJbnB1dFRva2VucyI6NTUxNzQsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDo0NC42MDEwNzQxODFaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzYyNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDQwLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDQwOlxcdFxcbiAgNDE6XFx0Y29uZmlnIFJUVzg5Xzg5MjJBXFxuICA0MjpcXHRcXHR0cmlzdGF0ZVxcbiAgNDM6XFx0XFxuICA0NDpcXHRjb25maWcgUlRXODlfODkyMkRcXG4gIDQ1OlxcdFxcdHRyaXN0YXRlXFxuICA0NjpcXHRcXG4gIDQ3OlxcdGNvbmZpZyBSVFc4OV84ODUxQkVcXG4gIDQ4OlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4gIDQ5OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICA1MDpcXHRcXHRzZWxlY3QgUlRXODlfQ09SRVxcbiAgNTE6XFx0XFx0c2VsZWN0IFJUVzg5X1BDSVxcbiAgNTI6XFx0XFx0c2VsZWN0IFJUVzg5Xzg4NTFCXFxuICA1MzpcXHRcXHRoZWxwXFxuICA1NDpcXHRcXHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUxQkUgY2hpcHNldFxcbiAgNTU6XFx0XFxuICA1NjpcXHRcXHQgIDgwMi4xMWF4IFBDSWUgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcbiAgNTc6XFx0XFxuICA1ODpcXHRjb25maWcgUlRXODlfODg1MUJVXFxuICA1OTpcXHRcXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuICA2MDpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiAgNjE6XFx0XFx0c2VsZWN0IFJUVzg5X0NPUkVcXG4gIDYyOlxcdFxcdHNlbGVjdCBSVFc4OV9VU0JcXG4gIDYzOlxcdFxcdHNlbGVjdCBSVFc4OV84ODUxQlxcbiAgNjQ6XFx0XFx0aGVscFxcbiAgNjU6XFx0XFx0ICBTZWxlY3QgdGhpcyBvcHRpb24gd2lsbCBlbmFibGUgc3VwcG9ydCBmb3IgODg1MUJVIGNoaXBzZXRcXG4gIDY2OlxcdFxcbiAgNjc6XFx0XFx0ICA4MDIuMTFheCBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcbiAgNjg6XFx0XFxuICA2OTpcXHRjb25maWcgUlRXODlfODg1MkFFXFxuICA3MDpcXHRcXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuICA3MTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgNzI6XFx0XFx0c2VsZWN0IFJUVzg5X0NPUkVcXG4gIDczOlxcdFxcdHNlbGVjdCBSVFc4OV9QQ0lcXG4gIDc0OlxcdFxcdHNlbGVjdCBSVFc4OV84ODUyQVxcbiAgNzU6XFx0XFx0aGVscFxcbiAgNzY6XFx0XFx0ICBTZWxlY3QgdGhpcyBvcHRpb24gd2lsbCBlbmFibGUgc3VwcG9ydCBmb3IgODg1MkFFIGNoaXBzZXRcXG4gIDc3OlxcdFxcbiAgNzg6XFx0XFx0ICA4MDIuMTFheCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXG4gIDc5OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDo0NC42MDExNTE3NDFaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTEzOTY0MjEwNDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIgY2hhbmdlIGFuZCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucy4gRmlyc3QsIGl0IHNlZW1zIGxpa2Ugd2UncmUgZGVhbGluZyB3aXRoIGVuYWJsaW5nIHNvbWUgbmV3IGNvbmZpZ3VyYXRpb25zLiBgUlRXODlfODg1MUJVYCByZWxpZXMgb24gdGhlIGBVU0JgIGJ1cywgd2hpbGUgYFJUVzg5Xzg4NTFCRWAgdXNlcyBgUENJYC4gIFNvLCBJIHNob3VsZCBhZGQgYm90aCBvZiB0aG9zZSB0byB0aGUgYEVuYWJsZUNvbmZpZ3NgIGxpc3QuIE1pZ2h0IGFzIHdlbGwgdGhyb3cgYFJUVzg5X0NPUkVgIGluIHRoZXJlIHRvbywgZXZlbiB0aG91Z2ggaXQncyBhbHJlYWR5IHNlbGVjdGVkIOKAkyBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LCB5b3Uga25vdz8gQWgsIHdhaXQgYSBtaW51dGUsIGBSVFc4OV84ODUxQmAgaXMgdGhlIGFjdHVhbCB1bmRlcmx5aW5nIGNoaXAgY29uZmlndXJhdGlvbiwgYnV0IGl0J3MgaGlkZGVuICh0cmlzdGF0ZSkuIFRoZSBwcmltYXJ5IG9uZSB0byBlbmFibGUgdGhlbiBpcyBgUlRXODlfODg1MUJVYC4gR290IGl0LlxuXG5Ob3csIGxldCdzIGRpdmUgaW50byB0aGUgY29kZSBpdHNlbGYuIEknbSBmb2N1c2luZyBvbiB0aGUgc3ltYm9scyByZWxhdGVkIHRvIHRoaXMgRFBLIChEeW5hbWljIFBhY2tldCBLZXJuZWwpIGluZm9ybWF0aW9uLiBUaGUgZGlmZiBJIHNlZSBjZW50ZXJzIG9uIGBydHc4ODUxYl9yZmsuY2AuIExldCdzIHNlZS4uLkkgc2VlIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYCBhcyB0aGUga2V5IGZ1bmN0aW9ucyBoZXJlLiBUaGVzZSBhcmUgdGhlIG5vbi1zdGF0aWMgb25lcyB0aGF0IHVsdGltYXRlbHkgY2FsbCBgX2Rwa19pbmZvcm1hdGlvbmAuIEhtbSwgaG9sZCBvbi4gYF9kcGtfaW5mb3JtYXRpb25gIGlzIGFjdHVhbGx5IGNhbGxlZCBmcm9tIG90aGVyIGBydHc4ODUyYCB2YXJpYW50cyB0b28gKGBydHc4ODUyYV9yZmsuY2AsIGV0Yy4pLiBCdXQgdGhlICpwYXRjaCogb25seSBtb2RpZmllcyBgcnR3ODg1MWJfcmZrLmNgLiBTbywgSSByZWFsbHkgb25seSBuZWVkIHRvIGNvbmNlbnRyYXRlIG9uIGBydHc4ODUxYl9kcGtgIGFuZCBgcnR3ODg1MWJfZHBrX3RyYWNrYCBpbiB0aGUgY29udGV4dCBvZiB0aGlzIHNwZWNpZmljIHBhdGNoLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0J3MgdmVyaWZ5IHRoYXQgdGhvc2UgdHdvIGFyZSB0aGUgY29ycmVjdCBzeW1ib2xzIHRvIGZvY3VzIG9uLiBZZXAsIHRoZXkgYXJlIGV4cG9ydGVkIChub24tc3RhdGljKSwgd2hpY2ggbWVhbnMgdGhleSdyZSBwdWJsaWMsIGFuZCB0aGV5IGRvIGluZGVlZCBjYWxsIGBfZHBrX2luZm9ybWF0aW9uYCB2aWEgYF9kcGtgIGFuZCBgX2Rwa19jYWxfc2VsZWN0YC4gT2theSwgSSBzZWUgdGhhdCBgcnR3ODg1MWJfZHBrX2luaXRgIGFsc28gZXhpc3RzLiBCdXQgaXMgaXQgdXNlZCBoZXJlPyBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGF0IGZ1bmN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTk3NSwiT3V0cHV0VG9rZW5zIjo1OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIwOjU1Ljk5NzU3NTU1OVoiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcwNjAyMTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3ODg1MWJfZHBrX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jPTMyOTQ9c3RhdGljIHZvaWQgcnR3ODg1MWJfYnlfcmF0ZV9kcGQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYl9yZmsuYy0zMjk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJfcmZrLmM6MzMwMDp2b2lkIHJ0dzg4NTFiX2Rwa19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jLTMzMDEte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMDo1Ni4wNDQ2NDE0NjRaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk3MzgxMjAzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYHJ0dzg4NTFiX2Rwa19pbml0YCBmdW5jdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2UgYW5kIGhvdyBpdCBmaXRzIGludG8gdGhlIGJyb2FkZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVyLiBBcyBhbiBleHBlcnQsIEknbSBhbHJlYWR5IGFudGljaXBhdGluZyB0aGlzIGZ1bmN0aW9uIGxpa2VseSBoYW5kbGVzIHRoZSBpbml0aWFsaXphdGlvbiBwaGFzZSBmb3IgdGhlIERpc3BsYXlQb3J0IEtleSAoRFBLKSBmdW5jdGlvbmFsaXR5IHdpdGhpbiB0aGUgUmVhbHRlayBSVEw4ODUxQiBXaS1GaSBjaGlwc2V0LiBJJ2xsIG5lZWQgdG8gbG9vayBmb3Iga2V5IGRhdGEgc3RydWN0dXJlcywgcmVnaXN0ZXIgYWNjZXNzZXMsIGFuZCB0aGUgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBpbnZvbHZlZC4gU3BlY2lmaWNhbGx5LCBJJ20gZXhwZWN0aW5nIHRvIHNlZSBjb25maWd1cmF0aW9uIG9mIERQSy1yZWxhdGVkIGhhcmR3YXJlLCBwb3RlbnRpYWxseSBpbmNsdWRpbmc6XG5cbiogICAqKktleSBnZW5lcmF0aW9uIG9yIGxvYWRpbmc6KiogVGhpcyBpcyBjcml0aWNhbDsgdGhlIGZ1bmN0aW9uIHdpbGwgZWl0aGVyIGdlbmVyYXRlLCBsb2FkLCBvciByZWNlaXZlIHRoZSBpbml0aWFsIERQSy4gVGhpcyBpcyBteSB0b3AgcHJpb3JpdHkuXG4qICAgKipEUEsgcmVnaXN0ZXIgaW5pdGlhbGl6YXRpb246KiogSXQncyBwcmFjdGljYWxseSBndWFyYW50ZWVkIHRoYXQgdGhlcmUgYXJlIHNwZWNpZmljIHJlZ2lzdGVycyBjb250cm9sbGluZyB0aGUgRFBLIGZlYXR1cmUuIEknbGwgYmUgc2VhcmNoaW5nIGZvciB0aGVpciBhZGRyZXNzZXMgYW5kIHRoZWlyIGludGVuZGVkIGNvbmZpZ3VyYXRpb25zLlxuKiAgICoqU2VjdXJpdHkgQ29udGV4dCBTZXR1cDoqKiBEZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLCB0aGUgZnVuY3Rpb24gbWF5IGJlIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHVwIHNlY3VyaXR5IGNvbnRleHRzIGxpa2UgYXV0aGVudGljYXRpb24gb3Iga2V5IGRlcml2YXRpb24sIHNvIGl0IGNhbiBzZWN1cmVseSBleGNoYW5nZSB0aGUgRFBLLiBJJ2xsIHNlYXJjaCBmb3IgY3J5cHRvZ3JhcGhpYyBmdW5jdGlvbnMsIHRvby5cbiogICAqKlBvd2VyIGFuZCBDbG9jayBDb250cm9sOioqIFVzdWFsbHksIHRoZSBEUEsgcmVsYXRlZCBibG9jayBpcyBwb3dlcmVkIGRvd24gb3IgaW4gbG93LXBvd2VyIHN0YXRlLiBTbywgSSB3aWxsIGNoZWNrIHRoZSBjbG9jayBhbmQgcG93ZXIgbWFuYWdlbWVudCBmdW5jdGlvbnMuXG4qICAgKipFcnJvciBIYW5kbGluZzoqKiBJdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgaW5pdGlhbGl6YXRpb24gZmFpbHVyZXMgYXJlIGhhbmRsZWQuIEknbGwgbG9vayBmb3IgZXJyb3IgY29kZXMsIHJldHVybiB2YWx1ZXMsIGFuZCBsb2dnaW5nLlxuXG5NeSBnb2FsIGlzIHRvIGdyYXNwIHRoZSBpbml0aWFsaXphdGlvbiBmbG93LCBwaW5wb2ludCBhbnkgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyBvciBhcmVhcyBmb3Igb3B0aW1pemF0aW9uLCBhbmQgdWx0aW1hdGVseSBhc3Nlc3MgaG93IGVmZmVjdGl2ZWx5IGl0IGludGVncmF0ZXMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NzQyOSwiT3V0cHV0VG9rZW5zIjo1NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIxOjAxLjAxODQ1NzUzWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4OTU1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDMzMDAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjMzMDA6XFx0dm9pZCBydHc4ODUxYl9kcGtfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuMzMwMTpcXHR7XFxuMzMwMjpcXHRcXHRydHc4ODUxYl9ieV9yYXRlX2RwZChydHdkZXYpO1xcbjMzMDM6XFx0fVxcbjMzMDQ6XFx0XFxuMzMwNTpcXHR2b2lkIHJ0dzg4NTFiX2FhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbjMzMDY6XFx0e1xcbjMzMDc6XFx0XFx0dTMyIHRtcDA1LCB0bXBkMywgaWJbNF07XFxuMzMwODpcXHRcXHR1MzIgdG1wO1xcbjMzMDk6XFx0XFx0aW50IHJldDtcXG4zMzEwOlxcdFxcdGludCByZWs7XFxuMzMxMTpcXHRcXHRpbnQgaTtcXG4zMzEyOlxcdFxcbjMzMTM6XFx0XFx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUkZLLCBcXFwiW0xDS11ETyBBQUNLXFxcXG5cXFwiKTtcXG4zMzE0OlxcdFxcbjMzMTU6XFx0XFx0dG1wMDUgPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9SU1YxLCBSRlJFR19NQVNLKTtcXG4zMzE2OlxcdFxcdHRtcGQzID0gcnR3ODlfcmVhZF9yZihydHdkZXYsIFJGX1BBVEhfQSwgUlJfTENLX1RSRywgUkZSRUdfTUFTSyk7XFxuMzMxNzpcXHRcXHRydHc4OV93cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUlJfTU9ELCBSUl9NT0RfTUFTSywgMHgzKTtcXG4zMzE4OlxcdFxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9SU1YxLCBSRlJFR19NQVNLLCAweDApO1xcbjMzMTk6XFx0XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX0xDS19UUkcsIFJSX0xDS19TVCwgMHgwKTtcXG4zMzIwOlxcdFxcbjMzMjE6XFx0XFx0Zm9yIChyZWsgPSAwOyByZWsgXFx1MDAzYyA0OyByZWsrKykge1xcbjMzMjI6XFx0XFx0XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX0FBQ0ssIFJGUkVHX01BU0ssIDB4ODIwMWUpO1xcbjMzMjM6XFx0XFx0XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX0FBQ0ssIFJGUkVHX01BU0ssIDB4ODIwMWYpO1xcbjMzMjQ6XFx0XFx0XFx0ZnNsZWVwKDEwMCk7XFxuMzMyNTpcXHRcXG4zMzI2OlxcdFxcdFxcdHJldCA9IHJlYWRfcG9sbF90aW1lb3V0X2F0b21pYyhydHc4OV9yZWFkX3JmLCB0bXAsIHRtcCxcXG4zMzI3OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICAxLCAxMDAwLCBmYWxzZSxcXG4zMzI4OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBydHdkZXYsIFJGX1BBVEhfQSwgMHhkMCwgQklUKDE2KSk7XFxuMzMyOTpcXHRcXHRcXHRpZiAocmV0KVxcbjMzMzA6XFx0XFx0XFx0XFx0cnR3ODlfd2FybihydHdkZXYsIFxcXCJbTENLXUFBQ0sgdGltZW91dFxcXFxuXFxcIik7XFxuMzMzMTpcXHRcXG4zMzMyOlxcdFxcdFxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9WQ0ksIFJSX1ZDSV9PTiwgMHgxKTtcXG4zMzMzOlxcdFxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyA0OyBpKyspIHtcXG4zMzM0OlxcdFxcdFxcdFxcdHJ0dzg5X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9WQ08sIFJSX1ZDT19TRUwsIGkpO1xcbjMzMzU6XFx0XFx0XFx0XFx0aWJbaV0gPSBydHc4OV9yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSUl9JQkQsIFJSX0lCRF9WQUwpO1xcbjMzMzY6XFx0XFx0XFx0fVxcbjMzMzc6XFx0XFx0XFx0cnR3ODlfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJSX1ZDSSwgUlJfVkNJX09OLCAweDApO1xcbjMzMzg6XFx0XFxuMzMzOTpcXHRcXHRcXHRpZiAoaWJbMF0gIT0gMCBcXHUwMDI2XFx1MDAyNiBpYlsxXSAhPSAwIFxcdTAwMjZcXHUwMDI2IGliWzJdICE9IDAgXFx1MDAyNlxcdTAwMjYgaWJbM10gIT0gMClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjE6MDEuMDE4NjQ5NjFaIiwiU2VxIjozMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU2NTg4MDYwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBjb2RlIHNuaXBwZXQ6XG5cbioqRGVlcCBEaXZlIGludG8gcnR3ODg1MWIncyBEUEQgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgcnR3ODg1MWJfZHBrX2luaXRgIGFuZCBJIHNlZSB0aGF0IGFsbCBpdCdzIGRvaW5nIGlzIGNhbGxpbmcgYHJ0dzg4NTFiX2J5X3JhdGVfZHBkYC4gVGhhdCdzIGEga2V5IG9ic2VydmF0aW9uLiBUaGlzIG1lYW5zLCBhcyBmYXIgYXMgSSBjYW4gdGVsbCBmcm9tIHRoaXMgc25pcHBldCBhbG9uZSwgaXQgKmRvZXNuJ3QqIGRpcmVjdGx5IGludm9rZSBgX2Rwa19pbmZvcm1hdGlvbmAsIHdoaWNoIGlzIHNvbWV0aGluZyB0byBrZWVwIGluIG1pbmQuIFdlIG5lZWQgdG8gdmVyaWZ5IHdoZXJlIGFuZCBob3cgYF9kcGtfaW5mb3JtYXRpb25gIGlzIGFjdHVhbGx5IHV0aWxpemVkIHdpdGhpbiB0aGUgRFBEIGZyYW1ld29yayBvZiB0aGlzIGRyaXZlci5cblxuTXkgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIHRob3JvdWdobHkgZXhhbWluZSBgcnR3ODg1MWJfZHBrYCBhbmQgYHJ0dzg4NTFiX2Rwa190cmFja2AgdG8gdW5kZXJzdGFuZCB0aGUgZGF0YSBmbG93IGFuZCBkZXRlcm1pbmUgdGhlIGZ1bGwgcGljdHVyZSBvZiB0aGUgZGlnaXRhbCBwcmUtZGlzdG9ydGlvbiBwcm9jZXNzIHdpdGhpbiB0aGUgYHJ0dzg4NTFiYCBkcml2ZXIuIFRoYXQgd2lsbCBoZWxwIHNoZWQgbGlnaHQgb24gdGhlIGZ1bmN0aW9uIHRoYXQncyBiZWluZyBjYWxsZWQsIGFuZCByZXZlYWwgdGhlIGxvY2F0aW9uIG9mIHRoZSBjYWxsIGZvciBgX2Rwa19pbmZvcm1hdGlvbmAgaWYgaXQgZXhpc3RzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODgyMywiT3V0cHV0VG9rZW5zIjo1NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTA6MjE6MDYuNTg0NTMzNjg1WiIsIlNlcSI6MzQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MDE3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFiX3Jmay5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDM0NTAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjM0NTA6XFx0XFxuMzQ1MTpcXHR2b2lkIHJ0dzg4NTFiX2RwayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHlfaWR4LFxcbjM0NTI6XFx0XFx0XFx0ICBlbnVtIHJ0dzg5X2NoYW5jdHhfaWR4IGNoYW5jdHhfaWR4KVxcbjM0NTM6XFx0e1xcbjM0NTQ6XFx0XFx0dTggcGh5X21hcCA9IHJ0dzg5X2J0Y19waHltYXAocnR3ZGV2LCBwaHlfaWR4LCAwLCBjaGFuY3R4X2lkeCk7XFxuMzQ1NTpcXHRcXHR1MzIgdHhfZW47XFxuMzQ1NjpcXHRcXG4zNDU3OlxcdFxcdHJ0dzg5X2J0Y19udGZ5X3dsX3JmayhydHdkZXYsIHBoeV9tYXAsIEJUQ19XUkZLVF9EUEssIEJUQ19XUkZLX1NUQVJUKTtcXG4zNDU4OlxcdFxcdHJ0dzg5X2NoaXBfc3RvcF9zY2hfdHgocnR3ZGV2LCBwaHlfaWR4LCBcXHUwMDI2dHhfZW4sIFJUVzg5X1NDSF9UWF9TRUxfQUxMKTtcXG4zNDU5OlxcdFxcdF93YWl0X3J4X21vZGUocnR3ZGV2LCBfa3BhdGgocnR3ZGV2LCBwaHlfaWR4KSk7XFxuMzQ2MDpcXHRcXG4zNDYxOlxcdFxcdHJ0d2Rldi1cXHUwMDNlZHBrLmlzX2Rwa19lbmFibGUgPSB0cnVlO1xcbjM0NjI6XFx0XFx0cnR3ZGV2LVxcdTAwM2VkcGsuaXNfZHBrX3JlbG9hZF9lbiA9IGZhbHNlO1xcbjM0NjM6XFx0XFx0X2RwayhydHdkZXYsIHBoeV9pZHgsIGZhbHNlLCBjaGFuY3R4X2lkeCk7XFxuMzQ2NDpcXHRcXG4zNDY1OlxcdFxcdHJ0dzg5X2NoaXBfcmVzdW1lX3NjaF90eChydHdkZXYsIHBoeV9pZHgsIHR4X2VuKTtcXG4zNDY2OlxcdFxcdHJ0dzg5X2J0Y19udGZ5X3dsX3JmayhydHdkZXYsIHBoeV9tYXAsIEJUQ19XUkZLVF9EUEssIEJUQ19XUkZLX1NUT1ApO1xcbjM0Njc6XFx0fVxcbjM0Njg6XFx0XFxuMzQ2OTpcXHR2b2lkIHJ0dzg4NTFiX2Rwa190cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuMzQ3MDpcXHR7XFxuMzQ3MTpcXHRcXHRfZHBrX3RyYWNrKHJ0d2Rldik7XFxuMzQ3MjpcXHR9XFxuMzQ3MzpcXHRcXG4zNDc0OlxcdHZvaWQgcnR3ODg1MWJfdHNzaShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIGVudW0gcnR3ODlfcGh5X2lkeCBwaHksXFxuMzQ3NTpcXHRcXHRcXHQgICBib29sIGh3dHhfZW4sIGVudW0gcnR3ODlfY2hhbmN0eF9pZHggY2hhbmN0eF9pZHgpXFxuMzQ3NjpcXHR7XFxuMzQ3NzpcXHRcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2hhbiAqY2hhbiA9IHJ0dzg5X2NoYW5fZ2V0KHJ0d2RldiwgY2hhbmN0eF9pZHgpO1xcbjM0Nzg6XFx0XFx0dTggcGh5X21hcCA9IHJ0dzg5X2J0Y19waHltYXAocnR3ZGV2LCBwaHksIFJGX0EsIGNoYW5jdHhfaWR4KTtcXG4zNDc5OlxcdFxcdHU4IGk7XFxuMzQ4MDpcXHRcXG4zNDgxOlxcdFxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1RTU0ksIFxcXCJbVFNTSV0gJXM6IHBoeT0lZFxcXFxuXFxcIiwgX19mdW5jX18sIHBoeSk7XFxuMzQ4MjpcXHRcXHRydHc4OV9idGNfbnRmeV93bF9yZmsocnR3ZGV2LCBwaHlfbWFwLCBCVENfV1JGS1RfSVFLLCBCVENfV1JGS19PTkVTSE9UX1NUQVJUKTtcXG4zNDgzOlxcdFxcbjM0ODQ6XFx0XFx0X3Rzc2lfZGlzYWJsZShydHdkZXYsIHBoeSk7XFxuMzQ4NTpcXHRcXG4zNDg2OlxcdFxcdGZvciAoaSA9IFJGX1BBVEhfQTsgaSBcXHUwMDNjIFJGX1BBVEhfTlVNXzg4NTFCOyBpKyspIHtcXG4zNDg3OlxcdFxcdFxcdF90c3NpX3NldF9zeXMocnR3ZGV2LCBwaHksIGksIGNoYW4pO1xcbjM0ODg6XFx0XFx0XFx0X3Rzc2lfaW5pX3R4cHdyX2N0cmxfYmIocnR3ZGV2LCBwaHksIGkpO1xcbjM0ODk6XFx0XFx0XFx0X3Rzc2lfaW5pX3R4cHdyX2N0cmxfYmJfaGVfdGIocnR3ZGV2LCBwaHksIGkpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMDoyMTowNi41ODQ3MDY1MzVaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODgxNjU2MDAxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgUmVsZXZhbnQgQ29kZSoqXG5cbk9rYXksIHNvIEkndmUgdHJhY2VkIHRocm91Z2ggdGhlIGNvZGUuIEkgc2VlIHRoYXQgYHJ0dzg4NTFiX2Rwa2AgbWFrZXMgYSBjYWxsIHRvIGBfZHBrYCwgc3BlY2lmaWNhbGx5IHdpdGggdGhlIGFyZ3VtZW50cyBgcnR3ZGV2YCwgYHBoeV9pZHhgLCBgZmFsc2VgLCBhbmQgYGNoYW5jdHhfaWR4YC4gVGhhdCBgX2Rwa2AgZnVuY3Rpb24gdGhlbiBjYWxscyBgX2Rwa19jYWxfc2VsZWN0YCwgd2hpY2ggZmluYWxseSBnZXRzIGRvd24gdG8gYF9kcGtfaW5mb3JtYXRpb25gLiBUaGF0J3Mgb25lIHBhdGguIE9uIHRoZSBvdGhlciBoYW5kLCBgcnR3ODg1MWJfZHBrX3RyYWNrYCBjYWxscyBgX2Rwa190cmFja2AsIGFuZCB0aGF0IGZ1bmN0aW9uIHV0aWxpemVzIGBkcGstXHUwMDNlYnBbcGF0aF1ba2lkeF0uY2hgLiBUaGlzIGxvb2tzIHByb21pc2luZy4gQm90aCBzZWVtIHRvIGJlIGludm9sdmVkIGluIGtleSBwYXJ0cyBvZiB0aGUgRFBLIHByb2Nlc3MuXG5cbkdpdmVuIHRoaXMsIEkgYW0gZ29pbmcgdG8gbWFyayBgcnR3ODg1MWJfZHBrYCBhbmQgYHJ0dzg4NTFiX2Rwa190cmFja2AgYXMgdGhlIHRhcmdldCBzeW1ib2xzIGZvciBmdXp6aW5nLlxuXG5NeSBkZWNpc2lvbiBjYW4gYmUgc3VtbWFyaXplZCBhczpcblxuKiAgICoqV29ydGhGdXp6aW5nOioqIFRydWUgLSB0aGlzIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enplciBpbnB1dC5cbiogICAqKkZvY3VzU3ltYm9sczoqKiBgW1wicnR3ODg1MWJfZHBrXCIsIFwicnR3ODg1MWJfZHBrX3RyYWNrXCJdYCAtIFRoZXNlIGFyZSB0aGUgbW9zdCByZWxldmFudCBzeW1ib2xzIHRvIHRhcmdldC5cbiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYFtcIlJUVzg5Xzg4NTFCVVwiLCBcIlJUVzg5Xzg4NTFCRVwiXWAgLSBJIGJlbGlldmUgdGhlIGRyaXZlciBjb25maWd1cmF0aW9ucyBmb3IgVVNCICg4ODUxQlUpIGFuZCBQQ0ktRSAoODg1MUJFKSBhcmUgcmVsZXZhbnQuXG4qICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIGFkZHJlc3NlcyBhIGJ1ZyBpbiB0aGUgRFBLIGNhbGlicmF0aW9uIGxvZ2ljLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBjaGFubmVsIGFuZCBiYW5kd2lkdGggdmFsdWUgc3dhcHBpbmcgd2l0aGluIHRoZSBydHc4OSBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiBhbmQgdHJhY2tpbmcgbG9naWMgd2l0aGluIHRoZSBkcml2ZXIsIHdoaWNoIGlzIHdoYXQgbWFrZXMgaXQgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gVGhlIFVTQiBjb25maWd1cmF0aW9uIGlzIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZywgZ2l2ZW4gdGhlIGFiaWxpdHkgdG8gdXNlIGEgYGR1bW15X2hjZGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwMTYyLCJPdXRwdXRUb2tlbnMiOjE0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEwOjIxOjE1LjQwMTI3MDQ4OVoiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MzcxNDcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OV84ODUxQlVcIixcbiAgICBcIlJUVzg5Xzg4NTFCRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg4NTFiX2Rwa1wiLFxuICAgIFwicnR3ODg1MWJfZHBrX3RyYWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBmdW5jdGlvbmFsIGJ1ZyBpbiB0aGUgRFBLIChEaWdpdGFsIFByZS1EaXN0b3J0aW9uKSBjYWxpYnJhdGlvbiBsb2dpYyBvZiB0aGUgcnR3ODkgZHJpdmVyIHdoZXJlIGNoYW5uZWwgYW5kIGJhbmR3aWR0aCB2YWx1ZXMgd2VyZSBzd2FwcGVkLiBUaGlzIGFmZmVjdHMgaGFyZHdhcmUgY29uZmlndXJhdGlvbiBhbmQgdHJhY2tpbmcgbG9naWMuIFRoZSBkcml2ZXIgc3VwcG9ydHMgVVNCICg4ODUxQlUpIGFuZCBjYW4gYmUgZnV6emVkIHZpYSBkdW1teV9oY2QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRXODlfODg1MUJVXCIsXG4gICAgXCJSVFc4OV84ODUxQkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHc4ODUxYl9kcGtcIixcbiAgICBcInJ0dzg4NTFiX2Rwa190cmFja1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgZnVuY3Rpb25hbCBidWcgaW4gdGhlIERQSyAoRGlnaXRhbCBQcmUtRGlzdG9ydGlvbikgY2FsaWJyYXRpb24gbG9naWMgb2YgdGhlIHJ0dzg5IGRyaXZlciB3aGVyZSBjaGFubmVsIGFuZCBiYW5kd2lkdGggdmFsdWVzIHdlcmUgc3dhcHBlZC4gVGhpcyBhZmZlY3RzIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gYW5kIHRyYWNraW5nIGxvZ2ljLiBUaGUgZHJpdmVyIHN1cHBvcnRzIFVTQiAoODg1MUJVKSBhbmQgY2FuIGJlIGZ1enplZCB2aWEgZHVtbXlfaGNkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowdlspn[1] Phase: Succeeded StartedAt: 2026-08-07 10:21:26 +0000 UTC FinishedAt: 2026-08-07 10:21:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-07 10:21:26 +0000 UTC FinishedAt: 2026-08-07 10:21:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2] Phase: Succeeded StartedAt: 2026-08-07 10:21:26 +0000 UTC FinishedAt: 2026-08-07 11:05:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-07 10:21:26 +0000 UTC FinishedAt: 2026-08-07 11:05:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-07 10:21:26 +0000 UTC FinishedAt: 2026-08-07 10:21:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-07 10:21:26 +0000 UTC FinishedAt: 2026-08-07 10:21:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowdlspn/series-workflowdlspn-convert-artifact-751863208/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-07 10:21:36 +0000 UTC FinishedAt: 2026-08-07 10:39:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-07 10:21:36 +0000 UTC FinishedAt: 2026-08-07 10:39:10 +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:*4424939a-0774-4074-a44f-7b6265b7aba3,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-workflowdlspn/series-workflowdlspn-convert-artifact-751863208/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": "2b3d2b23-772d-4589-bc53-9a8171225309", "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-workflowdlspn/series-workflowdlspn-build-action-2578512926/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-07 10:21:36 +0000 UTC FinishedAt: 2026-08-07 10:39:00 +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:*4424939a-0774-4074-a44f-7b6265b7aba3,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-workflowdlspn/series-workflowdlspn-convert-artifact-751863208/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": "2b3d2b23-772d-4589-bc53-9a8171225309", "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-workflowdlspn/series-workflowdlspn-build-action-2578512926/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-07 10:39:10 +0000 UTC FinishedAt: 2026-08-07 10:39:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-07 10:39:10 +0000 UTC FinishedAt: 2026-08-07 10:39:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-07 10:39:10 +0000 UTC FinishedAt: 2026-08-07 10:39:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-07 10:39:10 +0000 UTC FinishedAt: 2026-08-07 10:39:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowdlspn/series-workflowdlspn-convert-artifact-1004637327/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-07 10:39:20 +0000 UTC FinishedAt: 2026-08-07 10:41:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-07 10:39:20 +0000 UTC FinishedAt: 2026-08-07 10:41:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2b3d2b23-772d-4589-bc53-9a8171225309,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-workflowdlspn/series-workflowdlspn-build-action-2578512926/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-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-07 10:41:47 +0000 UTC FinishedAt: 2026-08-07 10:41:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-07 10:41:47 +0000 UTC FinishedAt: 2026-08-07 10:41:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-07 10:41:47 +0000 UTC FinishedAt: 2026-08-07 11:01:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-07 10:41:47 +0000 UTC FinishedAt: 2026-08-07 11:01:11 +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:*4424939a-0774-4074-a44f-7b6265b7aba3,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-workflowdlspn/series-workflowdlspn-convert-artifact-1004637327/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": "d2517b7e-f426-4460-9a84-d8479c6c16ef", "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-workflowdlspn/series-workflowdlspn-build-action-3487198627/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-07 10:41:47 +0000 UTC FinishedAt: 2026-08-07 11:01:00 +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:*4424939a-0774-4074-a44f-7b6265b7aba3,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-workflowdlspn/series-workflowdlspn-convert-artifact-1004637327/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": "d2517b7e-f426-4460-9a84-d8479c6c16ef", "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-workflowdlspn/series-workflowdlspn-build-action-3487198627/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-07 11:01:11 +0000 UTC FinishedAt: 2026-08-07 11:01:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-07 11:01:11 +0000 UTC FinishedAt: 2026-08-07 11:01:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-07 11:01:11 +0000 UTC FinishedAt: 2026-08-07 11:03:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-07 11:01:11 +0000 UTC FinishedAt: 2026-08-07 11:03:07 +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:*d2517b7e-f426-4460-9a84-d8479c6c16ef,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-workflowdlspn/series-workflowdlspn-build-action-3487198627/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-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-07 11:03:19 +0000 UTC FinishedAt: 2026-08-07 11:05:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-07 11:03:19 +0000 UTC FinishedAt: 2026-08-07 11:05:19 +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":["rtw8851b_dpk","rtw8851b_dpk_track"],"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:*2b3d2b23-772d-4589-bc53-9a8171225309,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d2517b7e-f426-4460-9a84-d8479c6c16ef,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-workflowdlspn/series-workflowdlspn-build-action-2578512926/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-workflowdlspn/series-workflowdlspn-build-action-3487198627/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-07 11:03:19 +0000 UTC FinishedAt: 2026-08-07 11:03:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-07 11:03:19 +0000 UTC FinishedAt: 2026-08-07 11:03:25 +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":["rtw8851b_dpk","rtw8851b_dpk_track"],"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-workflowdlspn/series-workflowdlspn-convert-artifact-3155601736/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-07 11:03:19 +0000 UTC FinishedAt: 2026-08-07 11:03:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-07 11:03:19 +0000 UTC FinishedAt: 2026-08-07 11:03:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-07 11:03:19 +0000 UTC FinishedAt: 2026-08-07 11:03:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-07 11:03:31 +0000 UTC FinishedAt: 2026-08-07 11:05:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdlspn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851b_dpk","rtw8851b_dpk_track"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89_8851BU","RTW89_8851BE"],"series_id":"585bc4f2-2b1e-461d-9d6c-b93a9fec8c32","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-07 11:03:31 +0000 UTC FinishedAt: 2026-08-07 11:04:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2b3d2b23-772d-4589-bc53-9a8171225309,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d2517b7e-f426-4460-9a84-d8479c6c16ef,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-workflowdlspn/series-workflowdlspn-build-action-2578512926/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-workflowdlspn/series-workflowdlspn-build-action-3487198627/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-workflowdlspn/series-workflowdlspn-convert-artifact-3155601736/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,}